Pragmatic Software
65920bbe33
registerable: removed unnecessary array size check
2011-01-28 23:16:50 +00:00
Pragmatic Software
8d524089db
anti-flood: added last offense timestamp; decrease offense counter once every 24 hours without offense
2011-01-27 06:17:39 +00:00
Pragmatic Software
31ae068202
factoid commands: removed unnecessary direct privmsg call
2011-01-27 01:51:16 +00:00
Pragmatic Software
5d0f2f5b98
updated VERSION.pm information
2011-01-27 01:23:47 +00:00
Pragmatic Software
bd3d69872e
factoids: updated database
2011-01-27 00:51:01 +00:00
Pragmatic Software
1e74e36dd7
factoid commands: updated top20 to work with new factoid structure
2011-01-27 00:49:36 +00:00
Pragmatic Software
3cb15235e5
factoids: removed some uninteresting factoids from database
2011-01-26 22:48:16 +00:00
Pragmatic Software
8983a53732
pbot: slightly improved readability/flow of PBot.pm
2011-01-26 10:13:06 +00:00
Pragmatic Software
aaa261b66e
pbot: correct default config directory
2011-01-26 10:04:55 +00:00
Pragmatic Software
d62e77c29d
factoids: updating factoids; added some more action_with_args entries to existing factoids
2011-01-26 09:41:25 +00:00
Pragmatic Software
e6e89023a0
pbot: made PBot.pm more readable and concise
2011-01-26 09:40:08 +00:00
Pragmatic Software
1fcd6d07c1
config: updated example in admins file
2011-01-26 02:34:55 +00:00
Pragmatic Software
93658e0f6f
modules: added compiler virtual machine scripts; use to set up your own environment for !cc/compiler_client.pl
2011-01-26 01:59:19 +00:00
Pragmatic Software
b2a1dec56c
updated Changes file for Net::IRC/PBot::IRC
2011-01-26 00:37:01 +00:00
Pragmatic Software
da84e6fd33
documentation: added doc folder, moved README to it, and copied Candide wiki page as PBot.html with some minor edits
2011-01-26 00:25:04 +00:00
Pragmatic Software
747392e23a
updated factoids database; !help with arguments now displays link to command ala !h
2011-01-25 23:52:55 +00:00
Pragmatic Software
44b737a8c3
factoids: allow factset/factunset by regular users; factset/factunset now has list of metadata levels, and does ownership checking; added action_with_args metadata field to be substituted for action if factoid triggered with arguments
2011-01-25 22:40:22 +00:00
Pragmatic Software
45a2a66d0f
Moved lag-checking code to LagChecker.pm; improved output of !lagcheck command
2011-01-24 23:56:55 +00:00
Pragmatic Software
a619f8fe9b
factoids: Dont break factoids if used from stdin
2011-01-24 23:46:07 +00:00
Pragmatic Software
ed797ca5cf
antiflood: change banfoward timeout first offense to start from 8 hours instead of 32 hours
2011-01-24 22:21:29 +00:00
Pragmatic Software
22c1673f3d
factoids: dont remove trailing colon and/or comma from keywords in interpreter
2011-01-24 01:30:19 +00:00
Pragmatic Software
c29a694359
antiflood: do not check flood if lag is uninitialized or is significant
2011-01-22 09:45:16 +00:00
Pragmatic Software
1f45da7615
antiflood: do not do anti-flood if lag is two seconds or greater
2011-01-22 09:39:39 +00:00
Pragmatic Software
b11b660929
antiflood/pbot: added basic support for lag detection
2011-01-22 09:26:04 +00:00
Pragmatic Software
e3655749fd
Added Net::IRC as PBot::IRC in order to support PONG events and possible future customisation
2011-01-22 08:35:31 +00:00
Pragmatic Software
c1439c5b7a
quotegrabs: updated table
2011-01-22 08:32:22 +00:00
Pragmatic Software
d5ba966c53
antiflood: corrected check against double-banning chat floods
2011-01-22 04:42:38 +00:00
Pragmatic Software
d2640f8bcb
antiflood: remove generate_random_number; ping timeouts/excess floods no longer treated aggressively, now treated same as other quit/parts
2011-01-22 04:17:35 +00:00
Pragmatic Software
e943790827
Updated factoids; added compiler_client.pl module
2011-01-20 01:16:08 +00:00
Pragmatic Software
023dd4bd09
ideone compiler: added run command to interactive editor
2011-01-20 00:55:45 +00:00
Pragmatic Software
0d5bf85f46
Added empty unban_timeouts file
2011-01-20 00:30:59 +00:00
Pragmatic Software
3bea3949a5
cstd module: fix issue with formatting
2011-01-20 00:21:54 +00:00
Pragmatic Software
9523600366
horoscope module: List valid signs of Zodaic
2011-01-20 00:19:58 +00:00
Pragmatic Software
b405f8b88e
Quotegrabs: Lowercase nick when grabbing
2011-01-20 00:15:58 +00:00
Pragmatic Software
7eea052b36
Updated BotAdmins to use DualIndexHashObject
2010-08-15 08:25:35 +00:00
Pragmatic Software
0f47100dc9
Rate-limit now per-channel (sort of)
2010-08-14 09:45:58 +00:00
Pragmatic Software
dd8f0e1811
Adding gencstd.pl command used to generate HTML output from n1256.txt
2010-07-22 21:09:39 +00:00
Pragmatic Software
5b0aef5e31
Replaced ".*" with "the global channel" for factalias
2010-07-04 07:36:51 +00:00
Pragmatic Software
f53ebf7f88
factalias command adds to global if channel \!~ /^#
2010-07-04 07:26:43 +00:00
Pragmatic Software
96db60d0fa
encode_entities for factoid URLs in HTML export
2010-07-01 05:54:04 +00:00
Pragmatic Software
3c9c5065a3
Updating factoids
2010-07-01 01:44:02 +00:00
Pragmatic Software
28a5d47af1
Exported factoids now have clickable links
2010-07-01 01:43:49 +00:00
Pragmatic Software
affb2c66d5
Remove trailing comma or colon from end of keyword if other characters exist before it; allow sentence-like arguments again
2010-06-30 12:18:25 +00:00
Pragmatic Software
31e53f2aff
Allow question-marks in triggers if more than one is used; remove period from factoid names; return undef if factoid keyword is blank
2010-06-30 11:36:45 +00:00
Pragmatic Software
c6e48954c5
Levenshtein distance increased from 50% to 60%; Levenshtein searches all channels on unfound factoid
2010-06-30 10:59:50 +00:00
Pragmatic Software
def3b6eae7
Updating factoids
2010-06-30 05:42:50 +00:00
Pragmatic Software
83b43d97c3
Don't look for exact channel matter in Interpreter -- this way, commands like "\!what is the matter" will not attempt to create new factoids if they exist in global channel
2010-06-30 05:13:51 +00:00
Pragmatic Software
9fa3b865e9
Factoids now ignore arguments that do not look like a nick if the factoid doesn't take an argument -- fixes factoid triggers on sentences with bot's name; find_factoid searches global channel if $from is not a channel
2010-06-30 04:58:22 +00:00
Pragmatic Software
5f5cd6ec08
regex factoids now trigger properly
2010-06-30 03:48:13 +00:00
Pragmatic Software
1f82cbc285
Added extra semi-colon before return 0 to allow statements without semi-colons for lazy people; codepad.pl wasn't handling structs correctly because code and precode were backwards -- fixed
2010-06-30 01:21:46 +00:00
Pragmatic Software
a4cdb2204f
Replaced ".*" with "global" in set list keys
2010-06-29 07:39:56 +00:00
Pragmatic Software
322314d869
Replaced ".*" with "global" in set/unset; replaced "," with ";" as comma
2010-06-29 07:31:27 +00:00
Pragmatic Software
d7f2583aac
Prettier export headers; factrem output for not owner now includes channel
2010-06-29 07:14:26 +00:00
Pragmatic Software
380a2b322c
Factoid HTML export table now fits width appropriately
2010-06-29 06:50:49 +00:00
Pragmatic Software
43089e4599
Cleaned up extra factoid groups; made export factoids a little prettier; renamed "default channel" to "global channel" throughout
2010-06-29 06:12:52 +00:00
Pragmatic Software
b869321eb4
Adding factoid in /msg now adds factoid to default channel; replaced "all channels" with "default channel" throughout factoid command output
2010-06-29 05:48:46 +00:00
Pragmatic Software
7aa724569e
factfind now works; find aliases factfind for all channels
2010-06-29 04:33:27 +00:00
Pragmatic Software
58f19984bf
Display join flood history only if joinwatch >= max joins, to reduce log spam
2010-06-29 00:59:47 +00:00
Pragmatic Software
fe6d08178b
Anti-join flood bans for 2^5 hours for first offense instead of 2^7 hours (now uses 2^(4+number_of_offenses) hours as timeout)
2010-06-27 11:13:30 +00:00
Pragmatic Software
2d11d66b67
Replaced ago_exact with duration_exact in time comparison
2010-06-27 05:39:44 +00:00
Pragmatic Software
999d8ae4a8
Added Time::Duration to anti-flood join history
2010-06-27 05:36:58 +00:00
Pragmatic Software
521ae5c704
Anti-join flood bans for 2^5 hours for first offense instead of 2^7 hours (now uses 2^(4+number_of_offenses) hours as timeout)
2010-06-27 03:22:29 +00:00
Pragmatic Software
cb9fa000be
Updating modules
2010-06-27 02:52:38 +00:00
Pragmatic Software
6d3fc7f628
find_factoid now takes exact_trigger parameter; this fixes confusion with regex factoids
2010-06-27 02:52:06 +00:00
Pragmatic Software
6824a61fd1
Updating version
2010-06-23 06:59:59 +00:00
Pragmatic Software
150b842b60
Changed format of HashObject save-file to be more like DualIndexHashObject; removed need for index_key
2010-06-23 06:51:39 +00:00
Pragmatic Software
6c6fc503bb
!chanset output appears in channel instead of /msg
2010-06-23 02:22:08 +00:00
Pragmatic Software
e0a2fc25e8
factchange usage output appears in channge instead of /msg; aliased change to factchange
2010-06-23 02:18:26 +00:00
Pragmatic Software
48e1c8c455
add, info, show, remove, etc, renamed to factadd, factinfo, factshow, factrem, etc; fact* commands now all take a channel parameter
2010-06-23 02:15:13 +00:00
Pragmatic Software
4d023df17d
Added "ago" module
2010-06-23 01:23:38 +00:00
Pragmatic Software
a13d028e3e
Lower-case hostmask and arguments to !unbanme
2010-06-22 03:01:02 +00:00
Pragmatic Software
f4fbfec8f6
Removing Changes file
2010-06-21 16:40:48 +00:00
Pragmatic Software
818e09861c
Added rate_limit to factoids
2010-06-21 15:23:46 +00:00
Pragmatic Software
c150e2018c
Make usage output of some commands visible in channel instead of msg
2010-06-21 14:48:40 +00:00
Pragmatic Software
eabb249d79
!info and !show now require channel parameter
2010-06-21 14:41:39 +00:00
Pragmatic Software
65470a139b
Added !fact command to allow calling factoids belonging to another channel
2010-06-21 13:54:27 +00:00
Pragmatic Software
562d265261
Adding factoid in a channel now creates that factoid in that channel instead of .*; info command now shows what channel factoid belongs to
2010-06-21 13:28:54 +00:00
Pragmatic Software
645310de15
factset command output appears in channel now (to show-off); added pragma as admin
2010-06-21 11:44:39 +00:00
Pragmatic Software
38e7de9f41
Correct bug from refactoring AntiFlood.pm previously; no longer crashes on pruning message history
2010-06-21 11:04:07 +00:00
Pragmatic Software
f9ab0c7e77
Added Time::Duration::ago() to !info command
2010-06-21 10:44:15 +00:00
Pragmatic Software
94076628a6
!foo is bar now works again for adding factoids; factoid commands in /msg are set to use channel .*
2010-06-21 03:19:41 +00:00
Pragmatic Software
52a6c7d125
Slightly refactored anti-join flood logic, handles QUITs better now
2010-06-21 03:18:39 +00:00
Pragmatic Software
73b8f68dfd
Updating factoids with !test example in ##c, #pbot2 and any channel
2010-06-20 07:02:49 +00:00
Pragmatic Software
4be7fe3b34
Refactored Factoids to use DualIndexHashObject; added factset/factunset to set factoid meta-data; factoids now per-channel; slightly unfinished
2010-06-20 06:16:48 +00:00
Pragmatic Software
0bbd3a469c
Added DualIndexHashObject; supports primary and secondary key grouping
2010-06-20 06:15:10 +00:00
Pragmatic Software
f1e227b64d
Forward to ##stop_join_flood instead, since it has a candide-specific on-join msg and topic
2010-06-19 21:38:50 +00:00
Pragmatic Software
547087b81d
Corrected join flood to get correct time distance between join messages
2010-06-19 19:19:56 +00:00
Pragmatic Software
e6f9296010
Removed extra logging information
2010-06-19 17:38:14 +00:00
Pragmatic Software
0c56527da0
Removed extra logging information
2010-06-19 17:37:48 +00:00
Pragmatic Software
3aa0982baf
Removed extra logging information; limited "yourself" check to one word
2010-06-19 17:37:16 +00:00
Pragmatic Software
41bb89eba2
Remove captcha from unbanme command
2010-06-18 11:12:55 +00:00
Pragmatic Software
fe96faded8
unban_timeouts is now a HashObject -- consequently, unban timeouts now save to and load from data file
2010-06-18 10:46:23 +00:00
Pragmatic Software
e32850aae2
Remove old ChanServ ban method and rename all quiet-related terms to ban-related terms since quiet now does +b instead of +q
2010-06-18 07:03:16 +00:00
Pragmatic Software
e3b351946a
List keys and values when using set command without a key (but with an index)
2010-06-18 04:40:12 +00:00
Pragmatic Software
7c1bdecfcb
Added missing use feature switch pragma
2010-06-18 04:17:30 +00:00
Pragmatic Software
24ef3b90e9
Use wildcard banmasks instead of original hostmasks
2010-06-18 04:15:28 +00:00
Pragmatic Software
f29202c99c
Converted Channels.pm (and all modules using channels object) to use HashObject -- can now add/remove channels and set/unset channel meta-data as user commands
2010-06-18 03:21:36 +00:00
Pragmatic Software
e0c9c73acc
Created HashObject.pm to abstract common actions on hash-tables
2010-06-18 03:19:45 +00:00
Pragmatic Software
be6e2ae8ab
Significantly increase join flood ban timeout in order to reduce channel spam (made more feasible by !unbanme)
2010-06-18 00:49:50 +00:00
Pragmatic Software
af7d55da0d
Ban-forward join floods to ##fix_your_connection
2010-06-16 02:21:44 +00:00
Pragmatic Software
16b9bba71c
Added captcha and !unbanme command to allow unbanning from join flood
2010-06-16 01:55:29 +00:00
Pragmatic Software
50818a4b90
Don't infinitely try to /msg ChanServ to remove ops
2010-06-14 20:31:14 +00:00
Pragmatic Software
811e2e71d2
Ping timeout QUITs now properly added to each channel's message history
2010-06-12 07:48:01 +00:00
Pragmatic Software
f14924a619
Add missing message to message history for QUITs; skip joinwatch on non-channels; add max_messages and max_timeout to QUIT/PART in IRCHandlers
2010-06-12 05:50:38 +00:00
Pragmatic Software
6eeb2277f2
Remove useless if(x < 0) check when incrementing x
2010-06-12 04:44:49 +00:00
Pragmatic Software
40ed750a1f
Ping timeout quits now handled
2010-06-12 04:38:38 +00:00
Pragmatic Software
ef3d9770ca
Refactored AntiFlood account code -- much improved
2010-06-12 04:27:58 +00:00
Pragmatic Software
347bb86bac
Correct variable $ch to $channel
2010-06-12 01:52:11 +00:00
Pragmatic Software
a70d8a1fd5
Antiflood: deal with ping timeout quits aggressively
2010-06-12 01:49:49 +00:00
Pragmatic Software
4242eecf43
Correct joinwatch behavior for netsplits; remove joinwatch behavior for "Changing host"
2010-06-11 08:01:32 +00:00
Pragmatic Software
0ce7f52725
Correct joinwatch for new entries to message history
2010-06-11 04:26:20 +00:00
Pragmatic Software
da7eb0b111
Make join flood more robust
2010-06-11 04:03:36 +00:00
Pragmatic Software
b7cd3cfbfc
Improving handling of join flooding -- decrement join count for netsplits and host changes; increase ban duration based on offense count; etc
2010-06-10 20:26:09 +00:00
Pragmatic Software
363dd1fc29
Show anti-flood timestamp comparisons for join floods only (to reduce log traffic)
2010-06-10 19:20:12 +00:00
Pragmatic Software
a64d62b549
Updating factoids
2010-06-06 09:13:17 +00:00
Pragmatic Software
49bbf5c73e
Temporary hack to skip hostmask entry when iterating channels in message history, will fix soon
2010-06-06 07:22:23 +00:00
Pragmatic Software
8a5c7a99c2
Remove debugging print statements from AntiFlood.pm
2010-06-06 05:22:07 +00:00
Pragmatic Software
96be537c39
AntiFlood now detects based on *!user@host instead of nick
2010-06-06 05:19:31 +00:00
Pragmatic Software
96fd2d7c7a
Remove FLOOD_JOIN and FLOOD_CHAT from PBot.pm
2010-06-06 04:41:15 +00:00
Pragmatic Software
8c4d01d83a
Update version
2010-06-06 00:36:01 +00:00
Pragmatic Software
71847ddc63
Make anti-flood logs less spammy
2010-06-06 00:35:24 +00:00
Pragmatic Software
9b3a8f1284
Show offenses and join_watch count in list messages
2010-06-06 00:34:27 +00:00
Pragmatic Software
7bcfa52b25
Increase join flood detection to 4 joins within 30 minutes without a message; set join_watch -= 2 on join ban to allow two join attempts afterwards in order to give them a chance to rejoin
2010-06-05 17:45:41 +00:00
Pragmatic Software
4b342be290
Add join flood protection
2010-06-05 06:07:15 +00:00
Pragmatic Software
7df2346d01
Remove NewModule.pm skeleton file
2010-06-05 04:41:37 +00:00
Pragmatic Software
b1c2a12500
Move $VERSION out of PBot.pm and to its own VERSION.pm module
2010-06-05 04:34:14 +00:00
Pragmatic Software
4e4574d2b6
Setting PBot.pm $VERSION from build script instead
2010-06-05 00:30:03 +00:00
Pragmatic Software
4563ca7794
Finalizing SVN auto-props Id keyword for PBot.pm $VERSION
2010-06-04 23:18:50 +00:00
Pragmatic Software
e3680adbb4
Testing SVN auto-props Id keyword for PBot.pm $VERSION
2010-06-04 23:12:32 +00:00
Pragmatic Software
f9612331bc
propset svn:keywords on all PBot .pm modules
2010-06-04 23:01:44 +00:00
Pragmatic Software
d01b724427
Testing SVN auto-props for Id keyword
2010-06-04 22:55:03 +00:00
Pragmatic Software
a47cfc96e7
No longer updating Changes file, use SVN changelist at code.google.com
2010-06-04 09:37:53 +00:00
Pragmatic Software
bfbc663622
Resolve "use of uninitialized value in numeric gt" in IgnoreList.pm
2010-06-04 04:44:08 +00:00
Pragmatic Software
4d93519256
Remove #osdev from ignore case, fix warning numeric eq warning message
2010-05-30 02:22:38 +00:00
Pragmatic Software
baadde5e24
Fix typo in unquieting sub
2010-05-30 02:21:39 +00:00
Pragmatic Software
a58700ce51
Removing useless "You may speak again." privmsg on unquiet timeout
2010-05-30 02:08:21 +00:00
Pragmatic Software
7399f4ff91
Replaced mode +q with mode +b for quieting; replaced nick!*@* with *!*@host in anti-flood; quiet commands take mask instead of nick
2010-05-30 02:02:29 +00:00
Pragmatic Software
0b3aa9015b
Added missing newline to flood reset message
2010-05-28 05:20:06 +00:00
Pragmatic Software
4e53210445
Replace die with croak, and move Net::IRC::Connection::DESTROY redefinition to before any deaths
2010-05-27 09:29:17 +00:00
Pragmatic Software
ed5181cf0d
Redefine Net::IRC::Connection::DESTROY sub after forking to prevent disconnecting when child exits
2010-05-27 09:19:11 +00:00
Pragmatic Software
a255cf258d
chdir to modules directory before executing module
2010-05-26 22:34:34 +00:00
Pragmatic Software
45152f74b4
Updating FactoidModuleLauncher.pm to correct slash intrapolation (esp on newlines)
2010-05-25 05:47:13 +00:00
Pragmatic Software
220a2ec46b
Spaces-in-factoids not yet ready
2010-05-22 01:26:26 +00:00
Pragmatic Software
b1775048e0
Oops, adding missing $lr for if no match found the first time
2010-05-14 00:08:52 +00:00
Pragmatic Software
24740da78b
Properly handle single-quotes inside of single-quoted text
2010-05-13 23:28:38 +00:00
Pragmatic Software
33a32f29a3
Allow modulelauncher_subpattern factoid field to substitute IRC lines into shell commands via regex substitution
2010-05-13 22:12:04 +00:00
Pragmatic Software
c699ae26a8
Require "is" as separator to allow add factoids with spaces in trigger
2010-05-13 19:45:52 +00:00
Pragmatic Software
8ebe546850
New factoid loading/saving -- much more flexible!
2010-05-08 23:36:56 +00:00
Pragmatic Software
d16a013379
Remove printing of args
2010-05-04 05:59:14 +00:00
Pragmatic Software
1330bfcff5
Allow <foo> is <bar> to pass through to other interpeters if factoid already exists
2010-04-18 07:34:01 +00:00
Pragmatic Software
001cbc86e5
Replace newlines after posting truncation to codepad
2010-04-17 19:22:22 +00:00
Pragmatic Software
042366b55b
Overwhelm was too sensitive
2010-04-14 00:01:42 +00:00
Pragmatic Software
1131ab32df
Truncate long output to codepad.org
2010-04-13 04:17:54 +00:00
Pragmatic Software
e051ede6f0
List Levenshtein-based closest matches if factoid not found
2010-04-09 22:55:24 +00:00
Pragmatic Software
654291e8a5
Commented out "Checking ..." in check message history
2010-04-09 22:53:17 +00:00
Pragmatic Software
87ce882450
Added username/realname to config
2010-04-09 22:52:24 +00:00
Pragmatic Software
b261265726
Flood counter now per-channel
2010-04-06 19:15:42 +00:00
Pragmatic Software
116577aefb
Ignorelist now saves/loads; ignorelist timeout of -1 causes ignore to be permanent
2010-04-06 18:38:27 +00:00
Pragmatic Software
cffe7f6c4e
Improved display of timestamp in !info command
2010-04-05 13:30:33 +00:00
Pragmatic Software
73a12dc981
Allow unquiet from /msg
2010-04-03 19:49:41 +00:00
Pragmatic Software
0c54d9c93e
Send message on private ignore; parse adlib variables better
2010-04-02 18:23:31 +00:00
Pragmatic Software
0b78e4ed79
Regex factoids restored
2010-04-02 17:33:18 +00:00
Pragmatic Software
a901a8a4c8
Correct autologin issue
2010-03-30 06:34:08 +00:00
Pragmatic Software
cd73f1104e
Admins management improved. Admins now save and load, and can be added and removed.
2010-03-29 12:30:35 +00:00
Pragmatic Software
f5bfe2dfda
prune_message_history used old flood_watch instead of message_history -- fixed
2010-03-29 08:39:48 +00:00
Pragmatic Software
a5618c41a1
Added dict.org module and !dict command, allowed dashes in module launcher arguments
2010-03-28 11:19:54 +00:00
Pragmatic Software
21e4415289
Improved find command by adding optional -owner and -by search parameters
2010-03-26 08:58:25 +00:00
Pragmatic Software
a743261059
See Changes file
2010-03-26 05:14:03 +00:00
Pragmatic Software
d299a8fb0f
90% done in object-oriented conversion -- IgnoreList doesnt save/load/use regex yet.
2010-03-24 06:47:40 +00:00
Pragmatic Software
fa50724b58
Progressing on object-oriented conversion. Some functionality may be missing.
2010-03-23 18:24:02 +00:00
Pragmatic Software
313da0b587
Progressing on converting things to objects
2010-03-23 03:09:03 +00:00
Pragmatic Software
bd46c11120
Half-way through converting everything to objects. Committing mostly working copy as preview.
2010-03-22 07:33:44 +00:00
Pragmatic Software
f725743ccb
== MAJOR NEW BETA RELEASE ==
...
Converted single large "amalgamate" monolithic pbot2.pl script into multiple Perl packages/modules.
Tons of refactoring and clean-ups.
Consider this version to be beta. Use at your own risk.
2010-03-17 06:36:54 +00:00