diff --git a/ChangeLog b/ChangeLog index efb86c3ca..6ec9a5604 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,9769 +1,2022 @@ -9569eb2 (HEAD, upstream/testing, origin/testing, origin/HEAD, testing, changelog) Misc: Only write channel name, instead of prepending it with “channel”. -00e4c64 Merge pull request #692 from Mkaysi/patch-1 -a430e3b Misc: Internationalize two strings. -0978bdb Merge pull request #695 from Mkaysi/patch-3 -c66072f Misc: Improve code in previous merge. -391c645 Merge pull request #697 from sckasturi/patch-2 -b3bf19f Add invalid command was called in. -85a943c (origin/patch-3) src/conf.py: fix gender-neutral pronouns. -e091809 (origin/patch-1) CONTRIBUTING.md: bold the testing branch. -c799bb2 Merge pull request #688 from Mkaysi/user.identify -07f3392 (upstream/master) Merge pull request #690 from Mkaysi/patch-1 -a769b4f (origin/user.identify) User: update messages.pot & l10n-fi. -c810a52 User: fix #687 -f486bdb fix previous commit -4d81a55 Channel: fix test.py . -0f89e12 src/conf.py: set default banmask to host. -14786ff Merge pull request #685 from sckasturi/patch-1 -899d23e for 1 line code blocks you only need `, not ``` -977eb31 Merge pull request #682 from monodemono/testing -cfa9ff4 Merge pull request #683 from Mkaysi/patch-1 -46dab48 .mailmap: map @ShadowNinja correctly. -996dd7b Fixed a small oversight. -c7b842f Updated to reflect changes to default separator. -4be7f6d Removed extra spaces & pipe from default separator -6314594 Merge pull request #678 from Mkaysi/patch-1 -3e9ccf2 src/conf.py: Plugin isn't important plugin -7b7b93e Later & Topic: Fix tests to work with latest configuration changes. -80bb634 Fix previous commit. -06b929c Revert "Update .travis.yml" -57429f9 Merge pull request #671 from nyuszika7h/patch/sasl-improvements -100ff64 src/irclib.py: Further improvements to SASL and a few other minor things -52f6898 README: Remove unbreakable space. (GH-670) -943085b Merge pull request #663 from Mkaysi/patch-1 -7729810 Merge pull request #669 from nyuszika7h/patch/sasl-wait-auth -414249c src/irclib.py: Delay sending SASL authstring until given green light -bf536d5 Topic: fix default format -0af3bb9 Merge pull request #660 from Mkaysi/patch-1 -41713c3 Merge pull request #662 from Mkaysi/install -d1964c2 Replace INSTALL symlink with .gitignore entry. -943c740 INSTALL.md: Fix Debian/Ubuntu link. -d5d3171 Merge pull request #656 from Mkaysi/patch-3 -25de332 Merge pull request #655 from Mkaysi/patch-2 -635511f fix previous commit -87f39fa Merge pull request #658 from Mkaysi/patch-4 -497df2c Merge pull request #657 from Mkaysi/links -21f75b8 Merge pull request #652 from Mkaysi/patch-1 -07e709f Merge pull request #659 from Mkaysi/install -8ef5adb fix previous commit -6e5f18c Update INSTALL & .mailmap -fb26c77 (origin/patch-4) src/test.py: fix typo -d986b9c (origin/links) setup.py & scripts: add limnoria* symlinks -44c579c src/conf.py: fix #653 -404fcba Later: make default settings more sane -4d7bc4f README.md: Limnoria is also tested with Python 3.4 -4f0c879 Fix links to the docs. -66d0a7a Network: Fix @whois to work with multiple 319 messages per whois. -5312136 Merge pull request #651 from Mkaysi/travis -3c86fca Merge pull request #648 from Mkaysi/readme-aka -3d2290f .travis.yml: disable email spam. -e8e16e6 .travis.yml: disable email spam. -f870527 Aka: use better quotes for lastfm in README.md. -700d2c7 Aka: update README. Fixes #639 for those who read READMEs. -ff70794 Merge pull request #645 from Mkaysi/requirements.txt -5bec7e4 requirements.txt: add SocksiPy-branch. -1aa8825 Merge pull request #643 from Mkaysi/travis -7d446df .travis.yml: make pip install line a little more clean. -fca6bf8 Merge pull request #641 from nyuszika7h/patch/supybot-wizard-fixes -de41d6f Merge pull request #637 from GLolol/spellit-no-space -7b1965f supybot-wizard: Clarify help text from previous commit -b563686 supybot-wizard: Default to port 6697 for SSL -5a13988 supybot-wizard: Use chat. instead of irc.freenode.net -fc8493a supybot-wizard: Ask SSL after port and don't say it needs Twisted -0888104 Filter: Make @uniud linear instead of quadratic. -b78319b Filter: remove leading space from !spellit output -d6740bf Remove duplicated INSTALL file. -62b23cc Merge pull request #635 from Mkaysi/patch-1 -79fadf5 Update .travis.yml -732b2da Update .travis.yml -5252f92 Relay: Set noticeNonPrivmsgs to False by default. -ec3e64c Merge pull request #634 from Mkaysi/travis2 -e863744 check_trans.py: make error messages red. Closes GH-632 -b26c4d6 Merge pull request #628 from Mkaysi/relay -1754dbd .travis.yml: run sandbox/check_trans.py -940b36f Relay: fix l10n-fi. -d01ab99 Relay: update *.po -19a8bf5 Relay: fix typo (parts --> part). -4505060 README.txt: add note about joining manually on relayed networks. -e1a1a31 Relay: fix gender neutral pronoun & update messages.pot -44d74db Relay: make default config better. -bbf8587 Merge pull request #623 from Mkaysi/channel -623c813 fix previous commit -7859658 Channel: reply with Success to channel.alert. Fixes #544 . -94386a2 Merge pull request #619 from Mkaysi/shrinkurl -ae7b6ae Merge pull request #620 from Mkaysi/debian -adc1b94 Merge pull request #622 from ncoevoet/master -f9afcff Fixes ProgVal/Limnoria#611 -d6336fe debian/control: Replaces supybot -5b3443e ShrinkUrl: use x0 by default. Fixes #617. -0e5694e Filter: Prevent infinite loop in @binary on characters encoded on more than one byte. -9d084e2 Allow network-specific username and ident. Closes GH-589. -90f0e08 Merge pull request #615 from Mkaysi/aka -09613ed Aka: fix README.txt (alias add --> aka add). -96a6c4d Merge pull request #614 from Mkaysi/l10n-fi -e8b6097 Topic: fix header in locales/fi.po -c8445b8 Topic: fix l10n-fi. -e6c66f5 Config: update l10n-fi. -d1c24d8 supybot-wizard: Fix pronouns. Closes GH-609. -39b30d5 Merge pull request #608 from GLolol/topic-use-halfop+ -aff9713 Topic: I have no clue what i'm doing essentially (fix i18n) -07b836f Topic: update error messages too Thanks, Google Translate! -cffc6aa Merge pull request #607 from Mkaysi/karma -ef607f6 Topic: remove comment i made during testing -b39412b Topic: require Halfop+ instead of op -409975d Karma: make allowUnaddressedKarma True by default & update README. -41ae294 debian/control: add python-gnupg and python-sqlalchemy to the list of suggested dependencies. -6bdb06c Merge pull request #605 from Mkaysi/protector -d020c67 Merge pull request #604 from Mkaysi/automode -54a2cbd Protector: disable by default. -e854a0d AutoMode: use more sane defaults. -4b61da1 Merge pull request #603 from Ditti4/patch-1 -37ac14e fix ProgVal/Limnoria#522 -e7169e9 Unix: Fix @wtf. -6248d3a Merge pull request #602 from Mkaysi/install -df65152 fix previous commit -bb05114 fix 0dae4d7d393510081c928f6c9dc3d08de7084396 -01dce52 Merge pull request #601 from Mkaysi/install -0dae4d7 INSTALL.md: make setting PATH as simple as possible. -4cc780d Merge pull request #600 from Mkaysi/requirements -33870b9 INSTALL.md: mention pip install -r requirements.txt -63901e0 INSTALL.md & requirements.txt: remove Twisted. -6cbfb0d INSTALL.md & requirements.txt: remove pysqlite. -2efdf38 requirements.txt: add sqlalchemy & feedparser -1835475 requirements.txt: list requirements for pip -e544321 Merge pull request #598 from Mkaysi/install -bd5cffa INSTALL: replace with link to INSTALL.md -ec0d6ea Merge pull request #591 from Mkaysi/travis -67fd05e Merge pull request #597 from Mkaysi/unix.wtf -030c77f Unix: allow wtf to tell that it doesn't know something. Fixes ProgVal/Limnoria#256 . -9210aa1 utils.web.getUrl: add the 'timeout' argument (and fix the doc of getUrlFd). -34fd545 Merge pull request #593 from Mkaysi/mailmap -9f31465 .mailmap: map duplicates that I noticed in git shortlog. -3d175fe Merge pull request #592 from Mkaysi/mailmap -51ee2cf .mailmap: fix Mikaela's name and email addresses. -5461785 cdb: Remove debug output. -28536f0 Fix utils.gen.safeEval to work with instances of ast.NameConstant (introduced in Pythn 3.4). -65aed8f Fix previous commit. -cab4cb5 Copy the reply_env when copying an IrcMsg object. -30cc480 Add 'reply_env' attribute to IrcMsg. -6de65bc .travis.yml: add Python 3.4 [DO NOT MERGE UNTIL TRAVIS SUPPORTS IT!]. -8dbc4da Revert ".travis.yml: add Python 3.4." -76dfe28 Merge pull request #590 from Mkaysi/travis -d84f6b4 .travis.yml: add Python 3.4. -90a1208 httpserver: Fix crash if supybot.servers.http.favicon has not been set. -cdb14ec Fix one occurence missing from previous commit. -5f306a8 Fix neutral pronouns. -6e3a690 Merge pull request #587 from Mkaysi/readme-contributing -e9e4bf3 Merge pull request #586 from nyuszika7h/update-sasl -431e76c README.md: Sanify topis & fix IRC links. -4eb0bcf CONTRIBUTING.md: use proper language && fix links. -822e644 irclib: Add support for additional SASL numerics -6be8204 irclib: Remove some useless SASL debug messages -14e51f6 irclib: Make SASL messages easier to understand -4664d5c Merge branch 'testing' of git://github.com/ProgVal/Limnoria into testing -7d9845c ChannelLogger: Fix KeyError on some quits. (Why?) -b8f31a3 Web: disable threading in commands. (They are run in separated processes anyway…) -da00327 Seen: Fix tests. -f569af6 remove generated src/version.py. -d89e4b5 Fix previous merge. -8885a81 Merge remote-tracking branch 'supybot/master' into merge-supybot -5bbdb39 Merge pull request #583 from slackhead/testing -c17c21b Merge branch 'testing' of github.com:slackhead/Limnoria into testing -e5825a4 RSS 'initialAnnounceHeadlines' variable changed to Integer. -3f77092 Merge pull request #582 from IotaSpencer/testing -3bb183c Add my own repo (IotaSpencer -de1c01f Fix previous commit for config variables that are not channel-specific. -36568aa Config: Also tell about current channel value in @help if it is different from the global one. Closes GH-581. -4d9a8a1 httpserver: Open icon in binary mode. -048c1e7 httpserver: Fix favicon handling. -33262e1 Merge pull request #579 from skgsergio/fix_log_python3.4 -ad3deb7 Fix AttributeError exception in log.py with python3.4 -86c5b71 Merge branch 'testing' of git://github.com/ProgVal/Limnoria into testing -0f3a159 Merge pull request #576 from Mkaysi/user-l10n-fi -7a2e2fa User: update messages.pot & l10n-fi. -edbde22 User: Fix authentication canceling after hostname/nick change. -f3e4f09 User: Fix checking of GPG availabiliy and add @gpg list command. -121cc17 MessageParser: Fix crash if not all matches are used in the replacement. -6439699 Merge pull request #575 from Mkaysi/l10n-fi -d1bec89 Merge branch 'testing' of github.com:ProgVal/Limnoria into l10n-fi -3a2b01d PluginDownloader: update l10n-fi. -6394af2 Merge pull request #574 from Mkaysi/l10n-fi -ff6f77b Merge pull request #574 from Mkaysi/l10n-fi -c1b0624 PluginDownloader: Fix typo. -9eec5c0 Ctcp: update l10n-fi. -17ff01c Google: update l10n-fi. -04d06e0 Karma: update l10n-fi. -7927433 Network: update l10n-fi. -a0fff2a RSS: update l10n-fi. -736f1e5 AutoMode: update l10n-fi. -1ae2769 Channel: update l10n-fi. -c620611 Seen: update l10n-fi. -efac8ab Conditional: update l10n-fi. -47ecc23 PluginDownloader: update l10n-fi. -e3d767d Factoids: update l10n-fi. -bf2640d User: update l10n-fi. -72d3ca0 Merge user.hostmask.remove fix from ProgVal/Limnoria. -852018c Format: fix l10n-fi. -9b9b2c0 Later: update l10n-fi. -3b8ee96 Utilities: update l10n-fi. -9237162 MoobotFactoids: update l10n-fi. -b80234d Alias: update l10n-fi. -8d76872 User: Fix doc of @hostmask remove. -66151c7 User: update l10n-fi. -cfce9ee Misc: update l10n-fi. -da6a0bc ChannelStats: update l10n-fi. -8377029 Time: update l10n-fi. -8c34352 String: update l10n-fi. -830fa84 Status: update l10n-fi. -ace3b91 MessageParser: update l10n-fi. -8d85d01 Merge branch 'testing' of github.com:ProgVal/Limnoria into l10n-fi -0742e94 Math: update l10n-fi. -0c2ab9d RSS: Another attempt at fixing encoding issues (again). -ecadc05 travis.yml: Remove IRC notifications. -06c83cb RSS: Fix typo (again). -04cf2ca RSS: Fix typo. -933d4d3 RSS: Another attempt at fixing encoding issues. -cdf9710 Merge pull request #573 from Mkaysi/l10n-fi -26d3a50 Aka: fix first comment in l10n-fi. -18f8ce6 Config: update l10n-fi. -3fc64ab Web: update l10n-fi. -cefc20c Topic: update l10n-fi. -ff75622 Ctcp: update l10n-fi. -3dc7316 Admin: update l10n-fi. -93f4701 NickAuth: update l10n-fi. -aa59a98 Aka: add l10n-fi. -0d62257 update messages.pot files && Unix: update l10n-fi. -41921b6 fix previous commit -f88e8e2 My name is Mikaela! -0da8ab7 Fix doc (again). -5f8e45a Fix doc of NestedCommandsIrcProxy.reply. -bfb305e Utilities: Use number comparison for integers and floats in @sort. -bfa45a6 Utilities: Add @sort. -65a7935 Merge pull request #570 from nyuszika7h/patch/ctcp-malformed-req -9186162 Ctcp: Fix regex for PING -251f2d7 Revert "Ctcp: Fix regex for PING" -a27f62a Ctcp: Fix regex for PING -8a3ea3d Ctcp: Don't reply to malformed CTCP requests -ccc2de5 Merge pull request #568 from nyuszika7h/plugindl-update-repo-url -3b07c3d PluginDownloader: Update URL of my repo -a28560c Merge pull request #567 from nyuszika7h/plugin-remove-list -a9b3671 Remove test case for !plugin list -1a7e584 Plugin: Remove duplicate !list command -8b82655 Debug: Fix Python 3 compatibility. Closes GH-565. -c6cb4fa i18n: Prevent untranslated strings from having empty translations -f191e21 Channel: Add command @ban hostmask. -77e6de6 Fix errors detected by PyLint. -8a5c475 Fix links in INSTALL.md. -b9e4f80 Add optional dependencies introduced in Limnoria in INSTALL.md. -2601f33 src/conf.py: Remove unicode characters from the source code. -4f7caa7 Misc: Update @version to match the new version format. -c84a7ac Change version format to comply with PEP440. -6520dba Merge pull request #562 from nyuszika7h/unix-patches -b4ad8c2 Remove invisible character in src/test.py. -fb8d929 Clarify help text for !shell -dcb25db Add support for SRV records in domain name resolution. -108b0de Add support of IP-binding in non-IRC connections. -0fc2675 Fix typo in the README. -3d7e0d2 Update README.md -59ae6f9 ircdb: Honor ignoreDefaultAllow for unknown users too. -322023c Unix: Add @shell command -bc4cfb9 Unix: Fix FD leaks and Windows compatibility -a3c79d6 Merge pull request #558 from nyuszika7h/issue-170 -4d5889e ChannelStats: Remove useless space. -f926b8e Merge pull request #554 from nyuszika7h/debian-gitignore -373fe30 Add .pyd to gitignore [skip ci] -0f8523f Add nano.save to gitignore -649f4bc Less aggressive ignoring of vim swap files -7442ba3 Add some Debian files to .gitignore -8fd834b Fix precedence of commands by removing Utilities from the list of important plugins. -d1aa361 Add Utilities as a default plugin. -d498f0d Merge pull request #553 from Mkaysi/install3 -98482f0 INSTALL.md: 2 to 3 or vice versa, remove executable Supybot* first. Thanks nyuszika7h :) -361b365 INSTALL.md: add instructions for using Python 3. -be50e59 Update README with better description and updated links to the doc. -427033d ChannelLogger: Fix Python 2 compatibility (again). -0c58ab2 ChannelLogger: Fix Python 2 compatibility (again). -9807648 ChannelLogger: Fix Python 2 compatibility. -066c6d8 Merge pull request #548 from GLolol/no-such-plugin -b8ada98 Fix incorrect error on loading nonexistent plugin -b8fa701 Fix coding style and remove unneeded command -974dc00 Fix cmdall / Add the wrap() -051b0e8 Add command to do specific command on all networks -2994423 ChannelLogger: Fix Python 2 compatibility. -38405e8 Seen: Allow wildcards for @seen. -5d301b6 Merge remote-tracking branch 'origin/speed-up-2to3' into testing -552d814 Remove useless class. -c52b454 Aka: Use automatic incrementation when adding an alias. -18708a2 Aka: Add SQLite3 backend. -4fe74ed (upstream/speed-up-2to3) Merge branch 'aka-sqlite3' into speed-up-2to3 -fb0ef31 PluginDownloader: Add GLolol's repository. -0d4784c Fix compatibility with Python 2.6 (does not support the set syntax). -aea86d4 Fix previous commit. -c872cd7 Fix compatibility with Pypy (does not support __closure__ attribute for functions). -a7f750d Fix compatibility with Python 2.6 (does not support the set syntax). -eaed281 Fix compatibility with Python 2.6 (does not support the set syntax). -b026cfd Misc: Add tests for “list --unloaded” and command flood. -74a36c8 Misc: Fix count of invalid commands introduced in c91916ae. Closes GH-439. -40e6f78 Misc: Remove dead code. -5899a2c Core: Update l10n-fr. -7636039 Fix compatibility of check_trans.py with Python 3. -8aa7e78 ChannelStats & Conditional & Format & Karma & Web: Update l10n-fr. -b3b077c ChannelStats: Fix typo. -f6aa48f Admin & Alias & Later & String: Update l10n-fr. -d4f9187 Remove a message.pot that should not have been there. -121991e Fix case of i18n.InternationalizedFunction. -9b365d1 Fix case of i18n.InternationalizedString. -f3e292d Fix memory leak in i18n by using weak references to plugin classes and methods. -fe57cdb ChannelStats & MessageParser & PluginDownloader & RSS & User: Update l10n-fr. -9f96f4f Remove debug output in check_trans.py. -99a7343 AutoMode & Factoids & Google & Math & Network & Seen & Status & Topic: Update l10n-fr. -489ec1b i18n: Move the pot files parsing to a separate function. -01c34d8 Improve the check_trans script by using Supybot's .po(t) parser. -736c615 Time: Update l10n-fr. -a3dbece All plugins: Update .pot files and rename Supybot-fr to Limnora in French translation files. -6a8b788 Remove unnecessary call to i18n.reloadLocalesIfRequired. -3e35113 Fix internationalization of docstrings of wrap()ed commands. -e1f9d68 Switch comments of callbacks.PluginRegexp's attributes to docstrings (for Sphinx). -a5e06e1 Update documentation of ircdb.checkCapability (used in the Sphinx doc). -d25a3c0 (upstream/aka-sqlite3) Remove useless class. -e4ce735 Aka: Use automatic incrementation when adding an alias. -5aa0c8c Aka: Add SQLite3 backend. -1c617ea ChannelStats & Conditional & Format & Karma & Web: Update l10n-fr. -a0ca345 ChannelStats: Fix typo. -ed919ba Admin & Alias & Later & String: Update l10n-fr. -16dc9ea Remove a message.pot that should not have been there. -8d1201a Fix case of i18n.InternationalizedFunction. -5c08281 Fix case of i18n.InternationalizedString. -974a64d Fix memory leak in i18n by using weak references to plugin classes and methods. -5cfa782 ChannelStats & MessageParser & PluginDownloader & RSS & User: Update l10n-fr. -3af8b4d Remove debug output in check_trans.py. -80aa419 Add file minisix.py (forgot to add it in previous commits). -ca6ee1f AutoMode & Factoids & Google & Math & Network & Seen & Status & Topic: Update l10n-fr. -1874440 i18n: Move the pot files parsing to a separate function. -3c695c4 Improve the check_trans script by using Supybot's .po(t) parser. -12e652f Time: Update l10n-fr. -8b06bd5 All plugins: Update .pot files and rename Supybot-fr to Limnora in French translation files. -35c7b52 Remove unnecessary call to i18n.reloadLocalesIfRequired. -3af1e3f Fix internationalization of docstrings of wrap()ed commands. -f27484d Switch comments of callbacks.PluginRegexp's attributes to docstrings (for Sphinx). -06fdaa7 Continue accelerating the 2to3 step (remove fix_map). -1fbdedc Continue accelerating the 2to3 step (remove fix_funcattrs, fix_itertools, and fix_itertools_imports). -35a62b4 Continue accelerating the 2to3 step (remove fix_ws_comma, fix_xreadlines, and fix_zip). -ca419f6 Continue accelerating the 2to3 step (remove fix_reduce, fix_renames, fix_repr, fix_set_literal, fix_standarderror, fix_sys_exc, fix_throw, and fix_tuple_params). -bb7db3a Continue accelerating the 2to3 step (remove fix_except). -2fda69b Continue accelerating the 2to3 step (remove fix_raise). -c1c23f6 Continue accelerating the 2to3 step (remove fix_print). -529b8f8 Continue accelerating the 2to3 step (remove fix_nonzero, fix_operator, and fix_paren). -d1649a4 Continue accelerating the 2to3 step (remove fix_idioms, fix_imports2, fix_input, fix_intern, fix_isinstance, fix_ne, fix_next, and fix_raw_input). -4652c9c Start accelerating the 2to3 step (remove fix_apply, fix_buffer, fix_callable, fix_exec, fix_execfile, fix_exitfunc, fix_filter, fix_funcattrs, fix_future, fix_getcwdu, and fix_has_key). -a277ace Set list of fixers explicitely. -566e841 Update documentation of ircdb.checkCapability (used in the Sphinx doc). -5e894b5 User: Fix previous commit. -b7bfd64 User: Fix GPG auth on Python 3. Closes GH-541. Closes GH-542. -1f2d51d Merge pull request #540 from esplinr/master -5ecb154 Ensure log files are UTF-8 encoded -ba0ba71 Eliminate unnecessary closing of the log file. -5341df0 Google: *copy* the utils.web.defaultHeaders before adding items to it. -8e023ed Merge pull request #539 from nyuszika7h/testing -c3dcc4f Do the previous commit in a more clean way -a55f40d Merge pull request #538 from nyuszika7h/fix/later-tell-prefixnick -6dd179f Later: Always prefix nick if telling in channel -39d8740 .travis.yml: Disable 'the build passed' message. -b31ce87 Add classifiers to setup.py (Python 3.x and natural languages). -26dbe5c Merge branch 'master' into testing -caba0d3 Merge pull request #536 from ddan39/addshortopts -54196be add short options to getopts. single letter options will work with both - or -- -5694f24 Merge pull request #535 from bnrubin/master -949c093 Correct the URL reported by Misc.source -1093cfb log: Add support for Logging's 'extra' keyword argument -b44a08d Fix previous merge (again). -4a9d3cc Fix previous merge. -492a5ac Merge pull request #534 from nyuszika7h/fix/fd-leak -0934f10 Merge branch 'testing' into fix/fd-leak -0e480b4 Fix file descriptor leaks -38d78a4 httpserver: add method 'doHook' to callbacks. -9457f4d Misc: Add command @noticetell to replace “@notice [tell ]” which is no longer possible since f0233c37. -43e1b55 Misc: Fix @version on Python 2. -9ff1483 Time: Make argument to @at optional. (Replacement for GH-533 that does not need nesting.) -df375e0 AutoMode: Fix alternative capabilities handling. -233571e Add arguments ignoreChannelOp and ignoreDefaultAllow to ircdb.checkCapability. -f1c1305 Revert "AutoMode: Disable overriding rights of auto* capabilities." -0ecdb87 Fix crash in sending queued messages if SocketDriver.irc is None. -eee8e4e Update link in the README. -032e9a2 Merge pull request #531 from nyuszika7h/fix-1 -89fb4fb Fix stack frames display for objects without __dict__ attribute. -b5a9aee Web: Fix exception on timeout -47409b1 NickAuth: Fix argument order in @remove. Closes GH-530. -162b9ef Aka: Add length limit of command names in order to limit the number of database queries. -83e1d1b Fix previous commit. -764c788 Revert "Aka: Allow optional arguments and $* together, and also multiple instances of $*." -4a20270 AutoMode: Disable overriding rights of auto* capabilities. -19066b6 AutoMode: Add 'auto*' capabilities to override the configuration values (which apply to capabilities also used elsewhere). -3c7f9d0 supybot-plugin-create: Only catch ImportError for the i18n fallback. -84cad71 Fix inspection of the stack if the 'self' object has no __dict__. -ee4690e Math: Skip tests of negative integers exponentiation on Python 2. -3cc52ae Math: Fix handling of negative integers in @calc. -01278dc Aka: Fix 'factorial-complexity' recursion and command overriding. -c774013 Socket: Only call self.irc.feedMsg if self.irc is not None (ie. a reconnect is not in progress). -f894983 Add inspection of self.* in debug locals dump. -56570b3 Aka: Make sure the length of the 'args' list is always strictly decreasing when making a recursive call. -583b1ba Socket: Fix commit 4c24f30. -4ad9e83 Alias & Factoids & Plugin: Fix typos. -be2ad1f Google: Fix @calc. -e99ad36 Aka: Fix commit ddbadcafff (again). -feebaca Aka: Fix commit ddbadcafff. -9a83b74 Socket: Only display the missing cert file warning if a cert file path is given. -ddbadca Alias & Aka: Add memory and nesting limits. Closes GH-525. -4c24f30 Socket: Check if certertificate file exists before using it. -13d2746 ChannelStats & Conditionnal & Format & Karma & Limiter & MessageParser & Misc & Network & PluginDownloader & Seen & ShrinkUrl & Status & String & Time & Topic & User & Web: Update messages.pot. -b882b44 PluginDownloader: If bot is running on Python 3, run 2to3 on installed plugins if they are detected as being designed for Python 2. -b673cdb Merge branch 'testing' of github.com:ProgVal/Limnoria into testing -aea77d6 callbacks.py: Pass a reference to the plugin to pre-command callbacks. -42b8a06 utils/web.py: Attempt to fix handling of RSS feeds using broken entity references. -ff5d83e ircutils: Add 'I' to _plusRequireArguments and _minusRequireArguments. -c2e4a35 Install python-dateutil on Travis. -b8abbd1 Make dependency on python-dateutil optionnal. -a0c5e06 PluginDownloader: Add skgsergio's repository. -289f614 Web: Make choice of displayed domain (origin/target) configurable. -11d8f46 Web: Display the target domain in snarfer. Re-implements pull request GH-523. -bdec243 ChannelStats: Fix error when using @channelstats on a channel the bot did not join. -6c9b03f PluginDownloader: Fix traceback printing. -fed2bcf PluginDownloader: Display plugin description on one line. -e65a722 Add certfp support. Closes GH-468. -2b12a33 Tell the users to use the list command if they use the help command without any arguments. Closes GH-516. -25dc7e0 Fix precedence of shorter Aka commands in Aka. -3883b3d Fix infinite recursion in Aka when calling a command in Aka which has a prefix that is another Aka command. -9d2c43d Socket: Trigger reconnect if socket file number has been set to -1. -c40c2c1 Added SQLAlchemy in INSTALL.md. -0876bb3 Fix import of supybot.gpg if gnupg is not available. -cc9f1f0 Misc: Fix output of @version. -e6bda56 Add python-gnupg as a dependency on Travis. -3f150e1 gpg: Disable use of incompatible library 'gnupg'. -5846059 Merge branch 'testing' of github.com:ProgVal/Limnoria into testing -15872a2 supybot-test: Display a full traceback when there is an error while importing a plugin. -4aa34ba Fix detection of Limnoria version from Git when running the setup with Python 3. -b6ea53b Add Python version to 'supybot --version' and @version. -a67b31c Aka: Fix typo (Error, not error). -4d677db Seen: Fix any to work with wildcards when protocols.irc.strictRfc is true -cfe71c4 Add a .mailmap to coerce my old name to my new -bf48d52 Use generic setuptools instead of requiring distribute -56a6799 commands: Consolidate state.channel checks into getChannel -677f7fd irclib: Prevent crash if 324 or 329 is not received after any other post-join messages. -359d3c6 registry: Make subvalues inherit privacy. Closes GH-519. -16b95bb Merge pull request #515 from nyuszika7h/cleanup-gitignore -f0a9db6 Merge pull request #514 from Hoaas/testing -f760d54 I forgot this one... -f0050b9 Fix previous commit -46f5cd9 Clean up .gitignore -599f80e Google: Filter out [, before attempting to interpret Googles response as json. -657b76d Fix merge. -990b911 Merge remote-tracking branch 'supybot/master' into testing -6361b1e ircdb: Deduplicate hostmasks in IrcUser.addAuth -83a2895 Format: Add command @stripformatting. -4e2962b Fix error when writing hostmask-collision error message. -26d7fd7 Seen: Fix docstring of @since. -0a43901 setup.py: Fix 0fb2ee1bf74 for Git version. -dfafee3 Misc: Adapt GitHub's version format to the new one (introduced in 0fb2ee1bf74). -0fb2ee1 setup.py: Change format of the version number (illegal in rpm and buggy in deb packages). -4bc549c Prevent exception when replying with a genericNoCapability error -cf97522 Factoids: Fix help of @random. -01a6ed6 Fix use of rsplit for IPv6 addresses. -0cb22ce Fix previous commit. -8f8e208 Revert jamessan's switch to setuptools. -81ce986 Alias: Allow interrogation mark. -d78ae3d Aka: Fix encoding issue with Python 2. -d26a1a5 Aka: Fix typo. -fba38a5 Aka: Prevent overriding of other plugins commands. -10d9c43 Merge remote-tracking branch 'supybot/master' into testing -0283bb7 ShrinkUrl: Fix the check for ur1ca results. -3099c1a setup.py: Install optional dependencies. -40675ff Merge remote-tracking branch 'supybot/master' into testing -ea7f1f8 Socket: Match the expected API of reconnect -a483fef RSS: Ensure results is declared before trying to access it -e7d0bfd commands: Handle OverflowError in _int -58e7e61 Only reset the cached feed when the response actually contains headlines -333067c Provide a default help message for commands without help. -e421722 Fix crash if a custom error message is provided to somethingWithoutSpaces -c73ead8 supybot-botchk: Directly execute supybot instead of running it in sh -960e1da commands.py: Fix error message of getSomethingWithoutSpaces. -5b329df Socket: Try all resolved addresses before scheduling a reconnect -88e4f73 getSocket: Use returned family to create the socket -f32f36f Alias: Also allow exclamation marks, as they are allowed by the registry. -ccafbf4 Aka: Speed up commands listing by statically listing builtin commands instead of invoking parent's listCommands(). -d2762d9 Aka: Add explicit error message if sqlalchemy is not installed. -790bda4 Web: Fix nesting of commands (bug introduced in d8a4ef84214). -d14f5df ChannelLogger: Rewrite relayed nicks. Closes GH-507. -1724d68 Conditional: Fix handling of exceptions. -43f1e5c Topic: Fix previous commit. -410472c Topic: Change behavior of supybot.plugins.Topic.alwaysSetOnJoin to only apply if the actual topic differs from the default. -b57be07 Topic: Add supybot.plugins.Topic.alwaysSetOnJoin. -e3acc03 Another fix for b46a0dd6a2. -f3ecc33 Fix commit b46a0dd (breaks tests for Alias and Aka). -dfdc7f1 Merge pull request #506 from kytvi2p/unicode2.x -b46a0dd Unicode fixes for python 2.x -e1d0ab2 Aka: Fix support for non-ascii commands name with Python 2 (bug introduced in 64300b8a02). -dd37f8d Socket: Forward DNS queries via the socks proxy (if any). -921ff2a Aka: Fix case-sensitivity. -e120ab7 User: Add custom error message for @gpg add arguments. -cee144d Merge pull request #504 from kytvi2p/issue502 -56c80e6 RSS: fix initialAnnounceHeadlines not being obeyed -b375e7d commands.py: Fix crash if a custom error message is provided to somethingWithoutSpaces (bug introduced in 29dc1438a0). -a2f115e Alias: Prevent @add from allowing invalid names. -73f63c2 Aka: Fix import of locked alias. -18cc1ff Revert "Web: Disable @title and @doctype for non-HTML documents." (incompatible with Python 2) -8d7b06e utils.str.format: Replace %u with '' instead of '<>' if URL is empty. -3a5c4c3 Add class attribute callbacks.Commands.pre_command_callbacks. -ebde072 Add explicit/helpful error message about how to solve the multiprocessing 'Permission denied' issue. -36f5403 travis.yml: Add IRC notifications. -13bf8c2 Aka: Fix crash when logging (on Python 2). -e5bac7e Aka: Fix previous commit. -50e3f2a Aka: Use %q converter instead of %r for logging (escapes % in expression). -4e9bb2c Later: Use builtin support for '%s ago'. -1e050d7 utils/str.py: Use already existing function utils.gen.timeElapsed instead of redundant one. -8b4b45e utils/str.py: Add the %T (Time delta) argument type. -d6223ee Aka: Remove side effects in everythingReplace and fix crash when evaluating expressions where $* is in the nested command. -269f22a User: Make arguments handling of '@user hostmask remove' similar to '@user hostmask add' 's. Closes GH-101. -744681d Fix syntax error in tests when run with Python 3.1 and 3.2. -0dc5160 Remove debug output. -029c699 Fix c23f25545f5 for Python 2. -1ee8bc3 Fix bug that caused commands like '@google google google google translate' to be valid. Closes GH-19. -c23f255 Fix core tests for Python 3 (actually imported + fixes). -34b0e5f Web: Disable @title and @doctype for non-HTML documents. -536ec37 commands.py: raise the exception instead of returning is if --disable-multiprocessing is given. -573d4a0 Silence errors in Socket driver if connecting failed (name resolution, ...). -9288b16 Fix 918b8a3c01 on Windows. -d8a4ef8 Web: Prevent memory bomb when calling commands with an URL to a page sending crafted requests. -918b8a3 commands.py: Add heap_size argument to process(). -33cc9bc MessageParser: Fix crash when using @messageparser add for global database. -23dfa23 Aka: Prevent infinite loop (+ memory bomb) when nesting Akas using $*. -f8bfb03 Merge pull request #495 from Hoaas/testing -36bce4d Seen: Change 'last left the #channelname' to 'last left #channelname' in the English error message. -58261e7 Dict: Fix lookup of some words (looks like dict.org does not follow RFC2229). Closes GH-494. -80b4e16 Internet: Fix @whois. -6a47500 schedule: Add the 'count' argument. -61e5ede Add test case for scheduler.addPeriodicEvent. -63a082f Debug: Fix @exn. Closes GH-492. -1e8ddda Conditional: Add --case-insensitive switch to @match. -f7f003a travis.yml: Add Filter to the list of excluded plugins. -22c0c7f Fix supybot-test's option --exclude-plugins for patterns. -ce14329 Debug: Fix @progstats. Closes GH-491. -4fcf4d4 Aka: Add a README (based on Alias'). -7f562e1 Aka: Fix conflict of test cases of they are run after Alias' tests. -7c30936 Merge branch 'aka' into testing -ba434b1 Aka: Fix listCommands, which returned tuples instead of strings. -b09245a Alias: Fix @remove for escaped aliases. -6cce968 Aka: Add messages.pot. -41581da Aka: Add @importAliasDatabase command. -33a2360 RSS: Fall back to decoding the headline with 'utf8' if 'ascii' failed. -53c7c9b Filter: Fix encoding issue on Python 3. -4d801a0 PluginDownloader: Fix @info for Python 3. -b4eb4bf Remove randomly failing assertions (race condition with environnements cleaning?) -517ee1c Time: Fix import on Python 3. -fecb71a Add script sandbox/update_plugins_messagespot.py. -eb15e19 Fix typo in conf.py. -fb0862f core: Update messages.pot. -3341cd1 Admin & Factoids & Google & Later & Misc & NickAuth & RSS & Seen & User & Web: Update messages.pot -d5c0df3 Aka: Add recursivity test. -e68e7f3 Aka: Edit help of @add to match new features related to arguments. -774285e Aka: Allow optional arguments and $* together, and also multiple instances of $*. -30596ad Aka: Add support for names with spaces in them. -235854b Aka: Fix encoding for Akas with non-ascii characters in the name. -4cebfb9 .travis.yml: Add SQLAlchemy. -d699ba1 Aka: Change required capability for (un)locking channel-specific Akas from admin to #channel,op. -b2205bc Aka: Add test for locked Aka help + bug fixed related to locking and aka use in private. -201cb45 Aka: Remove test that tested a Alias feature that won't be implemented in Aka. -c49e088 Aka: Add lock support. -b7a9569 Aka: Add some redundant constraints, just in case. -e9cbb1f Add support for adding global or 'other-channel'-specific Akas. -c2f039c Aka: First commit. -329187c Add sqlalchemy as a valid database backend. -7479849 MessageParser: Add support for notices. -2a8b8e7 Google: Fix URL quoting. -277f296 Merge pull request #488 from Ashfire908/patch-1 -75723e7 RSS: Remove b'' from around the RSS url. -071b610 RSS: Honor configuration variable supybot.reply.format.url in announces. Closes GH-487. -3bab899 2to3/fix_imports.py: Use UNIX new-line characters. -29dc143 commands.py: Fix error message of getSomethingWithoutSpaces. -910244e String: Fix plugin for Python 3. -cc56645 Filter: Fix @unhexlify for Python 3. -cf6084e Filter: Fix @uniud for Python 3. -f786dec Fix fix_import for the stupid OS that has case-insensitive file names, again. -5feb1fb 2to3: Fix fix_import to work on Windows and not confuse 'socket' (from the Python lib) and 'supybot.drivers.Socket'. -21144f7 Don't send JOIN on connection if there is no channels to join. -8496cc2 Fix previous commit (38bab185a99e). -38bab18 Remove Python2.4-specific code. -9bfec72 Fix traceback if bot is kicked immediately after joining a channel. -3bfa4ae Misc: Fix previous commit. -98f807c Misc: Fix typo in @more. -4a265a6 Enhance representation of InsensitivePreservingDict objects. -20ff06f Network: Fix @whois for Python 3. -baa4430 NickAuth: Fix traceback if user calling @list is not identified. -f22f0bb Make log.firewall display the callback name in any case. -4647ed8 Factoids: Fix help of @random. -771b739 utils.web.getEncoding: use if available. -b4402b2 utils.web: Rename get_encoding to getEncoding for consistency. -8201133 Web: Use utils.web.get_encoding for guessing charset. -d4df5de utils.web: Add function get_encoding. -dbedcbb Web: Disable testWhitelist if --no-network is given. -290717f .travis.yml: Fix path to Scheduler. -addb754 registry.py: Use %r instead of %s in for formating __nonExistentEntry errors. -73d585c travis.yml: Don't run Scheduler's tests (they randomly fail). -4fffdbc httpserver: Firewall do* methods. -eff7d5e Fix httpserver for Python 3. -5f15354 Web: Use @title's utf8 decoding in the snarfer. -0514a64 Fix use of rsplit for IPv6 addresses. -b300908 Fix @version in Python 3. -ed193e7 io.StringIO has no attribute 'reset'. -46b89cf Fix crash when --daemon is given (Python 3). -dce3c97 Socket: Only catch select.error if it is an interupted system call. -75654a4 Socket: Prevent crash caused when a signal is received while using select. Closes GH-477. -d0476c9 Factoids: Make sure _http_running is assigned before being used. -c39cc4a Merge pull request #476 from carstene1ns/master -7129dc2 Switch to charade, which is better maintained and works under 2 and 3 -4b99925 Merge branch 'testing' of github.com:ProgVal/Limnoria into testing -944f9c3 Web: create a cofigurable url whitelist -c270708 RSS: add option display headline timestamp. -e4ddda4 RSS: add option to strip url redirects from headlines -20bef2d RSS: keep track of headlines over multiple feed fetches, with configurable expiration. -fd2bced README.md: Fix link -76025f8 Merge pull request #475 from Digital-Lemon/testing -e5a2bb1 Alias: Fix encoding of test.py. -0f3f6da Multiple channel types should be supported -34b8e53 travis.yml: Fix tests runner for Python 2. -9e4c804 supybot-botchk: Fix Python 3 compatibility. -b4a63fa Prevent entrymsgs from spamming warnings -be6116f Reset network uptime on reconnection as well -774158f utils/web.py: Fix compatibility with Python 3. -cca1e6d utils/web.py: Add some 'try' statements to make decoding as error-permissive as possible. -2eec980 utils/web.py: Python 3 should use decode() only if it is a bytes object. -a82ad9c utils/web.py: Properly import chardet. -8095f34 Topic: @save can now be called even if the bot is not opped. -8ca9511 setup.py: Show progress when refactoring files (ie. running 2to3). -e24ab45 Fix bug with Python 3.3 (?) -43563bc core & Factoids: Allow commands to disable doc-availability checks for programmatically setting it. -f82a7c7 Issue error message at plugin load if a command has no docstring. -18c671f scripts/supybot: Invoke i18n in the 'try' block to handle the case where the config file does not exist. -8aba158 Socket: Assert 'irc' is not None. -427f010 Factoids: Fix XHTML validation of the web interface. -74db031 httpserver: Explicitely define the charset. -1a71fa2 httpserver: Fix Content-type of default.css which caused the stylesheet not to be applied. -792df99 httpserver: Fix design. -b2d5544 httpserver: Fix restarting the server once a plugin has been unloaded and loaded back. -2016983 Add supybot.utils.net.getAddressFromHostname() and improve Socket driver to try successively all IP addresses. -9ea1019 httpserver: Fix issue with Python 2 if no favicon is set. -cefd91d Fix encoding issues with Alias containing non-ascii characters. -b360871 Google: Fix previous commit. -6e8b7be Google: Fix @calc. -2bf0364 travis.yml: Add feedparser and chardet as dependencies. -863addd RSS: Add link to a patch to apply to feedparser. -ad25f17 RSS: Add Python 3 support. -6266d0f Google: Remove plugins/Google/local/simplejson/ since it is not used. -f74d23b Alias: Try to fix UnicodeDecodeError issues. -5691ce5 Seen: Fix error if last message contained non-ascii characters. -2d4914b Merge branch 'gpgauth' into testing -0537166 RSS: Fix formating if newline character in an entry title. Closes GH-395. -ba6e2ff ircmsgs.IrcMsg: Display args in case of AssertionError. -58befae Admin: @nick only sets the nick on the current network. Closes GH-273. -a15dea5 Google: Configurable base URL. Closes GH-64. -efcf9d7 Channel: Add hostmask of the user kicking the bot, in the logs. -3da554b supybot-wizard: Display a warning if conf is in the source folder. Closes GH-402. -d0f50fb Channel: Log when the bot is kicked. -c56f26b Wrap now internationalizes docstrings. -66025cf New syntax for wrap(). Now supports being used as a Python decorator with arguments. -b887a97 travis.yml: Remove useless command. -6783e58 Later: Fix typo. -a678bfc Alias: Fix encoding issue. -8bfea88 Factoids: Use supybot.plugins.Factoids.requireVoice for @forget too. -9e1cf72 Network: Add @whowas. Closes GH-227. -6493be1 httpserver: Add doctype. -1090c46 Factoids: Add supybot.plugins.Factoids.requireVoice. Closes GH-378. -ed62c9e commands.py: Rename 'isGranted' to 'haveHalfop+' and add 'haveVoice+'. -f42023b Fix SupyTestCase.assert* with Python 2.6. -65afe65 Factoids: Enforce order of approximate factoids. -0083b00 travis.yml: Enable Python 3.3. -04b7d9e Fix compatibility with Python 3.3.1. -6ffcf12 Remove code specific to Python 2.{3,4,5}. -93ecc24 Google: Fix encoding issue. -8421300 String: Fix test. -8d95a42 Fix fetch of RSS feeds containing unicode. -81c366a Web: create a cofigurable url whitelist -63f911b Merge branch 'py3k-backport' into testing -cd6d9da Debug: Fix Python 3 compatibility. -f0e49a0 Math: Fix load on Python 3. -75c3d2f Dict: Use normal import (was broken in Python 3.3 for some reason). -a55611a core: Various Python 3 compatibility fixes. -f8a57b7 Google: Fix snarfer with Python 3. -0608676 setup.py: Remove error output if not in a git repo. -c84d3d6 Speed up install on Python3 (2to3 is ran only on modified files). -00d9567 Fix typo. -3b44bc3 Fix previous commit. -20665cf 2to3/run.py: Fix compatibility issue with old Python 3.x versions (2to3 does not suport -W and -o). -38d039a setup.py: In debug mode, display 2to3 logs. -3e26a2d setup.py: Add the --debug switch. -29421f3 setup.py: Hide 2to3's output. -c7a1779 Fix previous commit -4a03283 setup.py: Fix bug if setup is not in the current working directory. -170183a setup.py: exit after it has called itself. -cadf953 Make the setup.py runnable by Python 3 and run 2to3 automatically. -3935152 Fix 'dictionary changed size during iteration'. -cb6139e Fix typo. -3b179ec Apparently, Python 3.3 does not like sys.modules to be reassigned. -9553798 sys.modules is a dict, not a list (again). -ee1d873 sys.modules is a dict, not a list. -e787f33 Fix typo. -3570acf Fix plugin load if previous (re)load failed. -1a6d4b6 setup.py: Remove error output if not in a git repo. -115f800 ChannelStats: Fix bug when conf.supybot.databases.plugins.channelSpecific is true (KeyError in channels list). -70a169a Debug: Fix Python 3 compatibility. -8f60631 Add supybot.abuse.flood.interval. -c0c479a Math: Fix load on Python 3. -af1931b RSS: add option display headline timestamp. -7865911 RSS: add option to strip url redirects from headlines -02a2a05 Owner: Reload module configuration in reload. -0b36a29 Owner: Prevent use of uninitialized variable. (pulled from Limnoria) -bc0d16a RSS: keep track of headlines over multiple feed fetches, with configurable expiration. -b9a46ce Factoids: Fix @lock and @unlock. -c133d97 Revert "Fix typo." -da5fb34 Channel: Fix l10n-fr. -71e5027 Python 3.3 is not supported. -d70138b Dict: Use normal import (was broken in Python 3.3 for some reason). -a82b6da Remove warning from the README about Travis. -71c847d Improve .travis.yml. -65201fe travis.yml: Fix path of plugins. -4090793 Fix scripts to work with Python 3 without 2to3. -7fcda67 Speed up install on Python3 (2to3 is ran only on modified files). -53e49d2 travis.yml: Use --no-network instead of setting individual plugins. -c25ccc4 PluginDownloader: Obey --no-network in tests. -7253dee User: Fix handling of --capability for unregistered users. -fe540b3 ChannelLogger: check for logChannelMessages before logging. -243cc0b Seen: Add supybot.plugins.Seen.showLastMessage. -1bee83b Merge pull request #465 from clue-eq-None/AnonSayFix -bf761f5 Fixed the last fix in Anonymous which broke the ability to query via say -8d05910 Merge branch 'testing' of github.com:ProgVal/Limnoria into testing -8701002 Anonymous: Fix use of pipes. -96fae12 Anonymous: Use assertEqual in tests instead of failUnless(... == ...). -f2e059f core: Fix l10n-fr. -65b553f core: Updates messages.pot and fr.po. -caf255a Internationalize string-handling functions in src/utils/. -6b1131b core: update messages.pot and fr.po. -5c118de sandbox: Update check_trans.py to handle core locales. -d8df5cc Misc: Fix ignoring of user flooding with invalid commands in private. -390af5d Fix typo. -2d89723 Merge pull request #464 from Nothing4You/fix-tests-01 -8475638 Use a real inexistent domain for DNS fail testing -56b4f1d travis: Remove Scheduler from tested plugins. -995ba6f Make sure strictRfc is on before testing for assertions. -6c22927 travis: Don't display logs. -43248f5 supybot-plugin-create: Various updates (stock supybot compatibility, Python 3 compatibility, reload config by default. -0595489 Karma: Fix tests. -d13015d Fix tests with Travis. -7a71ecb Misc: Add supybot.plugins.Misc.mores. -61eb0fd RSS: add supybot.plugins.RSS.announcementSeparator. -f4bf62a ircmsgs: Fix typo. -0150c79 Added a way to have the urlsnarfer report exceptions (hotsnotnound, ...) (Should be possible changed to only ioExceptions) Enable/Disable via 'supybot.plugins.Web.snarferReportIOExceptions' -d5a9c3f Add link to the install guide in the README. -856a65c Add irc.state.ircd. -8e1929d Fix previous commit. -23e84cf Join all channels in one message when connecting. -ddd8314 Socket: Close the socket more nicely. -916a85c core: Various Python 3 compatibility fixes. -3137db8 Karma: Display the new karma when it is updated. -cb827c0 Fix typo. -6524dfd Karma: Fix @dump. Closes GH-457. -9a23ba1 Fix traceback if supybot.errors.noCapability does not contain %s. -574d73c Fix RFC-compliance of privmsgs/notices/kicks/whois/... with list of nicks/channels are argument. Closes GH-462. -5209cbc Prevent crash of httpserver in some requests. (Why? No idea.) -cac96aa Socket: Fix race condition in SSL handshakes. -881eb9f Fix commit b90bd4b9d9035. -f4c643a Factoids: Add the web interface. -24252bc httpserver: Enhance design + customable CSS. Closes GH-404. -c4b9c80 httpserver: Use new algorithm to load default templates. -83dd3a2 Create config variable supybot.directories.data.web, and move robots.txt to this directory. -d714909 Use non-sexist language in strings and comments. -be04677 Fix typo in a comment. -81f9861 Added German translation for NickAuth. -9ef83f7 Web: Fix encoding in @title. -f438d0a AutoMode & Channel & Config & Google & Seen & ShrinkUrl & String: Update l10n-fr. -693e827 Alias & ChannelLogger & MessageParser & MoobotFactoids & User & Web: Update l10n-fr. -8a9c44b check_trans.py: Use absolute path in order to print it correctly (otherwise it wouldn't print the plugin name). -2cfe1f9 PluginDownloader: Add jonimoose's repository. -8444e76 Fix decoding of strings in ircmsgs. Thanks to monodemono. -f65c053 supybot-wizard: Prevent this script from running directly in ~/ -10fc03a Google: Fix snarfer with Python 3. -7f2d38b Socket: Fix compatibility with Python 3.1. -f9171f5 Fix previous commit. -78a722f 2to3/run.py: Fix compatibility issue with old Python 3.x versions (2to3 does not suport -W and -o). -d86dee6 setup.py: In debug mode, display 2to3 logs. -e17cd0b setup.py: Add the --debug switch. -c3f2bfd Fix previous commit. Thanks to Nothing4You. -cb48f66 MessageParser: Prevent duplicated response if supybot.databases.plugins.channelspecific is enabled. -48b03a8 Merge branch 'testing' of github.com:ProgVal/Limnoria into testing -42f5b02 MessageParser: Order @list output with id, instead of random order. -4069b2e MessageParser: Add supybot.MessageParser.maxTriggers variable. -b6c62b6 Math: Fix l10n-fr. -0ef1347 Update INSTALL.md -5a114ab Google & ShrinkUrl: Fix issue with super() in custom config types if plugin is reloaded. -b90bd4b Fix previous commit (again). -c918074 Fix previous commit. -48ba761 Decode unicode string passed to ircmsgs.*. Closes GH-448. -3fd1e9f travis.yml: Display logs after test. -de0087c Update sandbox/check_trans.py and run automatically run pygettext. -4754df2 Merge pull request #446 from nyuszika7h/testing -c6d5f18 Update .gitignore. -ef08ea1 Fix debug logging in some (weird) cases. -c234d68 scripts/supybot-botchk: Open pidfile in append mode because 'x' is not supported on Python 2 -1579645 Merge remote-tracking branch 'progval/testing' into testing -e491e14 Final fix for SASL and py3k -d753df9 Print extra debug data in the logs. -4170a87 Fix previous commit (yet again) -66e46e5 Fix previous commit (again) -4b10ea3 Fix previous commit -f1198fb irclib.py: Fix SASL on py3k -ff1d9c4 supybot-botchk: Use a different method for creating pidfile if it doesn't exist -49a3927 Merge pull request #445 from nyuszika7h/testing -658d0ad supybot-botchk: Don't truncate pidfile -7edc73a supybot-botchk: Use open() and close() instead of os.system('touch') -1b6f1f0 supybot-botchk: Fix Python 3 compatibility -5b432a7 Google: Restore @calc and @phonebook. -34ea319 setup.py: Hide 2to3's output. -08579a6 Add MANIFEST.in -b04f2f4 Fix previous commit -ac8f2c6 setup.py: Fix bug if setup is not in the current working directory. -20ad495 src/test.py: Why would a test server create a socket? -13a633e Prevent traceback if supybot.replies.genericNoCapability is empty. -05d23d1 Remove unreachable code. -785b973 botchk: Use open() instead of file(). -77f614b utils.web.HtmlToText: Convert html entities. -fa36e48 core: Document irclib.Irc.addCallback. -75f19a9 core: Add docstring to commands.wrap. -39b5342 Fix http server's tests. -21c17b8 Google: Fix Python 3 compatibility of the @translate command. -e45bce6 Merge branch 'testing' of github.com:ProgVal/Limnoria into testing -b2fdf83 Google: Add translate command (needs testing) -3304854 Revert "Google: Remove translate command since their API is gone" -b589c2d core: Document IrcMsg tags. -9507bf1 Remove non-ascii char (again). -bab69bb Remove useless non-ascii character. -7588472 Fix 'Transport endpoint not connected' errors. Closes GH-437. -fecb010 setup.py: exit after it has called itself. -4f5e7f3 travis.yml: Fix command for Python 3 tests. -60e442e Update the installation procedure. -f42ac86 Make the setup.py runnable by Python 3 and run 2to3 automatically. -cdb5461 Fix order of status images. -f880d5b RSS: Fix typo. -2ace534 utils.str: Prevent issue with tokens like '\x80' in Python 3. -b421120 travis.yml: Disable tests for ShrinkUrl. -6c0497d Fix traceback when utils.str.dqrepr is given a unicode object. -6ea1347 Update the README instructions for Windows users (most of them should have Python 2.7 by now). -30c5519 Final encoding fix. It now work on IRC and unit tests pass, both with Python 2 & 3. -a4a595b Partial fix of encoding handling. -c9b6b56 Utilities: Fix encoding in tests. -76a091d Fix the 'provides' field. -4ce44d1 Update setup.py to be declared as limnoria (and provide supybot). -164d85d core: Fix the test framework after update of the HTTP server. -bbe65a3 Utilities: Add tests for unicode characters. -84a87e4 Merge pull request #442 from Athemis/master -bbdd55b Add fallback decoding if chardet fails to guess the correct encoding -d28e3e0 Merge branch 'py3k-backport' into testing -9e5f702 INSTALL.md: Add extra instructions for Python 3. -6d15d26 Merge remote-tracking branch 'athemis/master' into testing -d809db2 Fix bold of 'getpass' question. Closes GH-426. -97bffbd (upstream/gpgauth) User: Add support for authentication via GPG. -06aca4b PluginDownloader: Add frumious's repo. -d0bac05  README: Add text before the build status image. -8e3076c  README: Add build status image. -4316e59 Use chardet to guess the character encoding when on python3 -bbd9d16 Math: Fix rounding. -c1f19b3 Fix locales path resolution with Python 3. -0ff58db Math: Fix tests to allow higher precision. -ea63da3 Math: As unit conversion algorithm fails with high precision, make significant digits matter. -caa3612 ShrinkUrl: Add ur1.ca support. -a8e3081 ShrinkUrl: Support for goo.gl url shortener. -2327317 Web: Fix fetch. Use getUrl instead of getUrlFd. -018ee34 ShrinkUrl: Retry shrinking twice if it fails. -589d55e NickAuth: Use assertEqual for string comparison in tests ('foo' is not 'foo' with Pypy). -7265581 core: Prevent infinite recursion with Pypy. -add5e07 Dict: Fix encoding. -8e6aa11 travis.yml: Add Pypy to the list of Python versions. -5c0f0fb travis.yml: Exclude PluginDownloader from being tested (Github API limit rate...). -413bdbf supybot-test: Add the --exclude option. -603f441 Web: Fix Python 3 compatibility. -8a8f380 Internet: Fix Python 3 compatibility. -418b3e0 Filter: Fix encoding with Python 3. -7e0d868 Merge branch 'py3k-backport' into testing -df62dda Google: Fix encoding with Python 3. -755a1c9 Merge branch 'py3k-backport' into testing -cca03ba Copy docs to py3k/ too. -d04c87c Merge branch 'py3k-backport' into testing -6cf4901 Fix 2to3 fixers to work with Python 3. -fee7ed4 Fix 2to3 fixers to work with Python 3. -dc7ac9a travis.yml: Fix Python 3 build. -a5292ae core: Fix issue with Python 2.6 (cStringIO is buggy). -52e91d5 src/test.py: Implement assertIn for old Python versions. -2bcffdf src/test.py: Implement assertIs for old Python versions. -139cb39 MoobotFactoids: Fix tests with fastest computers. -fdb7a76 core & Filter & Owner: Fix Python 2.6 compatibibility. -b7b6063 Owner: Skip test of @rename for nested commands. -f44e033 MoobotFactoids: Prevent race condition in tests (for fastest computers). -be3017f Filter: Fix encoding issues in tests. -6e452e0 Filter: Fix @rot13 with non-ascii strings. -e3e2b23 src/test.py: Encode strings only if they are not already using unicode. -48b4fc5 travis.yml: Remove Python 2.5 (support has already been dropped). -422dfc3 PluginDownloader: Rename gsf to code4lib (upstream change). -775a1a2 PluginDownloader: Remove gsf tests (too long). -2177429 Web: Remove netcraft (which does not seem to want bots). -63a4285 MoobotFactoids: Add count of recent/top factoids (removed while internationalizing). -5afff1c MoobotFactoids: Fix encoding issue in tests. -bc7051e core: Fix tests of plugins using user id for checking capabilities. -db48d78 Internet: Fix whois of domains whose whois server is too lazy to close a connection. -10197b9 Internet: Fix whois on .com domains (if too many domains matched). -dd74982 Internet: Remove test which fails if it is run too much ('WHOIS LIMIT EXCEEDED'). -5f1d7cc Web: Fix test of snarfing (Microsoft changes the title based on location of the computer). -918092a Web: Fix snarfing of titles with UTF-8 characters. -f9e8c35 travis.yml: fix config. -7edbb7b core: Fix tests using invalid hostmask. -29b9e08 travis.yml: Add pytz to the dependencies list. -a11cb64 ChannelStats: Fix tests. -4c23fae ShrinkUrl: Fix tests. -fe39d35 core: Fix normalizeWhitespace handling of new lines. -29e13a9 Fix 'more' wrapping for long words; bug introduced in 169392e5. -e86768b Misc: Fix testTell. -28dc3dd core: Fix normalizeWhitespace. -408f6e2 supybot-test: Return appropriate status code. -de4f1b3 Revert "supybot-test: Return the appropriate exit code." -ae9b8c8 travis.yml: Run all tests in one command. -f7f53fc supybot-test: Return the appropriate exit code. -f4be987 travis.yml: Remove the --user switch to setup.py; travis uses virtualenv. -a2a52d4 travis.yml: Add scripts to the path. -349b969 travis.yml: Remove setuptools (installed by default). -3d7d27e Add travis integration. -1132728 Merge branch 'testing' of github.com:ProgVal/Limnoria into testing -3dba908 Merge remote-tracking branch 'supybot/master' into testing -295f9b1 Make utils.str.soundex perform better when length is large -281e036 Merge pull request #438 from TheLordOfTime/testing -417182c Conditional: Add description about plugin to init -79eeb8e Revert "irclib: Apply changes to supybot.protocols.irc.maxHistoryLength immediately." -1d2eefe irclib: Apply changes to supybot.protocols.irc.maxHistoryLength immediately. -cab1830 utils.structures: Prevent a RingBuffer from being bigger than the new size, when calling resize(). -6b7db2e test_irclib: Make use of context for maxHistoryLength. -499d68f Channel: Remove debug output. -7b3ef56 Fix mysterious bug when connecting/disconnecting. -6cbc6a1 Rename all 'locale' directories to 'locales'. -8414898 Fix tests broken by 6a06ca991. -790f0ee socket: Fix compatibility issue with Python 3 (introduced in 8cf094a). -bcde88a Channel: Add --all parameter to @unban. -c46602d Channel: Implement @listbans. -6a06ca9 core: Initialize list of bans when joining a channel. -0418a44 Apply Andy's second patch for Freebsd. Closes GH-436. -097ea23 Fix handling of PluginNotFoundException in i18n. -2363c40 Merge pull request #435 from Cubox-/patch-1 -4add76c Fix issue on FreeBSD. -724e77e Remove useless lines. -85f8bb3 Add unit tests for i18n. -d58ad0c Reload translation of command helps when language changes. -989c674 Reset translation dict when reloading a locale. -30c56ae Add support for arguments to addPeriodicEvent callbacks. -97b48ab i18n: Initialize translations in __init__. -0607462 PluginDownloader: Add error messages to assertion errors. -46a25b9 PluginDownload: Output more detailed error log. -384e1dc core: make network.channels and channel keys private by default. Otherwise these can reveal secret information. -620a90f core: make network.channels and channel keys private by default. Otherwise these can reveal secret information. -f6209a9 String: cap maximum soundex length to 1024. -5d6a3c5 String: cap maximum soundex length to 1024. -72bc227 registry: Fix Json unserialization. -cead634 PluginDownloader: Fix tests. -f19eb06 ChannelStats: Fix tests. -943f3a0 Web: Fix test for @title. -ad3f58e Add the content of the new value of a config var, when it is not compatible with this config type. -d9f7e0e Add editable() method to registry.Json. -d8bd1f6 Add registry.Json. -3063340 Channel: Make use of the context() method of registry.Value objects. -4e8c35d Add context() method to registry.Value objects. Closes GH-430. -69c60ca Remove debug output. -8cf094a Socket: Use select.select() instead of checking sockets one by one. Closes GH-431. Closes GH-420. -7d22d3d Prevent NameError if ssl module can't be imported. -8d8e574 Owner: fix error message when the ImportError comes from the plugin -93586d7 Add support for extended banmasks. Closes GH-105. -650cbe5 Channel: Prevent @iban from adding wildcard when an exact banmask is given. -22febc4 Web: Fix encoding issues in title snarfing and @title. -28cdbaf Config: Fix previous commit. -216df3d Config: Rename @reset to @setdefault (reset is a method implemented by the core). -d9f2235 callbacks.py: Fix error with commands like @echo "¡". -25855e5 Fix crash when loading user with two nicks or more. -5de01bd Merge pull request #424 from Mkaysi/nickauth-l10n-fi -4552eba Merge pull request #427 from Erika-Mustermann/testing -0cd7bd8 Added @reset command per request issue #163 -992de09 Misc: Update @version to use new display format of dates in Github API. -3c30463 Math: default %f formatting rounds to 6 decimal places. increase that to 16. -910ad6d core: make network.channels and channel keys private by default. Otherwise these can reveal secret information. -72b1d4f NickAuth: Copy plugin.py's description to __init__.py. Closes GH-425. -fef5ed3 NickAuth: add l10n-fi. -1834827 NickAuth: add messages.pot -5f1c21c Remove temporary files. -e9755a6 Add fix missing in previous commit. -659f6eb NickAuth: First commit. -ac13d09 conf.py: Prevent traceback if server address is an IPv6 address. -6ea2d06 Web: Filter special chars in @title, and add --no-filter. -c68afac Math: calc: coerce argument to ascii string. working with unicode errors on the translate() step. -75ab820 Merge pull request #423 from Mkaysi/user-l10n-fi -ca8a829 User: update l10n-fi & messages.pot -59d6d4d commands.py: Fix name conflict. -fba70d1 Add configuration variable conf.supybot.capabilities.private. -88b2b23 User: Add tests for @user list --capability. -929090c conf.py: Prevent traceback if server address is an IPv6 address. -484d7e6 Misc: Notify the caller when @tell succeeded. Closes GH-97. -9b83971 Admin: Add clearq command. -8062d95 Change the minimal number of non-wildcard characters in hostmask from 8 to 3. Closes GH-276. -b5eac09 Call unqualified process/regexp_wrapper, since commands exports them now. -57e4290 Misc: Use regexp_wrapper for Misc.last -c774be3 commands: Add process and regexp_wrapper to __all__ -90b7f3c utils.web: Simplify getUrlFd by using standard parse methods -d05506e Seen: Add supybot.plugins.Seen.minimumNonWildcard. -32b0b12 Seen: Fix tests. -85eb0b4 Fix 3a7830097196. -40bdec9 Math: calc: coerce argument to ascii string. working with unicode errors on the translate() step. -1805084 docs/USING_WRAP.rst: Add docs for missing converters -6ab807b utils.net: Use _ipAddr and _domain from utils.web to define emailRe -db3746d Add support for authentication scheme. -7d87d42 Fix detection of .42 domains -dfdfd00 core: make sure owner is never ignored. also simplify the logic flow in ignore checking. Thanks m4v for the patch! -18ec618 Secure some more commands which take a regexp from untrusted user input. -ac500b0 String: set default re subprocess timeout to 0.1, since that should be quite enough. -9356d07 Misc: fix potential ddos when misc.last command is fed a specially-crafted regexp. -72c5c8e String: fix it up to work with the previously committed enhancement for subprocess timeout. -3a78300 Add support for authentication scheme. -86d590c FAQ: Add the entry about @later tell. -a565b7f MessageParser: Add support for global triggers. -d3da0c2 commands.py: Add 'channelOrGlobal' converter. -6a9af81 src/commands.py: make subprocesses raise an error on timeout, rather than return a string -f310350 Web: add 'timeout' config for web fetch, default 5 sec. -ce98913 Seen: fix tests so they pass. fix seen command so it properly accepts nick wildcards. -8ded033 Seen: Fix save Seen.any.db. (thanks to beo_ for the repport and the test) -854e086 Topic: get shouldn't require capabilities, since it's a read-only operation. -02b9431 BadWords: improve help for requireWordBoundaries config. -011d4dd Badwords: add plugin docstring, and fix/standardize some method docstrings. -a5ec33a Make plugin loading/reloading case-insensitive. -92be7c2 String: make levenshtein command threaded, since it can take a nontrivial amount of time with longer inputs. -34e5aed String: make re timeout configurable. -9fc7ec2 Fix error handling for subprocesses. -7504c64 Status.processes: add output of currently active processes. -141b120 commands.process: return immediately when terminating process, without having to deal with the queue. otherwise, we have to block for $smalldelay between putting and getting the item, since queue putting is not instantaneous and sometimes we would get 'nothing returned' instead of the timeout message. -7f4a1be Status: add 'processes' command, the multiprocessing equivalent of the threads command. -7f98aa7 Some improvements to the commands.process function - better process naming and informational output. -a2985c3 Create a commands.process function which runs a function inside a separate process. -d691a91 Topic: fix bug in invalid number error output. Previously, when giving an invalid positive number, error would reference number-1 as being invalid. -84b878b Filter: catch invalid input for unbinary command. -7feb506 Filter: add unbinary command, as counterpart to binary command. -6025f73 core: force inet_aton argument to string to prevent occasional error on reconnect. -aa4071f RSS: Remove local/feedparser and add it to install_requires -450be69 Bootstrap setuptools if it isn't available. -4d1a7ea Display more explicit error if python-sqlite3 is not installed. -5ebbf2d Merge branch 'debian' into testing -6b881d6 Socket driver: Apply supybot.drivers.poll as soon as modified (do not require reconnect). -aff8cd3 Merge pull request #419 from Mkaysi/automode-l10n-fi -0098fa5 AutoMode: update l10n-fi. -b132e44 Merge pull request #418 from Mkaysi/alias-l10n-fi -514f26f Merge pull request #417 from Mkaysi/google-l10n-fi -eca08f7 Merge pull request #416 from Mkaysi/channellogger-l10n-fi -a80569c AutoMode: update messages.pot -d8595be Alias: update messages.pot -9e2e6bf Alias: update l10n-fi. -bbb7a0c Google: update l10n-fi. -9bc69cc Google: update messages.pot -e9923db ChannelLogger: update l10n-fi. -8e0100a ChannelLogger: update messages.pot -707b2d7 Merge pull request #415 from Mkaysi/shrinkurl-l10n-fi -27a40bd Merge pull request #414 from Mkaysi/channel-l10n-fi -f584c10 ShrinkUrl: commit updated messages.pot -1b85284 ShrinkUrl: update l10n-fi. -38c512f Channel: update l10n-fi. -3fdbad9 Channel: update messages.pot -42957a6 Socket driver: Fix typo. -156b3d9 Socket driver: Add support for Socks proxies. -364a3e5 src/ircmsgs.py: Assert string parameters are actually strings. -4080151 Channel: Fix help for @iban. -c8dc3ea Channel: Use exact hostmask if provided. -fe9c28f Channel: Add command @iban. Closes GH-282. -0b81b17 Indicate supybot.networks.$network.servers/channels are space-separated lists in their help -1fc11d0 Merge pull request #411 from Hoaas/testing -cb623b2 Web: Fix fetch. Use getUrl instead of getUrlFd. -784b8c3 httpserver: Add support for multiple hosts and IPv6. Closes GH-387. -247ed46 Revert "Utilities: Add @concat command": already in Format. -75f9917 Utilities: Add @concat command -45e6b7b Merge pull request #407 from resistivecorpse/testing -4dc607f Merge pull request #409 from Mkaysi/later-readme -b7d762c Later: rename README.md -> README.txt -6d7b6a7 chaged msg.arg[0] to channel in if statements for joins and parts -405d684 Later: write proper README. -82ed771 minor fixes to ChannelLogger -c154d2a Merge branch 'testing' of https://github.com/ProgVal/Limnoria into testing -d6da8a5 Unix: Prevent name conflict with _(). -54a6425 adds an on off config option for logging of joins parts and quits in ChannelLogger plugin -3a43229 Merge branch 'py3k-backport' into testing -ad3bf13 Web: Fix compatibility with Python <= 2.6. -5dbf4a5 Merge branch 'py3k-backport' into testing -a955463 Web: Fix title snarfer with titles containing unicode characters. -2967f0d core: Fix typos in l10n-fr. -dfbf74b AutoMode: Prevent traceback if a unregistered user joins. -ae2f813 Channel: Fix l10n-fr. -c77c513 httpserver.py: Replace weird space by regular one. -270e9b0 Merge branch 'py3k-backport' into testing -841dc71 Web: Fix page decoding. -e7fb247 Merge pull request #400 from Mkaysi/contributing -ba0eba4 CONTRIBUTING.md: write contributing guidelines for GitHub -b8b79d0 Admin: Change message 'It's banned me' into 'I am banned.'. Closes GH-329. -198688e Import external dateutil module -cef93a6 Use relative imports for all packages under the supybot namespace -b1552ce Ignore setuptools directories -a8415c8 AutoMode: Fix commit 4eb674843e17 (extra modes). -0267f15 Owner: Reload module configuration in @reload. -4eb6748 AutoMode: Add support for extra modes (add supybot.plugins.AutoMode.extra). -74273b0 PluginDownloader: Recognize any file starting with 'README' in @info. -b5ff7d5 PluginDownloader: Recognize README.md in @info. -e43700d PluginDownloader: Add resistivecorpse's repository. -52e71ed Time: Remove dateutil and add it to install_requires -7203ac3 setup.py: Use setuptools instead of distutils -6c7aec1 Remove a few more references to local.simplejson -748b764 Google: Use standard json module now that 2.6 is minimum Python version -5ff40e3 Herald & Protector & Todo: Fix l10n-it. -84931cd conf.py: Fix typo. -f631488 src/test.py: Fix encoding issues with assertResponse being given an utf8 string. -45329fb schedule: Allow arguments for scheduled functions, lock before modifying heap -97a977a Merge branch 'py3k-backport' into testing -f747c5a Config: Fix @reload. -6f925e5 Google: Remove calc and phonebook commands -304facd Google: Remove translate command since their API is gone -b7efbf4 Plugin: Fix failures in testPlugin -124361d Ignore backup/ -d73a801 Web: Remove/update non-functional tests -5bb6fdc core: avoid casting data to string if it is already an instance of basestring, in irc.reply. -9c5f1ea Fix setup.py compatibility with Pypy. Closes GH-394. -bcfdcf0 MoobotFactoids: fixed mistakes and added ACTION to README. -d38cc2d MoobotFactoids: improved readme file from default. -5166d84 Internet: improved README. -49288d2 Herald: improved README. -8c1c34c Games: improved README. -ee340fa Format: improved README -0207b43 Filter: created readme from plugin help. -bc9450e Factoids: improved README -dc416ec Dunno: improved README -11ef44c Ctcp: improved README -b41affa fixup 9f0c308f -9f0c308 ChannelStats: improved README -55dd781 ChannelLogger: improved readme -f96fcaf AutoMode: improved readme -c609f88 Anonymous: added readme -f5fec4a Remove useless import. -f912de7 Admin: Change message 'It's banned me' into 'I am banned.'. Closes GH-329. -eaf6877 httpserver: Add favicon support. -e5e2db1 ShrinkUrl: Implement @expand. Closes GH-392. -82ecf36 Update my name/contact information -83f872f Bump minimum Python version to 2.6 for multiprocessing support -232aa86 Merge branch 'maint/0.83.4' -de61bb6 Google: Add translate command (needs testing) -463f0c0 core: make network.channels and channel keys private by default. Otherwise these can reveal secret information. -c7ed795 Seen: check to see if the bot is in target channel before doing anything. -619dd2c Merge branch 'merge-gribble' into testing -38ff1a1 Seen: require caller to be in target channel when using commands in this plugin. -e557541 Channelstats: require caller to be in target channel when using commands in this plugin. -2c051ba core: force inet_aton argument to string to prevent occasional error on reconnect. -643788b Math: default %f formatting rounds to 6 decimal places. increase that to 16. -ba876d7 Fix commit 17227a6829. -17227a6 AutoMode: Dismiss auto-op/halfop/voice if the user already has it. -c74e8f3 Fix regression in parsing 004 messages -0c6320e RSS: Display error instead of traceback if fetching a feed failed. -30f711b Google: Prevent flooding when no matches are found. -d2ab53c Fix parsing of 004 message. (Broken in d9531d2d). -0780d44 Merge pull request #388 from Hoaas/testing -e1adc01 Google: Stop output when there are no result. -b5e965c Web: Decode _after_ reading the page in @fetch. -653e4de urlquoting the url leads to short urls that prepend "http://" to the url -3739def Merge branch 'py3k-backport' into testing -d2b33a3 Fix compatibility with Python 2.6. -a7d3629 Prevent run_2to3 from copying locale/ to py3k/ instead of py3k/locale/ (thanks Cravix). -24d73eb ShrinkUrl: Add ur1.ca support. -5dfba06 Prevent irc.replies from replying in private since fc9daa9. -12b8e44 AutoMode: Fix traceback since b5c99b1c. -fc9daa9 Make supybot.reply.oneToOne channel-specific. -19708c5 Fix typo in 5f94da866062138288742792f157bebd93389c3b. -45bf9db Merge branch 'py3k-backport' into testing -62d56de Alias: Allow pipes in name. -5f94da8 Fix test.assertHelp for commands with long help (XX more messages). -1e794d8 ChannelLogger: Use open() instead of file(). -94d09da Alias: Save and restore aliases with dots in them. -e3d170d Add support for network-specific umodes. -e00b8b9 Remove src/version.py before running 2to3. -fad0c9d Copy localised files in run_2to3.sh. -08382d1 locale/fr.py: Use spaces instead of tabs. -22befe3 Owner: Prevent use of uninitialized variable. -ea17fe5 Unix: Decode stream for the command line in sysuname. -4fc1e93 PluginDownloader: Open target files in binary mode. -c149e8f Make 2to3 ouput files in py3k/ subfolder. -a40ebae String: Apply/unapply base64 encoding when dealing with a binary encoding. -5ae3e3f ShrinkUrl: Decode data from web services. -3dc8e04 utils.web.urlencode: Encode data into bytes. -1b6be58 src/cdb.py: Use 'future' division and decode/encode data from/to the disk. -535593d src/dbi.py: Use open() instead of file(). -14200e0 Rename cdb.open to cdb.open_db and open cdb files in binary mode. -709c339 Internet: Remove debug print. -124e292 Catch sort errors in ChannelUserDB. -16aeaaa Use the 'reverse' parameter of sorted() instead of 'mycmp'. -a731841 Dict: Decode network stream as unicode. -0e450a5 src/callbacks.py: Use unicode_escape if running Python 3. -34bb33b Alias & MoobotFactoids: Fix import error in test.py. -242a54f Alias & RSS: remove third argument to types.MethodType. -089be4c src/i18n.py: Use 'str' as a base class instead of 'unicode'. -041893a Socket driver: encode strings just before sending them. -306105a src/i18n.py: Fix encoding issue with Python 3. -f116533 src/registry.py: Fix encoding issues with Python 3. -d4f5c03 Add 2to3/fix_reload.py. -32a7da6 Add 2to3 fixer to process utils.gen.IterableMap correctly. -5a35c7f Use __import__() instead of exec(). -393f78c Use a boolean instead of hacky reference comparison in utils.iter.choice. -4ffaff0 Don't use utils.str.chars anymore. -0c99a65 src/conf.py: Use classic comparison instead of str.translate. -0b7e4e5 src/registry.py: Fix encoding issue with Python 3. -e89dcf8 Remove unused import of UserDict. -fff9b83 Import ifilter from itertools instead of utils.iter. -1a64f10 Use MultipleReplace for utils.str.soundex. -9edda20 Remove utils.str.chars. -3838ab5 Remove unused imports of new. -8507498 Web: make plugin py3k-friendly. -6537137 Unix: make plugin py3k-friendly. -65eb79b String: Use the 'codecs' module and make it py3k-friendly. -de5747a ShrinkUrl: Use utils.web.getUrl instead of httplib2. -ced2e7b Implement seed, tell, and flush to AtomicFile. -3681279 Make ChannelUserDictionary subclass collections.MutableMapping instead of deprecated UserDict.DictMixin. -11df697 RSS: Be compatible with new versions of feedparser. -c99fe95 PluginDownloader: Make plugin py3k-friendly. -0134696 Misc: make plugin py3k-friendly. -987aaa6 Math: use string.ascii_uppercase instead of string.uppercase. -224bdf8 Math: implement __lt__ and __eq__ in converter.Unit. -1be1ddb Later: Use open() instead of file(). -0b49c73 Internet: use binary I/O. -978a702 Google: Use 'json' module and apply .decode() on data. -a89ff32 Filter: Use the 'codecs' module instead of .encode and .decode. -9dcfce0 Dict: Open connection in binary mode. -dcd07a2 ChannelStats & Filter & Math & Unit: use utils instead of str.translate. -88c2c13 BadWords & Nickometer: Use 'future' divisions. -8b7d16c Alias & RSS: Use types.MethodType instead of new.instancemethod. -7f0e111 Make world.py py3k-friendly. -c4dfa55 Use HTMLParser instead of deprecated sgmllib in utils.web. -9ae90c3 Make utils.structures.CacheDict subclass collections.MutableMapping instead of deprecated UserDict.DictMixin. -6514db9 Prevent name clashes in utils.structures. -452c706 Make utils.str.perlRoToReplacer less ambiguous. -8af6761 Use 'unicode_escape' in utils.str.dqrepr if running Python 3. -0a4a122 Prevent name clash in utils.iter.startswith. -b8fe420 Use 'ast' instead of 'compiler' in utils.gen.safeEval. -d3d93da utils.gen.saltHash: encode string before hashing it. -ab978a8 Remove utils/gen.py dependency on deprecated libraries (new and UserDict). -caaf290 utils/gen.py: Import imap from itertools instead of utils.iter. -9de7316 Change utils.file.AtomicFile into a wrapper instead of a subclass. -174a5a4 Encode strings before hashing them in utils.file.mktemp. -54917f5 Drop dependency on deprecated httplib.HTTP in test framework. -b5c99b1 Fix capability checks. -8211aab Fix issue typo in schedule.removeEvent. -4bf39f7 Use the codecs module in src/registry.py. -69c18ae Make NonExistentRegistryEntry subclass AttributeError. -7d73a7d src/questions.py: Don't use the 'is' operator to compare strings. -b338c54 src/log.py: Support for Python 3 logging module. -458508a Merge pull request #381 from Mkaysi/plugindownloader-l10n-fi -a27acda Merge pull request #383 from Mkaysi/network-l10n-fi -165f4ca Merge pull request #382 from Mkaysi/misc-l10n-fi -45120dd Merge pull request #385 from Mkaysi/google-l10n-fi -3989814 Merge pull request #384 from Mkaysi/topic-l10n-fi -de28a95 Merge pull request #380 from Mkaysi/shrinkurl-l10n-fi -85b2197 Merge pull request #379 from Mkaysi/rss-l10n-fi -fa8950b Make type checks in ircutils.safeArgument compatible with Python 3. -8b89014 Google: update l10n-fi. -6e7eb6e Topic: update l10n-fi. -5cb4fbc Network: update l10n-fi. -89a2ed7 Misc: update l10n-fi. -99991b4 PluginDownloader: update l10n-fi. -66e4243 Use 'future' division in src/ircutils.py. -4656fd5 ShrinkUrl: update l10n-fi. -3c3e615 plugins/RSS/locale/fi.po: update headers. -df2d976 Use utils.str.MultipleReplacer instead of str.maketrans. -9760a44 RSS: update l10n-fi -b17228d MoobotFactoids: Use Supybot's shlex instead of the standard library's. -602f1c7 utils/str.py: Use classes Multiple* instead of lambda functions. -17eb6c4 ircmsgs: use classic comparisons instead of str.translate to ensure channel key validity. -e23fa61 Call other.__eq__ in irclib.Irc.__eq__ instead of using the == comparator. -1cb657d Import imap directly from itertools instead of utils.iter. -d52e501 Use open() instead of file(). -505fd58 Use unicode in src/i18n.py -d28fa0c Make Socket driver compatible with py3k. -139f5b4 Make src/callbacks.py more py3k-friendly. -fa35a07 Add utils.str.multipleRemover. -fffccb4 Add utils.str.multipleReplacer. -cd0bfe4 Make gpg key adding/removal work. -21409af Revert "Add ° as a prefix character." -0af7d79 Add ° as a prefix character. -fa67967 And commands to add/remove GPG keys. -59b9ba2 RSS: Update l10n-fr. -4bc5ed4 RSS: Internationalize three strings. -ef78c86 Add configuration variable supybot.reply.format.url. -19a8df5 Fix typo in registry.close(). -d053a66 callbacks.py: Always error when capabilities aren't satisfied. -60cba10 Fix setup.py for fresh installs. -d5f3e18 Google: Add supybot.plugins.Google.oneToOne. -6ccfe95 Prevent last string of a file from being untranslated if .po does not end with a blank like. -9a345cf Truly remove src/version.py from Git. -5033893 Merge branch 'testing' of github.com:ProgVal/Limnoria into testing -82fdc2d core: Internationalize some strings & update l10n-fr & change translation for 'is not a valid %s'. -e8fd445 Misc: Internationalize a string & update l10n-fr. -8bacf67 Fix typo in registry.close(). -bdbb618 Anonymous: Fix l10n-fr. -ea21c7a Google: Fix l10n-fr -afbdcf8 Misc: Fix l10n-fr. -322cedc Fix install guide. -1bf8ab1 Google & Network & PluginDownloader & RSS & ShrinkUrl & Topic & Unix: Update l10n-fr. -e4a1352 Google & PluginDownloader & ShrinkUrl & Topic: Update messages.pot -169392e Messages shouldn't wrap links, set defaults for text wrapper. -7e002ed Fix normalizeWhitespace to support Unicode. -031b093 Math: Allow 'factorial()' in icalc. -27857ff Math: Block factorial() in calc functions. -a3cf9f8 Merge pull request #377 from Hoaas/testing -e19ff32 Google: Fix currency conversions. -ac3724d Games: Add halfop support in @roulette. -c37d8c9 PluginDownloader: Fix issue with repositories that use a subfolder. (fix commit 0a442dfd15832ceb57ff5d9a9897844e367802f3) -95c55c8 PluginDownloader: Add nyuszika7h's repository. -18dd017 Merge remote-tracking branch 'supybot/maint/0.83.4' into testing -c31b6ed Merge pull request #376 from Digital-Lemon/testing -38dcffd Network: update l10n-it. -a42ab2e ircutils.FormatParser: Make getInt only get integers that are valid colors -de89a9b Added @network uptime -51ef07c Added Irc objects creation time -4a6d7fd PluginDownloader: Add Hoaas repo. -b5b02cd core: update l10n-it. -e90f33a (upstream/debian) Update debian/changelog and debian/control. -98e5dce Bump version to +limnoria2. -3ae2ce9 Merge branch 'master' into debian -786d184 setup.py: Correct homepage metadata -f882445 release: Fix repository location -e6d361f release: Revamp to use subprocess instead of os.system -fefacf5 release: Allow specifying a branch to cut the release from. -d1bf3fe release: Use optparse to handle arguments instead of doing it manually -a31350f Consolidate the version string to reside in one central place to ease change making. -c39ad2f Fix KeyError when using colors in a message containing numbers. -ceee427 PluginDownloader: Remove debug output. -0a442df PluginDownloader: Use GitHub's APIv3. -6286558 Replace tabulations in utils.str.normalizeWhitespace. Closes GH-372. -c991175 Math: default %f formatting rounds to 6 decimal places. increase that to 16. -01c0ca6 Merge pull request #370 from nyuszika7h/topic_save -d827dfa Topic: Reply success when saving topic if there was no error -144c9e2 Merge remote-tracking branch 'supybot/maint/0.83.4' into testing -228e958 ShrinkUrl: Update l10n-it. -f78f032 ShrinkUrl: Fix help (add 'goo'). -ce59101 Channel: Update l10n-it -857632c Fix commit c310d74a19ab5179ccca75b1cd455f5d8f8bbcd4 (no more 'Error: error' message on 'Missing capability' error). -9723e14 Prevent possible race conditions in scheduler. -32eef54 RSS: Update l10n-it. -438b50d irclib: Modes aren't case insenstive -6d1b957 irclib: Modes aren't case insenstive -6dbbb8d core: force inet_aton argument to string to prevent occasional error on reconnect. -7cc8fea ShrinkUrl: Support for goo.gl url shortener. -2486be4 RSS: sort and display feed items by date -dfad311 Merge pull request #366 from Mkaysi/INSTALL -f8067cf fix previous commit -19a54af fix previous commit -d94da90 INSTALL.md: add space to fix comment. -199dd1b INSTALL.md: add missing ). -8d74e9a INSTALL.md: make easy to read even in normal text editor. -3fa7125 Merge pull request #365 from Mkaysi/README -2474b37 INSTALL.md: make docs/ link to index.rst. -c860ea0 INSTALL.md: make GETTING_STARTED and CONFIGURATION links. -8b24eeb README.md: make LICENSE link portable & add IRC links. -d41d684 Merge branch 'testing' of github.com:ProgVal/Limnoria into testing -198e525 Success: Allow the plugin to be loaded from a query -1fdf368 Add a test to verify the nick converter honors strictRfc -4c01cb9 registry: Use the correct variable name setName creates the child entry -edca443 Just create schedule.schedule/drivers.Twisted.poller without any guard -7d99c28 Channel: Perform proper capability checks in devoice. -c17d076 Merge pull request #363 from nyuszika7h/progval-testing -a0ad55c Topic: Add save command. Closes GH-332. -1b89274 Fix install (version file) when the source has not been downloaded with Git. -0f10c5a Merge pull request #362 from nyuszika7h/progval-testing -d41acf3 Math: Add cbrt() function -7593edb Math: Allow 'factorial()' in icalc. -e45b9ab Math: Block factorial() in calc functions. -a630cc3 Use ircutils.joinModes() instead of hacky str.join()s in ircmsgs.unbans. -741599c Add the channel where a command has been called in the logs ('XXX called by XXX'). -6f1b60c INSTALL: use --user... -f3a09ce Success: Allow the plugin to be loaded from a query -c574203 Add a test to verify the nick converter honors strictRfc -a1acde1 Use log.critical instead of log.fatal (which does not exist). -b7bc11d Prevent the 'hostmask' converter from returning '*!*@*' while 'foo!*@*' was given. -8ab33bc registry: Use the correct variable name setName creates the child entry -97e71bd Just create schedule.schedule/drivers.Twisted.poller without any guard -14609b3 Add self as an argument to methos in src/dbi.py -1fe4cef Import os before using it. -5be287b Misc: Fix encoding issue with translations using non-ascii characters in @version string. -66ac089 Channel: Perform proper capability checks in devoice. -dea0070 PluginDownloader: Remove debug output. -949df23 PluginDownloader: Enable threading. -0a4e99b Misc: Use the GitHub API in @version. -90e511c Drop src/version.py from the source and generate it with setup.py instead. Closes GH-358. -86f541e Revert "Web: Fix unicode problems for titleSnarfer." -4692f83 Google: Fix HTML escaping. -5edd174 Google: Remove @translate from tests. -e1a56e5 Merge pull request #357 from Mkaysi/INSTALL -8af0701 Merge pull request #356 from Mkaysi/README -28dcc07 INSTALL.md: Add upgrading instructions. -0704eee INSTALL.md: fix 4a6fa12cedc23ff431c5dc71673eb7fa206ba6cf -8ea1778 INSTALL.md fix b1359e1a9c2f0f88f18dca311c1651d88b58a7dc -73e33c5 INSTALL: update installation guide. -2d0c69b README.md: Update README. -a38c2b7 LICENSE: rename to LICENSE.md. -1f60a94 Math: Allow 'factorial()' in icalc. -695078e Math: Block factorial() in calc functions. -9b53b65 Merge pull request #353 from Mkaysi/install -4f32cab Merge pull request #352 from Mkaysi/readme -0484f36 INSTALL: Convert to markdown. -96a3590 README: "Convert" to markdown. -d23757e Google: Remove translate command. Closes GH-337. -14cad12 Merge pull request #350 from Hoaas/testing -febd90f Merge pull request #349 from Mkaysi/supybot-plugin-create -901a034 PluginDownloader: update l10n-it. -3579701 Web: Fix unicode problems for titleSnarfer. -c9dab25 scripts/supybot-plugin-create: Fix issue #181. -96b0ae0 Merge branch 'testing' of github.com:ProgVal/Limnoria into testing -654b618 Fix typo in src/test.py -a274f25 Fix commit f4b81659. -c83481b Use self instead of non-existing variable name. -9352322 Fix typo in schedule. -4463493 Check globals() instead of catching NameError. -af46059 Add self as an argument to methos in src/dbi.py -776ce96 Import os before using it. -207f6ec Google: Fix bad json format. -c310d74 Enfore capability checks when supybot.reply.error.noCapability is False. -bb2c8d4 Merge pull request #345 from Mkaysi/plugindownloader-l10n-fi -9cba1e4 PluginDownloader: Add @info command. -f8a3de4 PluginDownloader: fix l10n-fi. -9dcb976 PluginDownloader: fix l10n-fi. -5f5a9f7 PluginDownloader: update l10n-fi. -99660aa Merge pull request #344 from Mkaysi/plugin_help_plugindownloader -7fadad0 PluginDownloader: add @plugin help PluginDownloader. -124ca33 AutoMode & Unix: Update l10n-fr. -63f8c10 core: update l10n-fr. -d71b1a8 Merge pull request #341 from Mkaysi/l10n-de -5e1cb6e User: update l10n-hu. -04f0660 Misc: update l10n-hu. -b865e80 Owner: update l10n-hu. -93215d0 Alias: update l10n-hu. -71ccf21 Time: update l10n-hu. -f15312b Channel: update l10n-hu. -fbb50fc Merge pull request #338 from Mkaysi/factoids-fi -3f75168 User: update l10n-de. -b688eab Web: update l10n-de. -a5074c4 Status: update l10n-de. -a9db7f0 Misc: update l10n-de. -7ad3328 PluginDownloader: update l10n-de. -dcf80de Owner: update l10n-de. -0f8ba0f AutoMode: update l10n-de. -7babbbc Alias: update l10n-de. -9598a9f Time: update l10n-de. -9428e9a Seen: update l10n-de. -cc82aa4 Channel: update l10n-de. -f74c6bf Factoids: update l10n-fi. -83cd0df Factoids: fix l10n-fi. -4261bcc Update core l10n-it and l10n-fi. -977f3f5 Fix typoes in core. -418d1b9 AutoMode & Channel & Time & Unix: Update l10n-it. -a2f82be Merge pull request #336 from Mkaysi/automode-l10n-fi -548ab6f AutoMode: fix & update l10n-fi. -8760766 PluginDownloader: Add l10n-fr. -fe9197e AutoMode: update messages.pot. -bd6ff97 Factoids & Format & Praise: fix l10n-fi and l10n-it. -8ce56c0 Merge pull request #335 from Mkaysi/core-fi -bc30c98 core: add l10n-fi & update messages.pot -92027d1 Fix help for supybot.directories.backup. -9d6b132 i18n: Fix issue with the bot sending the repr() of the string on IRC when translation has 'new line' characters in it. -f51fbd0 PluginDownloader: Add a bunch of new plugins: Antibody's, doorbot's, boombot's, mailed-notifier, pingdom, scrum. -cf4b4e3 Merge pull request #333 from Mkaysi/core-messages.pot -0f249b3 core: update messages.pot -06832d6 Channel: Add capability checks in @voice -945b34d BadWords: Add support for +h. -e8627ed Merge pull request #331 from Mkaysi/unix-l10n-fi -fe61332 Unix: update l10n-fi. -5cafbc5 Unix: update messages.pot -70a1ace Add tests for Unix.sysuptime and Unix.sysuname. -7de277d Add commands Unix.sysuptime and Unix.sysuname. -cf073bb Fix duplicated sentence in supybot.directories.backup's help. -a40cf1c Time: Fix redundant error when pytz is not installed -e6032c6 AutoMode: Add configurable delay. Closes GH-188. -8558640 schedule: Add parameters args and kwargs. -bad5364 Fix commit ed5f79c0. -113ddf8 Internet: Remove special handling for Verisign in @dns. -18b16d8 Change the minimal number of non-wildcard characters in hostmask from 8 to 3. Closes GH-276. -dbf1640 Import ircmsgs.modes() from ubotufr. -ed5f79c Use ircutils.joinModes() instead of hacky str.join()s in ircmsgs.unbans. -74a3d61 Merge branch 'merge-supybot-master' into testing -2432df1 Fix SSL issues caused by redundant patches. -e92b8a6 Merge supybot's master (will make future merges easier) -89686da Merge pull request #327 from Mkaysi/INSTALL -9f0c091 Merge branch 'progval' into INSTALL -eb48406 INSTALL: Remove useless mentioning of PYTHONPATH. -d2bfc29 Merge pull request #326 from Mkaysi/INSTALL -4fd4e81 INSTALL: use --user... -d50dabb Merge pull request #323 from Mkaysi/setup.py -fab5bb6 setup.py: Require Python 2.6 or newer. -590a992 Add the channel where a command has been called in the logs ('XXX called by XXX'). -11417ce Core: Update l10n-fi. -aedfc07 Update l10n-it. -a5e8f8e Allow supybot.directories.backup to be /dev/null. -63bc155 Google: update l10n-fi. -837b7e8 Web: update l10n-fi. -89191b8 Status: update l10n-fi. -b3d9a47 Misc: update l10n-fi. -e2d04ae PluginDownloader: update l10n-fi. -7c2f77d Owner: "update" l10n-fi. -efa90de Alias: update l10n-fi. -5108a60 Time: update l10n-fi. -540c943 Seen: update l10n-fi. -e6fe302 Channel: update l10n-fi. -808ed5c Update l10n-fr. -e31a88d Merge pull request #321 from Mkaysi/install -ccf7dd1 INSTALL: Update the minimum Python version from 2.4 to 2.6. -97d7526 INSTALL: Update the recommended pysqlite version to 2.X. -46a8904 Update all plugin .pot files. -4e7cec2 Merge branch 'master' into testing -766641e Merge pull request #319 from Hoaas/master -a1ab4b7 Google: Fix UnicodeEncodeError in Calc. -ce12145 Channelstats: require caller to be in target channel when using commands in this plugin. -7283235 Seen: require caller to be in target channel when using commands in this plugin. -5b0faad Misc: Handle KeyError in 'completenick'. Closes GH-315. -99ad2d1 BadWords: Fix commit 123c17663732e0130fcf2b3fb53e949667aca4cf. -e2c1add Misc: Fix search of unloaded plugins if Misc is not in supybot install dir. -68bcffb Merge branch 'master' into testing -8e4090f Status: Add network command -123c176 BadWords: Make configuration variable requireWordBoundaries channel-specific -fcfa483 Just update the version number. -44c10a0 Web: Update message.pot. -56afad7 Alias: Fix the help for @alias add. -816ae14 Success: Fix load in private query. Closes GH-313. -7bb72c7 Channel: Fix docstring. Closes GH-128. -1606e2d Owner: Fix docstring. Closes GH-133. -5c9a62e Channel: Fix docstring. Closes GH-129. -f18850e Misc: Add @completenick. Closes GH-154. -d8ecc7d Ctcp: Add configuration variable supybot.plugins.Ctcp.userinfo. Closes GH-204. -8add491 Anonymous: Use channel-specific variables. Closes GH-232. -570e30f Pass supybot.protocols.irc.strictRfc to ircutils.isNick in 'nick' converter. Closes GH-312. -3a59601 Web: Fix supybot.plugins.Web.nonSnarfingRegexp and update l10n-fr and l10n-it. -ccc9185 Admin: Update l10n-it. -41e5c26 Status: @cpu was giving a wrong value for the memory use (1024 times lower). -5fb96ff Merge branch 'testing' -6b0e530 Use log.critical instead of log.fatal (which does not exist). -33debcd sandbox/update-version: Simplify logic in updating version while still using UTC time. -2c4adf1 core: Continue l10n-fi. -67e457f core: Continue l10n-fi. -2e9dcfa User: add l10n-fi. -0bc57c9 User: fix fuzzy l10n-fi. -c2dec57 User: continue l10n-fi. -957311e Fix UTC use in sandbox/update-version. -eb1e047 Fix previous merge. -f6374ed Merge pull request #306 from Mkaysi/update-version -bfb3dd2 update-version: Fix misleading comment. -ab37995 sandbox/update-version: vim modelines exist. -f922c09 sandbox/update-version: fix typo in comment. -a3f4fe3 update-version: Use UTC with version timestamps. -26e9671 sandbox/update-version: bash isn't always in /bin. -b7b3235 Admin: Edit all l10n files to the string. -2a8f814 Revert "Fix commit ce552d56" -efb6dc1 Fix commit ce552d56 -38072df Merge pull request #305 from michealh/testing -ce552d5 Fixed a issued with +r channels on freenode? Maybe all ircd-seven or charybdis servers, now displays messages. Also fixed a small grammer mistake -6e32d10 Fix commit 6e699816 (bot always joined on invite) -1fd0657 User: continue partial l10n-fi and unmark fuzzy with correct string. -34f6b6d Channel: fix l10n-fi. -0784ba5 Admin: fix l10n-fi. -1432790 User: update l10n-fi. -74c8c14 Unix & User: update l10n-it. -c2fc7b7 Merge pull request #301 from nyuszika7h/testing -6e69981 Channel: Make supybot.alwaysJoinOnInvite channel-specific. Closes GH-159. -1266deb Merge pull request #300 from nyuszika7h/testing -c656abf irclib.py: Add network name to 'Outgoing message' debug log message -fc3d3e6 Prevent the 'hostmask' converter from returning '*!*@*' while 'foo!*@*' was given. -37023f5 MessageParser: fix two misspell -95a9ffa User: Fix Mkaysi's mess with the messages.pot. -4924dd7 Merge pull request #297 from Mkaysi/mkaysi -45da6a2 Ctcp: fix l10n-de & fix l10n-fr & update l10n-fi. -5f9d2ec core: start l10n-fi. -3046dea Merge pull request #295 from nyuszika7h/testing -acb3364 Alias: Fix l10n-hu -71c7f39 Unix: Make plugin.py:190 localizable and regenerate messages.pot -0e1d8ef Merge pull request #294 from Mkaysi/mkaysi -b7b1e15 Unix: update l10n-fi. -c510bae Merge pull request #293 from nyuszika7h/testing -dd8685e Alias: Fix l10n-hu -277080a Unix: Made plugin.py:190 localizable and regenerated messages.pot -1c01dc2 Unix: Add configuration variable spell.language -c8a8c2f Merge pull request #292 from Mkaysi/mkaysi -66ea215 Topic: update l10n-fi. -3ec2b16 User: Fix copyright in l10n-hu -6421aeb Merge pull request #291 from Mkaysi/mkaysi -edf3851 Web: add l10n-fi. -51e7447 Merge pull request #290 from Mkaysi/mkaysi -c07a267 Utilities: add l10n-fi. -77597d2 User: Add l10n-hu -990801a Utilities: start l10n-fi. -00d9a38 User: add l10n-fi. -20ab951 Merge pull request #289 from Mkaysi/mkaysi -b5feac3 User: fix one string (add she) & update messages.pot & update l10n-fi & continue l10n-fi. -ad9b0aa User: continue l10n-fi. -e77aeb8 User: continue l10n-fi. -2f6e648 Merge branch 'testing' of github.com:ProgVal/Limnoria into mkaysi -3a57cda User: add partial l10n-fi. -993c004 Merge pull request #288 from Mkaysi/mkaysi -4e38be7 URL: add l10n-fi. -aef609f Merge branch 'testing' -ff96b89 RSS._getConverter: Encode strings before handing them off to other functions -4e91e84 Merge branch 'testing' of github.com:ProgVal/Limnoria into mkaysi -ba3d3ac Merge pull request #287 from nyuszika7h/testing -8af27f4 Unix: Make configuration variable fortune.offensive channel-specific -751a3ef Unix: Make configuration variable fortune.short channel-specific -49aac12 Merge branch 'testing' of github.com:ProgVal/Limnoria into mkaysi -43a3285 core: avoid casting data to string if it is already an instance of basestring, in irc.reply. -fbc6ffc Merge branch 'testing' of github.com:ProgVal/Limnoria into mkaysi -0677e62 Unix: add l10n-fi. -7dba155 Unix: add l10n-fi. -e0c08d3 core: avoid casting data to string if it is already an instance of basestring, in irc.reply. -c10f62b Unix: add partial l10n-fi. -d9531d2 Fix parsing of 004 message for supported umodes/chanmodes -72077c8 Google: fix previous cherry-pick. -b991c86 Google: use web scraping as fallback to ig api -e1ffe0f Google: use google ig api for the calc. no more web scraping. let's hope this stays alive. -5217f85 Fix previous merge (again). -332420b Fix previous merge. -d1bc792 Simplify handling of per-network waitingJoins -761435b Services: catch occasional error when removing waiting joins from list -8c3304c Services: fix problem with some channels being mixed up between networks on startup, when noJoinsUntilIdentified is true. -7e05510 Only use ircmsg.whois's mask argument if it's non-empty. -b8c43dc Perform all received* IrcMsg tagging in one spot. -f0233c3 Prevent nesting of Misc.tell -d1df9e8 Use socket.inet_aton for isIPV4 since Windows doesn't (always?) have inet_pton -ce9d04e Google: use web scraping as fallback to ig api -4fe8fe4 Google: use google ig api for the calc. no more web scraping. let's hope this stays alive. -05adad6 Simplify handling of per-network waitingJoins -faf2608 Bug fixes in src/ircmsgs.py -e2f2751 Only use ircmsg.whois's mask argument if it's non-empty. -be94159 Perform all received* IrcMsg tagging in one spot. -c606ba6 Debug: Fix import. (cherry picked from commit a79e9c0cad23cb6917a95a17598e46ed00643fdf) -bcdc8ec Prevent nesting of Misc.tell -63ec70b Use socket.inet_aton for isIPV4 since Windows doesn't (always?) have inet_pton -d8ead9b One last fix to umode filtering. -2fb9ac2 Fix IRC.do376's handling of supported state -23f07ca Fix parsing of 004 message for supported umodes/chanmodes -ab9365f Fix filtering of unsupported umodes -865e87c Misc: Avoid setting up "invalid command" flood handling if its not enabled -23bfe11 irclib: Filter out unsupported umodes before sending them to the server -edbf43f irclib: Add support for 004 messages from the server -c2b6633 Channel.nicks: Raise error so we don't actually reply with the nicks. -3248bd7 NickCapture: Fix plugin help and l10n-fr. Closes GH-116. -90b7a83 Topic: fix typo in @unlock help. -3d5f92a Topic: Fix bad doctring -f313665 Factoids: Fix typo. -0a6d38f Channel: fix NameError: 'replyirc' -> 'replyIrc'. Closes GH-73. -11b5ca3 Karma: fix typo. Closes GH-38. -a6f9c1c Protector: Fix variable name. -f78803a Relay: remove redundant nick on join/part when hostmasks enabled -a93d3fe AutoMode: fix bans. -b99525d Owner: Fix bug with @enable and @disable if a plugin is given. Closes GH-43. Closes GH-44. -b42b06f RSS._getConverter: Encode strings before handing them off to other functions -50e4b6b String.decode: Only encode('utf-8') when the decode string is unicode -ca23cbb Merge branch 'maint/0.83.4' -c90fafe Simplify handling of per-network waitingJoins -1e1b397 Services: catch occasional error when removing waiting joins from list -d5648ab Services: fix problem with some channels being mixed up between networks on startup, when noJoinsUntilIdentified is true. -71bcc2b Services: add some more strings indicating identification success. -998819d Bug fixes in src/ircmsgs.py -f6f9e65 Only use ircmsg.whois's mask argument if it's non-empty. -4ddfae4 Perform all received* IrcMsg tagging in one spot. -a79e9c0 Debug: Fix import. -5b4c150 Prevent nesting of Misc.tell -360a203 Use socket.inet_aton for isIPV4 since Windows doesn't (always?) have inet_pton -78accda Since: Fix traceback. -f1852f2 Seen: Fix error message ('You must be in') for @since. -0caf7db Fix network registration (SASL password should not be set up on registration). -a98b2df core: make sure owner is never ignored. also simplify the logic flow in ignore checking. Thanks m4v for the patch! -f937710 Merge branch 'ownerignore' -f3e5223 Undo the web title fix because it appears it broke more than it fixed. -20bfa97 core: make sure owner is never ignored. also simplify the logic flow in ignore checking. Thanks m4v for the patch! -6d1cf73 Games: Update l10n-it. -8787b36 Scheduler: Fix typo in l10n-fr. -05b32b4 Services: Fix traceback on NickServ notice. -6a4a7b0 Merge pull request #274 from Mkaysi/mkaysi -0f3c2f5 Topic: add l10n-fi -8413a65 Topic: continue partial l10n-fi. -8b73f78 Merge branch 'maint/0.83.4' -4833976 One last fix to umode filtering. -7bb41fe Merge pull request #272 from fbesser/fbesser -e41e5ca Services: Add l10n-de -663308c Channel: Fix l10n-de -15fee0b Seen: Fix l10n-de -dbb3e9c Debug: Fix import. -ce20d8e Channel: Update l10n-de -b5187ea Fix commit b23480b9 again. -efd158d Fix commit b23480b9. Closes GH-267. -348d1bd Fix typo (lamda => lambda). -f232eaa Merge pull request #268 from fbesser/fbesser -6c32f85 Status: Add l10n-de -572e081 Todo: Add l10n-de -c562158 Games: Add l10n-de -566904e Seen: Add l10n-de -7c1800e PluginDownloader: Add l10n-de -2aa6e5f User: Fix l10n-de -cf81262 Google: Apply gholms's patch to fix @calc match. -a93750b Admin: Update l10n-it. -7ad9788 Merge branch 'testing' of github.com:ProgVal/Limnoria into testing -d633642 Fix IRC.do376's handling of supported state -4232e40 Fix parsing of 004 message for supported umodes/chanmodes -3bfda3c Fix filtering of unsupported umodes -ae64f66 Success: Added a description to READEME.txt -819d212 ShrinkUrl: Added a description to README.txt -a913f4c Web: Added a description to README.txt -08c2bbb Services: Added a description to README.txt -752eaab Seen: Added a description to README.txt -0ebe41f Todo: Added a description to READEME.txt -a921b7f Topic: Added a description to READEME.txt -25b3a8a Success: Added a description to READEME.txt -4e9c76b Scheduler: Added a description to README.txt -99de7b2 Time: Add l10n-hu. -1c6ff67 RSS: Fix l10n-hu. -dc59383 Merge pull request #264 from fbesser/fbesser -d965daa User: Update l10n-de -2ff43a4 Owner: Update l10n-de -f32c65b Misc: Update l10n-de -60b627e NickCapture: Add l10n-de -7876621 Later: Add l10n-de -d18afe2 Dunno: Add l10n-de -b93b6ce AutoMode: Add l10n-de -4903b65 Merge pull request #262 from fbesser/fbesser -6cd880a Alias: Add l10n-de -fbee692 Plugin: Fix l10n-de -6415f99 Admin: Update l10n-de -74b98f5 Merge remote-tracking branch 'supybot/master' into testing -c639973 Merge pull request #261 from Mkaysi/mkaysi -4083eab Topic: Add partial l10n-fi. -0904875 Admin: update l10n-fi. -a231abc Admin: Internationalize docstring for clearq + l10n-fr. -e643a00 Merge pull request #258 from fbesser/fbesser -8b928d4 Utilities: Add l10n-de -f26af18 Time: Add l10n-de -cba8c78 Network: Add l10n-de -6861bf8 Ctcp: Add l10n-de -dd4eebc Admin: Add l10n-de -c677077 Admin: Add clearq command. -c91916a Misc: Avoid setting up "invalid command" flood handling if its not enabled -92ff5f4 Merge branch 'check-umodes' into maint/0.83.4 -02c0d0c Merge branch 'check-umodes' -b23480b irclib: Filter out unsupported umodes before sending them to the server -c9e548b irclib: Add support for 004 messages from the server -69fe2e0 Network: Keep the trailing # to channels, even if the user is voiced/halfoped/oped/whatever on it. -8b616d2 RSS: update l10n-de l10n-fi l10n-it. fix l10n-fr. -8add665 Update l10n-fr. -dd4947d Merge pull request #257 from fbesser/fbesser -21b73bf RSS: internationalized announcementPrefix default value -7d1c270 Fix commit c0beda2422a26c0b2ba104e631861dc3e898e631. -08405c6 Fix Windows support (broken in 543e7882). -c0beda2 Allow owner to kban ops. Closes GH-215. -61157f1 Remove buggy configuration variable help. -be438b4 Add configuration variable supybot.servers.http.robots. -4b805a6 Merge branch 'testing' of github.com:ProgVal/Limnoria into testing -31e5736 Merge pull request #255 from fbesser/fbesser -e9612e9 Update l10n-de -c9a6b2f Owner: Update l10n-de -8ec2753 Channel: Add l10n-de -9ac6670 RSS: Add l10n-de -18264a2 User: Add l10n-de -9f5f3ed Reply: Add l10n-de -377f8bb Anonymous: Add l10n-de -4c05d97 Karma: Take profit of the return value of conf.registerPlugin(). -eefddc7 Merge pull request #249 from fbesser/fbesser -9d63b23 Owner: Add l10n-de -67ede3d Misc: Add l10n-de -e253fe1 Allow network-specific nicks. Closes GH-134. -ceabe07 Merge remote-tracking branch 'supybot/master' into testing -2902532 Merge pull request #248 from Mkaysi/mkaysi -a87c096 Allow plugins to take over a subdirectory of the HTTP server. -51e0284 Web: Fix l10n-it. -bf1ed70 Plugin: Update l10n-de -a8f4cb1 Config: Update l10n-de -e84dc3b Merge remote branch 'progval/testing' into mkaysi -dcccc4a PluginDownloader: add l10n-fi. -a5de3e9 PluginDownloader: add messages.pot -9cefad2 Config: Add l10n-de -abec4a0 Plugin: Add l10n-de -2ab2e0e Merge pull request #247 from fbesser/fbesser -ffb19f7 Web: Add l10n-de -74cd35f Web: localized 'Title:' in titleSnarfer -5225700 Merge pull request #246 from Mkaysi/mkaysi -0c05c22 Topic: start l10n-fi. -86afbe5 Todo: add l10n-fi. -6ee49eb Merge pull request #244 from fbesser/testing -27f5972 Added l10n-de -5b95635 Merge pull request #243 from Mkaysi/mkaysi -f76c7e3 Time: Add l10n-fi. -866fa1e Merge pull request #241 from nyuszika7h/testing -27e4dd6 Alias: Add l10n-hu -1d47e07 Merge pull request #240 from Mkaysi/mkaysi -12ee3bd Success: fixed author email. -9d33bc2 Success: added l10n-fi. -9b5019e Merge branch 'nick-access' into maint/0.83.4 -755fe11 Merge branch 'nick-access' -0869a8e Channel.nicks: Raise error so we don't actually reply with the nicks. -3c69fad Merge branch 'typos' into maint/0.83.4 -9b855be Merge branch 'typos' -a1a90f7 NickCapture: Fix plugin help and l10n-fr. Closes GH-116. -f1690e6 Topic: fix typo in @unlock help. -9561c9f Topic: Fix bad doctring -8fb4cbc Factoids: Fix typo. -8056da0 Channel: fix NameError: 'replyirc' -> 'replyIrc'. Closes GH-73. -fa83855 Karma: fix typo. Closes GH-38. -70a6e69 Protector: Fix variable name. -fb8f074 Merge branch 'relay-nick-hostmask' into maint/0.83.4 -05529e2 Merge branch 'relay-nick-hostmask' -ce4d265 Relay: remove redundant nick on join/part when hostmasks enabled -58eee3c Merge branch 'automode-conf' into maint/0.83.4 -bab5bc6 Merge branch 'automode-conf' -5dcbe57 AutoMode: fix bans. -d5593bb Merge branch 'disable' -3db5727 Merge branch 'disable' into maint/0.83.4 -8fb97c5 Owner: Fix bug with @enable and @disable if a plugin is given. Closes GH-43. Closes GH-44. -964c73f RSS._getConverter: Encode strings before handing them off to other functions -01c8dc7 String.decode: Only encode('utf-8') when the decode string is unicode -8f7c4bd Fix banmask creation. Thanks Progval for the patch! -df5391d Socket driver: implement ssl connection support. -331d064 Merge pull request #237 from Mkaysi/mkaysi -49ae457 String: added l10n-fi. -079ec6a Merge pull request #236 from Mkaysi/mkaysi -e0185a0 String: start l10n-fi. -be9b027 Status: added l10n-fi. -b533290 Web: fix problems with title snarfer and unicode due to bug in HTMLParser in python 2.6+ -1c32140 Topic: Ensure do315's response is for a channel in our state object -60834f2 Honor supybot-test's timeout option and document the units -a8736d9 Seen: Anchor nick regexp to ensure valid match. -59936f5 Update Internet.hexip to handle IPv6 -5c91399 Update Internet.dns to handle IPv6 IPs and responses -36eb350 Add utils.net.isIPV4, with utils.net.isIP checking v4 or v6 -a46176e Fix URL to plugins and default page charset in HTTP server. -4e658bb Merge pull request #223 from Mkaysi/mkaysi -0a30915 ShrinkUrl: added l10n-fi. -ba4e4a6 Merge remote-tracking branch 'progval/testing' into mkaysi -90ad256 Misc: Fix order of replies of @tell, in order to fix issue with nesting. -669a8a8 Merge pull request #214 from Tannn3r/master -e9697ff Merge pull request #213 from nyuszika7h/testing -25dcadf conf.py: remove surrounding spaces around '=' for sasl_username. -e140fc7 conf.py: Change username to sasl_username and add it as last argument. -ca502c6 irclib.py: Added network name to SASL authentication success/fail. -c8c2f12 conf.py: remove part about server-specific password for supybot.networks..sasl.password. -e02104e Merge remote-tracking branch 'progval/testing' into l10n-fi -dcaefbd Add SASL support to core. -e0625fa Time: Added a description to README.txt -3a12411 Status: Added a description to README.txt -a2e5c18 ShrinkURL: Added a description to README.txt -bb9f904 Reply: Added a description to README.txt -ef62a1b Relay: Added a description to READEME.txt -cac8d57 URL: Added a description to READEME.txt -1344466 Merge pull request #209 from Tannn3r/master -ca2d73b Added a description. -7ccd147 Added a description. -46f6314 Added a description. -a0a39d0 Added a description. -d9a9c64 Added a description. -baa966a Added a description. -953149f Added a description. -2a16ebe Added a description. -aad9f56 Added a description. -c2af09f Added a description of the plugin. -4463da2 Added a description on how to use the Lart plugin. -b80d6b2 Karma: Fix SQLite threading issue. Closes GH-206. -2a0e232 Merge pull request #205 from Mkaysi/testing -2a958cd Karma: added README. -904503e Ctcp: Update CTCP-Source reply. Closes GH-203. -151c6a0 ChannelStats: Update l10n-it. -aeeea0f Merge branch 'testing' into l10n-fi -033ddee Merge branch 'testing' into l10n-fi -81d5c1d Merge pull request #194 from nyuszika7h/testing -2f6acdf Misc: Add --unloaded option. -f273687 Limiter: Add l10n-hu. -46e16d7 Added merge.sh to gitignore -9d6c9c6 Removed push.sh from the repo. I put it there by accident. -caa20fb Added push.sh to gitignore -6be6c91 Merge branch 'master' into testing -af65f64 PluginDownloader: Fix overwrite of existing plugin. -2a3fc2a ChannelStats: Add l10n-it. -dda08e0 RSS: Fix typo (fnor -> for). -08a2821 RSS: bug fix. (Bad import from gribble?) -e98ac0f Some improvements to the commands.process function - better process naming and informational output. -be585ec Merge remote-tracking branch 'supybot/maint/0.83.4' into testing -5ada919 Honor supybot-test's timeout option and document the units -4661acb Honor supybot-test's timeout option and document the units -fe16aae (tag: v0.83.4.1+limnoria1) Debianize Supybot and update version to 0.83.4.1+limnoria1. -fb66be5 Revert "Utilities: Add l10n-it." -f37db99 Utilities: Add l10n-it. -7f076b1 Merge pull request #176 from Mkaysi/testing -22c463b Merge remote-tracking branch 'nyuszika7h/testing' into testing -cee1a39 Channel: fixed typos. -4d4fa62 ChannelLogger: Fix l10n-hu. -7aaf9fc Owner: Fix l10n-hu. -1577cc8 RSS: Fix l10n-hu. -11e5dee Merge pull request #174 from Mkaysi/testing -98f8242 Ctcp: fixed l10n-fi -80f9b7e Channel: fixed more typos. -679b8f2 Merge remote-tracking branch 'progval/testing' into testing -cebf67f Time: Fix redundant (and un-user-friendly) error message. -c63eefb Channel: fixed typos in l10n-fi. -9632c4b BadWords: fixed more typos. -2c675ba BadWords: fixed typos in l10n-fi. -fc2b67d Merge remote-tracking branch 'progval/testing' into testing -22eb147 Channel: Really deny access to the nicks list. Closes GH-172. -7c14992 RSS: don't output anything if there are no headlines remaining after filtering. -a091456 Merge remote-tracking branch 'progval/testing' into testing -5f9c889 Merge pull request #169 from nyuszika7h/testing -37597bf Create a commands.process function which runs a function inside a separate process. This is the only way to limit the execution time of a possibly long-running python statement. Use this on String.re, due to the possibility of pathologically long re matching in python. This allows us to remove the 'trusted-only' restriction on string.re. In the future, this should probably be used in other places that take user-supplied regexps, such as 'misc last --regexp', for example, as well as other potentially long-running tasks that can block the bot. -c270111 RSS: fix bug failing to define a variable under some conditions before referencing it. -0418c64 Channel & Misc & Reply: Update l10n-hu. -a345262 Factoids: fix bug when making an alias to a newkey that already has a factoid associated with it. -27e4390 Merge remote-tracking branch 'nyuszika7h/testing' into testing -749ae84 Merge remote-tracking branch 'progval/testing' into testing -0c2e55a AutoMode: fixed some typos. -505b9a5 Anonymous: Fixed typos in l10n-fi. -0d97ada Merge branch 'master' into testing -dd040f8 RSS: add channel-specific blacklist and whitelist. -af32d6b RSS: add channel-specific blacklist and whitelist. -1c5cdb9 Merge pull request #162 from Mkaysi/testing -08ffe91 Alias: fix l10n-fi. -aa621f9 Admin: fixed l10n-fi. -9b7e53e Services: added l10n-fi -1f18619 Services: added partial l10n-fi. -6d0622e Services: added partial l10n-fi. -80c81a7 Added "*.mo" to .gitignore -9477ba2 Merge remote-tracking branch 'progval/testing' into testing -3fa45b3 Secure some more commands which take a regexp from untrusted user input. -0e3002d String: set default re subprocess timeout to 0.1, since that should be quite enough. -e11dc28 Misc: fix potential ddos when misc.last command is fed a specially-crafted regexp. -91ac1c2 String: fix it up to work with the previously committed enhancement for subprocess timeout. -3526d5d src/commands.py: make subprocesses raise an error on timeout, rather than return a string -e23bd93 Secure some more commands which take a regexp from untrusted user input. -47fdfe2 String: set default re subprocess timeout to 0.1, since that should be quite enough. -57884bb Misc: fix potential ddos when misc.last command is fed a specially-crafted regexp. -3e03758 String: fix it up to work with the previously committed enhancement for subprocess timeout. -2feaddb src/commands.py: make subprocesses raise an error on timeout, rather than return a string -08e676e Misc: fix test for misc.last -d85cbd2 Misc: Security fix to @last: time-consuming could freeze the bot. Closes GH-157. -8d6ce79 Time: Remove useless/bad/wrong error message from @tztime. -2caae4d Merge branch 'testing' of github.com:ProgVal/Limnoria into testing -1fa0267 Revert "In registry.py, test whether a requested configuration variable is a channel name before creating it automatically. Closes GH-63." -54aef4f Later & Misc & Seen & Todo: Update l10n-it. -522ae70 Merge remote-tracking branch 'progval/testing' into testing -0ec1c6a Merge pull request #151 from Mkaysi/testing -0098ab8 NickCapture: update l10n-fi -11f6220 Misc: update l10n-fi -872e0ba Merge remote-tracking branch 'progval/testing' into testing -3a9bf0f Later: update l10n-fi. -8b52943 Owner: update l10n-fi -9d885b0 ChannelLogger: update l10n-fi. -9ab6f27 Ctcp: update l10n-fi -97c6798 Karma: update l10n-fi -e820179 Format: update l10n-fi -111df53 Reply: update l10n-fi. -3dd6113 Seen: update l10n-fi. -618200c Merge remote-tracking branch 'progval/testing' into testing -4a69f68 Merge remote-tracking branch 'progval/testing' into testing -98996be Services: catch occasional error when removing waiting joins from list -6dca55d Services: fix problem with some channels being mixed up between networks on startup, when noJoinsUntilIdentified is true. -cf43663 Admin & Anonymous & AutoMode & Channel & Misc & NickCapture & Seen & Todo & URL: Update l10n-it. -d8c0f46 Merge branch 'testing' of github.com:ProgVal/Limnoria into testing -bc36deb ChannelLogger & Format & Karma & Later & Misc & Owner & Reply & Seen & Status & Todo & URL & Unix: Update messages.pot and l10n-fr. -6e5350d ChannelLogger & Format & Karma & Owner & Reply & Status & URL & Unix: Fix typoes. -233d56f Services: started l10n-fi. -b99071b Moved defaultbranch from master to testing, because all translations happen there. -c5da615 Changed description at GitHub. -0ea6729 Merge remote-tracking branch 'progval/testing' into testing -3a96f67 Services: catch occasional error when removing waiting joins from list -82701ab Merge pull request #140 from Mkaysi/testing -0f9907f Nothing :D -18f26b7 Merge remote-tracking branch 'progval/testing' into testing -266a76e Seen: added l10n-fi. -affb320 Merge pull request #139 from Mkaysi/testing -d055fec Merge remote-tracking branch 'progval/testing' into testing -12c2251 Scheduler: added l10n-fi. -d26fee5 Merge pull request #138 from Mkaysi/testing -5d4da87 RSS: added l10n-fi. -f3b6b18 Reply: Fix typo and update l10n-*. Closes GH-125. -52e0bc5 NickCapture: Fix plugin help and l10n-fr. Closes GH-116. -2e0f33f User: Admins can now see capabilities of other users. Closes GH-106. -9cd2c31 Misc: Notify the caller when @tell succeeded. Closes GH-97. -e2b598d Update core l10n-it. -7e88bb1 Update l10n-it for many plugins. -a2546e7 Merge branch 'master' of git://supybot.git.sourceforge.net/gitroot/supybot/supybot into testing -0ec578e Merge branch 'testing' of github.com:ProgVal/Limnoria into testing -fb278f4 MessageParser: update internationalization. -a7c6a63 MessageParser: fix typo. -1af08c2 Admin & Channel & Games & Math & MessageParser & Misc & MoobotFactoids & Network & Nickometer & Owner & Praise & Relay & Reply & Topic & Unix & Web: update/add l10n-it. -4ac82fb src/httpserver.py: fix typo. -7d8258f Core l10n-it. -94548c4 src/conf.py: fix typos. -967f943 Merge pull request #136 from Mkaysi/testing -5c96abe Merge remote-tracking branch 'progval/testing' into testing -8ca6147 Merge pull request #135 from nyuszika7h/testing -aa2004d ChannelLogger: fixed l10n-fi. -5cf4534 RSS: l10n-fi 18% -0e5f473 RSS: l10n-fi 23% -eb0f0ac Merge remote-tracking branch 'nyuszika7h/testing' into testing -2543066 Merge remote-tracking branch 'progval/testing' into testing -0cd4939 Seen: Anchor nick regexp to ensure valid match. -cb87286 ChannelLogger: Add l10n-hu. -45b27a7 Math: Update l10n-hu. -fd53269 RSS: l10n-fi 14%. -44eb449 Topic: Ensure do315's response is for a channel in our state object -41eb439 Merge pull request #132 from nyuszika7h/testing -4a9fab5 Math: Added partial l10n-hu. -f8da51c Owner: Add l10n-hu. -168d6e5 Merge remote-tracking branch 'progval/testing' into testing -1694f7b Ctcp: Add l10n-hu. -d4eed76 Merge remote-tracking branch 'progval/testing' into testing -b277955 Merge pull request #130 from nyuszika7h/testing -6e3bdcc RSS: Add l10n-hu. -ec34f77 Merge remote-tracking branch 'progval/testing' into testing -09479e9 Misc: Update l10n-hu. -c9f48d8 Misc: Added partial l10n-hu. -d62f12b Config: Add l10n-hu. -5913c26 Reply: Add l10n-hu. -69e02b1 Channel: Update l10n-hu. -32fdd74 Merge pull request #123 from Mkaysi/testing -d36bdcd RSS: l10n-fi: 0%. -ae323e1 Reply: added l10n-fi. -3881129 Relay: added l10n-fi. -6f9a2ed Relay: l10n-fi: 36% -dcdc171 Channel: Added partial l10n-hu. -11be78d Relay: l10n-fi: 31%. -fe8594c Channel: fixed l10n-fi in Alias. -574ed63 Relay: l10n 18%. -5ee21e5 Relay: started l10n-fi. -ef70602 QuoteGrabs: added l10n-fi. -c71d301 QuoteGrabs: l10n-fi 60%. -9a65811 MoobotFactoids: fixed mistakes and added ACTION to README. -7ffe499 Merge pull request #115 from Mkaysi/testing -29bd40b MoobotFactoids: fixed issue #110 at ProgVal/Limnoria. -1fe0ec0 Plugin: fix l10n-fi. -f1651a7 Plugin: fixed just created new typo and probably fixed that typo which previous commit should have fixed. -fbae63f Plugin: fixed or added typo in l10n-fi. -04e026f Ctcp: fixed l10n-fi. -1df6b2a Owner: added warning about not working translations to fi.po. Owner plugin can't be translated. -1032fd4 Quote: added l10n-fi. -0a0db60 Protector: added l10n-fi. -5888e02 Praise: added l10n-fi. -21be09e Plugin: added l10n-fi. -769f45a Plugin: l10n-fi: 38%. -8060839 Owner: added template for l10n-fi but Owner translations will not work. -f381f5b Note: added l10n-fi. -23ba4a1 NickoMeter: added l10n-fi. -0dee587 NickCapture: added l10n-fi. -9882aaf Merge remote-tracking branch 'progval/testing' into testing -b4de7c4 News: added l10n-fi. -becf24f News: added ln10n-fi template. -b0d454a Merge pull request #114 from Mkaysi/testing -5ad79a6 News: added ln10n-fi template. -baae4ec Network: added ln10n-fi. -2709fce Network: added ln10n-fi template. -d23a957 Merge pull request #112 from Mkaysi/testing -0d2229c MoobotFactoids: fixed ln10n-fi. -2d616b3 Merge pull request #111 from Mkaysi/testing -7574fae MoobotFactoids: added ln18n-fi. -c44496f MoobotFactoids: improved readme file from default. -339e262 MoobotFactoids: ln18-n 44% translated. -4bb788b MoobotFacroids: added template for ln18n-fi. -789e0f1 Utilities: fix l10n-it. -8ed2e80 Merge branch 'testing' of github.com:ProgVal/Limnoria into testing -e37e292 Channel & Factoids & Google & MessageParser & MoobotFactoids & Services & Topic & User: Add/update l10n-it. -a94b10e Channel: fix typo. -1437a44 Merge pull request #103 from Mkaysi/testing -ce6a6b0 Channel: fixed l18n-fi. -5599b79 Merge pull request #100 from Mkaysi/testing -b325533 Merge remote-tracking branch 'progval/testing' into testing -435ed31 Factoids: added ln18n-fi. -369d21e Merge pull request #99 from nyuszika7h/testing -b429eca Anonymous: Add l18n-hu -e38d00c Factoids: 51% completed ln18-fi -ffbc082 Merge remote-tracking branch 'progval/testing' into testing -c571d0e Topic: fix typo in @unlock help. -d3788fe Factoids: updated incompleted Translation. -65892c9 Games: fix l18n-fi -020034d Merge remote-tracking branch 'progval/testing' into testing -1e3bb24 Factoids: added partial l18n-fi -91d769f Filter: Fix l10n-fr. -547bf62 Filter: Fix l10n-fr. -083815c Factoids: Fix typo. -a4c0a13 MessageParser: Fix typo (rexeps -> regexps). -764c6d1 Merge pull request #88 from Mkaysi/testing -44fc846 Alias: updated ln18n-fi -a813754 BadWords: updated l18n-fi -6edc81d Ctcp: updated ln18-fi? -dcfb0ea Channel: updated l18n-fi -225a2fa Factoids: Removed games fi.po from translation; Anonymous: updated ln18-fi -cd604a0 Merge pull request #87 from Mkaysi/testing -9ce5b94 Misc: fixed l18-n -453f61d Dict: Fix FSF address in included dictclient module -24aa0b6 Later: add @undo command. Closes GH-76. -4e6d08c Misc: Fix @source help. Closes GH-78. -03cc4c7 supybot-wizard: Suggest most useful plugins when the user want to add plugins en masse. Closes GH-84. -5e9fd81 Protector: Fix variable name. -ce08f27 Channel: Fix name conflicts with _. -b745199 Merge pull request #80 from Mkaysi/testing -862a590 Misc: added l18n-fi -83e55fb PluginDownloader: Installing a plugin overrides the existing plugin with the same name, if any. -4edfed5 AutoMode: fix previous commit. -fac7f9b AutoMode & Conditional & Misc & Network & Owner & Plugin & RSS & Relay & Services & String & Unix: Add l10n-it. -6b160de Misc: Update messages.pot and l10n-fr. -a83f2c9 Misc: Change URL in @source. -0dfdfa2 Channel: fix NameError: 'replyirc' -> 'replyIrc'. Closes GH-73. -3a9d980 Merge branch 'testing' of github.com:ProgVal/Limnoria into testing -f943fee Protector: unban user before inviting him. Closes GH-69. -a4653af Protector: Bug fix (demote can't use irc.queueMsg if irc is not given). -c06b86b Bug fixes in src/ircmsgs.py -510328e Merge pull request #71 from Mkaysi/testing -f5505c5 Internet: improved README. -5533844 Herald: improved README. -318d355 Games: improved README. -2b2713f Format: improved README -18e8b08 Filter: created readme from plugin help. -6831b75 Conditional: fix typo. -2823cb4 Merge pull request #70 from Mkaysi/testing -e76c362 Factoids: improved README -3fb9316 Dunno: improved README -caba0c4 Ctcp: improved README -7ccb3d2 ChannelStats: improved README -339aa11 ChannelLogger: improved readme -5b42e2b AutoMode: improved readme -4fe1ab8 Anonymous: added readme -48979a4 Scheduler: remove spammy debug output. -4b1d2b4 Scheduler: don't immediately execute commands when restoring repeated events. -c6facc9 In registry.py, test whether a requested configuration variable is a channel name before creating it automatically. Closes GH-63. -7892df6 Merge pull request #62 from Mkaysi/testing -afba2c2 MessageParser: Add l10n-fi -0e61cf9 Add assertNotHTTPResponse to HTTP unit tests. -f4b8165 Add unit tests to the HTTP server. -a729a0a Merge branch 'testing' of github.com:ProgVal/Limnoria into testing -783f5b4 Merge pull request #59 from Mkaysi/testing -1ab0969 Games: Fix l10n-fi. -6ad0718 Games: Fix l10n-fi. -39b3784 First try for unit tests for the HTTP server. -8c1d10e MoobotFactoids: Use when opening the database. -a021584 Merge pull request #58 from Mkaysi/testing -974ee47 Dict: Update l10n-fi. -8a1ceb6 Merge remote-tracking branch 'progval/testing' into HEAD -92b28a1 Dict: updated Finnish translation -6ed15ba Web: Fix use of %S converter. -3265d84 Bug fix with the HTTP server. -9aa32da Fix typo in HTTP server. -5215aa1 Move http server from src/utils/ to src/ -4ebcda0 Bug fix (I didn't test the previous commit correctly) -41514ba Core & Channel & Topic: Add the isGranted converter. Closes GH-39. -d4693eb Add callback (mainly useful for plugins) for config edits. Closes GH-24. -5eddb18 Karma: fix typo. Closes GH-38. -1133b8f AutoMode: fix bans. -7418e78 Relay: remove redundant nick on join/part when hostmasks enabled -b797c7f BadWord & ChannelStats & Owner: update l10n-fr. -ccfb0b9 Add sandbox/check_trans.py -5ddbba4 Merge branch 'testing' of github.com:ProgVal/Limnoria into testing -f0571e4 AutoMode & BadWord & Config & Format & Karma & Later & Web: Add/update l10n-it. -3b5d2cb Herald: fix name conflict (wqs using _ as a temporary variable) -efc30a4 Fix traceback when sending POST requests to the 404 error handler. -02568e5 Merge remote-tracking branch 'progval/testing' into HEAD -5275d70 Owner: Fix bug with @enable and @disable if a plugin is given. Closes GH-43. Closes GH-44. -08175fc Conditional: Update l10n-fi -40db70e Updated Finnish translation in plugin Conditional. -1c366a2 src/i18n.py: fix error when running @reloadlocale with a plugin loaded before but not available any longer. -49e14f9 Conditional & Dict & Factoids & MessageParser: remove redundant spaces, update i18n and l10n-fr -1e337bd Dict: Fix FSF address in included dictclient module -c9cc858 the default ident in the supybot-wizard is now limnoria. Closes GH-37. -7f8700a AutoMode & Math: update/add l10n-fi -90ed5fc AutoMode: update messages.pot and l10n-fr -128143f AutoMode: fix supybot.plugins.AutoMode.owner. Closes GH-36. -ca61dd0 Limiter: Add l10n-fi -add8036 Limiter: fix typo. Closes GH-35 -a815f11 Anonymous: bug fix (_ was used as a temporary variable name) -509a6c1 Forgot a debug print in httpserver.py -a7f6f6c Update the version string -9ded853 Later: fix typo in l10n-fi -ae9b181 Update the core messages.pot and l10n-fr. -4df4977 Internationalize strings in the HTTP server. Closes GH-29. -2cb7f72 User: fix typo. Closes GH-32. -1acc55f Karma & Lart & Later: Add l10n-fi. -fc41fc6 Add support for POST and HEAD requests to the HTTP server. -fa3fc7d Fix exception when stopping the HTTP server if already stopped. -ff20479 Merge branch 'httpserver' into testing -952db3a supybot.servers.http.keepAlive defaults to False. -a1b2e93 Merge branch 'httpserver' into testing -b9baa57 Bug fix in HTTP server. -14393a6 Merge branch 'httpserver' into testing -667d7c3 Bug fixes to the HTTP server -728587b Fix comment in src/__init__.py -ef5438e Add docstrings to the HTTP server callbacks -13e4f45 Add an embedded HTTP server to Supybot. -2c996b7 Internet: add l10n-fi -94f4d55 Update version -4daef04 Herald: Add l10n-fi. -a487451 Todo: Add allowThirdpartyReader config variable. -61ec5f7 Todo: fix the help string for @todo (and update i18n and l10n-fr). -a234b0e Update supybot-wizard, so it asks for the language, and sets the default config values appropriately. Closes GH-26. -693ba6a Don't tell owner to contact an admin. Closes GH-20. -aefe980 Fix a test case (default ident is no more supybot) -1c07963 Owner: Being ignored for commands flood is now restricted to non-trusted users (instead of non-owners). Closes GH-13. -9d53652 Admin & ChannelLogger & Dict & Maths & News & Seen & Status & Time & Todo & URL: Add Italian translation -cdb5432 Google: Add Finnish translation. -5cd607f Format & Games: Add Finnish translation. -2ef0004 Filter: Add l10n-fi. -8469382 Dict: fix l10n-fi. -ebb3aae Raise an exception when plugin is not found instead of returning None in i18n.getPluginDir() -4f91a62 Update version -a6e1bbe Dict & Limiter & Note & Scheduler & ShrinkUrl & URL & Utilities: Add Italian translation -2b708f0 Web: add 'timeout' config for web fetch, default 5 sec. -3e76a72 Use limnoria as a default ident (instead of supybot) -ee92c71 Admin & Alias & Anonymous & AutoMode & Ctcp & Dunno & Internet & Lart & NickCapture & Protector & Quote & Success: Add Italian translation -58152b5 AutoMode: fix missing closing quote (update l10n-fr and l10n-fi), thanks to skizzhg. -15d9d0f Factoids: Add finnish translation -5a65dd7 String: Fix typo in l10n-fr -7e8a079 Anonymous: Internationalize some strings and localize them into French (thanks to skizzhg). -37f2ef1 Ctcp & Dict & Dunno: Add finnish translation -c85daa4 Conditional: Add Finnish translation. -05f122a Merge branch 'testing' of github.com:ProgVal/Limnoria into testing -7ce41c7 Admin: fix typo in French translation -b0e595f Update Internet.hexip to handle IPv6 -d563814 Update Internet.dns to handle IPv6 IPs and responses -543e788 Add utils.net.isIPV4, with utils.net.isIP checking v4 or v6 -28a3067 Misc: update i18n and l10n-fr -6c16995 Misc: use Limnoria version string. -73cf53f Revert "Games: fix typo (die -> dice)" -4e96d09 Merge branch 'testing' of github.com:ProgVal/Limnoria into testing -e41dedb Games: fix typo (die -> dice) -18aa92e Merge branch 'testing' of github.com:ProgVal/Limnoria into testing -0c7e2ce Rename 'permission' to 'capacité' in French translations -865bd93 MessageParser: remove redundant spaces -ef6fe23 Seen: fix tests so they pass. fix seen command so it properly accepts nick wildcards. -8979475 Fix compatibility with Windows ('u' flag not supported by open()) -ce29bf8 Fix installation on a system that never had Supybot installed (fix commit 05c9482759) -d6cd8a5 Fix email regexp to be RFC-compliant -64b4a61 PluginDownloader: remove useless import -6e00168 PluginDownloader: add mtughan-weather and SpiderDave repositories -8fe3e77 PluginDownloaded: add nanotube-bitcoin repository and check a plugin exists before downloading the tarball -72600e5 PluginDownloader: add stepnem's and gsf's repositories; fix issue with non-root path -f18429f PluginDownloader: add the @install command. -187ed38 PluginDownloader: creation; supports ProgVal and quantumlemur repositories; able to list repositories and plugins in them. -58f115d Add script to automatically update version with a datestamp upon commit. (Thanks nanotube) -05c9482 Consolidate the version string to reside in one central place to ease change making. -8344166 Merge branch 'testing' -2791955 Factoids: fix merge problem (duplicated wrap()-ing). Thanks kini fore the report -1b74b8d Seen: fix tests so they pass. fix seen command so it properly accepts nick wildcards. -da5b2b3 Seen: Fix save Seen.any.db. (thanks to beo_ for the repport and the test) -c183373 Merge branch 'testing' -ab087f4 Seen: Fix save Seen.any.db. (thanks to beo_ for the repport and the test) -c25db0e Services: fix problem with some channels being mixed up between networks on startup, when noJoinsUntilIdentified is true. -ad57b1c Misc: fix french translation -dbf3537 Misc: fix french translation -872e92e Merge branch 'testing' -c6e54fb Owner: fix error message when the ImportError comes from the plugin -8595c17 Google: fix @calc -39fa7e6 Fix syntax error -65d7378 Add another solution in error message about TypeErrors raised in plugins' __init__() -ad95bc9 Config: Fix French translation -74c634f Config: Add Finnish translation -db13293 Merge branch 'testing' of github.com:ProgVal/Supybot-fr into testing -58bc8d5 ChannelStats: add Finnish translation -54e6e45 Misc: fix typo French translation (thanks to trashy) -7e1cd95 MessageParser: fix missing configure() in config.py -2bcfd9e Conditional & MessageParser: Add description. -32b21cb Add a clue in solving issue with wrapping wrapped commands -26c2e56 Admin & Alias & Anonymous & AutoMode & BadWord & Channel & ChannelLogger: update/create Finnish translation -db849e2 Add a try/catch arround plugin directory determination (might be useful for some utilities...) -cb01392 BadWord & Channel: add Finish translation -178d1ac Fix coding string of src/__init__.py -44458d4 Change version number to 0.83.4.1+git+fr3 -401725f MessageParser: internationalization and French localization -2779b67 Conditional: internationalize and localize in French -aef0b68 Filter & Format & Later & Plugin & RSS & Reply & Status & Topic & Unix & Web: update French translation -e687061 Factoids: update l10n-fr -f7899c7 Factoids: fix merge -3c42a1f Plugin: fix forgotten merge info -f5de099 Dict: update l10n-fr -a3ff40d Ctcp: update l10n-fr -c5de801 Channel: update l10n-fr -2de895c Alias: update l10n-fr -0d7e3d3 (Re)generate all plugin's .pot file -2d56eba Unix: fix merge of @ping -e35bf94 Unix: add call command, giving owner ability to call any system command. -cc5f3c1 Unix: various enhancements to the ping command: Fixed bug in 100% packet loss response. Errors from ping are now sent to irc.error(). Added packet count, interval, ttl, and wait options. Added additional test cases. -61167ce Unix: fixed uncaught OSError exception raised when executing ping fails. -f69c47b Unix: fix test for the ping command, call unix ping instead of the default misc ping. -390b3ec Added ping command to Unix plugin -f6c9543 Filter: add unbinary command, as counterpart to binary command. -6ccd1ce ChannelLogger: include in logs the reasons for parts and quits -da25be7 Channel: nicks: add --count argument, which outputs only the count of nicks in channel. also add tests for the nick command. -8e80e7b fix google calc to work when doing a currency conversion. -2925c45 restore the 'import re' to Topic plugin, which was for some reason taken out two commits ago, in commit 51cabeea33f3dab3d7cf42496c10bd660b212bc7 it is necessary for the operation of the plugin (specifically, in the _checkManageCapabilities function) -9f26bb1 for Later plugin, add test for actual sending of notes to nicks upon their being seen. -a6d92a7 Add Later note expiration period, 30 days by default. This should prevent the accumulation of old unclaimed notes in the database, which is possible due to notes left to misspelled nicks, to temporary nicks used by regulars, or to one-time visitor nicks. -dfeb50d Add --raw option to factoids.whatis, which disables variable substitution on the factoid. also add test for this. -b12d8a8 Use the ircutils.standardSubsitute function upon factoid output. -8ed9425 some enhancements Factoids.rank: output options: plain key output, and alpha sorting for plain output. allow an optional argument for how many ranked facts to show. -7c3bc67 Add some sanity checks to RSS plugin: -7505f83 fix docstring for Plugin.plugin command so it actually says what the command will do. -92fc1e3 update quotegrabs to sqlite3 -4af9d87 Make registry.Regexp.error mimic registry.Value.error -73e822c Undo mtughan's bugfix from 7f9a1130605fb6b36967f062d3cbcdb73aff8df6, so i can merge jamessan's fix ef8bd817e8b62ede76aa7501a9a8d69af7408efc -d433bfc for Factoids: make approximate fuzzy key searches also when invoking whatis directly. also add tests. while there, remove useless config setting for replyinvalidcommand testing, since it is true by default. -e939cfd update Karma plugin and test code to use sqlite3. -bf6f0e2 make google translate return detailed google error, instead of the unhelpful "we broke google". -8d45228 for google translate, error if destination language is 'auto'. -261a646 in Later nick validation, use irc.isNick. now instead of forcing strictRfc to true, we are using the config. -e469484 take out getDb override from factoids, since i have changed it upstream, in plugins.__init__.py, to use proper sqlite3 syntax. -1b0aa48 make on-join telling for later configurable. -e68704a topic now checks for +t mode before denying topic changes, and also allows halfops in addition to ops. default required capabilities for topic changes (if topic is +t and user is not an op or halfop), are chan,op and chan,halfop thanks jemfinch for the suggestions. -dae8dfd add replace function to format that takes varying-length strings to replace. add test for it add error test for format.translate for different length translate args. -2d718d3 Fix factoids bug ,Factoids.showFactoidIfOnlyOneMatch feature is broken when used off-channel: https://sourceforge.net/tracker/?func=detail&aid=2965589&group_id=58965&atid=489447 -4cd0d19 commit mtughan's bugfix for this bug: https://sourceforge.net/tracker/?func=detail&aid=2985241&group_id=58965&atid=489447 -c0986e1 change Topic to have a default required capability set, for all write operations. by default, now only allows chanops, and users with admin or channel,op capability to change topics -7ec1ca2 make later plugin send waiting messages on user join also, not just on privmsg. -fcaa786 add nick validation to later tell this avoids plugging the later db with messages for bogus nicks -a2da24d add a random-synonym getting function to Dict, add tests for it. using the moby-thes database from dict.org. -b306c54 add damerau-levenshtein distance to supybot.utils.seq use it in factoids invalid command to match possible typos write tests for same. -bdc8fd5 fix some encoding error for non-ascii langs -ca04512 add detected source language display for 'auto' google translate, add test for auto translate. -6b32467 enable google translate to autodetect language with 'auto' fromlang. -9b51648 add tests for factoids.alias -50ac5a0 delete leftover debug-prints -366c2b7 add factoids alias function, to link more keys to existing factoids. -436d2ba mod factoids plugin to use a separate key-value relationship table this avoids duplication, and allows one to set a bunch of aliases for a factoid, without creating duplicates of the same fact content. -471921e make 'factoids info' include usage count in output. add test for same. -e71ee8f don't give up too easily with invalid command, instead search factoid keys with wildcard first. -b922890 add rank test to factoids, update factoids test code to sqlite3 -5c0596f rename factrank to just rank for consistency -2b5ffaa add replies function to reply plugin, which makes multiple replies, if supybot.reply.oneToOne is false. -f71464a This merges an old branch i had for sqlite3 factoids+moobotfactoids. fix up moobotfactoids+factoids to use the sqlite text_factory=str, also fixed up a test for factoid search, since it now sorts keys alphabetically. -c0ebddd start factoid rankings from 1 not from 0 -34f8557 remove rogue test-print -7351ec1 sort keys in factoid search output by alphabetically by key name. -d2ac0e7 implement factoid usage counter -957998f Utilities: add countargs function, returns number of arguments supplied. -6381266 Utilities: add 'sample' command, a basic interface to random.sample() -9d7287a Import MessageParser from gribble repo -f3a20df Import Conditional from gribble repo -f6e3698 Scheduler: handle event persistence on plugin reload. -42efc79 Scheduler: add scheduled task persistence. -bfd2204 Merge branch 'testing' -2d265f9 Google: update translation -a6b9d5f Google: fix encoding bug in lucky --snippet; need to pass encoded string to utils.web.htmlToText -614e6c3 Google: in lucky --snippet, properly convert html to text, using utils.web.htmlToText. -33c6eab Google: add --snippet option to lucky command, which shows the text snippet for the page. -9f5b3f6 Merge branch 'testing' -5395000 Change website supybot-fr.tk -> supybot.fr.cr -c456abd Later: fix french translation -bcc745b Update BadWord's .pot and fr.po -817190f BadWords: improve help for requireWordBoundaries config. -0e67977 Badwords: add plugin docstring, and fix/standardize some method docstrings. -9665c17 Scheduler: don't immediately execute commands when restoring repeated events. -125e766 Remove gribble's version.py -7c7b093 Google: add some extra matching capability to google calc now should be able to display any 'special' result from google. -b0bd346 Services: add some more strings indicating identification success. -60bbbc6 Topic: get shouldn't require capabilities, since it's a read-only operation. -0223e9c Change release number to 0.83.4.1+git+fr2 -e8814fc Add checkCapabilityButIgnoreOwner converter -e705d3b Fix name conflict with _() -ad2ad80 Fix forgotten merge -1cceeb7 Fix @String decode utf8 issue -831a2c3 Topic: get shouldn't require capabilities, since it's a read-only operation. -3151d08 Filter: fix rainbow so it doesn't fail with numbers. -a6d3615 Fix banmask creation. Thanks Progval for the patch! -17248b5 Merge branch 'testing' into unit-tests -e4cced8 Fix depluralize. -720b6d2 Fix to global hostmask. Fix bug #SF3088559 and submitted as patch #SF3163843 -e6fc429 Fix bug with rainbow when message contains numeric characters #SF3140981 -d29ca0a Import Time plugin from Supybot-plugin repo -a1f093d Ignore vim temporary files -fc1a3ab Services: add some more strings indicating identification success. -f13a2c7 Fix translations -d273ac1 Fix Network localization -4649188 Fix detection of .42 domains -3582286 Fix Factoids -6e6fd58 Fix RSS encoding problem -f45e0b0 Fix @help monologue french translation -d008f97 Fix @Games monologue french translation -5629b45 Fix bolding for help strings (because of i18n) -83aca7c Merge branch 'testing' -83f3fe1 Merge branch 'l10n-fr' into testing -01018b9 Localize the two new strings of Config in French -59dad05 Merge branch 'i18n' into l10n-fr -a739511 Internationalize two strings in Config -b3ffbdf Fix localization issue -49dfa69 Fix actually compatibility with non-ssl envirronments -a58e270 Fix issue with Pypy -96ea659 Add SSL support for Socket driver -42464d8 Google: add some extra matching capability to google calc now should be able to display any 'special' result from google. -f2a0b60 Fix unicode bug -15de8c2 Merge branch 'testing' -c597404 Merge branch 'l10n-fr' into testing -50d887d Merge branch 'i18n' into l10n-fr -13b194a Fix internationalisation bug in Config plugin -6629c8d Add @reloadlocale to Owner plugin -cd11201 Merge branch 'testing' -12d4f16 Merge branch 'testing' of github.com:ProgVal/Supybot-fr into testing -6e00746 Merge branch 'master' of github.com:ProgVal/Supybot-fr -fc6415e Merge branch 'testing' -bd7f386 Merge branch 'l10n-fr' into testing -3fafd31 Remove redundant spaces in src/i18n.py -8542d81 Merge branch 'testing' of github.com:ProgVal/Supybot-fr into testing -ec8dec0 Merge branch 'master' of github.com:ProgVal/Supybot-fr -d5ae366 Merge branch 'l10n-fr' into testing -0556029 Later: fix localisation problem -a618f11 Later: fix localization problem -f2a8370 Merge branch 'testing' -e5fd3b8 Merge branch 'l10n-fr' into testing -415f79d Later: fix localization problem -3589f15 Merge branch 'testing' -5300abb Merge branch 'l10n-fr' into testing -e7cf778 Merge branch 'i18n' into l10n-fr -0998c2a Fix bug in src/commands.py (forgotten comma) -d1e6bbd Merge branch 'testing' -ad79ec4 Merge branch 'l10n-fr' into testing -4d957e8 Factoids: localize a string -9ca812c Merge branch 'i18n' into l10n-fr -11f7033 Factoids: Internationalize a config variable -211be44 Merge branch 'testing' -4ea359d Merge branch 'l10n-fr' into testing -827ff7d Merge branch 'i18n' into l10n-fr -323ffe1 i18n: Fix internationalization problems -16c9ddf Merge branch 'testing' -9388cad Merge branch 'l10n-fr' into testing -b1f0e05 Fix two function misspell in locale/fr.py -c5df5d1 Merge branch 'testing' -44c692b Merge branch 'l10n-fr' into testing -485c616 Plugin: fix a little localization error -fa336ac Merge branch 'l10n-fr' into testing -9bd66a7 Plugin: fix two localization error -713aae9 Change the version suffix -43c105a Merge branch 'l10n-fr' into testing -04f25ce Merge branch 'i18n' into l10n-fr -02cb15d Remove the 'testInternationalization' -fbbfd68 Merge branch 'l10n-fr' into testing -589753f Merge branch 'i18n' into l10n-fr -31d9d47 Remove debug message -5679499 Merge branch 'l10n-fr' into testing -17fc98a Merge branch 'i18n' into l10n-fr -c0ff3c3 Bug fix in i18n.py (decorated commands without docstring raise an error) -27ef96a Merge branch 'l10n-fr' into testing -249eace Merge branch 'i18n' into l10n-fr -382bad4 AutoMode: fix misspell in french locale -79930a7 Bug fix in src/i18n.py -d2ccb87 Remove Debian plugin -52b7015 Merge branch 'l10n-fr' into testing -22fa9f4 Merge branch 'i18n' into l10n-fr -30a1ca0 Fix the @Misc help formatting -e4256ff Merge branch 'l10n-fr' into testing -56f2c38 Merge branch 'i18n' into l10n-fr -1f4b3b8 Make the src/i18n.py code cleaner -0410cf3 Merge branch 'l10n-fr' into testing -ddb3dd5 Merge branch 'i18n' into l18n-fr -a2c8c61 Bug fix (didn't keep any beginning or ending space) -4dcd7f7 Bug fixes (mainly the &config help internationalization) -51edf73 Merge branch 'l10n-fr' into testing -4b33108 Localize Supybot core -198f826 Bug fixes -fd590df Merge branch 'i18n' into l10n-fr -bec550f Update locale/messages.pot -0616e7f Merge branch 'i18n' into l10n-fr -4c03aef Internationalize a string in conf.py -676c08a Fix possible truncation of messages -6dfd334 Merge branch 'l10n-fr' into testing -f536540 Merge branch 'i18n' into l10n-fr -283a026 Add the i18n test in src/test.py -0360451 Note & Owner : fix missing import for the i18n -27bb53b Merge branch 'l10n-fr' into testing -e8e5aa2 Merge branch 'i18n' into l10n-fr -4a516c5 Makes the code of i18n.py cleaner -7dc0167 Localize the utility functions into French -0eb3e32 Merge branch 'i18n' into l10n-fr -3ea8115 Internationalize src/utils/str.py and modify src/i18n.py to fit this changes -32cabd6 Status: fix two translations -f3528c5 Merge branch 'l10n-fr' into testing -4037676 Merge branch 'i18n' into l10n-fr -5150c4e Now tests if a plugin has the _ object before using it -caa18e4 Topic: fix a translation -be4b1ad Merge branch 'l10n-fr' into testing -ee0df01 Topic: fix offset between untraslated and translated strings -a1db8e3 Merge branch 'i18n' into l10n-fr -595d98d Topic: Fix bad doctring -5f2699b Merge branch 'l10n-fr' into testing -e88da35 Merge branch 'i18n' into l10n-fr -b85d289 Fix wrong method name -5e09a9c Merge branch 'l10n-fr' into testing -df3459d Localize Sucess, Time, Todo, Topic, Url, Unix, User, Utilities, and Web into French -94d6915 Merge branch 'i18n' into l10n-fr -52094ec User: internationalize a string -05389a9 Localize Services, ShrinkUrl, Status, and String into French -eb8b16f Localize Misc, MoobotFactoids, Network, News, NickCapture, Nikometer, Note, Owner, Plugin, Praise, Protector, Quote, QuoteGrabs, RSS, Relay, Reply, Scheduler, and Seen -6484df8 Merge branch 'i18n' into l10n-fr -6737424 Shorten PluginInternationalisation.get* in src/i18n.py -ec6a267 Internationalize more functions in src/utils/str.py -dd11dba Merge branch 'i18n' into l10n-fr -5339516 Owner: Add the messages.pot -f394757 Merge branch 'i18n' into l10n-fr -9ce8b4d Note: Add the messages.pot -28787c7 Merge branch 'i18n' into l10n-fr -6c1b91c MoobotFactoid: Internationalize a string -424f5ac Move MegaHAL and SupySandbox to the Supybot-plugins repository -520034d Localize Later, Limiter, and Math into French -e8bc966 Add locale abitrary code -97f51ab Fix i18n bug for global Supybot -47586df Merge branch 'i18n' into l10n-fr -172467f Later: refresh messages.pot -c6b40eb Merge branch 'i18n' into l10n-fr -4a2c78e Later: fix internationalization problem -da7888a Merge branch 'i18n' into l10n-fr -4e578da Later: internationalize a string -b7651b0 Merge branch 'l10n-fr' into testing -2d1917c Localized Games, Google, Herald, Internet, Karma, and Lart into French -3e50b64 Merge branch 'i18n' into l10n-fr -3fe627a Internationalize a string in Karma -827ab35 Merge branch 'i18n' into l10n-fr -f3a579f Add the '' feature to nItems, and changed ChannelStats localization in order to use it as bug fixer -9b67f67 Localize Dict, Dunno, Factoids, Filter, and Format -5603e8e Set the author as being ProgVal ;) -0dbb72d Internationalize ChannelLogger and Config -4a25b32 Merge branch 'i18n' into l10n-fr -8864a7f Fix Ctcp internationalization -ecfe196 Merge branch 'l10n-fr' into testing -a7eb72f Merge branch 'i18n' into l10n-fr -db977bf Fix Python2.5 issue (class decorators) -4aff05f RSS: fix mislocated decorator -ff24c55 MegaHAL: Don't prefix answers with the nick. -cd025be MegaHAL: Don't learn private messages. -7e58815 Merge branch 'l10n-fr' into testing -9ea39fc Merge branch 'i18n' into l10n-fr -88414de Localize AutoMode, BadWords, and Channel into French -007c587 Remove internationalization of a non-internationalizable string -7a33286 Fix config -44c3eb1 Changes version -47e44d8 Merge branch 'i18n' into testing -7fb900d Fix misspell in Herald -6ef2503 Merge branch 'more-plugins' into testing -cbc1294 Proxyfy MegaHAL and rexrite a (still broken) test case -42a95a1 Localize Alias and Anonymous into French -07710b4 Create MegaHAL plugin -ff79921 Merge branch 'i18n' into l10n-fr -8be4aae Merge branch 'readability' -e122102 Fix a test in Unix plugin -5e2e858 Removed debug information -b59f5be Merge branch 'i18n' into l10n-fr -da9a1bf Internationalize questions.py -6b26861 Internationalize callbacks.py, commands.py, and conf.py ; and generated the messages.pot -df3d096 Modified i18n.py, in order to handle internationalization before conf is loaded -0b86e84 Add the locale managment (edit setup.py and create locale/ directory) for the core -f1d5d9d Fix a pygettext warning -77d0296 Merge branch 'master' into readability -e93fa2b Merge branch 'master' into unit-tests -02fb2c4 Merge branch 'master' into l10n-fr -597cec5 Merge branch 'master' into i18n -386c856 Added myself in the author list -7d0d1ad Merge branch 'i18n' into l10n-fr -6a9a8d8 Internationalize Time, Todo, Topic, URL, Unix, Utilities, and Web -371a40e Internationalize Seen, Services, ShrinkUrl, Status, String, and Success -e4f198d Fix in Seen plugin : AssertionError: 'Someone was last seen in #test 0 seconds ago: *** test has joined #test' does not match 'test has joined' -aaa0c48 Internationalize Relay, Reply, RSS, Scheduler -f613eb0 Add SupySandbox plugin -e358b98 Add Debian plugin -6178035 Merge branch 'i18n' into l10n-fr -029c0cb Internationalize Nickometer, Praise, Protector, Quote, and QuoteGrabs -ffc609a Internationalized MoobotFactoids, News, and NickCapture -e5e705f Fix %n issue in Alias -7cf5bb7 Merge branch 'i18n' of github.com:ProgVal/Supybot-fr into i18n -45de092 Internationalize Herald, Internet, Karma, Lart, Later, Limiter, Math, and Misc -203fe3c Internationalize Herald, Internet, Karma, Lart, Later, Limiter, Math, and Misc -9917232 Internationalize Filter, Format, Games, and Google -d14bb0c Internationalize ChannelLogger, Ctcp, Dict, Dunno, Factoids -ca23f94 Internationalize Alias, Anonymous, AutoMode, and BadWord -1cc1ec9 Internationalize Config, Network, Plugin, and User -b47c7c9 Edit Status and Web plugins in order to use %S -e556fbd Added %S to format() -7e96d98 Merge branch 'master' into l10n-fr -92d763a Merge branch 'master' into i18n -db2324f Edit .gitignore in order to ignore backup/ directories (created by supybot-test) -ac1c779 Localized Admin to French -5fa6ff7 Add an accidentaly removed space -2a69fd2 Little fix to Admin internationalization -83c066e Internationalize Channel -24ac2c0 Edit .gitignore in order to ignore backup/ repertory (created by supybot-test) -949d13c Internationalize Admin -70af49f Changed .pot file name in ChannelStats. -8b70254 update the version timestamp for the batch of upstream bugfixes that just came through. -9183c96 Services: Correct formatting of "isn't registered" log. -e78a754 Unix: Use converter to enforce "no spaces" for spell's argument. -4d84798 README: It's a 3-clause, not 2-clause BSD license. -a9b515f Use self.error() instead of raise for BooleanRequiredFalseOnWindows. -7713312 Use the plugin name for Owner.defaultplugin's error message. -14a5f52 Games: Re-add some, much higher, upper limits to dice. -fa7c17e Karma: Refer to plugins.Karma.rankingDisplay in Karma.karma's help. -8baf08b Handle changes to fnmatch.translate in Python 2.6 -3177b3a -> in Karma.karma's help -219832a Limiter: Fix "reduce limit" test case. -f68b6f7 Google: Remove Groups snarfer -961786f Games: Remove arbitrary upper limits on dice command. -106a527 Decorates plugin class with internationalizeDocstring -90a0ea3 Edit scripts/supybot-plugin-create to fit plugin templates changes -4a5b985 Revert 9a2eea4272a7f427949fe47053b75894222aa002 -d156ae7 Add the configuration variable help reloading -b44401d Remove a forgotten debug print -9a2eea4 Change the version name -850aa27 Finish localisation of ChannelStats -4552038 Renamed the .pot file of ChannelStats -a8319d3 Remove debug message and internationalize config.py in ChannelStats -a750fe6 Fix the internationalisation problem for the docstrings -8422218 Fix the internationalisation problem for the docstrings -0920905 Fix some bad meta-data of the French localization of ChannelStats -50acd3d Creating the internationalization module and internationalize/localize ChannelStats into French -cb48912 Services: Correct formatting of "isn't registered" log. -26a458b Merge branch 'maint/0.83.4' -ca56575 Unix: Use converter to enforce "no spaces" for spell's argument. -89df85c README: It's a 3-clause, not 2-clause BSD license. -0fd6a84 Use self.error() instead of raise for BooleanRequiredFalseOnWindows. -074ded4 Use the plugin name for Owner.defaultplugin's error message. -efdb2b4 Merge branch 'maint/0.83.4' -154fbc3 Games: Re-add some, much higher, upper limits to dice. -0abe22f Merge branch 'maint/0.83.4' -45abdc8 Karma: Refer to plugins.Karma.rankingDisplay in Karma.karma's help. -b0575ce Handle changes to fnmatch.translate in Python 2.6 -fc2a84f -> in Karma.karma's help -c0e24ce Limiter: Fix "reduce limit" test case. -c927460 Google: Remove Groups snarfer -7cf61ad Games: Remove arbitrary upper limits on dice command. -246c73e BadWords: improve help for requireWordBoundaries config. -8d80fb9 Badwords: add plugin docstring, and fix/standardize some method docstrings. -63244b1 News: Use positiveInt converter instead of manual checks. -3c00d82 Scheduler: don't immediately execute commands when restoring repeated events. -0fe7912 Misc: update version command to get latest version from gribble git. -567e724 Cherry-pick a bunch of upstream fix commits. -bde37c2 Channel: Correct specification of "#channel,op" capability. -ee42f42 Filter: Rename _(un)code to _(morse|unMorse)code -d6423ca Dict: Refer to the server config variable in Dict.dict's help. -828b82e User: Handle DuplicateHostmask exception in hostmask.add. -1fbc28b User: Only require name for set.password when changing other user's password. -5e72daa User: Require set.password to be sent in private. -2c812cf User: Specify changename must be used in private in its help. -7613e40 Model Admin's ignore help after Channel's. -3a0e19b Scheduler: remove spammy debug output. -f9fc250 Scheduler: handle event persistence on plugin reload. -e5e9cbb Scheduler: add scheduled task persistence. -8deb47e Merge branch 'maint/0.83.4' -8cc6320 Channel: Correct specification of "#channel,op" capability. -452c019 Filter: Rename _(un)code to _(morse|unMorse)code -28839f8 Merge branch 'maint/0.83.4' -bc98577 Dict: Refer to the server config variable in Dict.dict's help. -7d87d2f Merge branch 'maint/0.83.4' -577294f User: Handle DuplicateHostmask exception in hostmask.add. -de726f9 User: Only require name for set.password when changing other user's password. -f977a3a User: Require set.password be sent in private. -07da8ca User: Specify chanagename must be used in private in its help. -25b987c Model Admin's ignore help after Channel's. -e7ef97e Ensure channel-specific reply.whenNotAddressed works. -0ff414b Services: Don't filter outgoing JOIN messages on disabled networks -3f63917 Use conf.registerGlobalValue to ensure generated values are properly setup. -8c28036 Services: Properly register the NickServ.password group and child values. -31d5191 supybot: Remove extraneous sys.stdin.close() -0f87716 Services: Fix conflict with callbacks.Commands.isDisabled -abf6df9 fix google calc to work when doing a currency conversion. -9e1ba99 make Misc.apropos return plugin name even if command is in only one plugin. -976567c Services: Disable most of the plugin on networks in the disabled list. -8d5e4ba Twisted: Send all available ircmsgs and reduce delay between checks -ff760d1 Socket: Ensure driver is flagged as disconnected after a socket error. -a6857ce utils/web.py: Only try catching socket.sslerror if built with SSL support -246e09c Anonymous: Implement support for allowPrivateTarget config. -e9d55d4 fix bug in RSS.announce.list: -4f2279f Improve supybot-botchk documentation. Make a note that supybot.pidFile config must be set for it to work. -fb8d0d3 fix alias bug https://sourceforge.net/tracker/?func=detail&aid=2987147&group_id=58965&atid=489447 add tests for appropriate behavior -7869b96 Fix the previous Factoids fix. -b2c45ca Factoids: Pass channel to whatis when being called from search -fa19902 Make registry.Regexp.error mimic registry.Value.error -be9128b Internet: Use whois-servers.net for all whois lookups. -8d94ff7 Include hostmasks in JOIN, PART, QUIT logs. -0933621 Factoids: Prevent empty key or value when adding a factoid. -e13d3d6 Decode/encode as 'string_escape' when (de)serializing the registry. -455b563 Update plugins to ignore all non-ACTION CTCP messages. -e2cafb2 Don't bother snarfing URLs from non-Action CTCP messages. (cherry picked from commit 3282e3407ede364acbc92b4e9a6319800d50d46a) -f35e68c Network: Properly parse WHOIS response -4de4717 PLUGIN_TUTORIAL: Remove references to the old website. -afb4e1e Use 0 when no results are returned for Google.fight -2a79c0c Fix supybot-botchk's use of subprocess -a7c924b Switch from using the various popen flavors to subprocess.Popen -2a18d07 Default to strict RFC compliance. -9ddf07c Allow Banmask.makeBanmask to work when dynamic.channel is None. -c53f8cd Rename Owner.log to Owner.logmark -d95cdfe Remove supybot-plugin-package from the set of installed files. -56d97e0 Remove supybot-plugin-package. -c5df442 Use '2x' to reference Python version in README. -2688467 Re-word the private message FAQ since +E UMODE is no longer default. -0bd9a8b Use the correct URLs for the PySqlite website. -dcdbd5b Update references to PySqlite URL -f0852a9 utils.web: Provide access to the raw httpUrlRe/urlRe strings -bb4e098 Use utils.web.httpUrlRe for the Web/ShrinkUrl snarfer regexes. -750fb2c Check for empty word list in BadWords plugin before filtering. -3e984c7 Clarify databases.types.cdb.maximumModifications' help and use a proper type. -5a0f96f Reply with an error when getBanmask doesn't have a valid channel. -bdf9e88 Ensure getBanmask has a channel variable as per makeBanmask's requirement -bc1c159 QuoteGrabs plugin: Add an `ungrab' command. -d7d5cce scripts/supybot: Unify the `os.linesep' vs '\n' usage. -4cc8fde Note plugin: Fix erroneous use of __contributors__. -6bebc38 ChannelStats.rank now starts from 1 instead of 0 -5b8bae5 Escape '-' where necessary in supybot.1 -6299ef5 Account for negative times in timeElapsed. -885d60a QuoteGrabs: QuoteGrabsRecord at arg needs to be an int. -d43d083 User: getHostmasks should always return a string -965f4e7 User: Fix hostmask.list to show the user's name not the repr user object -7aeedea Updated ChannelIdDatabasePlugin's getCommandHelp signature -26cefc7 Channel: alert should not require the caller to have op capability -2b0b74d Google: Keep the list of supported languages in one place. -65a1807 QuoteGrabs: Fix incorrect argument order to _grab -4eb3006 Try using simplejson instead if json-py is installed. -8bb49e8 supybot-wizard: Handle os.makedirs errors on Windows -a1286f8 release.py: Remove the archives after uploading to Sourceforge -024a77a Updated to 0.83.4.1+git. -a8d2e35 Initial pass at Sphinx documentation. -cf6fcb9 Merge commit '05e8b658e633f37456340b83b01fa304f9fcc5d3', Add script to automatically update version with a datestamp upon commit. -6230a32 Fix setup.py version import. It failed on clean install, since module supybot is not yet available. When importing 'from src', that pulled src/__init__.py, which in turn tried to import the supybot module. Now we edit sys.path and import the .py file directly. -05e8b65 Add script to automatically update version with a datestamp upon commit. -2a40d6e Consolidate the version string to reside in one central place to ease change making. -2c37d3e MessageParser: added configurable separator for the list command. -29837e9 Make plugin loading/reloading case-insensitive. -808cb2c Ensure channel-specific reply.whenNotAddressed works. -4ea3761 String: make levenshtein command threaded, since it can take a nontrivial amount of time with longer inputs. -2d9f61e String: make re timeout configurable. -e449866 Fix error handling for subprocesses. -89fd19e Status.processes: add output of currently active processes. -27be9ce commands.process: return immediately when terminating process, without having to deal with the queue. otherwise, we have to block for $smalldelay between putting and getting the item, since queue putting is not instantaneous and sometimes we would get 'nothing returned' instead of the timeout message. -e779b70 Merge branch 'multiprocess' -f55606c Status: add 'processes' command, the multiprocessing equivalent of the threads command. -89cbc7e Some improvements to the commands.process function - better process naming and informational output. -1b84e20 Format.replace: replacement text is now allowed to be the empty string. -0c30016 Create a commands.process function which runs a function inside a separate process. This is the only way to limit the execution time of a possibly long-running python statement. Use this on String.re, due to the possibility of pathologically long re matching in python. This allows us to remove the 'trusted-only' restriction on string.re. In the future, this should probably be used in other places that take user-supplied regexps, such as 'misc last --regexp', for example, as well as other potentially long-running tasks that can block the bot. -9398025 MoobotFactoids: add check_same_thread=False to the sqlite3 connect calls, so it doesn't complain. (thanks malex!) also fix up the code a bit so it doesn't fail the tests, and doesn't require presence of plain sqlite. -166f32d Ensure channel-specific reply.whenNotAddressed works. -3a181b6 Google: fix encoding bug in lucky --snippet; need to pass encoded string to utils.web.htmlToText -d469108 Topic: fix bug in invalid number error output. Previously, when giving an invalid positive number, error would reference number-1 as being invalid. -4aa8762 Filter: catch invalid input for unbinary command. -920c37c Unix: add call command, giving owner ability to call any system command. -76f109c Google: in lucky --snippet, properly convert html to text, using utils.web.htmlToText. -6905d22 Google: add --snippet option to lucky command, which shows the text snippet for the page. -edc4d86 Unix: various enhancements to the ping command: Fixed bug in 100% packet loss response. Errors from ping are now sent to irc.error(). Added packet count, interval, ttl, and wait options. Added additional test cases. -3a84fae Include String plugin for Utilities' tests. -6e33df4 ShrinkUrl: Add serviceRotation config. -3090cff Include String plugin for Utilities' tests. -0bfa0d1 ShrinkUrl: Add serviceRotation config. -a9e2fc7 Socket driver: implement ssl connection support. -6df6d47 Unix: fixed uncaught OSError exception raised when executing ping fails. -e178d04 Unix: fix test for the ping command, call unix ping instead of the default misc ping. -a8e91a5 Added ping command to Unix plugin -67a41f6 Filter: add unbinary command, as counterpart to binary command. -0781ff3 Services: Don't filter outgoing JOIN messages on disabled networks -acffde6 Services: Don't filter outgoing JOIN messages on disabled networks -23cca93 Use conf.registerGlobalValue to ensure generated values are properly setup. -dbde5fc Elide ignored replies from nested command output. -0c62204 Use conf.registerGlobalValue to ensure generated values are properly setup. -c10d964 Elide ignored replies from nested command output. -16dbd89 Services: Properly register the NickServ.password group and child values. -d78f7b6 Services: Properly register the NickServ.password group and child values. -be39fcd supybot: Remove extraneous sys.stdin.close() -9b9d009 Services: Fix conflict with callbacks.Commands.isDisabled -d21fc27 Services: Disable most of the plugin on networks in the disabled list. -0e22e21 supybot: Remove extraneous sys.stdin.close() -f926804 Services: Fix conflict with callbacks.Commands.isDisabled -929859b Twisted: Send all available ircmsgs and reduce delay between checks -432228c fix google calc to work when doing a currency conversion. -8daebd1 make Misc.apropos return plugin name even if command is in only one plugin. -9e73f44 Services: Disable most of the plugin on networks in the disabled list. -adc5d62 Twisted: Send all available ircmsgs and reduce delay between checks -1ce52f0 ChannelLogger: include in logs the reasons for parts and quits -a91bc31 Channel: nicks: add --count argument, which outputs only the count of nicks in channel. also add tests for the nick command. -80491fd Conditional: allow empty string arguments in string-comparison functions -5f2d2a9 Utilities: add countargs function, returns number of arguments supplied. -52b3655 Utilities: add 'sample' command, a basic interface to random.sample() -108f7f2 Socket: Ensure driver is flagged as disconnected after a socket error. -bc8457d utils/web.py: Only try catching socket.sslerror if built with SSL support -db47973 Anonymous: Implement support for allowPrivateTarget config. -df2c6c2 Updates and tweaks to some ircutils functions. (cherry picked from commit 6135a88741fcafa49bb2bd768cfc971cd7d58b5e) -1a228b3 fix google calc to work when doing a currency conversion. -a278d17 Socket: Ensure driver is flagged as disconnected after a socket error. -f03a3f6 utils/web.py: Only try catching socket.sslerror if built with SSL support -57e894d Anonymous: Implement support for allowPrivateTarget config. -40941e0 fix bug in RSS.announce.list: -6135a88 Updates and tweaks to some ircutils functions. -5ccb242 Re-add re import since capability-checking code relies on it. -f25d154 restore the 'import re' to Topic plugin, which was for some reason taken out two commits ago, in commit 51cabeea33f3dab3d7cf42496c10bd660b212bc7 it is necessary for the operation of the plugin (specifically, in the _checkManageCapabilities function) -f3af3ec Topic plugin: Restore topic automatically after join if not set. -51cabee Topic plugin: Add persistence support. -fc1a049 ChannelStats: Fix rank to work with selfStats -18ef6da Topic plugin: Restore topic automatically after join if not set. -6520d1f Topic plugin: Add persistence support. -41fd218 ChannelStats: Fix rank to work with selfStats -5d15bbf for Later plugin, add test for actual sending of notes to nicks upon their being seen. -9c12f80 Add Later note expiration period, 30 days by default. This should prevent the accumulation of old unclaimed notes in the database, which is possible due to notes left to misspelled nicks, to temporary nicks used by regulars, or to one-time visitor nicks. -e4c51ef Add --raw option to factoids.whatis, which disables variable substitution on the factoid. also add test for this. -976ad82 Use the ircutils.standardSubsitute function upon factoid output. -71f88ca Clarify the on-error log message in MessageParser function caller. -a819c5b make Misc.apropos return plugin name even if command is in only one plugin. -2bb3ba9 fix bug in RSS.announce.list: Because the 'channel' argument was declared optional, calling announce.list off-channel without a channel argument caused an error. -79c7514 Improve supybot-botchk documentation. Make a note that supybot.pidFile config must be set for it to work. -053a9d5 Improve supybot-botchk documentation. Make a note that supybot.pidFile config must be set for it to work. -f1517a7 some enhancements Factoids.rank: output options: plain key output, and alpha sorting for plain output. allow an optional argument for how many ranked facts to show. -55eeb4a Add some sanity checks to RSS plugin: -3005752 fix docstring for Plugin.plugin command so it actually says what the command will do. -9c5f05a update quotegrabs to sqlite3 -5ad620b Make registry.Regexp.error mimic registry.Value.error -35fee23 Undo mtughan's bugfix from 7f9a1130605fb6b36967f062d3cbcdb73aff8df6, so i can merge jamessan's fix ef8bd817e8b62ede76aa7501a9a8d69af7408efc -022193b for Factoids: make approximate fuzzy key searches also when invoking whatis directly. also add tests. while there, remove useless config setting for replyinvalidcommand testing, since it is true by default. -b5058cc update Karma plugin and test code to use sqlite3. -814d89e topic now checks for +t mode before denying topic changes, and also allows halfops in addition to ops. default required capabilities for topic changes (if topic is +t and user is not an op or halfop), are chan,op and chan,halfop thanks jemfinch for the suggestions. -063dd24 change Topic to have a default required capability set, for all write operations. by default, now only allows chanops, and users with admin or channel,op capability to change topics -f880037 for Alias, make doc string say "at least x args" if there are optional args in addition to required args. yay for cosmetic improvements. :) -8d64d08 fix alias bug https://sourceforge.net/tracker/?func=detail&aid=2987147&group_id=58965&atid=489447 add tests for appropriate behavior -4890e2e for Alias, make doc string say "at least x args" if there are optional args in addition to required args. yay for cosmetic improvements. :) -aa634e6 fix alias bug https://sourceforge.net/tracker/?func=detail&aid=2987147&group_id=58965&atid=489447 add tests for appropriate behavior -5e162a2 make google translate return detailed google error, instead of the unhelpful "we broke google". -127b3cf for google translate, error if destination language is 'auto'. -34d9128 in Later nick validation, use irc.isNick. now instead of forcing strictRfc to true, we are using the config. -51eac7d add standardsubstitute vars 'utc' and 'gmt' which output current time in UTC. -2c9f325 fix some time display issues in standardsubstitute: -67ab067 take out getDb override from factoids, since i have changed it upstream, in plugins.__init__.py, to use proper sqlite3 syntax. -bd1fb9f make on-join telling for later configurable. -c4e5dbb topic now checks for +t mode before denying topic changes, and also allows halfops in addition to ops. default required capabilities for topic changes (if topic is +t and user is not an op or halfop), are chan,op and chan,halfop thanks jemfinch for the suggestions. -fe07ea1 Fix the previous Factoids fix. -209facd Factoids: Pass channel to whatis when being called from search -ef8bd81 Make registry.Regexp.error mimic registry.Value.error -8e84da8 add replace function to format that takes varying-length strings to replace. add test for it add error test for format.translate for different length translate args. -643be43 Fix factoids bug ,Factoids.showFactoidIfOnlyOneMatch feature is broken when used off-channel: https://sourceforge.net/tracker/?func=detail&aid=2965589&group_id=58965&atid=489447 -7f9a113 commit mtughan's bugfix for this bug: https://sourceforge.net/tracker/?func=detail&aid=2985241&group_id=58965&atid=489447 -b115e0d change Topic to have a default required capability set, for all write operations. by default, now only allows chanops, and users with admin or channel,op capability to change topics -7ac4911 make later plugin send waiting messages on user join also, not just on privmsg. -2125e6d add nick validation to later tell this avoids plugging the later db with messages for bogus nicks -01c8f34 create conditional plugin with associated tests. includes string and numeric comparisons, simple string matching. -afe1a21 add a random-synonym getting function to Dict, add tests for it. using the moby-thes database from dict.org. -5d9273c add damerau-levenshtein distance to supybot.utils.seq use it in factoids invalid command to match possible typos write tests for same. -f4d4787 fix some encoding error for non-ascii langs -34cab7f add detected source language display for 'auto' google translate, add test for auto translate. -b8f8cec enable google translate to autodetect language with 'auto' fromlang. -f988736 add tests for factoids.alias -a3f7ada delete leftover debug-prints -2033086 add factoids alias function, to link more keys to existing factoids. -58886bd mod factoids plugin to use a separate key-value relationship table this avoids duplication, and allows one to set a bunch of aliases for a factoid, without creating duplicates of the same fact content. -97149b4 make 'factoids info' include usage count in output. add test for same. -32c718c don't give up too easily with invalid command, instead search factoid keys with wildcard first. -2e043ce add rank test to factoids, update factoids test code to sqlite3 -0fb4dd6 rename factrank to just rank for consistency -69c7774 add config for required capabilities to manage the regexp db, and check for them before taking action. -bb44d43 add replies function to reply plugin, which makes multiple replies, if supybot.reply.oneToOne is false. -56862da add more messageparser tests -45e2aa5 write more test code, and in the process add some minor mods to the plugin code -de4936d write some test code for messageparser -db81745 update messageparser readme to point to the web doc. -c2b1c1b This merges an old branch i had for sqlite3 factoids+moobotfactoids. fix up moobotfactoids+factoids to use the sqlite text_factory=str, also fixed up a test for factoid search, since it now sorts keys alphabetically. -3eb6787 add vacuum method to clean up db. require admin capability by default to do this. -1a3d6c3 quote regexp in rank output. -15a4b45 rename listall and triggerrank to list and rank, to be more in conformance with normal plugin command naming practice. -770d407 in listall, put id in parentheses /outside/ the quotes. -65ed84a create info command for messageparser -4972472 allow remove by id, if --id is specified. -7909015 allow show by id with option --id -92389f6 list regexp id in listall (to be used for showing/removing regexp by id) -e2d16cb test regexp for validity before adding it. -f9cc5d5 add lock and unlock command methods -adb53a0 preserve usage count upon overwriting an existing regexp entry. -910ba73 update readme.txt for ability to use commands as trigger responses. -76d25a1 ignore messages addressed to bot directly, in the messageparser. -629ede0 forget about unicode, and just use text_factory str for sqlite to retrieve raw bytes out of text fields without conversions. -6ceeace process multiple matches of a regexp per message -95aa56c fix sqlite3 import for python 2.4 -dbbef9e use double quotes in listall. -d72649c give messageparser ability to use arbitrary commands as trigger responses. -a88353d Merge branch 'messageparser.sqlite3' into mergempsqlite3 -0e50249 start factoid rankings from 1 not from 0 -f8ddba0 get messageparser to use sqlite3. should work now.... -3326212 fix typo (write-o, really) in string for show command -0c87c52 use irc.reply instead of irc.error for conditions that are expected to normally occur on occasion, also, add returns after error conditions (i assumed earlier that irc.error returned) - this fixes some bugs. -f6a86a8 populate the readme with useful tutorial! :) -f62be4b implement the messageparser plugin. at the moment, it is constrained only to echo messages, rather than arbitrary commands, for triggers maybe that'll change in the future... -5b05944 create stub of messageparser plugin -3ea6e58 add standardsubstitute vars 'utc' and 'gmt' which output current time in UTC. -13c244c fix some time display issues in standardsubstitute: -d1c00cc remove rogue test-print -9db1598 sort keys in factoid search output by alphabetically by key name. -fcd262c implement factoid usage counter -397cbbe Internet: Use whois-servers.net for all whois lookups. -4a95966 Include hostmasks in JOIN, PART, QUIT logs. -10f5a12 Factoids: Prevent empty key or value when adding a factoid. -0540513 Decode/encode as 'string_escape' when (de)serializing the registry. -288d7c6 Update plugins to ignore all non-ACTION CTCP messages. -3282e34 Don't bother snarfing URLs from non-Action CTCP messages. -9e15d03 Filter plugin: improve the `uniud' replacements. -3a992ba Format plugin: Delete stray `configure' definition from plugin.py. -67c8554 Merge branch 'master' of git+ssh://supybot.git.sourceforge.net/gitroot/supybot/supybot -408ab6f Network: Properly parse WHOIS response -5f9d2bc We had an issue with a command flooder, so we've tightened command flood detection to detect things on a per-host basis, rather than a per-user@host basis. -b774268 Added network to debug "Incoming message" log. -0806c0b PLUGIN_TUTORIAL: Remove references to the old website. -3689460 Use 0 when no results are returned for Google.fight -a48cd10 Fix supybot-botchk's use of subprocess -89a535e Until we can safely load Karma, this test is staying commented out. -52e96bf Remove some comments that are now irrelevant (and have been for some time). -fbdc44c Switch from using the various popen flavors to subprocess.Popen -e303cab work on getting moobotfactoids to work with sqlite3 note: needs sqlite3 version > 3.3.1, so that it is not restricted against cross-thread usage. -07e283f Default to strict RFC compliance. -b77c649 factoids now works with sqlite3, all tests pass. -5bf7139 another step toward sqlite3 -cc1f4ea some more mods toward getting sqlite3 to work -11446c7 some work in progress getting plugins to work with sqlite3 -a594d0e Small typos and doc fixes. -a453f56 ShrinkUrl: Use tinyurl's api-create page to avoid screen-scraping. -eda8ce3 Remove supybot-wizard's direct import of sets. -082ee59 Change a couple tests so they fail for real reasons instead of fake. -8a98653 Allow Banmask.makeBanmask to work when dynamic.channel is None. -acaa9b1 Rename Owner.log to Owner.logmark -213d304 ChannelStats: Add tracking of max users for a channel. -e393ea5 Remove supybot-plugin-package from the set of installed files. -899391e Remove supybot-plugin-package. -96aaf15 Use '2x' to reference Python version in README. -dc3cdbd Re-word the private message FAQ since +E UMODE is no longer default. -342ab23 Bump the minimum supported Python version to 2.4. -56ba12a Add support for UltimateIRCd's ! (protected) user mode. -927c8c9 Use the correct URLs for the PySqlite website. -f475525 Update references to PySqlite URL -4c9efc0 Replace Factoids.factoidPrefix with Factoids.format -5af3845 Update Topic to use registry.TemplatedString -035a9f2 Add registry.TemplatedString for config variables which use string.Template -25fc2de utils.web: Provide access to the raw httpUrlRe/urlRe strings -f7cedae Update ircutils.standardSubstitute to use string.Template -c4de386 ShrinkUrl: Remove our 'lazy biotch' message and length check. -de4218b ShrinkUrl: Add support for x0.no -d8c13c1 Rewrite ShrinkUrl's tests to ease testing of new services. -924b57e ShrinkUrl: Lower snarfThrottle to .5 second while testing. -9d66399 ShrinkUrl: Add support for xrl.us -200f716 ShrinkUrl: Uniformly handle errors while shrinking via ShrinkError. -c055b16 ShrinkUrl: Use getattr() to simplify use of the growing number of services. -ca917d3 Use utils.web.httpUrlRe for the Web/ShrinkUrl snarfer regexes. -22b3ccf ShrinkUrl: Generalize CdbShrunkenUrlDB's support for the different dbs. -c5896ff utils.web: Import urllib's urlencode into our namespace. -56fbbe9 commands.py: Explain the odd userHostmask check in getOtherUser -6418b3d Check for empty word list in BadWords plugin before filtering. -de79e67 Add a data kwarg to getUrl(Fd) a la urllib2.Request. -e9a896c Clarify databases.types.cdb.maximumModifications' help and use a proper type. -28b4b47 Correct Unix.fortune.offensive's description to use -a. -459bc61 Reply with an error when getBanmask doesn't have a valid channel. -260570b Ensure getBanmask has a channel variable as per makeBanmask's requirement -eff2040 Change canonize => normalize -e922918 QuoteGrabs plugin: Add an `ungrab' command. -a66034f Fix some typos/wordings. -2242b26 scripts/supybot: Unify the `os.linesep' vs '\n' usage. -a693162 Note plugin: Fix erroneous use of __contributors__. -53cac5b callbacks.py: Remove duplicated getRealIrc() definition -2fa0f6d commands.py: Sort the items of the wrappers dictionary -169aee3 ChannelStats.rank now starts from 1 instead of 0 -aa9db7b Escape '-' where necessary in supybot.1 -c376b8e Channel: Allow kick to accept multiple nicks. -aa23377 Account for negative times in timeElapsed. -cbf68e5 QuoteGrabs: QuoteGrabsRecord at arg needs to be an int. -dcb2474 User: getHostmasks should always return a string -9dccada User: Fix hostmask.list to show the user's name not the repr user object -c932930 Updated ChannelIdDatabasePlugin's getCommandHelp signature -4312923 Added Seen.since, which lets a user see messages which were sent since the last time he parted a channel. -ba29f07 Channel: alert should not require the caller to have op capability -461f943 Google: Keep the list of supported languages in one place. -8745088 QuoteGrabs: Fix incorrect argument order to _grab -b9d6277 Added supybot.abuse.flood.command.invalid.notify, a configuration variable determining whether the bot will notify infractors of their ignoring. -416a6e8 Try using simplejson instead if json-py is installed. -3c898fa supybot-wizard: Handle os.makedirs errors on Windows -b170d5f release.py: Remove the archives after uploading to Sourceforge -332a614 Updated to 0.83.4.1+git. -27a4ef0 Updated to 0.83.4.1. -462fac9 release.py: Allow an extra version number. -d7039f0 Update ChangeLog and RELNOTES for 0.83.4.1 -afa49be Channel: Chunk mass mode changes according to supported['MODES'] -b644e30 Channel: Fix test failures from making ignores and bans use banmask -8bd37db Channel: Don't let nicks leak private info. -54dda88 Add a pluginCommands kwarg to Commands.listCommands. -fa3a2dd Allow nItems to take longs as well. -d7dee48 Google: Ensure we don't try to use the 3rd party json module. -cca36ed Factoids: Add simpleSyntax argument to getCommandHelp. -9f718fb release.py: Use web.sf.net instead for uploading version.txt -3535f6a Updated to 0.83.4+git. -f32c886 Updated to 0.83.4. -dbf58d5 Update supybot-plugin-doc's manpage -249180b release.py: Specify all the arguments for string formatting -660621d release.py: Use a proper commit message for the +git commit -1c4738b supybot-wizard: Fix listing of plugins during setup. -0d98118 Allow getCommandHelp to be told whether to use simpleSyntax. -7c89914 release.py: Don't specify -a and paths to git commit -e464260 release.py: Actually specify the user to clone as -8c3125a release.py: Correct a couple git checks -d09a4cb release.py: Allow for a dry-run to double-check the results -b82e22b Update ChangeLog and RELNOTES for 0.83.4 -d723710 Math: Update the units info from ConvertAll -2e8a223 INSTALL: Use python2.x/Python2x when referring to the version. -c03504b Change PySQLite version from 1.0.x to 1.x as 1.x seems to work now -d37580e Change our minimum dependency back to 2.3 -4a7fe53 Add docs/FAQ -babb408 Add docs/CONFIGURATION -5fda0df Update dateutil to latest version and include all files -fea4cc2 Fix setup.py and add local/__init__.py so Time can be installed -279c00a Fixed dateutil to use the "local" subdirectory format. -8c66ed9 Add Success plugin from supybot-plugins package -f3a1e36 Add Dunno plugin from supybot-plugins package -2b09c70 Remove the Insult plugin -bcb00d5 LICENSE: Update Copyright date range -4067365 supybot-plugin-doc: Clean up generation of config docs -178f70f USING_WRAP: Clarify inChannel documentation and document onlyInChannel. -6185286 supybot-plugin-doc: Add basic RST support. Config still needs cleanup -f5eb5bb GETTING_STARTED: addhostmask => hostmask add -0615846 Fix getCommandHelp's use of dynamic.msg -cedc4aa Merge branch 'master' of git+ssh://supybot.git.sourceforge.net/gitroot/supybot -160b7b2 supybot-plugin-doc: Stub support for rendering different formats -acd4e26 supybot-plugin-doc: It's outputDir not outputdir -38f338e supybot-plugin-doc: Add an error() to handle logging errors and exiting -b3d97ea callbacks: Only use dynamic.msg if it's not None in getCommandHelp -f3dca89 supybot-plugin-doc: Allow specifying an output directory -faed698 Return a fake MakeDB function when documenting plugins. -5c2b493 supybot-plugin-doc: Remove escape option; only used for Plone website -f159cb7 Seriously, I'll get this right one of these days... -f51928d 'debug' wasn't an imported log function, like I thought it was, assuming 'fatal' was also available. -92e2046 Added additional check for pidfile writability to supybot-botchk. -82db197 If supybot can't write the pidfile, it needs to exit. -4285df0 Factoids: Fix thinko in getCommandHelp -5301390 BadWords: Only send a msg stripped of formatting if it had bad words -84ca6f2 callbacks: Update PluginRegexp docstring to reference (un)addressedRegexps -f2df22e User: Add private constraint to hostmask.add since a password may be given -d6f6f32 Factoids: Add an __init__ function which calls our parents' __init__s -804fbe8 String: Trim trailing \n from encode's response. -6a0b667 String: Update the codecs URL in encode/decode's help -ebfe8e6 String: Give a more useful message when decoding base64 fails -dfbec68 Limiter: Always set the limit above the current number of users -bb75925 Remove useless comments and fix a SyntaxError -dd4bc64 Changed a few caches to use CacheDict to ensure no without-bound growth on caches. -757991a Added basic CacheDict with simple test. -187620d User: Prevent set.password from failing with an unknown hostmask -c2a783c INSTALL: Remove mention of non-existent forums -d8297df Google: Modify our local simplejson to work pre-Python2.6 -151b372 Bump our minimum required version to 2.4 -6b6861f Don't specify globals as a kwarg; only in 2.5+ -13715a0 Google: Fix calc by basing the regex off the calc img -7b906fb Fully qualify the call to universalImport so we don't get a NameError. -843b6d0 Config: Show global and channel values for Config.config -d2125f2 release.py: Use git-archive to create the tarballs and tag clean checkout -d06335c Add export-ignore gitattributes for test/, sandbox/, and .git* -013167b setup.py: Build plugin list automatically -c81cd48 release.py: Check for clean git checkout and correct branch layout -3f773f9 Add BadWords plugin and local modules for Dict, Math, Google, RSS -4e8dde4 Alias: Add a useful README -dc68e11 Add simplejson to the Google plugin and use universalImport -abd122c Add dictclient to the Dict plugin and use universalImport -0b65c48 Update RSS's README with the new announce syntax -58d308b Fix perlReToReplacer when \ is used in the replacement -e00e161 Comments can't follow line continuations -278da67 Merge branch 'master' of ssh://jemfinch@supybot.git.sourceforge.net/gitroot/supybot -fa9a9cb Ensured logging of error messages with unrecognized numeric codes. Fixes SR #1859821, but nothing can rectify freenode's idiocy completely. -7c8d85a Merge branch 'master' of git+ssh://supybot.git.sourceforge.net/gitroot/supybot -bc70ab8 Fixes SR #2233215. -6986fc7 Do not store the install directory in directories.plugins -ce8b3a5 Merge branch 'master' of ssh://jemfinch@supybot.git.sourceforge.net/gitroot/supybot -d73b1ee Moved BadWords's kick-check to an inFilter rather than doPrivmsg, so ignored people can still be kicked. -22da325 Math: Move convertcore to the local directory -3fd92e7 RSS: Move feedparser to the local directory -777f69d supybot-plugin-create: Also make a local directory in the plugin directory -150f29d scripts: Change tabstop to softtabstop in our modelines -ecd2c63 Make universalImport support 'from ModuleA import ModuleB' -ed32faa Math: Remove extra try block in favor of universalImport -5076241 Fixed RSS to include a feedparser which doesn't override the globally-installed one, using universalImport. -a86b469 Added utils.python.universalImport to make the previous idiom cleaner. -d6ad5b0 Fix math to be capable of using externally-installed third-party packages, while still providing them for people who don't have them externally installed. -f539e65 Misc.last: Prevent potential information leaks -856f372 ChannelLogger: Use a sane timestamp for filenameTimestamp -d59ac36 ShrinkUrl: Add shrinkSnarfer.showDomain config -2314eb4 Add *.pyc to gitignore -62acb0c Make RSS.announce a nested plugin -0e05fe6 No need to define RSS.listCommands -c17a27f Update release.py to work with git -46a4076 Add .gitignore -4de0bb3 Corrected slight inaccuracy in a configuration parameter's help. -8d21b7a Google: Rename safeSearch to searchFilter to ease upgrades -0c42ea1 Fix our RE parsing to handle multiple backslashes before the separator -0d4ff7f ircdb.py: Use a more concise return statement -ad25afa Added supybot.plugins.AutoMode.owner, so the bot can choose not to automode owners. -db615f2 callbacks: Actually obey the to argument of reply() -125d542 Google: Fix Language.normalize to not prepend the empty string with 'lang_' -10342ac Re-fix IrcDriver, which actually does need the args to __init__ -feeded6 Config: Differentiate between (un)settable config vars -730bca6 Karma: Remove getName function which hasn't been used since 2004 -ec018ef USING_WRAP: Add a missing paren -ce469b0 ChannelLogger: Allow logging to be disabled on specific channels -125e24c Channel.kban: Fall-back to exact hostmask when banmask matches the bot. -42ef99a Use getBanmask for Channel.{ignore,ban}.add -abb83d4 Make getBanmask use protocols.irc.banmask.makeBanmask -89874f0 AutoMode: Use protocols.irc.banmask when banning -775fe6f Move plugins.Channel.banmask to protocols.irc.banmask -a84a042 Only import cdb if it's needed -5fabe8f Do not pass arguments to object.__init__ in IrcDriver.__init__ -c23c84a Twisted.py: Remove useless code -0d5462f Remove "Twisted is used if detected" from supybot.drivers.module -20dd2a0 No need to define Alias.listCommands. -768119d Directly call isCommandMethod from listCommands. -0b69268 Make sure getCommandMethod only returns a valid command method -62897a9 Workaround Python's idiocy with float -> str -> float conversions -0bc1664 Use the timestamp formatter instead of duplicating the code -1f3d9e6 Add test to ensure quoted factoids are preserved -e787c7a Clarify comment about timestamp() override -08a0531 Update Factoids.getCommandHelp to respect supybot.reply.showSimpleSyntax -eb6117d Embed formatArgumentError in Commands._callCommand. -338a899 Make getCommandHelp respect supybot.reply.showSimpleSyntax -026a683 Update cachingGetHelp to match callbacks.getHelp's prototype -c936897 Allow doc to be specified for getSyntax, similar to getHelp -9cc917b Guard feedparser import and warn the user if it's not available -e938c4d Remove dictclient from Dict/ and update Dict/README.txt -0ade3a0 Remove feedparser from RSS/ and update RSS/README.txt -1f4d1fc Add test for a bug Tar-Get brought up on IRC -507b95a Fix a couple Misc tests -0a4c660 Adjust testTitle to take into account /.'s slight change -3d5c877 Finally fix the XXX we had for httpUrlRe and urlRe -75c300c Remove useless sets import and extraneous newlines -6590bf8 Do not directly import sets. supybot.utils provides __builtins__['set'] -828d41e Add utils/crypt.py as a Python version-agnostic crypt module -d72b696 Do not pass arguments to object's __init__ -73fb339 Only disable prefixNick if action is actually True -614fa22 Fix a syntax error in the last command flood commit -300443c Finish the implementation of command flood prevention -a9d1830 Do not prefixNick for actions -b99b2c7 Add tests for recent bug-fixes -cfe0ee8 Actually set the 'rsz' option if it isn't defined. -f772fbf Forgot to utf-8 encode the URL from a Google search -6cfde5b Update googleSnarfer to use the new search method -2b7c36c Remove unused SOAP.py from old Google implementation -cbc91c6 Use a more appropriate message if the URL definitely has no title. -a946eff Fix a copy/paste error in User.capabilities help -88ca711 Change translate to use the (limited) translatable language list. -1fbf61c Correct parsing of defaultLanguage parameter. -62a8306 Rewrite most of Google to use the new AJAX API. -de69f9d Backed out my previous change. I should know better than to question the all-knowing jamessan. -bec12b6 Made jamessan's code agree with his comment (and the maximum integer that can fit into two bytes). -699bb15 Fix a test failure by limiting random.randrange to [-32768, 32767] -d39846a Add a pointer to importantPlugins config var in defaultplugin's help. -9f3bc9d IrcCallback's super() doesn't take any args. -8786b4c Added clearq command to clear the send queue. -d08eee8 Made httpUrl arg wrapper add http:// if that produces a valid http url. -526e71e Added test for firewall, fixed implementation so it actually works. -9d474f7 We can still continue if we're unable to load a plugin. -2f15eb2 getHaveOp needs to call getChannel if state.channel isn't set -4827155 Use network.ssl.setValue instead of network.ssl.set -e31d352 Correct the logic in _handleSocketError -ac2fe7d Add azn and uniud commands. -2672cf6 Fixed for a certain user whose name starts with a J and has "Finch" in it. -1bf4f55 Added tests for later notes. -1979f5a Fixed bugs, added tests, etc. -9a43f04 Fixed final syntax error, added test. -67d262a Fixed another bug in the new rank command. -8fefeaa Fixed a few bugs in the new rank command. -479c11e Added Later.remove. -7f7fd4d Added ChannelStats.rank. -64d3479 Added additional help for supybot.log.level. -0278318 Add +svn to the version -7bb3b1e Merge the changes from the python25compat branch into the trunk -b24eedf Use the hostmask argument isProtected is given instead of trying to use a non-existant variable. -74e06ea Catch the proper exception when parsing the title fails. -f1948a2 Final cleanups for BadWords kicking. -e292c5d Added kick ability to the BadWords plugin, imported it from supybot-plugins. -068f029 wrap() String.len to vastly simplify the function and prevent responding with -1 when we get no arguments. Add a test to make sure we respond with the help when called with no arguments. -9969698 Only tag the ircmsg if we actually get one back from irc.reply. We don't in situations like: @topic fit [tiny $url] -5020391 Set svn:ignore for the build directory -a260230 Add svn:ignore for *.pyc files -8111c48 Switch from rssparser 3.3 to (the renamed) feedparser 4.1 in order to properly handle Bugzilla RSS feeds. -29778f5 Fix the registry type for supybot.replies.possibleBug. -5c19747 Fix the tests for mircColor and sorted (Thanks dcraven) -a8a7ec5 Fix Google.calc ... Google changed their HTML -680473b If we're using python2.5, import re in place of sre. -2bf838f Include the proper string in assertAction's error message. -b57311a Remove first person modification of the reason clause and add tests to support it. -78f0307 Handle flusher correctly. -6c13f55 src/log.py: Seriously simplify the handling of different logging levels for log and log.stdout by setting the level on the different handlers ranther than the logging object itself. -664f56a src/log.py: Collapse MultiLogger's methods into using __getattr__ to detect what's being called and return the proper function. -2636a35 src/log.py: Support different logging levels for stdout and the logfile. -f91318e src/conf.py: Don't use a NormalizedString for supybot.replies.possibleBug since it breaks up the URL. -5d954f7 plugins/Google: Update the URLs referencing the search API. -ee9aaa8 plugins/Web: Swtich the title parser back to HTMLParser sing sgmllib's parser spins on invalid input. -deb6dbc docs/PLUGIN_TUTORIAL: Add a note about importing the random module. -4064da7 plugins/RSS: UTF-8 encode the RSS' URL to prevent an encoding error when including the URL in the reply. -ea6000b src/callbacks.py: Methods whose name != their canonical name should not be considered command methods (and therefore won't be listed in the output from Misc.list). -3908e98 plugins/Factoids: Dynamically generate the help string using the value of supybot.plugins.Factoids.learnSeparator -cd2b58a src/callbacks.py: Allow the docstring to be passed to getHelp() -4ee1437 Services/plugin.py: Add some parens to ensure self.sentGhost is only used if it's not None. -99630bc Bump versions to 0.83.2+darcs -6e7339c 0.83.2 RELNOTES -3288bb6 Changelog for 0.83.2 -9214f6a plugins/Services: Make ghostDelay configurable with a default of 60 seconds. -c3cacbc Munge Author's email in __str__ instead of relying on munging the results of Author.__str__ -1be3d7f plugins/Services: Only send GHOST once every 60 seconds to prevent spinning when the services are down. Bug 1491034 -0af94ef Removing docs/INTERFACES since jemfinch doesn't want to update it and it's nearly useless in its current state. -67c8318 docs/INTERFACES: Re-add from CVS -987c696 plugins/Seen: Use an IrcSet to gather the seen nicks instead of a list. This makes commands like '@seen *amessan' work as expected. -07be8cd src/ircutils.py: A nasty hack around mIRC's broken color code rules. Must specify a foreground color if a background color is being specified, so we'll default it to white. -4de0a49 plugins/Misc/test.py: Correct a test and make a couple tests more robust. -48a5f2a plugins/Misc/test.py: Add a missing plugin that needs to be loaded. Update some documentation and add a note about why a test is failing. -514ddbc src/log.py: Fix a NameError in a Windows specific section of the code. -a64f4e4 docs/CAPABILITIES: Fix a typo. -dc6ae3c src/test.py: Update some documentation. -f249946 plugins/Google/test.py: Updated testNoNoLicenseKeyError to change the proper config variable and be safe when doing so. Also should be using a Snarf assert. -8d09aae plugins/Filter/test.py: Need to include the Reply plugin for the action command. -855453a plugins/Web/test.py: Bump the timeout since we're fetching a lot of information from other sources, which may take a while. -73d7fd3 plugins/RSS/plugin.py: Refactor the character encoding detection and conversion so it can be used in more places. Hopepfully this will cause fewer UnicodeDecodeErrors. -6722a85 plugins/RSS/test.py: A missing step in testAnnounce was causing other tests to unexpectedly fail. -48120bf src/callbacks.py: Update a debug statement so it prints the proper method name. -67697d8 src/registry.py: Update StringWithSpaceOnRight to accept the empty string as a valid value (instead of padding a space). -adc53b1 src/registry.py: Update StringSurroundedBySpaces to only be one space if an empty value is set. -afc7831 plugins/Alias: Update Alias.lock and Alias.unlock to work now that aliases are no longer attributes of the plugin. -e15a561 plugins/Channel: Add the expiry information to Channel.ban list. -7c88da9 Add the ADVANCED_PLUGIN_CONFIG, ADVANCED_PLUGIN_TESTING, CAPABILITIES, and USING_UTILS docs. -9b79f11 src/drivers/__init__.py: Make Socket the default driver since Twisted has been causing so many problems lately. -96e001e Add nickserv "Password accepted" message for RusNet -53e88a6 plugins/RSS/test.py: Remove a comment that doesn't apply anymore and add a test for another encoding problem. -880cce5 src/utils/str.format: Recognize digits before the '.' in %f formatting. -6a2523f Fix some typos in PLUGIN_TUTORIAL and update some wording so it doesn't assume the reader is on the website. -f54c7b6 Update USING_WRAP to match current practices. -0f41a92 Add the USING_WRAP and PLUGIN_TUTORIAL docs Strike wrote. -a395558 plugins/Karma: Comment explaining the last bugfix. -c4b4fc0 scripts/supybot: Stop setting a umask. We'll just obey the user's umask setting. -47d84c1 plugins/Karma: FINALLY fix the crash bug with karma when addressing the bot and supybot.plugins.Karma.allowUnaddressedKarma was true. -26c0adf added support for Twisted2.0 by preventing the twisted reactor from spawning threads for dns queries. -a3e4fc5 Change the modeline to use softtabstop instead of tabstop. -b416fb1 Added docs/STYLE from CVS. -177f373 plugins/Services: Recognize Freenode's response when trying to identify with an unregistered nick. -fdc9c91 plugins/Services: Forgot to set 'on' in a couple places -a373b17 Fixed a typo in the help for Topic.format. -5b3ca9b src/registry.py, test/test_registry.py: Better handling of backslashes in config values. -76deae4 plugins/Services: Add a note to the log messages indicating which network the various Services actions are occuring on. -84b1c7b src/conf.py: Update the help string for supybot.drivers.module. It no longer refers to asyncore and specifies that Twisted is used by default if detected. -6d45897 Moved the disable method closer to its call site. -4dcc4de Fixed PrivmsgTextCase not to require Karma, which requires SQLite. -dca3a3c Minor style tweak. -9da5d05 Fixed a bug in handling of multiplication in results. -ec6779b Removed some unused variables from setup.py. -22c6422 plugins/Network: Actually parse the option list and set an ssl variable. -648ae85 URL: Update URL.last so that getopts args are only .lower()'d if they're a string. -0af83d2 src/conf, plugins/Owner, plugins/Network: Add support for specifying an ssl connection via Network.connect. -97fdd16 scripts/supybot-wizard: Add a question regarding the use of an SSL connection. -0b83f01 src/irclib.py: Document the protected/channel owner patch -cbb5b7a protect_and_chanowner_in_unrealircd -e5be124 supybot-wizard: Update the intro paragraph since we haven't used that method in a loooong time. -f917ffd plugin/Praise: Don't rstrip '.'. People can learn not to end their praise with a '.'. -5c59539 Change pysqlite.sf.net references to pysqlite.org -ad4ef00 plugins/MoobotFactoids: Fix bug in OptionList. -9883cb5 plugins/MoobotFactoids: Add a test case for broken OptionList behavior. -e9fd59d plugins/URL: Make URL.last case-insensitive. -9cb1669 src/utils/web: Add another "UNKNOWN_HOST" code to catch. -9c34b23 src/ircdb: checkPassword should return false when password is None instead of trying to continue with the check. -d074721 plugins/User: Make sure we raise the error in User.unregister so allowUnregistration is obeyed. -53149cc Update my email address in the man pages and add supybot-test.1 -9d48f2c plugins/Web: Update the exception handling for the change in parsers. -8cf975d plugins/Config: Finally fix Config.help so the error message actually reports the name instead of %s. -f470c94 plugins/ChannelLogger: Register the config var that the code is expecting to use. -fe72d70 +darcs -0974d70 Version 0.83.1 -f926f1d plugins/Owner: Fix the bug where plugins couldn't be loaded until after the first network was connected to. -86a69b8 INSTALL: Add another check for whether or not the user needs the python-dev package. -92b7925 +darcs -0f56e0f Version 0.83.0, for real -b701d0f UNDO: +darcs -b74c0e6 +darcs -2e38b5e Version 0.83.0 -296980e scripts/supybot-plugin-create: Prompt the user to see if the wish to use Supybot's license. -408887e Initial import of GETTING_STARTED -ef3e002 src/utils/net: Fix our method of determining whether an IPV6 or IP socket is needed. -da76219 INSTALL: Remove the 'local install' note for Windows. -96bb8c4 INSTALL: Update the doc to be STX-formatted and include the 'local install' addendum. -9700121 plugins/Todo: Specify a converter so negative priorities don't cause safeEval to bitch. -603cab6 Loaded plugins during __init__ rather than do001. -27656e5 Added a few more asserts and clarified an already existing one. -3a0d71c plugins/Config: Also reload the ignoresdb when handling a SIGHUP. -a34a4fc plugins/Services: Recognize the 'already identified' message for tracking identified status. -a3149f0 src/irclib: If the post-inFilter message differs from the pre-inFilter message, log it for debugging purposes. -fa5ad68 plugins/Network: Don't include +s channels in Network.whois reply if the reply isn't going to the +s channel. -a035492 plugins/QuoteGrabs: Order the quotes in reverse chronological order. -cede4a4 Fixed bug in ircutils.isNick, which allowed nicks to start with dashes. -14acfca Forgot a .split() that was causing the channel-database parsing to fail on bans. -5582e69 Fixed ircdb.py to give full exception traces when unexpected exceptions occur. -f8156cc Removed TupleSubclass, which wasn't being used. -17afef9 src/commands: Change the rest context so that it raises an IndexError when no arguments are available. -772f1dd scripts/supybot-plugin-doc: Don't escape characters if they're inside a single-quoted string. Also, make sure config vars with a default of None have a printable default string. -75c9a45 plugins/Time: Fix some formatting so it looks correct in STX. -099231d plugins/Math: Quote some example strings so the STX version is formatted better. -9d99590 plugins/Unix: Update the tests to reflect the changes in Unix.spell responses. -d2dc42e plugins/Google: Fix some formatting in Google.meta's docstring. -0367ae5 plugins/Unix: Keep track of two lines in Unix.spell since aspell sometimes list suggestions after a '*' or '+' line. -1edb4e1 plugins/RSS: Colons are pretty. -1aa73ac Removed Acquire, which I won't be using anymore. -45c7f77 plugins/RSS: Fix info so it works again. -b375ea9 plugins/Web: Fixed the title-retrieval parser to actually retrieve the entire title. -77330d4 Moved an XXX and added a skeleton method. -fc87901 Added some more XXXes for dangerfan. -27ac845 Moved some XXXes around, added some methods (so naming them isn't hard) and a new XXX about methods that return file objects. -75ecf79 plugins/Network: Fix an information leak in Network.whois -91874db Added some XXXes to transaction.py. -bc3a47f plugins/Format: Fix some copy/paste errors. -5b8400e Removed utils.iter.one, which was dumb, because iterators have a .next() method that does the same thing. -6f8e3d3 src/irclib: Let's not override the name for the set type. -14dc0c0 plugins/RSS: If the feed supplies an encoding, encode the headlines with it. -a88f52b Forgot to change the exception name in one of the spots it was raised in. -e9c52f6 Prefixed some non-public method names with an underscore. -612a8e1 Added utils.{transaction,error} -b369039 Added utils.iter.one, to grab one value from an iterable. -201d4ac plugins/Google: Use a sensical form of English for Google.phonebook's error response. -1d7d642 plugins/MoobotFactoids: Load a threaded plugin to hopefully trigger a timing bug. -1a5e05e NestedCommandsIrcProxy should set self.repliedTo if self.error is called. -830a5c5 Commented out an overly verbose (even for DEBUG level) log message. -bc1451e plugins/Web: Encountering an HTMLParser exception doesn't mean the title hasn't already been snarfed. Don't bail right away. -bd31b7f src/irclib: Handle IRCds which use a MAXLIST-style value for the MAXBANS 005 key. -0880a07 test/test_callbacks: Fix a test failure. -464c1e3 src/callbacks: Remove a duplicate except statement. -e4c9381 src/commands: Update first so that state.errored will not prevent the bot from responding when the first converter fails. -35065b8 plugins/Topic: Remove an unnecessary call to irc.state.getTopic. -c60deeb plugins/Time: Add Utilities as a loaded plugin for the tests in order to fix some test failures. -d4d165e plugins/Misc: Make sure Misc.last only skips the first message if last is being performed on the channel the user is currently in. -9df805c Removed a useless assert. -3d66bc8 Let's ensure that self.repliedTo is False before calling invalidCommands. -dff2862 Fixed jamessan's multiple-invalidCommand bug. -0d83dde Moved a comment to the appropriate place. -0027916 test/test_callbacks.py: Added a test for multiple, nested invalidCommands not being recognized. -cc4c143 Log the name of each spawned thread at the DEBUG level. -490fb0b Changed prefixName to prefixNick, which is more appropriate, and has always bothered me. Better now than later. -a477f12 plugins/Topic: Add a proper test for the previous Topic.set fix. -b41166c This should've been an error response in the first place. -4da1f38 Fixed the security issue nicktastic reported, and made sure that if, for some reason, an error doesn't raise an exception, it still stops the calling of the command function. -c444a67 plugins/Channel: Catch a Key Error in "ban remove" and "ignore remove". -766dad2 Fixed an error in hostmask.list when there are no hostmasks. -5c8677c Give a better error message when a given command isn't found in a plugin. -6ed01d4 plugins/Services: Fix up an error message so it actually makes sense. -227b152 Some plugins raise callbacks.Error rather than ImportError when they can't be imported (usually due to a dependency on sqlite or similar). -c1dcb47 Added another elucidating comment. -5815b3b Added some elucidating comments. -b5f1e2a Added utils.iter.limited, an iterable that limits the number of elements that can be taken from another iterable. -c268aab +darcs -1475234 Initial changelog and version changes for 0.83.0rc3. -7549a9f docs/man: Update supybot.1 and supybot-adduser.1 to reflect removal of options. -34f5be5 RSS: Use del instead of pop. -7fdb72a plugins/RSS: Stop using attributes for feeds. -4baff17 plugins/Alias: Stop using attributes for aliases. -85e9035 plugins/RSS: Fix a bug in RSS.remove. -fab281b Long line. -b9cd027 Fixed the help for register. -66076c0 Removed a useless wrapper around a method that shouldn't exist. -b09f358 Removed options related to the hashing of passwords; it's an unimportant user detail, and people smart enough to care are smart enough to do it themselves. -90d199b Removed the call to os.umask, which gained nothing and caused some problems (ones that I haven't quite figured out) -b59742d Removed the -O and -OO switches to reduce confusion; they didn't work anyway. -660776f Fixed twisted.internet.ssl imports to work still if OpenSSL isn't installed. -4fb1519 Properly fixed bugs where plugins expected strings and got non-strings. -a1992b5 Fixed the bug that caused "reply reply" to be necessary instead of just "reply". -aeaad90 plugins/Time: Make sure the Time commands are nested-safe, i.e. they reply with strings. -ff2eb7d Tried (again) to fix bug #1156765. This might resurrect some old bugs, such as the inability to quit via Ctrl-C or similar. It must be tested. -5e07947 plugins/Ctcp: Fix another utils.commaAndify bug. -8730832 Refactored the Socket driver, hopefully to resolve the currently outstanding bugs (#1156765 and #1097217) with it. -6986bba Changed the log message for trying SSL with Socket driver to point people in the direction of Twisted. -49e7467 Made the maxReconnectWait configurable. -d565307 plugins/Topic: Fix a bug with Topic.set where setting topic 1 would set the entire topic. -e4242ba plugin/Topic: Keep track of what the channel's topic is when we join so that we can undo the first topic change. -4e4c23a Removed the "All channels synced ..." message since it's not entirely accurate with our new JOIN ratelimiting. -08ab492 Fixed our NoSuitableDatabase error message not to log a traceback. -d5a889b Fixed problem that allowed connecting to an already-connected network. -9aaba99 Changed log message for 433 to be more accurate when a 432 is encountered. -c5e1f4e Fix for bug #1203201. -0b84819 Fixed some style issues with logging calls. -a1e707c Changed Synchronized to make attributes (and changing the attributes' names) more maintainable. -23c0d23 src/conf.py: addhostmask is now "hostmask add" -994cff5 Update a couple missed changeFunctionName calls. -79fc5b5 Fixed a bug in the way Synchronized was implemented. -ce74fa8 Synchronized Commands (basically, all command-based plugins). Should fix the issue with Karma causing crashes due to PySQLite's un-thread-friendliness. -cbf154b Fixed Synchronized to allow synchronization of methods not defined in the current class. -4b0600a Added a Synchronized metaclass. -2394005 Moved utils.changeFunctionName to utils.python. -1d357dd Some more slight tweaks to the MetaFirewall implementation and stuff. -2861b5a Fixed some uselessness in log.MetaFirewall and removed an attribute that shouldn't be firewalled (it was vestigial). -44c2f08 Used *MY* changelog entry for Seen.any. -f25003d Fixed the wrong Seen.any changelog. -00fc058 Put more useful information into the docstring for utils.seq.window. -8693dbd Update version numbers for 0.83.0rc2. -aa40e82 Add RELNOTES for 0.83.0rc2. -789ad20 changelog update for 0.83.0rc2. -170d735 plugins/Owner: Update some tests to how they should be written. Now we just need to get the code to work correctly. -106fbc6 plugins/Channel: Make disable/enable work again. -d26f9b1 plugins/Todo: Fix a test failure. -9a68ef2 plugins/Note: Fix a test failure. -c6007b3 plugins/Alias: Fix a test failure. -915f84c plugins/Plugin: Move an if outside of a for loop, since it won't change during the for loop. -3c736cf Fix up the changelog. -fa824bd Reordered changelog. Yeah, it's a little late, but it is somewhat useful anyway, for people who haven't used the release candidates. -22aac85 setup.py: Add Insult, News, and Unix to the list of plugins. -f1e5f95 Add Insult in the new plugin format. -41c7c5f Add Unix in the new plugin format. -9693685 Add News in the new plugin format. -726679d plugins/Misc: Give proper help when listing a plugin with no commands. -7bfc9cb utils/str: Rename nth to ordinal and have it return the full string instead of just the ordinal ending. -7deaddd utils.str.nth -229990e plugins/Todo: Forgot to import ircdb when I updated the "@todo" message. -06800f9 Correctly catch the HTMLParseError -47179f8 Catch HTMLParserErrors when we're trying to grab the . -ae5b51f Add +darcs to version. -6666e25 Forgot to update the version numbers. -1dc5a06 Add Vim modeline to supybot-wizard. -903e605 Really make supybot-wizard see the new-style plugins. -5948a71 Make supybot-wizard see the new-style plugins. -2860053 Fix an exception in supybot-wizard. -f79ffc8 Fixed bug with replies when it's not a command and it's not nested. -5274eb0 Commit the initial ChangeLog and RELNOTES for 0.83.0rc1. Open for comments, suggestions, inclusion of skipped over information. -e9389a0 Add Factoids and MoobotFactoids to setup.py -b5b3d16 Relay.{join,part} should require admin capability. -7af1a75 Add release.py, updated to use Darcs. -c444ec3 Make sure to catch any KeyErrors. -3a061ad Change the "no todo" message for jemfinch. -fcfda73 Bug #1190350, Don't grab fake title. -d9ce747 Add optional capability checking for changing another user's Herald. -df73547 Fix up Plugin.contributors and a couple contributors dicts. -44ef2bd Add unaddressedRegexps to PluginRegexp. -53cc36b Really fix enable. -8ccf3ad Fix enable so we can actually enable commands again. -3e07d76 Alias names can coincide with plugin names now. -e7e72d4 Unbreak invalidCommands. -948571c Move MF to s-d -116f598 Re-add manual argument parsing since some stuff is a bit complex for wrap. -979cbd5 Fix some bugs in the Factoids conversion. -6b38346 Factoids should be under plugins/ -cc16ea6 Add Factoids in the new plugin format. It's probably still broken. -7e124b6 Change "User.set{password,secure}" to "User.set {password,secure}" -141bbf8 Remove the hostmask test from Misc. -9482f27 Make hostmask a source-nested command in User. -8698eaf Add tests to clarify how source-nested commands work. -b48ca7a Added supybot.protocols.irc.queuing.rateLimit.join, to throttle joins. -73f639b Changed supybot.protocols.irc.refuseToQueueDuplicateMessages to supybot.protocols.irc.queuing.duplicates. -8ce5a18 Add tests for "command named same as nested command class". -c621905 We now spawn a thread for invalidCommands when any of the plugins that will run invalidCommands are threaded. -e1d3c5e Changed the name of IrcObjectProxy to something more indicative of what it does. -c66e7b3 Added a utils.python module for python-esque things. -0333fb7 Updated copyright and removed some whitespace. -5889432 Add man page for supybot-plugin-doc. -6402f43 Actually make use of the clean option. -29fc568 Added a touch function to the file utils module. -c8d114b Added a few useful file functions. -ca41962 Quote the bad channel. -d0fadee Specify a default directory and don't prompt when we create the plugins directory. -27d835e Some more man page updates. -e691c94 Make some unnecessary questions for advanced users only. -43bec28 Simplify directory creation for non-advanced users. -3abadc4 Update the man pages. -482a490 Rename supybot-newplugin to supybot-plugin-create. -aea980c Update ValidChannel exceptions to contain the invalid channel. -99ea2e1 Add a man page for supybot-botchk. -bf64c83 Initial import of our man pages. -d4d2350 Finish implementing supybot-plugin-doc. -bc9cdc4 Fixed the broken mores. -47b42ee Fixed a NameError in an exception handler for a module we don't use anymore. -0773aa3 Made Proxy Irc objects map to the same dictionary slot, so we don't need to worry about calling getRealIrc all the time. -5ce2baa It should be possible to identify without flushing. -47a1912 Improved the reply given when a plugin with no commands is 'list'ed. -1dd6dc5 Proper fix for upkeep. -1a1a40a Forgot a parenthese, resulting in a TypeError. -9c7c384 Google.metagoogle -> Google.meta -e29a9c0 Fix line lengths. -4e7a00d Admin refactored ignore/unignore/ignores to ignore add/remove/list, and changed tests accordingly. -890d92d Admin capability add/remove refactored, and tests changed accordingly. -71830d0 Because super sucks, we need to assign to self.log before calling our parents' __init__s, because mixins might be before our parents. Ridiculous. Don't be surprised if we go on a super-excising rampage in the future. -9971e99 Fix the modelines. -d56aaea supybot-plugin-doc: added configuration generation -0ce71fe supybot-plugin-doc: added support for nested plugins command generation. -fb4ac5d supybot-plugin-doc: added coyright notice and logging information, fixed break on nested plugins. -7c5463d Add some more assertion messages. -2c96a65 asserts should have an associated message. -5a7442c an early start to supybot-plugin-doc -2aded95 Add a test for Note.next -7cf0728 Added a 'next' command. -d5c279e Changed % into format in output strings. -4404cdc dbi cdb mapping trying to use a non-existent variable. -7aae5ae fix alternate separator with slash in first part of regexp -6b19504 Changed the utils.iter.choice test to work bettar. -3d60b66 Made the SimpleProxy interface a little more consistent with IrcObjectProxy. -9ec4493 Have to handle the fact that we might have a proxy. -7e44128 Added the Web.fetch command. -c598e4c Added a few more UNKNOWN_HOST types. -5fe4730 Added __url__ to the default stuff generated by supybot-newplugin. -bc49542 Added supybot-plugin-package to the list of installed scripts. -ee0434a Ssomeone wass a little esss happy, me thinkss. -bd7ca03 Added supybot-plugin-package, later to be filled out with more functionality. -2584f4a Capitalization change. -7445ed0 Let's give do* methods at least a SimpleProxy, if for no other reason than to stave off the questions and consternation resulting from *not* having an irc.reply available. -aefcd59 Move structures to utils/ -36f6f11 Line too long. -24271c7 No need to issue a warning here *and* when we call connectSSL. -df23365 dded code to Socket driver to make sure it refuses to connect when network.ssl is set to True -eab237d Rename misc.log to messages.log -5604346 Make sure to set a sane umask. -38784b9 Plugin needed a little format() love. -606e92a Add supybot.plugins.ShrinkUrl.bold -e3d4478 Fix some test failures. -bd6aa8f Fixed some bugs introduced in my earlier commit, uncovered by the Note tests. -69a83e8 Stopped possible AttributeError (nick could've been None). -1f49fc1 Some small refactorings, fixed a problem in unsend. -0e68a44 Fixed bug with nested plugins having the same name as themselves. -52fabfd Added a test for nested plugins having the same command name as the plugin name. It fails right now. -ecca13e Simplified the implementation of structures.TimeoutQueue. -b39eaa7 Added .bashrc to the list of files to source in supybot-botchk. -4fb57f2 Updated some docs in the plugins module. -a2e2063 Added a callCommand to the Web plugin to catch utils.web.Error. -1cc969b Clarified the help for some command (I remember not which one now) -aa92e37 Add Seen.any which reports any activity seen instead of just PRIVMG activity. -0b11cb9 The grammar nazi says fewer is the correct word. -1ea9fe1 Catch an exception when dice with 0 sides are specified. -7b46f95 Better error messages when we can't load PySQLite. -eb970c0 Added check for successful PyOpenSSL import in Twisted driver and increased log level -32e0b29 SSL server support for Twisted driver. -d134587 Added getPluginHelp() method to return docstring for individual plugins. -b7736d8 Update ChannelStats to obey channelSpecific. -54d17d9 Update a reference to getops. -0016b4f Workaround for twisted stupidity. -1c56071 Forgot a couple self's when adding split throttling. -51637b3 Forgot this from the nested plugins changes. -fc2a18b Added a name= keyword argument for commands.wrap, to override the name of the method being wrapped. -7c2bbeb Forgot the tests for source-nested plugins. -65fbb08 Started using source-nested plugins. -574e950 Added support for source-nested plugins. -09eecf5 Fix ranking display. -72edc74 Show the person's part message (if there is one). -d43828e Added split throttling to the Herald plugin. -13e1f7c Added isSplit, a function for checking whether a given QUIT message is a split quit. -50d390e Added a reset method, a couple more tests, and fixed a slight bug (IndexError being raised from the wrong place) -b0e006a Fixed help to show the full command. -b272bd7 Goodbye debug log. -919f9e0 Grammar nazi of DOOM! -80c53dc Make automatic announcement errors not: a) poll every time __call__ is called, b) respond with the errors. -4648360 Added op, halfop, and voice converters, and converted Channel to use them. -1e56f0d Forgot to have a case for a disabled channel :) -74e4299 Forgot a dot. -e863999 Accidentally changed this from an error to a reply when refactoring. -48c472d Check for the unknown author and special case accordingly -5e5e2f3 Fixed some typos -2408457 Fix a bug with a missing argument for string formatting. -181c623 Make our error message for the Plugin.__init__ changes better and try to prevent spurious, invalid error messages. -527a6e1 Fix the problem with RSS complaining about invalid feed names. -db36e97 Wrap Plugin.list. -98199fe Forgot to add Limiter to setup.py -234beab Add Limiter in the new plugin format. -25ae2a5 Use get to avoid a KeyError. -3f94bf6 Fix an exception in RSS.announce. -9f6fcf2 Add Todo in the new plugin format. The db format has been changed to a single flat file per user. -07814fc Fix for bug in first.__repr__. -06a6656 Updated Status to use some of the new methods. -66036c3 Oops, forgot a format. -1c10d4c Fixed help. -ee7ca16 Fix for the new refactoring in callbacks. -aff8f86 Disallow retrieving other people's capabilities and make the response private so we don't leak channel information. -21970da Make use of format() in a few more places. -5985562 Put the monkey patch in the wrong place. -c9408a9 Re-added capability checking stuff. Boo. This needs refactored. -ff3b039 Let's not try to call getCommand on callbacks that don't have it. -7ff9463 A little refactoring, a few more cases where we should ignore messages. -6756d49 Fixed Owner.isCommand to be isCommandMethod. -ff8728b Moved the titleSnarfer to Web, so we need to insist that we're called before that instead. -08b4359 Fix for bug #1143733. -06feea3 Fixed test failures caused after test_irclib.py runs, and added a couple extra asserts and some commented out lines for more predictable test order. -cf760c0 Changed Karma's tokenizedCommand to an invalidCommand. -b0df87e Fixed addressedRegexps handling in PluginRegexp. -568ebcd Add tests for utils.iter.choice. -9ed5efa Fix defaultPlugin to work with jemfinch's refactoring. -f50edbe Added our hacked shlex.py, prior to the 2.3 bastardization that made it unsuitable for our purposes. -e6645df Removed the generated value, which is less than useful. -34e4891 Changed to use getattr again; getCommandMethod is pretty much reserved for, well, commands. -9327be4 Added an assert to make sure findCallbacksForArgs is used correctly. -e926198 Forgot to remove this with the rest of the Babelfish removal. -fe353df Removed Babelfish, sending it to supybot-plugins. -bd23fd6 Fixed to make the tests run again with the new refactoring. -3fc1553 Added an option to clean the log/conf/data directories to supybot-test. -6aca01b Made utils.file.mktemp a little more stochastic. -8756b79 Moved the appropriate commands from Misc to Plugin, and fixed the test failures in the process. -180291d Cleaned up listCommands a bit. -2f928e9 Added default-to-important-plugins behavior back. -2a75f4b Added a classModule attribute to plugins to have easy access to it (the new plugin format made that significantly harder for us; this is an easy workaround). -ed0b91c Tweaked some methods to fix some bugs (yes, it's ambiguous, I know). -0e86d75 Fixed apropos and help to work with the newly refactored command change. -c864836 Finally refactored to make commands be "lists of strings" rather than just strings. This is preliminary to allowing nested plugins. -5b3b616 Forgot to remove the tests for getCommands. -4808a68 Added utils.iter.startswith. -4f99f41 Removed a useless comment. -c1c4649 Added a canonicalName method to plugins. -c3e1d1d Another elucidating comment. -e26d46f Added some elucidating comments and asserts. -849b12e Removed getCommands, which isn't being used by anything. -c2dbe9d Another callbacks.Privmsg => callbacks.Plugin conversion. -156084c Fixed some bugs introduced with the latest refactoring of callCommand, etc. -cb886de Move Weather to supybot-plugins. -544e965 Now we can try to setup a proper environment for our Supybot. -587689f Move Weather to supybot-plugins. -2693d40 Refactored _callCommand to put it in its appropriate place. -7389f17 Forgot an import which broke choice. -ada52c7 Needed to re-raise ArgumentError in order to prevent a spurious test failure. -90c0007 utils.gen.* functions shouldn't explicitly be called since they're all in the utils namespace. -0ba3b07 Forgot to remove log.stat calls from drivers stuff. -e97f111 Removed the checkCapabilities keyword argument because it wasn't used anywhere in our source code. -99d7238 Changed the name of getCommand to getCommandMethod in preparation for a major refactoring. -c09a7ca Removed log.stat, it was dumb. -1193890 Moved the progstats function directly into the command, since we don't need it from configure() anymore. -b13a607 Fix some test failures. -1e5332f Update Karma for the utils restructuring. -dd1c287 Added progstats and environ commands. -e8c6e6f Let's try a sh -cl to act like a login shell. -34d20ca Fix a bug in Weather.wunder due to improperly ordered arguments to re.search -e3b039b Add Weather.rsswunder -32dce47 Let's be honest about what we accept. -fdbecfd Changed the name of the strlen command just to be 'len'. -afd53f2 Removed commands that were moved to String. -68ef3d8 Fix some grammar in the help string. -4030026 Catch the proper errors when a field isn't found. -9f6e826 Make Weather.weather less complicated and fix the bug where it wouldn't be listed as a command until it had been called once. -ad35c62 Refactored to split up Plugin into Commands and PluginMixin. -181d0d5 Had the more and the messages reversed. -f7917bc Update class names. -3c83811 Fix the base class used in newplugin. -6f3db18 Add Weather to setup.py and re-alphabetize the plugin list. -a6973f6 Removed the ability to make regexp-based plugins. -8874676 Update source URL. -86822f0 Fix a couple more bugs related to wunderground's site-format change. -b05834f Update supybot-newplugin to use the correct base class for plugins. -adff889 Added a skeletal Plugin plugin. -56ad1ea I don't know why this hunk of code was there, but it was causing problems for the Plugin plugin, so I removed it. -b0cb616 Changed callbacks.Privmsg to be callbacks.Plugin, and callbacks.PrivmsgCommandAndRegexp to be callbacks.Plugin. -3c3b729 Added Protector in the new plugin format. -4622564 Changed the implementation of IrcMsgQueue a bit. -3a7202b More ignorance can never hurt. Added supybot.plugins.Relay.ignores, a channel configuration variable that allows people to specify hostmasks that are ignored. -203491e Don't load plugins whose name doesn't start with a capital. This fixed (or at least hides) the alwaysLoadImportant warning. -d8b40a1 Make sure we only grab the first temperate format, in cases were both F and C are listed. -097b8f2 Add Weather in the new plugin format. -d9e5b71 Explanatory error message about the change to callbacks.Privmsg*'s __init__ prototype. -de7d0fa Provide a proper response for Later.notes when no notes are waiting. -70d1b1d Moved _mores to IrcObjectProxy, where it more rightfully belongs. -808db81 Forgot this one last remnant of callbacks.PrivmsgRegexp. -9727160 Removed callbacks.Privmsg; if it is replaced at some later time, it'll be different. -affb09e Commented out the case-insensitivity tests, since there's no easy way to fix them, and I'm willing to sacrifice the feature. -a3ebea6 Commented out a test that will probably never work again. -fd365e9 Removed the revision tests, since we removed the revision command. -476a620 Fixed possible error when the returned message includes formatting characters. -e53e237 Better error logging for when commands.wrap fails to provide the right number of arguments. -fce82cf Fix a bug introduced in supybot-newplugin. -fdddefe Added a listCommands method to PrivmsgRegexp, to allow plugins to list their own commands. -4125f97 Updating version from 0.80.0 to 0.80.1+darcs -d74c1b2 Changed Anonymous logging to use new format() style logs -65f713d Removed log.verbose. I never liked it anyway. -6580fc5 2.4 defines groupby, so there's no need to define our own. -566b273 Removed some imports. -571ff24 Changed canonicalize to canonize -- thanks Skorobeus! -e6beec2 Removed some more unused imports. -a656fd0 Removed recursive alias detection; it was imperfect and our nesting limit will catch issues now. -14837bc Added Topic.fit. -6b75be6 Changed supybot.protocols.irc.queueDuplicateMessages. -f930913 Removed the sets import from irclib.py. -753d517 Added supybot-botchk. -3e1ff0d Line was too long. -7fe8601 Updated the sample docstrings to explain better what they do. -75d45b9 Added Alias in the new plugin format. -7ed4967 Added a --plugins-dir option to supybot-test so plugins don't have to be specified individually. -e13c958 I was tired of that stupid warning. -7988af4 Removed DBHandler; it's not used anywhere except the unconverted Todo plugin, which should be switched to a flat file database (or rather, directory of databases) anyway. -d44a1ad Changed the variable names supybot.plugins.Herald.throttleTime (to throttle) and .throttleTimeAfterPart to .throttle.afterPart. Also changed the default of .throttle.afterPart, so people could test that it works more easily. -10e496e Forgot to convert the response of time parsing to a string before replying with it. -5ca79f0 Hah, changed WebError to Error everywhere but the source :) -3582fa4 Added Karma plugin to setup.py -b654b13 Forgot to add Nickometer to setup.py. -82f3945 Karma plugin converted to the new format -7c741b7 Nickometer plugin converted to the new format -dbd9e9f Added a %r handler (repr, just like normal string formatting). -9d42913 Forgot to add Anonymous to plugins. -683357f There is no longer a __parent.doPrivmsg, since we no longer subclass callbacks.PCAR. -6e28d31 Removed unused and broken import. -ddc7881 Removed unused (and broken) imports. -93b0306 Removed an extra self in my __parent call. -a056b12 Changed to use an __parent instead of a super call. -f2ae3fd Added ChannelLogger in the new plugin format. -72da5ca Added Services in the new plugin format. -13c61d4 Added Seen in the new plugin format. -dab8974 Added Note in the new plugin format. -5f2d2c7 Conversion of Quote to new plugin format -f4def0f Conversion of Lart to new plugin format -0e3713f Added ChannelStats in the new plugin format. -16ff12a Conversion of Praise to new plugin format -fd604dc Fix error in format() conversion in plugins/__init__.py -4e0f37e Added AutoMode in the new plugin format. -37d0bb4 Fix plugins.ChannelIdDatabasePlugin's __init__ to accept an Irc now, like it should -c7d91d3 Added Time in the new plugin format. -33ba73e Supybot-wizard doesn't use imap! -135a82c Added URL in the new plugin format. -e4e5c14 Added Relay in the new plugin format. -e94900c Removed some debugging code, and added a bit of extra debug logging. -3f1b033 Added RSS in the new plugin format. -c409493 Update some copyright strings. -2836356 Add the Internet plugin in the new plugin format. Also move Fun.hexip to the Internet plugin. -4a52cdf Added NickCapture in the new plugin format. -069d43e Forgot to add Games and String to setup.py. -39e323f Split off commands from Fun and Utilities to the new String plugin. -d88bf5b Conversion of Anonymous -c998dfb Moving action,reply,private,notice to new Reply plugin (for real) -739c9ce Fix Misc tests not to rely on Gameknot -a93db7d Added Later in the new plugin format. -94bfb27 Some format character changes, and a little more information on the "Topic exceeds maximum length" error message. -7b2dbcf DOTS! -309b693 Added Topic in the new plugin format. -8669467 Split ping off from the old Fun plugin. -8c2d613 Add Games plugin, split from the old Fun plugin. -6965abc Made the warning log in Misc.version (a) info, and (b) more useful. -ff45b55 Remove #supybot as a suggested channel. #supybot-bots is better. -bc9f0ee Remove evil tabs! -92839a9 Remove supybot.privmsgs imports. -2b7e813 jemfinch needs his dots! -68d3b83 Remove the use of format() in logger functions since they handle it natively. -7313ae3 Added Google in the new plugin format. -f6e132d Added test_format.py, added floating point formatting to format, and fixed a bug in the %t format. -2a62e79 Fixed test failure in PositiveInteger. -cb05dc8 Fixed a typo in a variable name. -335fc3e Added Ctcp in the new plugin format. -f44be3b Allow timestamps in format to be None, indicating the current time. -0c2da03 Added the Web plugin (from pieces of Http, Fun, and URL) in the new plugin format. -18f8044 Converted ShrinkUrl to use format. -7471706 Forgot to add u to the _formatRe. -4ac7bb4 Added a %u specifier to format, for URLs. -3d57c40 Added ShrinkUrl in the new plugin format. -304ad08 Hacked out format into our logging calls. -8512f52 Fixed the Debug plugin actually to work. -8897e64 Removed test/test_fix.py, moving its tests to test/test_utils.py, and fixed the resulting bugs that were discovered. -978cf65 Added an email converter. -307f501 Abstracted out an assertError method for testing specs. -2b69944 Fixed a bug that was introduced in nItems. -2840aed Added tests for dynamicScope and fixed a bug that made it all but useless. -65893c8 Added emailRe to utils.net. -641c5cd Added __version__ strings to already-converted plugins. -e075c72 Added the Scheduler plugin in the new plugin format. -7b62f61 Add version string to QG -f2fba09 Move QG docstring to proper place -32d535c Addition of search to Quotegrabs -1b631ad Adding QuoteGrabs to setup.py for installation -a5ba65c Initial conversion of QuoteGrabs and addition of QG.search -6bf6dd6 Changed the default for adding a local plugins directory. -642e881 Unbreak the Owner tests. -afc3c3f Fix some calls to pluralize to not use the extra argument. Also updated the pluralize tests. -4b4bfa0 Update usage of utils.net functions. -ec045af Removed extraneous whitespace, unused imports, and converted some sets.Set() calls to set(). -0fde239 Update usage of utils.iter functions. -4d32d36 Update a few more places that use utils.str functions. -de89bf0 Update usage of utils.str functions. -47aa4c0 Remove the extra argument to utils.str.pluralize. -9099a1a Update utils.str.format to support specifying an 'and' string. -28cb5ab Update usage of functions in utils.gen. -0a89623 Update a couple more imports for the utils split up and fix.py removal. -2b04506 Added an __version__ string to Plugin/__init__.py as generated by supybot-newplugin. -5a46ec4 Remove the last supybot.fix imports. -9e83114 Un-break the bot. This stuff should probably go somewhere other than the Owner plugin at some point. -68b1d65 Plugin normalization, sanitation, etc. Removed unused imports, for the most part. -70da904 States don't have a copy method. -0a7fdae Changed some more webutils uses to utils.web. -6fbfa2b Moved a webutils import over to utils.web. -381a42d Added an "irc" argument to callbacks.Privmsg.__init__, so now plugins get an Irc on instantiation. -fe82ad6 Added an extra (elucidating) comment to the __init__.py template for importing/reloading third-party modules. -6f2aec3 Fix a bug where nickInChannel would add the channel to the args list. -0d693e8 Update supybot-newplugin to generate the current year for the copyright line. -1d1f8c4 Removed DEVS; we have a website for that now. -bc59e3c Change the remaining utils.normalizeWhitespace calls to utils.str.normalizeWhitespace. -5c72ded Stupid spelling error in a docstring. -a19a979 Robustified and improved utils.str.format a bit; added a simple test. -1f1d85f Removed an unused variable (_srcDir) -90e9017 Moved toBool to go before format in utils/str.py. -34f1fe6 Swapped the argument order for nItems *again*. -e248012 Added format to __builtins__. -90d95a0 Converted some plugin stuff to use format. -e1fe232 Converted commands.py to use the new utils.web instead of webutils; fixed a bug in the httpUrl converter which rejected https protocols. -933be49 Removed BUGS. I never liked it anyway; that's the place for a bug tracker. -c08d435 Fixed bug in irclib.IrcState's handling of KICK messages; they wouldn't remove the channel if the bot was kicked from it. -5fd6bbb Completely restructured our utils modules. Tons of changes. Here's the summary of things that matter most: -e625850 Moved dynamic scoping stuff out of fix.py and into its own module. -7fb3b21 Removed src/privmsgs.py and all the accompanying crap. -1ff2033 Updated copyright date and removed the __revision__ string. -d5dd72c Changed copyright date on plugins/__init__.py. -9712acf Removed wrapLines, which isn't used anywhere. -74b9a3c Moved eachSubstring to be a nested function; we don't use it anywhere else. -6d02564 Added Status in the new plugin format. -79c3461 Added Network in the new plugin format. -1923788 Changed copyright dates on Herald. -cb365a4 Fixed some bugs in supybot-wizard, reported by Grantbow. -af47a19 Added Herald in the new plugin format. -7094bec Moved the print statement to happen right before tests start (so it doesn't show up when running it with, for instance, the --help option). -d9689f8 Added the Filter plugin in the new plugin format. -f854314 Added the Format plugin in the new plugin format (no pun intended). -292b162 Fixed SyntaxError in supybot-wizard. -f5e4e64 Fixed Babelfish so that tests run. -850f457 Updated README to be accurate. -9a132bc Added the Debug plugin to the sandbox. -895cd3e Resurrected the test suite with the new supybot-test program and RCS. -3d3b149 Changed copyright years on test files -ec10a47 Erased last known bug in BUGS. -f30fceb MINOR removed some extraneous whitespace. -4f9d7f4 Converted Babelfish to the new plugin format. -59331aa Updated to be STX as well as ordered chronologically. -0e9a3c3 Added the Dict plugin in the new plugin format. -ddeac18 MINOR testsupport is no more. -d9df513 Added the Math plugin in the new plugin package format. -4aa220e Re-added the Utilities plugin in the new plugin format. -badec53 Changed tests to be more independent of outside plugins. -863c0e6 Moved loadPlugin{Module,Class} to its own module in src/ -8d415d7 Updated to work with the new supybot-test. -db722aa Added supybot-test and supybot.test. -0a556f6 Forgot to add {src,plugins}/__init__.py -2c31235 Moved docstrings in plugin packages to __init__.py instead of plugin.py; no lazy "backwards compatibility" hack. -683c2c1 PluginDocumentation Removal -5019d10 Updated license years. -8ca625d Initial import. -dbfec8a Add supybot module -da614f5 Add a link to the Darcs homepage. -3cc434c Proper url for supybot-plugins -a9c5e54 Filename says it all. -6be58d8 Fix a bug with Unix.wtf double replying. -88a906d Fix a bug where nickInChannel would append channel to the args list. -0ea4c3c Updated to 0.80.1+CVS -e68f1d2 Updated to 0.80.1. -7837e8f 0.80.1 for real now -b28880f Fix some more exceptions from not using plugins.getUserName -f03c753 0.80.1 -dbcc622 Fix an exception when adding the owner user. -ec3dba0 Add Windchill and Severe Weather to Weather.wunder -90f18a3 Add b and kb to the data units. -c961614 Updated to 0.80.0. -e7e5578 Updated to 0.80.0. -f930bf3 0.80.0 -a423d04 Remove a debugging print. -c0d95a2 Fix the bid regexp. -2b12472 Changed _getSep to raise ValueError instead of asserting. -4624115 No need to makeBackupIfSmaller in databases. That's more for configuration files. -e1a8aab Slight tweak to make the copyright more consistent with other files, as well as a grammatical fix. -80f9f7d Let's make this error message a *tad* more useful. -9e4066f Update the languages we support to include Greek, Russian, and Dutch. Chinese was changed to Chinese_simple and Chinese_traditional was added. -fdeae5c Better error-checking. -4c22000 Allow oneToOne to work for rss commands. -9b74c00 Lower the logging level of the sfSnarfer. -3f284f2 Update to 0.80.0rc3+cvs -b12c869 Updated to 0.80.0rc3. -de193d2 0.80.0rc3 -cc7b77e Fix for bug #1101332, Network.connect ignores password. -c0439bb qdb doesn't like to put ?'s in their URLs, so the snarfer wasn't catching qdb URLs properly -d15e7e8 Removed an assert that isn't too important. -a65c5e6 I seem to recall seeing a 2 when supybot's host's DNS was down. -76a5e59 Deprecation notes. -c6b50e7 This makes channelSpecific *much* more useful, aka not broken. Closes Bug #1100919 -59c4dab Extra help can't hurt. -493aa57 Added a couple asserts. -3b9492d unaddressed will be the bane of me! -102c2d7 Updated to 0.80.0rc2 -534313a Updated to 0.80.0rc2. -317b23e 0.80.0rc2 -e54ef5d Make sure we don't try to access self.currentServer before it's there. Also, return the new server from _getNextServer -f39a284 We need to declare watchingFor332 before using it. -6b4b1d1 Remove --allow-eval option -a4cec8c Added Topic.replace. -f5bbd8c WRong module. -f63fa68 Elucidating comment, XXX, and hopefully a fix for the problems with using Network.disconnect while a socketDriver is reconnecting. -9f612df Catch an exception when adding/replacing a factoid. -efce872 We need some more irc.noReply()s -5ee8f5d Added two XXXes. -eaf9f80 Handle the case where the program isn't found. -625cfb4 Forgot to wrap the command. -8132f1d No need to be a CapabilityCheckingPrivmsg if our plugin name is the same as the capability we're checking. -141ddfe Updated to update reconnectWaitsIndex appropriately. -2c60643 Added a driver command. -ff8379b Added the collect command. -cba61a9 Fix for that RSS bug thing that mgoldey had (and subsequently, Evil_Lyra had). -225c565 Add/update supybot.databases.plugins.channelSpecific{,.link{,.allow}} channelSpecific.link replaces channelSpecific.channel -0fe8200 Unify how are help conveys getopts that accept a value. -52100c2 Run-on words are nasty. -ec91c6d Properly naming registry variables is good. -d031997 Added stripFormatting, to configure whether the outFilter will strip formatting first. Also added an elucidating comment. -69f71d1 Fixed a simple XXX. -0d793fc Removed an extraneous blank line. -acb04cc Line length, people :) -3d109b5 Add supybot.plugins.Channel.banmask, to set the default style banmask to use in kban. -9420d2a Fix some docstrings -629e459 Add Note.search and change the wording for listing private note ids. -35cc40a Take advantage of plugins.getUserName -5d74b59 Fix configure() bug as pointed out by mgoldey. -f2a34f7 We should assert after we call the callable. -6061f49 *** empty log message *** -b4817ec Actually *use* unaddressed.replyExistingFactoid -d32d679 INFO -> DEBUG -3598a0a Add a couple irc.noReply calls. Thanks to Infobot for spotting these. -63dc279 Move our waitReconnectIndex increment to a place where it will actually get called. If it also needs to be where I removed, someone re-add it. -3337d81 Better error message. -d85e56f Make sure we utils.htmlToText the aspnSnarfer, otherwise we can get nasty replies because of the embedded \n. -f31fec5 Fix an exception when using the --to option for Note.list and add tests for the --to and --from options. -06307ab Make Observer remember the active observers. Only allow admins to add/remove observers. Make sure we remove the observer from the active lists when remove is called. -1f4bef4 Fix a test failure -d593106 eBay changed their expired auction message -20bcb69 Change some info logs to debug and make sure we don't reply from a snarfer unless it's with the snarfed info. Anything else should be logged. -9077b1d Make the groupsSnarfer work again with URLs that contain a threadm cgi section. -18ea1de Fix my last broken commit. Gotta have variables around before you can use them. -1aa6158 Fix a bug that occurs when an optional group is not matched. -0d954c9 Fix some test failures -6ef2bbc Fix some test failures -204e30f Don't want to pass the Random kwarg on to irc.reply -8684864 Sourceforge changed their format, again -3d8a4e2 revert -e481260 Simpler to just alias the methods and prevents typos. ;) -aa73b5d Added a warning log. -3736f6d I wrote this to show someone an example of a test, but figured I'd commit it since it's written. -2a8f2d4 Extra unknown_host thingamajob. -1f90a8a Extra backup for something I can't remember what now. -cedcad3 Add a warning log. -b11c4f1 Update Debian.bug for a slight website change. -e088719 Updated for new site format -8fc0c22 I don't know how this got by as "working" before. Now it *really* does. -57c3259 Get rid of the stdout logs as they obscure the scripts' messages. Also, do some more sanity checking of the arguments to fundbConvert. -3cb46ab Add a feedName converter -b697661 Actually wrap crossword so that it's an available command. Include game.guess in the initial reply when starting a hangman game. -d9e4838 Remove self.replied in favor of checking msg.repliedTo -0d6761f Change RSS.announce such that it appends the given feeds to its current list of feeds to announce. -850effa Some wording updates. Move some text to the "Common" section and add some pointers to docs/GETTING_STARTED and docs/CONFIGURATION -56907b8 Let's not error to the channel if we're randomly speaking -d103888 Forgot an import -d97a652 Need to actually add the channel to state.args if getChannel throws an exception -c4df797 Fix bug #1094020, AttributeError in Anonymous.say -48c5a39 Fix bug #1093890, Add some irc.noReply() calls -a4545d4 Fix bug #1093594, UnboundLocalError -a6a45f9 Make sure we're not trying to reply on the irc we just disconnected -ae48b42 Updated for the new _checkCapability name. -58b4e09 Connect has a status reply, why not have one for disconnect -69d9860 Fix User.hostmasks so it correctly checks capability and doesn't display the hostmasks as an IrcSet -9246b16 Updated tests to make them all work properly now... (finally) -ea5bc4d Moved the ln-s urlquote to a more appropriate place, and removed it for tinyurl as it actually made tiny not work -1f8ed8e Remove a debugging timeout -7a176ee Revert the non-PRIVMSG changes until after the release -8d4244f Add support for non-PRIVMSG Seen watching. QUIT and NICK are the only two things that aren't currently supported -4012c5b Fix a bug in Note where Note.list --sent would list the sender's name instead of the receivers. -5aa41af Add NICK handling to prettyPrint. Prepping for non-PRIVMSG Seen tracking -034fb54 Fleshed out Observer.remove. Added 'active' status to Observer.info -fd6f4e7 Fix a bug where we weren't catching the end of the URL appropriately -ab0eff4 Add Infobot.update, which allows updating the is/are dbs with external Infobot "fact packs". Need to add threading so the bot isn't blocked while updating. -4cd15d0 Move the docstring for addressed -4261ec4 Implement RFE #1087718, add a config var to ignore messages addressed to the bot. -cb42006 Better emulation of Infobot wrt overwriting factoids and missing factoids. -82a055c Fix an exception. There may be a better way to fix this (jemfinch), but this will at least stop the exceptions. -6d2a526 Fix for bug #1088549 -e867e4c Easy peezy Fix for Bug #1090008 -41103b1 Test for fix for bug #1092462 -bbedf5c Fix for bug #1092462 -c93edfc Change Infobot's *Unaddressed* config variables to be unaddressed.* and add unaddressed.replyExistingFactoid. Began Infobot refactoring and changing the dbs so that they can be channel specific. This is likely still broken. -7217b01 Tag addressed messages with the results of callbacks._addressed. Also, reorder the calling of addressedRes and res in PrivmsgCommandAndRegexp so that addressedRes are run first. -11c12e9 Fixed bug #1091927, Topic.insert was doing the same thing as Topic.add. -6002089 Changed some non-public checkCapability methods to be prefixed with an underscore. -dae2a02 Updated to 0.80.0pre6. -27917b2 Updated. -d884f35 Dot. -5c97b25 Better error message. -094e2c1 Cleaner implementation of noticeNonPrivmsgs. You'd think the variable name would've clued me in. -c350baa Added Topic.separator. -d6136cc Left in an _getIrcName call. -a82e806 Removed supybot.databases.users.hash. Now we always hash by default, though the configuration file still supports unhashed passwords (useful for allowing owners to change passwords by editing the file). -07435be That assert just plain wasn't working out. Also, changed how supybot.user works so it stays up-to-date with the current version of the bot. -9d3cb79 Misspelling. -6d9cc68 Updated some docstrings. -bd3fdf9 Updated. -d31ff45 Added an assert. -8b56387 We shouldn't try to get ChannelValues when not given a channel. -ca81006 We shouldn't try to get ChannelValues when not given a channel. -40f6385 Make apropos not case-sensitive. -84e2072 Fixed some bugs related to the new TestPlugin. -c9360c3 I wonder what made my commit that in the first place. -619b604 Geez...this method is my bane. -7a61683 Grr. -e4d13f9 Generating documentation should take place after more important things have been done. -38814a3 Updated to 0.80.0pre5. -6cfc1af Oops, wrong version. -1203ea1 Updated. -afcb951 Pluralization bug. -dd572f5 Forgot to lower the nick. -f69f1cf Fix bug in Channel.addcapability. -3552a13 Forgot a user dot. -d4e41da Forgot another import. -df03340 Added noticeNonPrivmsgs configuration variable. -1a7333a Added another test, commented out one that doesn't apply anymore. -5b622ad No reason why we can't sample empty strings. -f4d7da4 Updated to give an appropriate error message in Observer.remove. -1f22d5e sorted isn't in utils anymore. -15d7394 Better (more accurate) error message on 438. -67d0321 Added tests for apply and shuffle. -35c2003 Forgot to remove a debugging print. -b421c07 Changed the help for register and removed the --hashed option. -3e10b62 Fixed a bug in apply and added the shuffle command. -ec2d298 Forgot an import. -15f47f5 Catch an exception that wasn't being caught. -bb4890c Now we don't try to send empty messages privately. -481752f Forgot to set the password to private, oops. -6a1d4d6 Hopefully this will completely fix the WordStats bug. -cd4f073 Fix bug #1087369, WordStats is case sensitive -dc40847 Remove test-* directories created by generate-plugin-documentation -2dcc077 Remove empty strings in args. -f1b5307 Make sure reply prefixes the nick. -20924ed Added RFE #1031748, optional password for Network.connect. -b8f2e97 Forgot the dot -596abe0 Added a TestPlugin with eval. -360cba9 Updated to 0.80.0pre4. -fc7b4d4 Forgot a username -112db07 We moved generate-plugin-documentation again -dcfe723 Updated to 0.80.0pre4. -61cf6d8 0.80.0pre4 -42b455b Make sure we chmod docs/plugins so it's group writable. -e89e540 Add a test for dynamic.channel -db52f4c Hack for now. -b9b04fd Need SimpleProxy for irc.noReply() -bc5e7de Let's try this location for our placement of a dynamic channel. -3b2ef3d Add plugins.getChannel -75eb335 Apparently, popen2.popen4 doesn't reap its children, so let's use popen2.Popen4 and do it ourselves. -62c7750 Make the specific tracker commands work. -7b800fb Send proper CTCP responses. -1e484a2 Don't cycle if we're already op. -889cb34 Misspelled variable name. -664c468 Updated to respect channel-value-ish-ness of reply.showSimpleSyntax. -e7b8d8b Change the default of supybot.log.timestampFormat to iso8601 (thanks, Grantbow, I used your forum post for this). -e91a897 Removed some XXXes. -b906708 Removed an XXX. -cc084d2 Removed some XXXes and allowed other separators than /. -5d37d71 Test is too tight, commented out until an appropriate test can be devised. -0ff7632 Removed some XXXes. -aa83ab2 Removed an XXX. -db04265 Removed a fairly unneeded XXX. -ca27af3 Updated. -0c0f791 Converted to use world.getIrc. -73deb20 Minor stylistic changes. -7c2e9f8 Added getIrc. -a29c4b2 Converted to use irc.isChannel rather than ircutils.isChannel. -161b9b9 Todo #1047143, conversion of os.path.join calls to dirize calls. -eb03f94 Moved eval/exec commands to sandbox/Debug.py, removed allowEval option. -6f28557 Format change. -cee0dc3 wrapify. I don't feel like converting the db properly (i.e., using data/Todo/<user>.db), so I'll leave alone the current db. -cedd6a2 Add some Raise=True and a test for multiple replies from Misc.hostmask. -c8af5c8 wrapified -caae2dd Fix for bug #1085210, change wrap()ing of {add,remove}capabilities to use otherUser instead of hostmask. -7c7a733 Removed old code that has no business being around. -e97fe38 Moved to docs. -7d445ea Updated. -92d5c17 Deprecate asyncoreDrivers. -29c9fe9 Try to handle disconnects. -c73ca69 Send an error message to plugins on disconnect. -6bcae93 Added error helper function. -cdfdc93 Move it back to tools/. Makes it easier for me to use in the .deb -2e34916 pycheckrc was moved to sandbox -58615e1 Add documentation updates. -3d881ad Better error message. -41ad8c1 Added limited dynamic scoping. -7d66c9e Finish implementing Limiter and add tests. -af1d042 Reimplementation of channeldb converter, respecting the channelValueness of supybot.databases.plugins.channelSpecific, and turned supybot.databases.plugins.channelSpecific.channel into a channelValue so channels can link their databases to other channels. -d170a71 Fixed handling of QUITs and NICKs. -3b6d40b Added a test to make sure something worked. -aa3868c Make the error messages refer to specific tracker types instead of using the generic term tracker. -730c0ff Updated to scp the new version over and commit the +cvs versions, as well as to print status updates. -f4af582 Fixed bug #1083822, attributing the 'dis'ee incorrectly. Now it says "for trying to dis irc.nick". Was unsure if that or "for trying to dis me" would be preferred. Change it if you have an opinion. -62d5627 Finish fixing #1082830. -8ea6331 Finally finish renaming Quotes -> Quote -9d77e38 #! lines -2ebe809 Move textwrap import. -0ed2832 Fix0red the implementation of makeChannelFilename. -2d4f625 Forgot an irc. -179fc87 Refuse to kick self. -0abd472 Added a channeldb command for testing channeldb. -9f0b593 Typo. Come on Jeremy, how can you have a typo on a one-line diff?! -3e13d36 Forgot to change the name of the plugin. -e533de5 Forgot an import. -28cfd18 Fix for bug #1082928. -576c91e Fix for bug #1082935. -032054a Updated. -9c08a19 Fix for logging with multiple networks. -1932ed4 Slight bugfix in isCtcp. -93e9fa3 Change assert message. -400c9aa Change from an old-school typecheck to a new-school one. -4d35de4 Added an assert. -7950141 Didn't update when I changed this configuration variable name. -962e259 Caveat emptor. -6d7b0d7 Ok, so I'm ridiculously anal... -fe4528f Updated. -c700072 Changed implementation of xor command to be cooler. -c5e48d5 Indentation change. -3884fc4 Updated. -551ce29 Slight stylistic update. -265d620 Changed a warning log to info. -e793bf7 Better answer. -a6dfd38 Removed a completed todo. -0efb17d Variable name change, humanTimestampFormat => reply.format.time -595a787 Fix bug #1082448, User.username traceback -3679b28 Fix bug #1082278, forgot parens. -9f84f15 There were some unforseen consequences of using irc.error(), so back to this way for now. -d5af6fc What is it with people changing the html for their website? -4c85f2e Refactor a little so that plugin config and nonplugin config sections are generated the same way. -68569f1 Updated the easy stuff to work with groups.google.com's new layout. The rest will have to wait until Google decides to declare it non-beta or someone besides me is motivated enough to fix it. -78685a3 Fix a test failure. -df14ebc Deprecate Infobot until we get around to fixing it. -dc7a3dc Handle some more reply formats to fix a test failure. -3b61351 Let's try and use the database we'd normally be using. -b8da362 Fix test failures. -27a233e Forgot a : -fd2f529 Hopefully Markov is now written with the lowest common denominator of the idiotic anydbm in mind. -d253a87 Clean up our html a little bit. Add generation of non-plugin config vars. Make sure we use .help() instead of ._help since .help() can be overridden. -7862d8d Better way to reply with the help. -5466544 Fix for a bug in the short timeElapsed. -f1cbd06 Username was broken. -407952f Fix in a test. -2ae2c16 Forgot to take out a line. -6c8071d No need for backups on these ChannelUserDBs. -e4f15ae Cleaner implementation. -fc2751d Allow a short representation of time elapsed. -c948a25 Fix for test failures in Fun.py. -1a63af3 Fix for bug #1081086. Be sure to read the reasoning in the bug itself. -bda9e91 Add Debian.debianize. Add a try:except for webutils usage. Use Raise=True in a few more places. -59b561b Add Markov.stats. Add some elucidating comments. Remove incomplete SqliteMarkovDB and unused MarkovDBInterface -15c5a7f Missed an indentation level. -9e2c014 Stupid typo. -bbc5ed6 We apparently need these closes as well. Let's see if this fixes my bug. -5542ad9 We should close stdin as well. -517cd03 Fixed some fallthrough handling. -3609534 Fix for bug in Network.command. -5822a24 Slight improvement to a test. -1139f2a More idiomatic. -6b69d36 Used commands.wrap, fixed reconnect again. -640241b Added networkIrc, owner, admin. -e2e5acb Updated for only allowing single channels. -826786d This shouldn't have been committed. -edb0f1a Typoed method name. -afbc6ab Uh, I forgot my signature :) -1149ff6 Forgot a Raise=True. -6e712bb Proper ignoring of deprecated plugins. -8eaec18 Fix for broken test_Topic. -3fd71dc Optionalize the nick in in the invite command. -9480ff3 Updated to do proper noReply calls. -5af6553 New way of handling channel keys. -58c631b Yes, we do. -ab217fc Updated to allow all drivers to use vhosts. -1e49f9e Fix replies to some dumb/broken CTCP PING implementations. -fee37e4 Updated to use commands.wrap. -eac5d2f Added a couple asserts. -e4fa4de Prevent two replies when @weather succeeds -91c6cb5 Another slight randomgrab bugfix -0a19073 Fix a bugz0r in randomgrabbing -7f00bf0 Dump/load commands. -7c8f8b4 Removed a check for something that would make us never send an ISON. -00b7a09 Added an info-level log. -eca7079 Initial import of some conversion scripts for our db changes -d9e766b Revert back to non-wrap/abstracted form since it'll be replaced by a better Factoids plugin. -08f4e8c Converted to use commands.wrap. -ee145e7 This is a far more reasonable implementation of __len__. -b9d1092 Better implementation of relay detecting/punishing. -019a53c Need to make sure we set the nickeq function even if we're using an already created database. -4ba005d Update QuoteGrabs to use db abstraction. Hopefully fix the mxCrap thing for good. This update should also fix the problem that had existed with QuoteGrabs and databases.plugins.channelSpecifc=False -ac04024 Use commands.wrap, removed a line of code whose purpose I don't know. -3f9c699 Fix for bug in IrcMsg.__eq__. -864fd97 Fix a getNick bug -73a3261 Better (?) help message. Comments/changes welcome. -80fe675 Fix a bug for when showFactoidIfOnlyOneMatch is set -f95f5a0 I had the map(str, ...) there for a reason. -c8bdb45 Now we don't print anything before daemonizing. -955bf08 Rudimentary sorting. -3904672 Only add sorted if < 2.4.0 -f7a3504 Added getUserName. -2a0b9e6 Finished conversion to commands.wrap, and fixed some bugs. -cbba7c6 Fixed a potential bug. -7de6d11 Added an XXX. -4facd7e Fix0red disable. -9021c5e DirMapping is incomplete, but I need some feature additions for DB. -3606f2e Fixed the bug, but forgot to commit. -40a2e07 Updated for 2.4. -1e0b039 Updated help. -592bbc0 Elucidating XXX. -4ab161f Better formatting. -a71d074 cleaner implementation of getLong -2f3fa32 Convert some 'text' to 'something' -12fa109 Convert to wrap and simplify Admin.join (no longer accept multiple channels) -d57788b Fix some bugs in Channel.kban -c87788d Make sure state.channel is carried over when we call State.essence. Also, add continueOnError option to any(). -01513bc Fixed a couple test failures. -b1d1991 Converted to new method. -e24943b Some extra methods for ChannelState; code should now use these methods instead of directly accessing .{ops,voices,halfops}. -54b56a8 Raise the proper exception. -62b5dd8 Added a warning log. -65b369f Removed a vestigial comment; our current system of not combiningRest has worked out well. -f9d82c7 Changed some 'text' to 'something' -9ea98a5 Updated docstring. -9a71af3 Make sure we keep the originally registered probability. Also, quote the command being run like we do in an alias' help. -4a0cefc Fix for non-persistence of observers. -9a3d196 Move the Probability class to src/registry.py -7eed44e Converted Random to wrap. Added a long converter to assist this. -d31b672 Cuter output. -e5b2459 Update to use wrap and our better db interface. -6adc746 Added an optional argument for the notes command. -08040bf Added a 'notes' command. -877c6ee Added test, but didn't find the bug I wanted. -43b2dcd 2.4 compatibility (this time with an elucidating comment). -6af2339 2.4 compatibility. -c14ebfd Fix bug #1068913, catch 435 (banned nick) responses. -2911a2c Catch some webutils exceptions. Fix a 'literal' usage. Change some 'text' wraps to 'something'. -a1162bf Purtier. -a08bf6b Better string handling. If there's a particular reason why the .upper() calls were necessary, feel free to add them in. -f91a819 Oops, forgot the quotes. -fd4e625 Better logging. -de36773 Fixed some bugz0rs. -8071e02 Converted to commands.wrap. These are all untested, so someone should test them at some point. -4a4a091 Converted to commands.wrap. These are all untested, so someone should test them at some point. -5762ed6 Converted to commands.wrap. These are all untested, so someone should test them at some point. -8b19620 Moved. -8ec5a54 Removed. -a304dfe Added unban-without-hostmask behavior (untested) as well as fixed the bug in Channel.mode. -eb83076 Moved some stuff around. -a82bdaa Better checking for what a command is so we don't generate documentation for Regexp/RegexpCommands -8b0d0a9 We no longer have to strip the first two characters of options. wrap() handles this for us. -fda6b57 Make sure we reply if all of our fallbacks fail. -1e159fb Add an XXX -241243b Change a couple more ircutils.is* to is* -b135107 Fix bug #1063950, traceback when Weather is an unexpected format. -f36fdd3 Let's *really* prevent ourselves from reconnecting to the same network. The Raise=True was raising a callbacks.Error which was being caught. -b4557e0 Moved to sandbox. -611149a Add plugins.Markov.minChainLength and plugins.Markov.maxAttempts which should allow for interesting Markov chains (unless you like the one-worders). -ed2488c Converted Alias to use commands.wrap (for the most part). -a0e863d Fix for bugz0r. -0ff919b Added an FAQ for nicks with brackets in them. -4ce6582 Expand a little on the supybot.defaultIgnore help. Also, went ahead and changed the timestampformat from a GlobalValue to ChannelValue like the XXX told me to. -ea8bf1f We no longer need to getUser here since wrap() handles this for us. -59d3065 Commit my long sought after *cough*Skorobeus*cough* randomSpeaking updates -2fb7041 Slightly better wording (and matches Float's wording) -0263eb9 Fix bug #1063094, Note.reply exception. -3f93307 Fixed bug #1062631. -907587e Bugz0r. -d280387 rest should require args unless indicated otherwise. Currently, we can't indicate otherwise, but that's because we haven't had a need for it yet. -54db030 Added test, changed to use commands.wrap. -beffc15 Someone committed this in dos file format. Let's purge that evil. -6341b26 Fixed a failing test, showed a results number in search, and added to our standardSubstitute for Dunnos. -eed8422 Updated to tell what channel the seen commands are being applied to. -3f1dfa0 UPdated. -6898033 Fixed some bugs. The tests still fail, I can't figure out why. -2633575 Fixed some uncaught exceptions and a few other places it might happen. -ced5caa This never had any tests anyway, and now its plugin is gone. -3e8622a Initial checkin. -964fa95 Removed standardSubstitute test. -21d5745 Bug fixed. -df42550 Bugfixes. -cc331c1 Set the default plugin for enable/disable. -92d86d9 We should run these tests periodically. -89e52c3 Changed a log from WARNING to DEBUG. -91ec099 More informative log. -d7275d7 Relay nicks should still work when the bot isn't in the channel on a network. -591e666 Better. -f515617 Disable unregister by default. -33254cb Better error handling of bad loads. -58b3268 Have exnToString handle exceptions whose str representation is empty. -0408884 Refactoring of error-related configuration variables. -b8216a6 Correct the behavior of "karma" -bea5866 Fixed bug #1059536. -a060f26 Fixed bug #1059544, InvalidRegistryValues can now show what the name of the registry value is. -54f77f9 reason should be 'text' -4ca62e6 Missing irc's are bad -553f31c Need to make sure s is declared -716aefb LOTS of bugs fixed. More to go. -4c6ad94 many('text') => many('something') since we don't want to combineRest. Also, fix a mistyped variable name. -df0b661 Allow 1/0 for booleans. -49f8105 proper string formatting -744944d Wrong variable name. -787625c Let's report the correct value for the asserts that failed -f6d8c2a commands.wrap update -afff273 Made the asserts more verbose. -ecc61d3 rest()ify Topic.set since we no longer combine all remaining args -b744ab6 Fix an old-style import -3899f33 Added Lart and Praise plugins, deprecated FunDB, converted Dunno and Success to the new plugins.ChannelIdDatabasePlugin. -3b5cde2 -s => -r. -f9e0a5e We should automatically load plugins, even when deprecated. -6096604 This should allow contexts where we allow converters. -ac57418 RFE #1049535 : Wildcard "seen" results are now sorted by time seen (most recent first) -81395a5 A little self-gratification ;) -3f2f500 ToDo #1046877 : Added Enable/Disable commands -4c555d4 Fixed a bugz0r of no arguments given to Misc.help. -d6949c9 Fixed a bug in the test. -8e3e8f8 Added an XXX. -72a7a22 Fixed a bug in getId and added a debug log to Spec.__call__. -8c4cbeb Added supybot.plugins.Owner.quitMsg support for Ctrl-C kills. -96cb71f Added some useful imports. -6d99d82 Added an XXX. -fae5772 Added for the moving of standardSubstitute. -96ab326 Changed an INFO log to DEBUG. -f4f35f5 Fixed some help stuff. -8324de6 Help abstraction. -83cc539 Let's do things the right way -d9a8b7d standardSubstitute moved -631da9c commands.wrap update -d2fb6fb Fix the tests -024052b Updated for the move of standardSubstitute. -e688faf Moved standardSubstitute to ircutils. -bc23a69 You shall not delete ME! -d56202d Added a default quit message. -a2dfa3b Trying out vhost stuff. -625043c removed privmsgs.checkChannelCapability. -114d625 Updated to use commands.wrap. -ba1bb34 Allow abbreviation in getLiteral. -c809b7a removed privmsgs.channel. -f646169 Converted to commands.py. -a07f83e Removed privmsgs.thread. -0a71b92 Removed a useless line and added a test that depends on that removed line. -0525325 better error message. -11de062 Allow isSeparator to be a function. -dffa178 Updated to use commands.py. -4901930 Fixed getOtherUser. -b32215e Tons of updates, text now snarfs all remaining, but we still haven't stopped combining rest in context. -44d59fc Updated to use commands.wrap. -c023652 Updated. -303f087 Old variable name. -4539f38 Fixed an infinite loop bug. -f11e7d1 Fixed a bugz0r. -39ab345 Removed a dumb valueerror. -e378b34 Added a configurable more length. -0408beb Fix for bug with instant mores; also change supybot.reply.truncate to supybot.reply.mores (i.e., it's not just a group now, it's a boolean). -a1b7b67 getOtherUser shouldn't accept a hostmask (re: bug #1054680) -ca0c0fa Change user.hostmasks to an IrcSet -7c8882e Fix bug #1054660, Optional password argument needs to be defaulted to '' instead of None -3da0af9 Fix bug #1054645, using old-style ircdb.{set,new}User -e63d93d Let's not check explicitly for None, just to be safe. -cbd5abb A bunch more %r -> %s conversions as well as wrap updates, new policy for Channel.voice and some bug fixes for Debian -2adef7c Make Weather.weather actually work as a wrapped command calling wrapped commands and using the user registry. -de711b5 Remove unnecessary allowExtra and switch from 'text' specs to 'something' specs in non-arbitrary text situations. -635509c Updated for the removal of supybot.channels. -f54b107 Old code alert. -8c4d174 Converted to use commands.wrap. -f2fa10f Also for removing supybot.channels. -c256a3d Fix for uncaught exception in IrcState.addMsg. -03b740e Finally removed supybot.channels. -cd2a06a Messed up import. -c0254f8 Made join/part network-specific. -7f5a12a Extra debug log. -d0e2f2d Fixed. -2d0be46 Should be a fix for the double relaying of topics. -383559e Added MultiSet. -ffd4957 Fixed bug #1052821. -83d4931 Fix for bug #1052911. -9e813ff Added an XXX. -447a6e6 Fixed bug #1052921. -c374b82 Forgotten period. -c0a8f5e commands.reversed => commands.reverse -6619668 Forgot to add it as a possible outfilter. -b8621f0 Fixed shrink command. -a19bf09 Fix0red the bugz0r with reversed. -66d9d45 Fix0red the scheduling of upkeep. -8954aa2 I'm dumb -4dafdcd Massive updates. %r -> %s, some commands.wrap updates. Factoids is broke until we get some stuff working in commands.py -7ab8be2 Added an XXX. -c6e5d22 Updated to use commands.wrap. -1a6b4aa Removed an old comment that wouldn't ever work. -1a73603 Added httpUrl converter. -e3bdd34 Allow ids to have # in front of them. -0d2b710 commands.wrap. -601d58a utils.quoted -575d83b Oops, did an optional instead of an additional. -d203813 Bugfix for nick.atEnd taking precedence over prefixChars. -1745c6d Added shrink filter. -168e61a Finally fix bug #1034916, Weather.wunder exception -06c1639 Fixed bug. -e24c1c0 Updated to use commands.wrap. -98c716d commands.wrap update -dd1550a commands.wrap update -d5241eb No errors on exit when google.py fails to import. -6b946aa Added phonebook command. -61d0b67 Fixed bug #1051136. -4105697 Fixed bugz0r. -53f77b7 Converted to commands.wrap. -ddb914a Forgot a noReply. -66282cd Fixed some bugz0rs. -c49b32f Fixed fallthrough handling. -64c2558 Removed, split into multiple plugins. -4d1d52f Actually works. -7f1b983 Fix for ocid's bug with setUser/newUser. -04a6fb1 Fix for jamessan's bug. -b1d46cc Initial checkin, refactoring of Enforcer. -a238ed6 Fixed TODO #1047283. -098fbbf Slight optimization. -724b612 Only try to ping if we're not a zombie. -c943ab7 Made commands.wrap stop doing decorators, exposed thread and urlSnarfer, and changed plugins accordingly. -6389256 Fixed bug #1051164. -e817b23 Broke out some of the behavior of the Enforcer plugin. -dac65f4 alwaysLoadDefault => alwaysLoadImportant -e9b5f0e Let's only log one of our non-{PRIVMSG,NOTICE} outgoing messages. -3bc1a1f Added NICK change logging support. It's absolutely unbelievable that no one complained about it until now. -10fc3bf Converted to use commands. -2179548 Added an XXX. -3f16003 Handled the case of an empty file (which apparently can crop up sometimes in unclean exits). -dec94a2 optional => additional conversions. -803997e Somehow the p-testing was removed. -5fc347f Extra dashes, begone\! -75bd81a optional to additional conversions. -e960bad Fixed #1049958. -6eb0066 Converted to commands.wrap, added capitalize and title. -eb55310 Handle properly state.allowExtra in context. -8436a7e Fixed contributors test failure. -9d0fa5e Changed callerInChannel to callerInGivenChannel; added nickInChannel, added matches, and raised a subclass of KeyError from getConverter so we get prettier tracebacks. -425436b Forgot to import * from commands. -98e6e9a Fixed. -e826ebd Fixed. -4566c1b Updateed to the new wrap; added a few XXXs. -1bd09d0 Changed an optional to an additional. -8026062 Fix bug with redundadnt unbans. -6d62500 Allow wrappers to set the allowExtra value. -31d71b1 commands.wrap update -4b86bf5 commands.wrap update -284cf06 whitespace -1f35ff3 commands.wrap update -38ee295 commands.wrap update -c6afe40 commands.wrap update -242ecb4 commands.wrap update -dcb9157 Make sure we always reply to a stand. -9f372e6 Updated. -d88d779 Added a fold message and some TODOs. -2f7ed33 Mostly working, also added a TODO at the top. -322143f Seems mostly to work. -8dd75b1 commands.wrap update -d761590 Fixed straight handling for low ace. -e183848 Scoring hands works now. -a5557cb commands.wrap update -a9635f7 Changed to use irc.isChannel instead of ircutils.isChannel. -4a2d2a9 An XXX, fixed isNick to allow keyword arguments. -1958a76 Some XXX comments, a little update here and there relating to users always having an id. -678c012 Looks like I just reordered some methods. -a0c0d83 Let's make channellen parameterizable as well. -a12d651 Added testTestIrc. -edc1e70 Fixed empty types. -ec75306 Added a test for when we just want to wrap a command but don't need to get any arguments from the user. -e3d40ba Initial checkin. -70f9e4c Fix for bug with outfilter. -dcff006 Added GNU filter. -b6a92fc Updated to use commands. -e720f46 Not completely working, but tests pass (for what's expected to pass). -1fe3a54 Hopefully recursive aliases will be subject to supybot.commands.nested.maximum now. -14a980a Whitespace adjustments. -275bdfc Update to use newer commands.wrap -bec6b54 Update to use new commands.wrap. There are still some issues with some of the commands (such as Misc.help), but works overall. -c574403 Update to use the new commands.wrap -a3223c7 Update to use new commands.wrap. One test ("time %Y") is still failing, but it works when actually using the bot. -8578054 Add some (hopefully) elucidating comments. If anyone (*cough*jemfinch*cough) thinks they are ambiguous or could be better worded, please adjust. -aeed361 We actually want the state that the spec call gives us. Also, let's check whether our default is callable and return the value of calling it, if so. -67d8cf0 Converted to the new commands.wrap. -477ec6e Fix0red the failure. -c5903a9 Added mapinto. -25224a7 Added a logging message. -4eafd9b New tests, and new implementation (though a test still fails). -c3c5ea7 Add a couple more Raise=True. -e14a336 Added multiLoc support to Weather.cnn -163d835 Fix bug #1043863, urlquoted text in reply. -5bc9111 Fixed so disabled commands in other plugins won't break our outfilter. -c275927 Changed the queuing messages to DEBUG, there's no need for users to care. -a1e4293 Fixed intermittent Google licensekey issues. -f615910 Added a test for random.choice behavior. -b6066a1 Stupid emacs. -0a8ef6d Stupid emacs. -3a408f3 Fixed our lack of raising IndexError on random.choice applied to sequences. -9363489 Added a log.exception to Owner.eval. -4c37c1c Closes #1043440: "Disabled filter commands can still be outfilters." Just gotta check conf.supybot.commands.disabled() and if it's in there, pretend it doesn't exist -b2fbbef Fixed bug with duplicate hostmasks. -afa182a Added another test. -d7fc280 Weather backups. -04f7ff3 Commented out a bug (IrcState, actually in Irc), #1040008. -3dceea8 Added supybot.reply.whenAddressedByNick.atEnd. -2818518 Small fix for when we generate a markov chain with initial words. -f96e38f Clarified the variables in the help message for Network.connect -2c8490c Added the undup filter. -d4b30b6 Added new behavior for Misc.last when nested - can optionally exclude the nick and timestamp -bdca894 a few Raise=True additions -4557b86 Prevent people from adding hostmasks that don't explicitly match other users' hostmasks but will match when you check hostmaskPatternEqual aka bug #1043045 -3df40e8 {de,}{op,halfop,voice} need to allowExtra -c5db149 Correct our ValidChannel checking (no , in channel key) and provide a little more information in supybot-wizard if there's an error when adding channels. -b196d3f Let's not short-circuit auto{Op,Halfop,Voice} until we actually do something. -3e1d795 Update the plugin for the connect command. -f97e042 Style -0242a86 Update News to use commands.wrap and switch from an SQLite db to a flatfile mapping. -edc698e Fix testing for positiveInt and nonNegativeInt. -23f4dc2 Update to use irc.replies so that people can take advantage of conf.supybot.reply.oneToOne -e69f086 We need to str() module.__author__ before munging the email address. -a8190dc RFE #1039510, plugins.LogToIrc.networks. -d72f69d Update the tests. -4c1c5ff One more fix for _getLnUrl -b458038 Catch a webutils.WebError, fix whitespace, and remove a urlquote -6a1b9cc test optimization. -6ba2120 Optimization. -c84e8ff Forgot a parameter. -5526c4e Added elapsed command. -16c4561 Correct the plugin documentation. -48b3ce5 Hmm...maybe this is the second part of the disabling-network commit? Who knows. -68844cd Update Http.acronym to match the changes in the website. Remove the headers since we include those by default. Set __parent. -7c019b3 Speeling -7ddf8eb Forgot an implication of requireExtra. -a055bc2 Added export command. -76fc8b9 Removed some useless options from close. -849de99 Better docs for loading. -3316409 Added a question about loading all plugins. -0115f4a Abstracted like a madman. -571a107 Saved a few characters in our colorization of Google. -eace0b5 Changed the warning log to a debug log. -df3d7a4 Oops, exception when a dude quits and supybot's not in a channel he's supposed to be in. -65cf9af What the heck? All this worked in testing. -835ee14 That last commit wouldn't be much fun without this one. -42f9ea9 Let's catch some exceptions and continue with the output-writing if an exception is raised. -4c52ad6 Forgot an import. Odd that this didn't show up in my testing with lambdabot. -a73348f Forgot a self. -5e4a415 Updated for reverend.thomas. -550bcda Fix for bug #1036861. -4d27ef2 Initial checkin. -c563596 Converted to use commands. -4c31e63 Updated to use __all__, etc. -0d46bcd Slight tweak to the template. -1aaad10 Added disabledNetworks, to disable the plugin on certain networks. -64d60ff Removed a useless import. -e1acd0e Added a noReply to latency. -20d30da Initial import, does authentication. -0dc88e8 Some source code tweakings; I still don't know why that test fails, but it's a good reminder that we should use the copy method instead of the copy.copy function. -a87d8c9 Augmented test cases for RFE 1030244. -ac1930b RFE 1030244: Added cycle timer to random results and turned them into a stack so multiple random results can be harvested from a single web page service. Minor grammatical changes Corrected screen-scrape regexp for (yet another) qdb format change -f92e377 Fixed a bug with outFilter losing tags. -d253d7e Added --without. -4dd07b1 Converted to use commands. -b03000e If replies.success is empty, don't send a success message at all. -a982fe3 Fix0r the reference to an old undefined variable. -1398a1f Removed a useless import. -54b6880 Changed noExtra to allowExtra and kept the default False. -51c0fb4 Updated _int to accept other bases. -54d1a91 Commanded Fun.py. -21ef10f Commented out a debug log, change inChannel and checkChannelCapability to automatically run getChannel if there is no state.channel, and perhaps a few other minor tweaks. -3491551 Converted to use commands. -2ff2dad Fix for bug #1038895. -9298888 Uses commands.wrap now. -dc55a33 Fixed bugs in getopt handling with arguments. -e21be94 Better. -8a98fe6 Updated slightly. -0e3f7fe Added wildcard support. -d2c05a4 Converted to use commands.wrap. -83af5aa Oops, left a print in. -ca5a27f Updated to use commands.wrap. -71e1851 No need for checking, commands.wrap rocks. -567f0b0 Fixed a bugz0r. -9d5a04b We shouldn't toLower until we know it's not None. -8afad62 A now type and a text type. -a2d30a8 A little bit cleaner. -c23e6c9 Automatically raise errorNoCapability as well. -e3c9464 Return None if there's nothing in the database. -2677192 Allow None in IrcDict and InsensitivePreservingDicts. -133f6a8 Initial checkin. -39cff59 Forgot an eff. -69aaabd Fix a few bugs with my ln-s.net addition -3900c93 Added ln-s.net support -ae76d59 Initial checkin. -0e5cd79 eXXXtra eXXXtra, read all about it. -f63d77c Updated, though the FTP stuff isn't tested yet. -98bce8d Updated to 0.80.0pre3. -b6be47a quick stylistic things. -efb9b80 Updated to separate the version in an easily-machine-replaceable variable. -f63445d Updated to 0.80.0pre3. -209226a Updated. -10579c5 Updated. -15d1c77 updated. -3a9194d Updated contributors. -00d1230 Added bear and grantbow. -5c46a71 Updated. -ef605b4 tag -F -b621b95 Initial checkin. -e6efedb Fixed a bugz0r in replies. -1f882ac w00t, stopped the double killing, made the code cleaner, I rock rock rock. -b0f12ac Quit should noReply. -7f5af21 w00t, now channel values will always remember their values. -1ea5e55 Changed to be better, hopefully. We really need to find out where this losing of channel values is happening. -d4a36dc Initial checkin. This SOAPpy upgrade has been a *pain*. -419d2c0 Odd, it didn't commit properly. -9426acc Better behavior in the case of a non-importing google.py. -54ccb01 Changed showDefault to _showDefault. -a30ad66 Added some more stop words. -6ce2129 Line wrapping, and now more showDefault for long things (since I can't figure out how to wrap it), and line-wrapping of serialized NormalizedString things. -43fbd5a Forgot to remove the urlSnarfer test. -9914f2d Augmented to better document the sigils. -567cd19 Fixed to catch our SOAPpy errors. -e360856 Fixed to work completely. -b4530f0 Updated from stupid defaults. SOAPpy-- -b0ed9c3 Updated so I can close the bug. -9c2a909 Removed privmsgs.urlSnarfer, now it exists only in commands. -1a6f932 Converted to use commands. -786d2f0 removed some bugginess and added getUrl. -8ddf22f Gotta be sure to basename the journal. -129b8a2 Small update. -84ea24d Fixed test. -c4cef87 Added another log filter. -fc72c88 Fixed the failing RSS test, yay. -6c36941 Should fix bug #1029954. -3566b12 Added a warning about languages that depend strongly on multi-byte characters. -eea46d8 Updated for SOAPpy changes. -da8ebdb Upgraded google, which required upgrading SOAP. -15b7063 Slightly less broken Engrish. -c38c245 Where we got it from. -f939e0e Updated to the newest feedparser. -8811a52 Added url. -a2e43fe Added a few more types. -8bcb9f2 Install dateutil stuff. -a21d181 We can allow the at and until commands now. -27fe655 Changing to a different date parsing module. -6878510 Let's safe-argument this thing earlier. -b4ad7ca Integrated sweede's patch and removed includeNetworkName (the directory structure rocks much more, and that just confused things). -325ad70 Changed default of private. -c20d3ca Let's make threaded commands tag the message as replied from the start, so things like Infobot won't respond. -e803bc1 Enforce the noExtraness of these commands. -1b611d7 Added stats command. -56ba5ed Elucidating comment, etc. -cb9986f To capture a backreference is good. -4cc1e4b Abstracted for some future overriding. -45f99cd Added some configuration for cdb. -75ef036 Super, and subclass SupyThread. -ec9258a Updated to be cooler and allow float maxmods. -69dce47 Made sure to return our reply messages, changed some threading stuff, etc. -4ad7fd2 Let's use a from import since it makes things simpler. -3d81d66 Updated to add the configurable single-letter commands. -b3631cb Added a database and an outfilter. -4026f8a Removed some useless blank lines. -ef1b073 Updated. -755cfd2 Outfilters should *always* give a msg= keyword argument when they create a new message, because otherwise tags don't remain. If you see any other places where they don't, go ahead and fix them as well :). -491ebda Not entirely necessary there, removed the plugin-wide check for sqlite. -a75857e Made this error an error. -e67daa9 Now the comment is even MORE elucidating\! -f8375ac Fixed not to raise some exceptions during testing. -d499628 Refactoring of some MODE handling stuff and now we keep track of bans. -04e5ff9 Elucidating comment, as well as filtering of misc.log when plugins are using their individual logfiles. -3a6779b Added httpUrlRe. -d147def Log filtering for testing. -bea33e5 Fixed an exception on exit. -cc15862 Had the formatters for that log swapped. -24641b6 Fixed bug #1020925. -c2445cc Fixed bug in IrcState.doTopic (#1033955) -a6f7dc9 Moved tinyurl stuff out to the ShrinkUrl plugin. -a382087 Fix0red the problems with VERBOSE. -e01a9d3 Forgot to vacuum, momma's gonna kill me! -0704c34 Added a Hebrew filter. -3139ffe Re-added near functionality and re-abstracted the plugin. -f9ae666 Fixed a bug in errorInvalid's handling of Raise. Man, we just need to default it to True for everything and make people deal. -201df37 Added verbose logging level. -fbd4ce2 Updated to reflect our choice of log levels. -a829bf2 Forgot the dot. -f15129a Added test for maximum nesting. -0874dfd Abstracted out bool verification in utils.toBool. -05c06f8 Added tests for no errors where no errors should occur. -e5df6c8 tightened for new asserts. -e616f69 We should return whether or not we were able to queue the message. -3dec784 A whole lot more asserts and an isCapability predicate. -9ca8798 We should return the message from errors/replies. -4b59093 Updated completely. -d5a324a It's nice when Weather.weather works. -334c5f9 Improve our whois handling. whois.pir.org became a bit more strict on the input they accept. -19c4948 Update to use _help -9291c56 Update to use a help method instead of a help string. Allows sub-classes of Group/Value to define their own help method. -b9db033 Update others/amazon.py to latest version and add the new region support to plugins/Amazon.py (supybot.plugins.Amazon.region) -b70a683 Added cool exhaustive help test. -135c57c Let's not try to send empty messages. -70111b5 Stopped double-queuing problem. -23fb9e1 Changed tag name to isError rather than errored. -7b68eb6 Abstracted out some functionality to plugins.DbiChannelDB. -5753195 Changed dbi.Record not to use a metaclass. -ec7ba36 Slight log message change. -728ad57 This was needed, so our stuff doesn't get quoted. -3589440 Let's move noReply() to RichReplyMethods so that anything that subclasses it can use noReply(). Fixes bug #1032406 -243456a Unnecessary reset, changed logging message. -b0931ea This wasn't being done correctly, let's see if this fixes it. -78da84e Configurable quotes, w00t. -bbddc4b Make showLinks a ChannelValue specific to RSS.rss and add announce.showLinks to for RSS.announce -3e58419 Various minor refactorings, moved supybot.reply.{brackets,pipeSyntax} to supybot.commands.nested. -ab21fc5 Fixed a typo. -f700927 We were missing an import and a conf. header -72214dc Added supybot.reply.maximumLength. -3740c74 Ooops. left in some debugging print statements. -b627d23 Added a test, though I haven't figured out how to fix this thing yet. -0aa6cd5 Fixed importantPlugin dispatching. -10c8cc5 Grate spelink! -2e0a91c Let's make sure we don't try to join if we're getting too close to the max number of channels we can be in. Also, irc.noReply so that things like Infobot aren't triggered. -6e1dc64 Better filenames for FunDB databases. -e381f11 Update src/Channels.py to use commands.wrap. Added some more converters to ease the process. Hopefully this doesn't break anything. The tests passed! -19b2e37 Let's not default to just the network Misc.last was called on. It's kinda counter-intuitive. -94f80e5 Augmented help for Misc.plugin. -356745d Variable name change. -16b9fb3 Added a repr keyword argument to errorInvalid and used it to fix bug #1030474. -b898142 Fixed bug #1032403. -217799a Updated to make the formatting strings variable. -fc8da18 Variable name change. -816f494 Changed two warnings to errors. -f2d064c Forgot muh spaces -53baabe Should fix #1032551. -89f6d28 Fix bug #1032402, and convert to use commands.wrap. -ed61675 Fix the bugs in #1032945, Observer.list exceptions and exceptions when adding an observer after a plugin reload. -ff86d2c Forgot to remove XXXes. -998f61c Moved disambiguation stuff to callbacks.IOP. Also fixed rename-persistence. -3aa8bdc Fixed unsend bugz0r. -99e35d6 Fixed a performance problem. -7558a43 Factored out the args component of wrap into its own function, so it can be used in more situations. -2e07e23 A little overzealous with the #! removals, weren't we, jamessan? :) -b2dadb3 Added new 'spellit' command -45aabeb Needed to import webutils for webutils.strError calls -aeecf35 Fixed bug #1029690. -5dd099c CAPAB should always be an important message. -f9a432c Let's make sure we give our users an id attribute. -dda6f9b registerPlugin was returning the wrong group. -8f97ccc Updated, added getPlugin, getSomething, validChannel, etc. -58cb831 Some XXXes to show what needs to be done. -8907c03 Fixed some string modding. -4406955 Initial checkin; handles CAPAB IDENTIFY-MSG and is able to ignore unidentified users unilaterally. -3ee4223 Fix for bug #1031800, uncaught exceptions in Config commands. -f3d0670 RFE 1017095 - Added wildcard support to Seen command -fb56c08 Add a test for Infobot not responding to directly addressed commands. Add a test for some wonkiness with @user list when User and Seen are loaded. -09e6050 Initial checkin of commands, and conversion of Admin to use it. -781ba32 Fix bug #1030367, supybot.replywithNickPrefix doesn't obey channel value -535f4a1 Fix bug #1031277, exception in some Topic commands when trying to modify a topic in a channel that the bot is not in. -e48b787 This should fix bug #1031279, xml.sax exception when calling google commands. -a87660a Fix bug #1031347, Google.stats exception. -3bfb28f Fix a couple formatting bugs. -a03f1d9 Fixed regexp to match changes made to UrbanDict site -1e397ae Last #! line -020b672 Commit the proper supybot.1 -23397b4 Remove #! lines. -164d4bc Added urlquote/urlunquote to webutils and changed Fun to use them. -ad7ae52 Fixed a bug where lookup.search would fail with an error when an invalid domain was provided. -99c4129 RFE 871111 : Added test cases for --nokey option -4b0ed27 RFE 871111 : Added --nokey option Fixed a bug in the remove command where lookup specific registry values were not being removed along with the lookup Database abstraction -50973a1 Remove #! lines. -48812da The DocBook man pages that were being generated were crap, so I wrote our man pages from scratch. -7f22a1c Add rfe #1004006, {add,remove,{un,}set}capability can accept multiple capabilities. -4f09fad More __parent fixes. -e2bb35e Fix for bug #1030492, overriding IrcUser.auth's list with a tuple -b396a9f Fix for bug #1029837, exception when calling google with unicode characters. -c873d0e Update Weather.wunder to use BeautifulSoup. Remove the #! line and add a __contributors__ line. -3e44335 Added fundb.search() and tests, AND fixed a bug with reloading FunDB -cd91e37 Oops, I added these before I figured out the actual bug. -a641a1c Remove the #! line and use getpass to get the password. -0b6739b Man, tracking these things down can be somewhat tough sometimes. They'll fix this in Twisted, but for now, we need a workaround. -0045c5e missing import -fb569b4 0.80.0pre2 -57d2570 Let's pass on AttributeError since we know what's happening there. -1dc359a current -> currently -e02e0ec ifilter wasn't being used anymore. -cccbfd1 Add a missing config option. -597819a Some bugfixes. -71a5c94 Slight change of upstream version string. -82cd6c3 Since I never actually rolled a deb for pre1, let's remove that from the ChangeLog. Also, some updates to handle the manpages being in the actual upstream Supybot package. -b71736b Fix for bug #1029764, exceptions when using MF in a /msg -f8a6f2c Reverted accidental commit. -0a2802f others/timeparse.py -6548085 Stop stripping Markov's db -0f182d6 Update to use new-style db abstractions, some super stuff. -90d30f6 Allow callable capabilities. -7f9a725 Removed a debugging print. -edbfd43 Commented out something. -6393faf There can be CTCP notices as well. -bc8a6b9 Update to use the new-style DB abstraction. -d242c8a Precedence. -21efa75 Bah, my boss agreed with Grantbow...I hate when I'm wrong. -8fd64a6 Fixed the issues with backup files that were the exact same as the original. -b19a2bb Information gathering. -f527ab0 Update -e44ad15 Add the manpages. -c7278b5 better output. -324ab71 Added topic command. -556f9cc Fixed help for plugins. -904665c Added backup directory. -f69b87a %.2f -0ceb2de enableSpecificTrackerCommands. -db4ae67 Fixed up a bit, and added tests -8a7681a We added the ability for a command to determine if it's nested or not, so we can make this prettier. -a8ce25a Tests for tags. -d631b3e This seems to cause bus errors, somehow, so I'm reverting it. -98150a9 Caught some exceptions, as well as made it technically more typesafe and rocking. -a7ec382 Removed some useless stuff. -82e85fb Caught another possible exception because I searched the tests' misc.log for exceptions. -5d60ece Fixed a bugz0r. We should also look in test-logs/misc.log for exceptions. -9720b79 Changed tagging method. -ad46bbe Fix for debincoming bug. It look like we're all getting out nots wrong these days. -1ba0fcc Slight tweak to make a test in test_Channel.py pass. -ab3e028 Style update. -af65b54 Updated test to be more specific. -11300e1 Fixed an uncaught exception. -cf3b59d Fix for groups with help. -ea078ab Require word boundaries. -46eab76 Fix 24 hours thingy. -cab512a bold's a string, not a variable. -12269e0 I got rid of callbacks.IrcObjectProxy.finished. -4f49f11 Updated to use tokenizedCommand. -5be5a2c Some extra error checking. -a26e664 Added a serialize to databases. If you haven't modified this variable, you should remove it from your configuration file before starting your bot next time you restart. -a11654d Changed to use a super. -b0c00fb Converted to use tokenizedCommand rather than invalidCommand. -138b683 Stupid __del__ methods. -9be4fd1 Finally got topological sorting working. -727145a Added testSeconds. -390bd45 Added pid command. -105c371 Fix for bug #1028749, bad listing of babelfish languages. -8f8a972 bad logic -00889cc Added max and min. -f53d3d5 Added Time plugin, moved Misc.seconds to it. -01e05b8 Fixed bug #1028385. -6c24a3e Bold instead of repr if things are to be bolded. -c2399ec Case-insensitivity for Math.calc. -001d843 Added colorfulSnarfer. -cb23a47 oops. Forgot to Raise=True of course, that wouldn't be a problem if the exception was properly being caught in callCommand -d3d2ff8 Forgot to re-add throttling. -aacea9b Elucidating comment. -e44f7ab Fixed bug #1019387. Again. -934363d Added some __repr__ action. -5f1aa43 Fix0red the bugz0r. -da5fd46 Use the new msg.repliedTo tag. -4605ce8 Added repliedTo tag, stopped not calling invalidCommand if regexp methods match. -5570ba3 Fix bug #1027279, $randomnick should not return msg.nick -cdd07ec Moved to plugins. -bae1972 Fixed bug #1027229 and cleaned up _chanservCommand a bit. -7e52305 Add anydbm to our conf.Databases so that Markov can be converted to our new-style db infrastructure. -2bfc2a9 Updated. -ac4f59e Updated. -4b95299 Debian updates -1fcc709 Finish switching from "foo in db" to "db.has_key(foo)" -c6bec17 Prettier format for latency. -e473c53 Added a test case to catch the issue with properly pluralizing the word 'command' in the contributions output -92ae571 Made some semantic code changes Fixed an error with properly pluralizing the word 'command' in the contributions output -ee9a89e Updated. -4da1279 Fixed CTCP FINGER. -c6bea76 Updated. -5c804d2 Didn't update PrivmsgRegexp to the new callCommand shmadealio. -eb4905d Allow for changed method names. -4fec6de Allow multiple authentication. -75b33b8 Somehow I forgot a time.sleep in ChannelPluginTestCase._feedMsg, so it was sucking up 100% CPU. -ecaceff Bold was messing up the bug# regexp. -e1d961c Fixed regexp bug. -446174c Forgot to remove bender test. -8c68e38 Forgot to change the dispatcher. -781edef Fixed bugz0r I added. -eb0f810 Added a dot. -cca1483 Updated. -59d084a Added a test for isnick always rejecting spaces in nick. -e5d3d39 Updated to log threads. -4d69806 Removed old regexp docstrings. -c3b7ade Changed contribution of jamessan slightly. -459bc3d Added latency command. -3cd5f16 Updated. -2f22be6 Finish adding Bold to separators in output controlled by the existing bold registry entry. -dba22a4 Updated for command name change in UrbanDict plugin -1aab33c Changed main command from 'ud' to 'urbandict' -9ff5f05 Forgot an irc argument. -3a57d3e Updated. -19c9868 Updated a docstring and added an assert. -ad4fef4 Provide a default for args. -75e53d3 Catch callbacks.Error coming out of invalidCommand. -139ce98 Re-added priority for appropriate interaction with irclib.IrcCallbacks. -ce3847f Swapped the order of the arguments for makeChannelFilename. -4f9e67a Fixed tests, and changed to use invalidCommand rather than addressedRegexps so commands may now be nested in definitions. -39f427d Even when not strict, spaces can't be in nicks. -8bbed5a Dispatch __eq__ and __hash__ to our real Irc. -a9694c1 Network plugin for network-related commands. -dfef079 Name changed from 'Network' -9ee2027 Small style fixes. -63cb4b9 Small style fixes. -33bb2e7 Bold separators between headlines, uses existing bold registry value. -4dd4557 Test cases for UrbanDict plugin -7316688 New plugin based on RFE 1024783 -b0cae2a Added contributors. -7335f06 Forgot to import supybot. -49c465c Database independence stuff. -cebf388 Added a Channel.alert command. -6a417db Allow groups to have help. -e525e04 Persistent renames. -dd7b02f More useful assert. -9c8c505 Scrap the Old 'n' Busted. Bring in the New Hotness (aka, freshly abstracted). -8216772 Update the kernel command. -a7bdd63 Add conf.supybot.plugins.Karma.allowUnaddressedKarma -4a6740f Removed Http.futurama as it's has been made into a supyfact file for the Lookup plugin. -1f0a21c Oops... Missed a case where the plugin's author is the only listed contributor Minor changes to more accurately adhere to Supybot coding standards -9b0ffcf Included contributors command Added self as plugin contributor -ca38340 Included test cases for new Misc.contributors command -f21689a Fixed invalidCommand flood protection. -915ab81 Wow, this was some of the most broken code EVAR. -ee47686 Changed to __lt__ instead of __cmp__ -- it's simpler and doesn't screw with equality. -56cf248 If we're never normal, we shouldn't try to say we are. -76056e3 Let's handle non-IrcCallbacks for sorting. -8edb880 Initial checkin. -6c7a1e6 Updated to show channelValues. -8eeab87 Stupid asserts. Definitely not worth it there. -d3421b0 Fix for privmsgs.thread. -51ad408 Use our newly annotated ircmsgs to enhance Misc.last's output. -eb9bd70 Updated to use the new plugin ordering method. -0cd853a Added an extra test, just to be sure this worked. -fa124b1 Networked things appropriately. -5dbcf95 Added makeBackupIfSmaller and Everything and Nothing. -e98bb7a Elucidating comment. -c573ab5 New plugin prioritization method. -6243fe6 Nicer getattr. -bf0037d Updated template. -95877b2 This should work somewhat. -5589ffd Slight help update. -ff957f8 Added an XXX. -9fa465c Changed action to do; it's more consistent with 'say' (rather than 'privmsg') and MozBot's similar plugin. -498c316 Updated. -c1a0304 Gotta have ourself if we want to be called. -4ba5c2a Finally pass the correct object off to strError, I hope. -184c4a9 I have a job! -0f89737 Whoops, forgot an arg to the string formatting -bebe005 Fixed Regexp. -1745e09 Initial checkin; it doesn't work, but some people might like to look at it. -33b4bd9 Updated. -5ac4c8c No more unsets. -3537c34 More fix0rs for prefixName. -9b5f945 I was brain-dead when I committed this last time. -c84c47e Put a band-aid on our "not catching InvalidRegistryName" problem. This should be further investigated since callCommand should be doing the catching. -daca76b Elucidating comment. -5aa0031 Used some supers. -9110197 Added IrcMsg attribute tagging, and used it in some places. -767f5bb Added proper prefixName handling to callbacks.reply. -41d18f4 Copyright and some docstring changes. -1e7c45e Added an FAQ for hostmasks. -3b30b7b Let's sleep just a smidge longer to ensure our time difference is >= 1 -3986f24 Implement patch #1023620, Handling of international Google Groups snarfing -30ce7c5 Less fragile thread check; the other didn't interact perfectly well with privmsgs.thread. -7e1184f SnarfIrc needs a helpful getattr -b76ed61 Privmsg, not PrivmsgCommand -a62b731 add dest='noplugins' & dest='nonetwork' instead of converting everything to use options.no_plugins and options.no_network -ddfa5e8 Added patch #1024088, better handling of various Ebay URLs. -ee70224 Changed callCommand to give a name rather than a method; added invalidCommand throttling, ctcp throttling, and whole bunch of other crap. -3848ca4 fix another irc.queueMsg -> irc.reply where we needed prefixName=False -383f40e Removed an old debugging print. -858e9e4 Some slight fixes. -a9cf06e Updated the docstring. -282c0ea Updated. -cf52bf1 Fixes for TimeoutQueue. -1423498 Allow periodic events not to run the first time. -aad768c Added orderAlphabetically. -d62a966 urlSnarfer fixes. -db79400 Added FloodQueue. -dee61a3 Let's use os.linesep instead. -b3dfdd1 More supported crap. -2c90341 Isn't this super? -87f42e0 Added a --no-network option. -f496c80 Changed the way upkeep is scheduled. -c958ef5 XXX -3ba8958 Changed to be more like other programs. -6526336 Fixed networkishness and broke out a test so its name is more appropriate. -277f027 takeMsg after register. -9cba647 Fixed networkishness. -61cc643 More tests for TimeoutQueue. -30d36aa Add support for multi-word karmas -c77daea We didn't used to prefixName, so let's stay that way. -d77565a Show the AttributeError so we can see what the real problem is. -846bf91 Correctly report the invalidCommand that set irc.finished. -50d0532 Moved Geekquote related tests from test_Http to test_Geekquote Added additional tests to test_Geekquote -b56ae0c Created Geekquote plugin Moved Geekquote (geekquote, geekSnarfer) functionality from Http plugin to Geekquote plugin -d92bf5e configure method was missing it's conf.register... -382fb2b Our #! path should be /usr/bin/env python -b51f753 Let's give the user the option to get only a Bender or Fry quote. -ac27c8e Change Http.bender to Http.futurama and add support for X-Fry headers. -a96229d On second thought (thanks jemfinch) making insults to channels without knowing who is insulting can be used dangerously. In practice I have seen this command only used among friends or when someone is bored and wants to see the random string produced. -87a5323 +cvs -2df9642 0.79.9999 -26bb233 Fix for attributeError I ran into, as well as a premature commit of a name change (but since it's just a name change, I'm fine with it). -2db0cd1 Fixed bug #1021631. -887e92a Don't make those error logs if we're testing. -0a2d714 Use conf.Directory for the log directory. -35acc6c Added a --trace option, moved tracing to utils. -28b05cf This, also, is just plain super. -975b280 This is just super. -386a230 Elucidation. -f4f25ef Added abs to the calc command. -b133e59 Changed to a super, etc. -d957599 Elucidation is important. -a58b50c Slight augmentation. -e6725d4 Added FAQ about changing configuration files. -35b8fde Add a conf.supybot.plugins.Sourceforge.bold and setup @bugs, @rfes, and @patches to use it. -e22c732 Stupid keyboard -48d312b Fix a bug with adding __revision__ info to Exception -c4b2d53 We shouldn't confirm for alsos. Add some more ends and add starts. Also, move the sqlite import inside of SqliteInfobotDB -cad43fe Simple beginning. -b5d7045 More updating Docbook stuff -a4b3d66 Yes, I realize that the new stuff doesn't work with these tests, but I can't for the life of me figure out why not! The tests look set up the way they are supposed to (ChannelPlugin now...) -ebb7bec Spankin' new abstraction! -e271ea6 Fixed some stuff in the FAQ and updated the DocBook version -1f6f86a This is really example.sgml in a new life -25db3c9 Moving the DocBook equivalent of EXAMPLE to match the name change to PLUGIN-EXAMPLE -8b150d3 Updated DocBook translation -6a4567d Fixed a few out of date things in CONFIGURATION and updated the DocBook translation of it. -06ce162 Improvements based on plugins/FunDB.py's insult command. -d598b77 Fix some typos and remove some old documentation -5ed87ff +cvs -6c6da43 Missing space -977a33a Properly added and abstracted trackers commands -d98de45 After talking to jemfinch today, this is the first checkin. All comments from the @tracker 1012031 were addressed. The old style __author__ field was used and no __contributors__ (like myself) were added since I don't think the new system is checked in to CVS yet. I wanted to write a test suite as well but I didn't get to it today. -553a615 Consolidate @bugs, @rfes into @trackers and add support for retrieving info on patches. Add (commented out) infrastructure for supporting usage of @bugs, @rfes, and @trackers depending on the value of a config var. -5f00a39 Update to proper super() usage and make sure we're not trying to close() None -11c4716 liter is L not l and since we have the MiB, etc., let's change MB, etc., to use 1000 as the factor instead of 1024 -99a1da9 Revert most of jemfinch's changes (he hadn't meant to commit them) and fix my handling of the db in SqliteInfobotDB -dfd5153 Let people specify the entire conf.supybot.foo... when using @config -8cc4a98 Use a better docstring for NonNegativeInteger. -ff88488 Add a note about Python.win32's lack of IPV6 support. -911d9db Since Windows' version of Python doesn't build with IPV6 support, we have to be careful about how we try to detect whether a string is IPV6. -75dc3e8 _getId needs the irc object if it's going to use it -41117c4 Fixed bug #1020820. -3b9e141 Only send private configuration variables in private. -13e77ba Added TimeoutQueue. -012487b Fix bug #1020519. -3aafc97 Catch a KeyError when trying to remove a non-existent herald. -847a98c Periods are good as are not using dead code. -adedfb8 It helps if I register things correctly -84a7026 Add stripFormatting option (default True) -52ee091 One line bug fix. -7afea52 Slight optimization. -4e2be3a Use reply instead of queueMsg where possible. -445e76b Fixed fix in the interpreter. -740a57d Bugfix, wrong path. -e4f361d Forgot an import. -1b4c1f0 Fix for bug with some anydbms. -1ba2afa I thought I committed this before, but I guess not. -f21d6c7 Let's make sure we use reply. -f6ae3b2 Elucidating docstring. -6afd74d This shouldn't ignore. -60e6e16 We don't use this, we use src/__init__.py. -c036213 Useful printing of pid. -e9205ff Updated. -3db2904 Updated for new authors abstraction (single points of control are good). -8279157 Fixed some bugs in some callCommands, as well as used some super calls where before we did it the wrong way. -6df7dd7 Initial checkin. -39855b8 Updated for the new release. -7c3092a Changed info to stats. -688993a Let's give the runner driver a name. -56dc087 Fixed the reconnect bug and still kept the quit bug fixed. w00t. -6890baa Changed equalWeight to equal and augmented the descriptions. -029218b Only allow numeric ids. -9efe550 Changed some nick != othernick to not ircutils.strEqual. -bad2bb1 Changed a warning to an info. -962843f Moved network test. -1e4fad0 Fix0red the test0r. -fe4a08c Fix0red a bugz0r. -96abea0 don't reply.whenNotCommand. -ead683b Can't define an empty word. -86c7743 Fixed some == tests on nicks (became ircutils.strEqual). -ed71df8 Fix for bug #1019392. -bb4d3cd Add a couple more options to supybot.unix.fortune -ec3a76c Swap network stuff to be inside the class. -7a3be8a Catch httplib.InvalidURL. -faa3409 Unschedule ourselves after a reconnect and fixed a bugz0r in reconnecting. -53c951c Allow multiple fortune files. -7ede876 Added extra note about fortune's stupidity. -6c1a7cb Cleaner interface for Config.list. -58ce7c2 Modernized. -85acfac bash.org changed their URL format a little -7ef00a2 Handled reply.withNoticeWhenPrivate appropriately. -65c739d Reverted to the old tld mechanism since our regexps depend on English. -1f99790 Made info persistent as well as allowed reloading without resetting the license key. -5a43c37 That was a nasty bug and a stupid mistake on my part\. -6985fe3 Don't send empty queries. -e138211 Bugfixes and a test. -74763d4 Added exception revision logging. -2faa096 Added __revision__. -74b4628 Let's unschedule ourselves if we are told to die. -d22449d Fix0red an exception I forgot to catch. -8194cea Updated. -1f6c3c7 Updated for the new release. -61e09d4 Better handling of umodes. -0cd0a44 I honestly cannot believe that this wasn't caught sooner. -3aedb30 Fix for possible bugz0r with reply.withNoticeWhenPrivate. -8610646 Accepted Grantbow's suggestion. -70a9fdb Accepted Grantbow's suggestion. -a7379fe I should've run the tests earlier. Now adding the inital values to the db actually works. -9b00751 We must use our internal reply() method if we're going to keep track of whether we've already replied. -9fe9e14 Fix the problem with configure() mangling the nick -d7d1c42 Abstract registerNick and update configure() to use the abstraction -a8830b5 Why oh why don't I check my imports? -7aac173 Don't try to register SIGHUP on Windows. -8baa35a Consistent spacing -b111642 Let's properly mimic Infobot's stats command and add some initial items to a freshly created db. -f73acda Changed help for register to match the code. -af4f836 Added FAQ about channel-specific databases. -0c97cb4 debug log access level required from chanserv as well as some elucidating comments. -55a1e94 Time is on my side, oh yes it is. -8e84a42 Eat this commie bastard irc objects that don't want to die! -4609557 Add a period. -ffddc95 Let's try this for the connection problem bugs. -4d60937 Let's try this for the connection problem bugs. -1cd4b87 It's not an error condition, it's appropriate. -04ae1b9 Erroneous message (or so jamessan says ;)) -32b3bce Let's die immediately if we've not finished connecting. -613a855 Changed some log messages. -d6e3f13 Elucidating comment. -78b9d0b Fix the auctionSnarfer regexp to be more generic and stop logging bad snarfs as an exception. Warning is good enough. -6bb8104 Anonymous.action -164f57a Add Anonymous.action as requested by malex -2333231 Let's do this a slightly better way that I saw in one of the src/ files -6b59933 Let's make sure nested commands don't immediately nest commands (aka using a nested command to determine what the outer nested command is going to call) -b6d28d7 Let's avoid an assertion error by making sure we don't use empty msg's -0349d11 Hopefully, this will fix the unicode issues we have with Amazon -eabb77a Bring debian/ files up to date -bd0d438 *Actually* not queue things on zombies now. -1c737a4 Try to make network stuff case-insensitive. -570b302 Should fix a reported bug. I guess db isn't always iterable. -6c9d74e Changed networks to be case-insensitive. -5f90e63 Checking for root doesn't matter when you don't quit afterwards. -5a18914 Added version check to the wizard. -8b73786 Made a generated debug value, useful for troubleshooting. -5d2b238 Added __revision__. -c6f3c50 Added copyright and revision. -003d7d4 Added a configuration variable for user modes. -c3b3214 Workaround stupid os.path.join stupidity. -bb3df20 Updated to work with non-absolute selfs again. -ae4b8f7 Allow non-basenames in dirize. -a30dd2d Initial checkin. -58c9377 Update to newer upstream, clean up a few things, and add a link to upstream's site. -fec25b7 Remove some unnecessary regexps -e11baf3 Stopped logging this at level warning, instead use debug. -2c3e9fa Fixed pluralize for words ending in x. -6f4ee57 Python policy says debhelper (>= 4.1.67) -b40fc68 Fix PySqlite stupidity. -f6fbe4e Made register more useful, should fix some Services.identify bugs. -5a1d9de Add the URL we found BS at for later reference. -ba2fa6b Use BeautifulSoup to fix Debian.version -a68f8ca We are so smart! S-M-R-T! -b2b0e26 Let's ignore things that look like karma adjustments -94c43c5 I like the looks of these regexps better and alternation is expensive -1ad9816 Tests for karma/infobot interaction. -5e00bd4 Updated. -9a7c64a Added clear command. -4c58c39 Initial commit, test for bug with sending more than one later note. -42f3e13 Reply's getConfig shouldn't be used on GlobalValues. -ca492af Fix for the TypeError bug. -5d837b9 Update our debian/ directory -b7307c5 Respect KICKLEN. -afce054 Added watch and caught some possible errors. -685eda4 Don't try to send messages to zombies. -c38ca4d Added redo. -4b24a3f Added the +cvs back. -d9bff14 Updated. -dae0d11 Updated version numbers. -9e97027 Debug log already opped messages. -8f3d390 Slight tweak to message. -b8d086d Let's add a note that they should read INSTALL first, and remove the addendum about local installs since it's now in INSTALL. -7e22b2b Added swap. -9c73c57 Channel sync logs and some other minute tweaks. -c2a61b2 Let's respect the server's nicklen and maxchannels parameters. -29a6c92 Added an optional pair to start the chain, tests, and caught some errors. -22c333b Handle the case where our pidfile is deleted early. -4c0e898 Let's debug log a 'Registered channel' message from ChanServ. -c939686 Bring CONFIGURATION up-to-date (as noted by Grantbow) -1b16413 Updated, thanks for discovering these typos, Grantbow. -bcae3b6 Slight fix. -4873b82 Better formatting -47dca21 Typo fixes. -98c0512 Updated, thanks again Grantbow. -049ff3d Fixed bug in default. -9708ddb Updated, thanks Grantbow. -0166780 Fixes. -b810f76 We'll fix this later, but right now let's be consistent with permban. -c0b3c93 Not-so-elucidating comment. -c11dba1 Added defaultcapability command. -f4c384a Changed supybot.capabilities to an ircdb.CapabilitySet instead of a ircutils.IrcSet. -f0a5207 Let's setValue by default, that's more useful. -f7094ae Added a few more little madoodles to supported stuff. -2c5276b Fixed help for enable/disable. -db23f4e Added sorcerynet support and refactored some other support. -b8ad661 allowRoot fix and some spacing fixes -e97c610 Possible fix for the allow-root problem. -00409b5 Fix for stupid socket module problems. -73686ae Attempt to fix an error in testing permban, but it doesn't want to let itself be fixed. -36d9b07 Rename ban/unban back to permban/unpermban and add the mode -b part to unpermban. I'll leave the addition of mode +b in permban to jemfinch since he'll probably factor out a bit of common code in permban and the new ban command. -b59eba8 Prettify the display of current value in Config.help -ae8af84 RootWarner is a ChannelPluginTestCase and should use assertSnarf* asserts -df5c1b4 Testing security -1621cf3 Reverted. -bf304b7 Update to reflect new style of log calls with 'import supybot.log as log' style imports. -d5aa3a6 Updated configure function to new format. -bd306fe Only firewall if we're not testing. -517a590 Removed a FIXME that's really just a complaint. -e1aa6ef Better fix for the bugs induced by this new firewall thing. -6381e2a Fix for failures induced by the testing switch to un-firewalled (I think). -f2fd7c9 oops, got this reversed. -ff7622b Added an extra try/except madoodle since what we expect to be firewalled (a plugin's invalidCommand). -533fbd2 Proper fix for problem URL tests exposed -a8584ba Fix for failing test in URL. -23eb75f Another bug. -86b49ec Bugz0r. -5f5e791 For some reason, when I searched for do353 earlier, it didn't come up. Now it turns out that it should've...who knows. -7cb54de An attepmt to be reloadable. -ea1ddf1 353 handling in IrcState. -6b1f742 prefixChars == reply.whenAddressedBy.chars. -b6b22f7 Channel isn't necessary for NAMES. -d188417 Added names function. -1d3a332 Fix for dunno bugz0rs. -85355f5 We have to unAction or we get ugly replies -ba7b018 gotta explicitly split on ' ' since we use \n as a delimiter -bc40ff9 Rip out the stuff we moved to INSTALL -dbe1147 Initial Import -3635c65 Fix a bug with adding lasts. Add some elucidating (as jemfinch would put it) documentation. Modify the behavior of DbmMarkovDB.firsts and .lasts so they only report unique entries since this is how we used to behave. We'll still keep duplicate entries in the db because it affects randomness. -fbc1b04 Markov *finally* works again. Yay! -3313080 Fixed bug #1015151. -dbc3b59 we need the world -e0c5dba gotta stop being so greedy. it's not fair for everyone else -a8b36c9 Missing comma -b3dd326 Ripped out update code, it made maintenance hard. -ec55e86 Let's catch SyntaxError and turn it into an appropriate ValueError. -6b72890 Better error catching and print when connecting. -e4d77f4 Updated actually to work. -a0dbc91 *Really* make the disconnect message look good with twistedDrivers. -ee4900c This should be a fix for the inability to Ctrl-C quit. -614ed32 Fix for double-logging, to be sure...let's just hope it does something for the lack of exiting as well. -58176d4 Elucidating log. -d18250f Commented-out debug print. -53d3279 Neater log message. -9f1dd19 oops, forgot to return. -92b0d6d Added the unban and invite commands, as well as a better framework for detecting when a channel can't be joined and handling it. -24e0913 Allow numeric levels as well, so statistcs can be -1 if necessary. -275ba65 typo -f06b412 First version of an /etc/init.d/supybot script targeted at Debian systems. Additional checks will be required for validating that absolute pathnames are used in the conf file. This script should be considered experimental until the pathname validation issues can be addressed, perhaps with additional command-line arguments. -0143a41 Changed the topic command to be topic.set-with-no-number. -30f93fd Added the Topic.default command. -151d3b7 Topic.undo. -ad578a3 RecognizeTopiclen. -914ecdd Added 005 handling to IrcState. -b50be65 Updated to allow kwargs. -18dce89 Refactoring, added set, topic, and insert. -0775728 Add --without option for Mist.last -2a040b4 actually implement reply.withNoticeWhenPrivate -68feda2 Changed EXAMPLE to PLUGIN-EXAMPLE. -c950921 We're a *real* package now. -96c5cd3 Changed getops to op, added voice. -9f14d12 Let's notice when we can't change the topic. -547137d Give the original error a Raise argument. -752ae63 Fix for bug #1015159 -e32fe3b Typos. -dccf91c Fix for RFE #1012383, RSS shouldn't announce announced feeds right after startup. -0d53db7 What kind of crack was I on when I wrote this? -acf0a3f Augmented the add method for Note. -00b8f18 Updated. -0acec85 Added some caching to the read/notified ids. Eventually, I imagine, this should be generically done via dbi.py. -f208939 Added URL to original Mozbot code per MPL 3.3. Original developer names are absent from the file itself. Sorry about the line length, but the URL is over 80 chars alone with or without the spacing. -22c2c3a Let's make ourselves able to trace to a file. -2ce58d2 Extra \n. -a4bb12a Added settraces. -4c30b3f Change the default for individualPluginLogfiles. -5fe709f Properly handle error messages from loading plugins. -87ff856 Change the default of allowEmptyOverwrite, because it's annoying. -8a352be Don't ask me why I was copying that list. -868a668 Removed logfile command, no one uses it and it's an information leak (channel logfiles). -9db025a Let's be cool, Twisted. -fa614b9 Oops, forgot to update this for the new networks getup. -a9b5197 Some updates, not nearly enough. -8410c09 Initial checkin. -eccb7ba Added good error handling in the case that there is no words file. -25b2189 Better. -b085ba5 HUP handling. -c5a4972 Fix for IrcObjectProxy.error not accepting a Raise argument. -50d0b8b A minor variable name change. -5861a5e Changed totalbugs/totalrfes to a single total command. -d28ddf7 Changed from INFO to DEBUG the 'Not snarfing' messages. -edecd51 It's handy to translate the user id to a name. -91c440a Disabled my timestamp editor feature so the SQL at the end of the Changelog is not mistakenly changed. -bfd4a9f Fixed a stupid error message. (Closes: #1009681) -977f3f6 Changed my spaced entries to use tabs like all the others. -23ead95 Changelog additions for Fun.eightball and supybot.plugins.Topic.format. -c05cc23 Cleanup. -852388e Being able to send a note using the person's current nick instead of needing to know their ircdb user name is good -67a79c1 Updated. -6e21d8b Made the test actually do something. -fae870c Updated. -b3ca5ed Updated the help for nickometer. -8f47f0b Updated the documentaiton. -ab35afa updated. -30c7082 Initial commit. -c4ea645 Updated for jamessan's bugfix. -96754b8 Add $today as advertised in Utilities.echo -b099b66 Bugfix for darelf's IRC server. -25efb6f Reverted Misc and updated STYLE to reflect what I thought I'd already documented somewhere. -61e471a Let's catch sslerror too. Why the stupid Python developers didn't make this a subclasss of socket.error, I don't know. -fbb348b Copyright updates. Again, more is left to be done, but this is my part. -853da22 Updated somewhat...more work still needs to be done. -0613146 We should call our parents more often. -b7e030f Elucidating comment. -5f24e4f Robustitude changes for testsupport. -1704fa2 Let's not connect multiple times to a network. -c038675 Moved the connect and disconnect commands to the Owner plugin from the Relay plugin. -53b9067 Stopped using supybot.networks.default and just let Owner handle that crap. -e757cb9 Removed the servers keyword to registerNetwork (it was useless) and added an append method to the Servers class. -038705c Some cleanups in preparation for being multi-server without Relay. -48f58cc Elucidating comment. -c63c7a1 Gave output an option fd. -920b4cf Make compact the default for stack traces. -b3ddef0 Style updates, basically, and some slight functionality changes. -2c05cac Fix the __authors__/__contributors__ thing. -1c5faf3 Moved the networks command here from the Relay plugin. -f467550 Added delayed death and fixed a bugz0r (die wasn't calling driver.IrcDriver.die) -992cbb9 Upgrade of Fun's eightball command ported from Tellbot, previously ported from Mozbot's MagicEightBall.bm module. -181f989 Use of (preferred?) format string notation. -b77d6d0 Make the error a little more descriptive -5390e58 Let's notice by default. -4371b4e Moved to the sandbox, where it more rightfully belongs. -ae048d9 Let's not bother getting database if it's not a channel. Good call. -ab6d167 Added a --clean option to setup.py. -21dea0e Allow revision to accept wildcards. -02cd153 Blech. I should reverse the arguments of makeChannelFilename officially, because I keep messing them up. -8936208 Bah. -f18f5a7 Typo. -091ff90 Added day and monthname. -fbd3f46 Forgot this import with the src/Owner.py import that supported it. -98062e8 Converted to an outFilter for greater efficiency (why send a message to myself at all?) and added a check for testing, because otherwise the tests break. -17c569b Let's have an extra hoop for people who don't want to load the src/ plugins to jump through. -4391272 Let's log what the actual message is. -9807624 Uh, one wonders why I didn't do this in the first place. Just fix the bugs that are already there, Jeremy. -96fa5e4 Added a wait keyword argument. -516d130 Retarded, I put the inFilter in the LogProxy class rather than in the Owner class\! -3010885 Removed a debugging line. -28e79ee Added a safety measure to keep the bot from looping message itself. -4a36ef9 Let's make sure is always in the string. -6ecf2ae Let's hope this doesn't break anything too serious. -62ff576 Slightly less verbose. -e9c59b1 Added punishment of other attempting relay bots. -966129c A docstring doesn't hurt much. -8c25795 Removed redundant at console. -5bb4312 Changed colorized to color to be consistent with other plugins. -0e9a7a7 New implementation of formatting; dropped unformatting entirely. -247f8f4 Using utils.stackTrace now that it has a compact option. -3bacc7d Attempt to document a bit better. -a37129a Cooler stackTrace. -2434bdd Better handling of gaierror. -98f0d46 Updated to be a bit more robust. -49c3f0c Better error messages and help. -43b8301 Fixed problem with multiple servers. -de1673e Handle the problem with Ctrl-C not working if it's done before any connections are made. -4027d2a Only try to close the connection if we ever got connected. -39b8372 Augmented upkeep to do even more upkeep, if asked. -81ca323 Test for case-insensitivity. -0f1842b Only do real variable names. -8a9ca0b New implementation of standardSubstitute. -288c678 Added perlVariableSubstitute. -df1a964 standardSubstitute on the default herald. -5c910c6 Updated. -a3c30b0 Beg for advertising. -aa40c90 Added networks command. -caa0790 Split off a test. -452f239 Changed defaultHerald to default (now that channel values can have children) and added a public boolean for the default herald. -bd3e056 Let's not try to queue our connect messages if we're zombie. -535d872 Information-gathering and robustitude. -af994cf Added a default behavior for Admin.nick if no nick is given. -eb60864 Money is a float not an int. Also, uber simplify Currency.yahoo since they provide a csv file. Yay, no html parsing! -eb23fa3 Fixed some space problems in Google.calc. -71c752a Added bender, fixed bugs. -fac96b1 Fix for problem with channelvalues not being removed on setValue. -dd45f30 Didn't convert this when I changed to _added. -a904f0e Oops, didn't think about daemons. -ed63bc5 I think there are bugs here, some tests are failing, but it's late and I can't figure out why. -852e1dc Fix0red. -5c30fe2 Added mroth's noJoinsUntilIdentified. -e97d866 Removed one hack, added another, though I believe we have a net gain (and the hacks are completely unrelated, incidentally). -4fce95e Let's give a nice QUIT message when we're Ctrl-C'ed. -2b4df1f Let's not die twice. -f914f5e Commented-out test that we're no longer worried about. -255125b Default user agent. -956a156 Added some underscore action to eval. -fd95937 Changed default for cycleToGetOps. -403afe6 Reversed the arguments to makeChannelFilename. -9d32018 Let's stop the double kill. -a4c8384 Boomshakalaka\! -102188d utils.nItemsify -d86ebf4 Updated calc. -06afd9f Switch back to profile. hotshot is wonky -cf124a2 mroth's google calc. -4e10d65 Not self.log, foos. -e844d9c This should fix the problems with children of ChannelValues. -54995c8 Yahoo does some funky stuff when you try to convert *large* numbers *cough*Vee*cough* -f901a87 Use MSIE user-agent, allow passing of headers in. -64b7d0d Quit messages actually go through now. -6d1d601 Fixed exception id 0x8a41d. -dec8c52 Fixed testChannel. -5be0b31 Bugfix. -fa84b0c Switchamabob -23c4267 Updated for the presence of User.stats. -715bdcf Made this work on boxes that don't have sqlite. -bfcff00 s is not equal to newS. -ad1b36a Added rescheduleEvent. -55f5f34 Documentation should stay current with the code. -268c317 Let's make this private. -e6fb52e perlReToReplacer. -d26b311 Let's make sure we unregister configuration-wise before we check to see if the plugin isn't loaded. -cc4b76a Updated to allow configuration for multiple nicks as well as to use conf.supybot.nick() by default. -f8d2230 Updated to rock more. -9c64990 Oops, forgot a state. It's like seventh grade geography all over again\! -9a4a6ad Forgotten imports. -13cca25 Initial checkin. -d36459a More spelling/capitalization normalization. -36418e8 Had a test reversed. -73a5058 Empty strings. Bah\! -890140d Forgot an import. -753a410 Some extra checks to make sure only useful strings are written. -501b642 Some extra periods. -4348b41 Style updates. -e11ced5 Capitalize supybot. -17ca364 Normalized our 'take no arguments' strings. -f4d6bac Joined extraneous lines. -3036e5b Updated help text of supybot.plugins.Bugzilla.bugSnarfer to reflect both URL and bug ### features. -4c459c3 Bugzilla.py enhancement to allow snarfing "bug ###". new config variable: supybot.plugins.Bugzilla.snarfTarget Uses existing supybot.plugins.Bugzilla.bugSnarfer boolean for activation. Includes update to test_Bugzilla.py. -f058b7e Add notation of whether a config var is channel specific -20fddb4 Slight style corrections. -d8b1ce3 Some tweaks to how strings are printed. -0f59827 Speeling fixes. -f75e934 Updated. -69fbcea Different way of output. -15e7c89 Initial checkin. -b04f616 Code cleanup. -dadc371 Another typo. -ae9d450 Finally, a working version -bb36f48 If wunderground finds multiple locations, let's return the results for the first location they list. Also, default Weather.weather to Weather.wunder -2e8bd9a Oops, typo. -820c6e8 Refactoring for improved handling of errors later. -107d237 Cleaner thread. -cd9ad40 Let's reorder this, in case it matters sometime. -e9142dc Style cleanups, some refactoring. -523204f Let's allow errors to raise their complaint. -85cbffc Tyop. -a1a4a77 Let's name the workqueue. -3c866dc Updated help string. -662a8cc Default dictionary support. -b876d79 Fix for ugly documentation. -027b73a Fixing the "I know there was something I didn't finish, but I don't remember what so I'll commit anyway" commit. -3ea150c Update to show config variables for each plugin -fd70657 Update with some handling of config vars -2be2b4e ly -44d9fbe Added wildcard support. -b22e3c4 Changed supplyDefault to _supplyDefault and added %s handling for supybot.nick.alternates. -1290d2e Added profiling information as well as the threads command. -72f36ef Fix some problems in Infobot.py's sqlite implementation and genericize some other errors to better fit in with db abstraction -376e67d Added ison. -0bdbae6 Make sure the MarkovWorkQueue dies. -451e083 Updated. -7855f61 Let's change this to a debug log. -b6f03a4 We shouldn't send a new nick in response to 433 when we've already connected. -d1bf6b5 New stats test. -e7daa3c Handle the empty value case. -e1cf38f Handle QUIT properly in IrcState. -fe139ce Immense improvements to recapturing nick. -3cf02c8 Better stupid nick resolution scheme. -c925b48 Slightly better error message. -f89bb16 Various updates. -c717024 Unused import -ff8edb4 Abstract Infobot's DB and default to SqliteInfobotDB over PickleInfobotDB -2ad62c5 Add conf.supybot.plugins.Quotes.requireRegistration and fix a bug with Quotes.random -0ee2ff4 De-uglified urllib2.URLErrors and cleaned up a couple blocks in plugins/Http.py -4a8e60b Add showLinks config variable and remove an unnecessary utils.htmlToText -5c32fc3 I guess not all items have titles -3d03d6f Allow notes to be auto-sent. -51d0567 Let's show the current value in COnfig.help. -7b75d47 Slight tweaks. -0f14557 Typo. -eff7489 Don't try to kick people that aren't in the channel. -edf7af7 Stats command. I'm obsessed. -1624561 It's possible that the Misc plugin isn't loaded. -7a65e93 Hax0r. Watch this revision, I have a feeling we're going to revert this change at some point. -dfd929d Darn, missed one. -0b699e8 Must...save...bytes... -5042f9e Use a global q so urls snarfed by another plugin aren't snarfed by later plugins. -3bd1e00 Lower the priority, so other snarfers run first. -4e53cfe Fixed bug #1009683. -d267fe9 Revert our directories.plugins defaults to the old behavior -46c71a7 Add dbi.NoRecordError and update Quotes to use it -eb1dac0 Misc.last --with matches case-insensitively -57c2f26 Fix broken Quotes.info and improve Quotes.search by passing the predicate to QuotesDB.search instead of the regexp. -7b2cbd9 Fixed the user list problem mo betta. -1a6754a Http.cyborg now uses the user's nick if non is specified -176c71b Fix Currency.xe. Also, some slight reply cleanups and default Currency.currency to use Currency.yahoo -e7aa2ef Fixed the user list problem. -60a0810 Added change command. -7f9a95d Updated docstring for def rfes method to give Request For Enhancement acronym. -31b1bdf Changed an info log to a debug log. -c2d5ac5 Updated for database independence -3a949e4 Blech. Totally not literary. -f45c3f5 Default to msg.nick. -6964a64 Implement some of the hints from Bug #1007571 and fix Bug #1002363 while I'm at it. Now babelfish should be happy. -25858a7 Some slight adjustments brought about by investigating Bug #1002363 -a1a703d Let's go to repr. Beware, people, this may invalidate certain databases. -1c69d97 No notes to self. -d64bc77 Testing remotely blows. -7f1c57c Testing remotely blows. -a6f03fa Updated as a precursor to making it database-independent. -3af85f3 Updated as a precursor to making it database-independent. -985eb7b Updated as a precursor to making it database-independent. -22ddd5c has, a counterpart to be. -bb0aa6f PyChecker updates. -1c84dd6 Renamed to _children. -a9ab896 Moved logfilesize to Status. -58e40a8 Small type change. -cafd724 PyChecker fixes. -efb7891 pylint cleanups -3e1be18 Let's not bold the options in expect() -86efb09 Since I don't want to deal with keeping the responses up-to-date, this is now a testNotError suite. -b3169b7 Forgot chanPlugin. Yay, PyChecker. -d762c1e Test fixes. -c59db0f PyChecker fixes. -775b542 Useless imports, a nice little bugz0r, found by PyChecker. -ef00733 Fewer questions, easier to use an maintain. -8a53eab Better error reporting. -0768ce1 Converted to use dbi. -77ce14f Better error reporting in assertAction. -ab29dbb Removed useless DunnoDBInterface. -12ee483 Slight bugfixes; returning from a remove is unpossible. -c941521 Converted to use dbi. -e5e98fd Initial checkin. -234d4d8 Cleanup for PyChecker. -759f38f Use makeChannelFilename. -e85388a Typo fix. -92a0492 Added a bit more flushing. -6bd8d43 PyChecker updates. -3f5cac2 oops, forgot parenthese. -c16bfcb Removed the default channel of #supybot. -7913e88 Oops, recent changes broke things. -9ceb89c Dumb, error. -1b10c0a Only write the file if we're monitoring words. -532ac41 Added includeNetwork. -e908b14 Added a field command. -975f698 Nesting directories is bad, mkay. -245c77d Made the maximum length configurable. -f8207cf Not finding appropriate commands is a reply, not an error. That's what apropos is for. -ad0ffd2 Let's make sure people can't run levenshtein (an O(n**3) algorithm) on large inputs. I gave it to lambdaman almost 10 minutes ago and it's still not finished. -2259e9d Added log.stat, supybot.log.statistics, and changed some statistic-keeping functions over to use log.stat. -a39ad7b Changed info logs to debug logs. -4e92a0d No => Neutral. -f19c98a Extra space zapped\! -b7bd3d4 Fixed weird formatting of colorized stdout stuff. -8a4e79e Let's try to respect some channel values, shall we? -5ec7923 Give an appropriate error message when trying to Config.channel a non-channel-value. -2ebbc80 Removed testing code, it's never used. -3fa477d Removed reply.withPrivate notice, replaced with two separate variables, reply.withNotice and reply.inPrivate. -efc3469 Added Note.reply). -127e9f3 Fixed a bug in stripFormatting. -3db50c1 Fix for bug about reply.withPrivateNotice overriding stuff. -16c832b Do we really need the timestamp here? -3d1bc55 These logs are prettier in the reverse order. -7dbb868 Fix the problem with wrapping. -52cbec4 Fixed some bugs with note orders, etc. -ec16cf9 New implementation using FlatfileDB. -a59ba25 Bugzor fix0red. -efc095f Broke user and last commands off. -ef9c94b Oops, did I forget to commit this before? -a290f4b Excuses are gone -3a916b2 Updated to allow a dirname, so I can use it later for ChannelLogger. -542a9a8 Not die, close. Close, not die. -42bd2d4 Updated to use FlatfileDB. -8a835a0 Removed configure and added a class docstring. -daf81b1 Added a registry variable for disallowed list --private. -b207baf Removed redundant nick. I forgot about the nick prefix when I wrote that. -afc21c2 Added a comment for something that's easy to forget later. -e26bd51 PeriodError. -04d0e5f Infobot is looking pretty complete! -2952ed4 Make sure we don't start a game if the file doesn't exist. Also, complete sentences are nice to have. -5728974 We only want to hide/count characters in string.ascii_lowercase -50c8cfa Unregister should remove the node from the cache as well. -3fc03d2 Fix for bug #1004002. -d134a2d Updated to use webutils throughout. -0bbd05d It definitely shouldn't be an error to not be recognized by whoami, that's somewhat the point. -697249d supybot.protocols.irc.queueDuplicateMessages -54876e4 Let's always run upkeep before we exit normally. -667b5ff Extra data directory, no yuo\! -5c4d0e4 Extra space. -44e1098 Added optional line wrapping to logs. -2bbfc6f Forgot to import sets. -8daceea Changed the way channel databases are handled, added supybot.databases.plugins.channelSpecific. -75f1eb4 Updated to handle some EnvironmentErrors. -fa8f39a Slight style updates. -9ea8a9e Changed the *permban* commands to *ban* commands. -4be7743 Yeah, shouldn't have committed this without testing first. -fdc8cdb Let's make relaying the hostmasks on join optional. -250df85 Slight update to make the code a touch cleaner. -76a79b0 New Dunno implementation. -a64d6b3 Handle the no plugins case. -29f54c8 Oops. One other spot where you get a directory. -9c1aec0 password is network specific -cb52197 Forgot to close the files. -68516b8 Let's catch some socket.timeout action. -89c3737 Removed some potentially bad things from this stupid module. -350f189 FlatfileDB rulez0rs. Now we just have to convert Dunno and FunDB to use it. -6dd8693 No one's using this WorkQueue crap; I didn't really mean for it to be committed. -9d3f572 How can we ask a question is we don't know what a question is? -e5bea55 Let's not change things up on the user. When specifying the directories they want, we should remember how they typed in the directory. -9db0734 Fix (and cleanup) thanks to the suggestion in Bug #1002547 -5327fee Forgot the copyright notice. -da7e93a Added a check for the already-presence of an attribute. -2bd7a31 Made name and hostmask optional in addhostmask. -bbd4015 Added requireCapability. -9c047a6 Updated. -53c19e3 supybot.plugins.Dunno.prefixNick. -45d3d63 Uh oh, we're getting repeats. Let's fix this. -2eedf7d Added Owner.rename, to rename commands. -86f2cb8 Registry values for Status.cpu. -cdc61d1 Handle stupid distributions. -f53058e User configuration stuff can wait until later. -c51a9db Updated to use the same scheme as Bugzilla. -69b6ee4 Slightly different wordings. -cf90f3c Later is now persistent. -26fcd9a Slightt update -- private implies not prefixName. -e729915 Updated severely. -b6a03d9 Proxy for Google. -0533fea callback => plugin. -766d77e Updated to be smarter, though we still need ctime watching. -64d5f53 Comment our use of sendMsg instead of queueMsg. -c08ee5e model Tail._send after LogToIrc's setup -f9e9677 Let's make sure the angle brackets don't change color based on capitalization. -55a38cb Fixed lingerinb bug from when random quotegrabs stuff was converted to config vars -35ab104 No need to import registry twice, and Strike can't even remember what that jab at me is for, so I'm removing it. -47a098e Ininital checkin of Tail. -2429c1c Added SpaceSeparatedSetOfStrings. -5dbb314 Bugfix in the add. -a5e473b Updated to make sure Relay doesn't break dying. -cb1cd25 Let's actually respect the channel-value-ness of reply.whenAddressedByNick. -a4fdb02 The default is not to limit the number of messages. -1f874cf We don't mind writing empty files if the original file doesn't exist. -8b780ec Added 'channel' command since we can now have commands with the same name as a plugin. This is useful for configuring ChannelValues. -3234af1 Fix for bug #998311; we should now work fine with channels with dots in their names. -7b07de9 Added a --network option. -5300aff Forgot to setDaemon. -0e70115 Better error message, bizotch. -d81ca6f New Markov implementation. It's still broken, but I gotta run, so I'll fix it later. -f44f541 Moved the do376 joining stuff to Owner so Admin can be safely unloaded. -654ae49 Don't let dumb people unload Owner. -220d4b0 Strike-- -74e3cce Slightly nicer fix, I don't know why I didn't think of this before. -7834a2c Now registry.Regexp updates properly -20ebbc1 We have to add a non-banmask hostmask to match against. banmask hostmask is too general. -09c81c6 Update to use the registry for denying capabilities. -a927e5d Yay, imports. -d47d54b Almost out entire testsuite works, yet again. Yay! -b6ba795 With some clearer thinking, I believe this is the proper implementation of tmpDir. If there's something wrong with it, send me a note or write a test and it'll be fixed. -7c41187 Now that we have directories in test-data, we better handle that. -d573550 Fixed some bugs when using relative path names. -beb9e8c Better. -5a6cd1e Update to use temporary directory. -197238e Lucky should error if given no args. -2a61130 Added mores group and instant. -0fcb772 Oops, closed is reserved, apparently. -f349f08 Changed IrcObjectProxyRegexp to SimpleProxy to more accurately show what the deal is. -a2feec9 Added NonNegativeInteger. -b4f7b87 Forgot to prepend something to the tell. -4f248a0 Initial checkin. -ecd67cb Only rollback if we haven't closed. -823bfb0 Added utils.AtomicFile and converted our uses of 'w' to it. This rocks. -b2a9458 Added AtomicFile. -fe8a8ee Let's make sure our hashes are case-insensitive. -e03c3ec Oops, got a debugging print in there. -ae26bf4 Still changing over those variable names. -e64444c Fixed some bad calls to setMode. -c3faaca Updated. -41f0704 Slight change to logging output. -fb9a19c Bugfix. -38c4422 Let's not store modes +/-ovh. -9772c45 Made description optional. -d8d1b9f Added channel limit enforcement. RFE #1000368. -5d542dc Let's catch this KeyError, shall we? -fbe80ef Added limit commands. -9165c69 Changed to use a 6-barrel revolver. -750d6c5 Added tell to Infobot. -98b7917 Don't know exactly why this helps, but there ya go. -0412055 There's no need to test all of the tokens we're looking at. If the first one is a command, bail out. -c98ac36 Now we log connects in twistedDrivers as well. -20e972e Fixed bugs in defaultplugin. -d8bc23d Fixed. -9250d3a Tons of differences, moved some registry values around, also changed some internal attributes of registry thingies. -f3ed778 Refactored _getNextServer and friends as well as logging. -eeacd8b Fixed the issue with responding when he shouldn't be by making try:finally one fat bastard. -1cb576d Updated to include new status command. -115a3a8 move isCtcp to ircmsgs and fix up a couple things with Infobot -c31512d We can respond if we're addressed but there's no terminal question mark. Actions on the other hand are the DEVIL! They get banished immediately. -3bf798e Removed useless try/except block. -a3e04ea Handled some XXXs. -78b2fc8 Removed, our plugins version works a bit better. -f63f204 All your strjoin are belong to Format. -a421cbc No need to tag or's since you can't escape the | -c83c8c3 Fixed bugz0rs in URL, added vacuum (called on stats). -893727f Fixed some bugz0rs. -6f0309c Fixed some lacking imports. -565c6b7 Fixed bugz0rs in URL, added vacuum (called on stats). -7f11267 Added <action>, <reply>, and | handling -a8a95c2 Fixed the one-channel bug. -7328bd5 Added network-specific channels. -fb0a5dd Make sure we resetDelay so that reconnects don't take progressively longer. -e051e5e Fixed multiple servers. -a8a5d51 Another attempt to allow multiple servers in twistedDrivers. -c5325dc Updated to allow multiple servers. -2336af5 Updated to allow multiple servers. -544bfa3 Current temperature *in*, not *at*. -aeda083 Added a __repr__ for Irc objects. -2a17e0e Updated. -40ea535 Forgot to add rainbow to the filters list. -734b3c2 Let's reset only once, m'kay? -e714ede Oops, forgot this. -d6faaef Why not make this public? -30abebe Some random commits, NormalizedString, etc. -61793a4 Added the new buttkicking enable/disable. -17f15da We haven't needed this for awhile now. -b252ae8 Added a value option to registryValue to allow not getting the value (and just returning the group). -b26ef39 Updated forgotten % in Misc.tell. -5f1a08f Added error handling for a bad default network. -9bfb616 Fixed list bug. -0f59205 Updated __str__ for Irc objects. -a3f1362 Spelled publicly correctly, and moved the proper registration of the public attribute from Owner to conf.registerPlugin. -a7dcf76 Removed PersistentDictionary. -206d8bd Added the note ids that are unread to the notification message. -2ca4304 Updated. -bfa2382 Slight doc/style updates. -6886a88 Added KeepAlive. -7c71096 Changed the default for setValue keyword in setUserValue. -66bad99 Let's make sure getUrls doesn't return duplicates. -d594232 Reduced functionality, but I doubt anyone will complain. Much cleaner and clearer now that we're using flat files. -46383f9 Made --private only show private plugins. -79bb902 Bug in removing channels from supybot.channels. -73af1f2 Bug in removing channels from supybot.channels. -a42eb99 Bug in nicks. -f606c43 Let's remove stupid directories. -b9507c9 Updated. -0f12c4b Refactored a little. -230a050 Added DataFilename. -fb8fc70 Removed, moved to plugins/__init__.py for lack of a better name. -848303c Fix for world.documenting issue. -03b183d Some updates to work with the import changes and support module.Class.__doc__ -d2ff10b Updated some logs, fixed a major bug with reconnecting in irc.reset. -8f72aec Fix for cycling bug. -65c8b48 We're probably going to use Joel's irclib.py, stripped for its DCC stuff. -35bd48b I thought *args would be a list. Turns out it's not. -cdd0de9 Updated Chat and Accept handlers -9b2b71a Ooops. Forgot to register configs. -afbeb4d Updated for XXXs down to unfinished reference code -- Azaroth -32ba3b1 Made crossword fail when an active hangman game has a solution in the answer set. -82161ee Refactored not to use SQLite; we lose anagrams, but crossword and hangman become much easier to use. -43013d4 Updated with a whole bunch of XXX commands for azaroth. -e6ff03a Updated with a whole bunch of XXX commands for azaroth. -6cc8c29 Added dcc, to build dcc privmsgs. -16ebd1c Initial checkin. -810a051 Removeed some useless imports. -fe55f17 Updated to use only the registry. -4b40f18 Gave the schedule driver a proper name. -5163921 Removed do001 because we don't need it any longer; the network is always set. -e393459 Refactored slightly, added some debug logging, etc. -01e3cba Updated, adding some logging, adding style dots to some others, etc. -50c650a Sample File server for DCC. Uses DCC Chat to navigate directory structure. Allows multiple configurable queues on multiple channels. -- Azaroth -726dc3f Improved DCC handing, including file send, file send resume and chat handling. See FServe.py plugin for sample wrapping code. --Azaroth -76bdab2 Some extra rules for not telling. -2fe7bd8 Reverted my accidental clobbering. -1b5e3b8 Added supybot.reply.withNoticeWhenPrivate. -377c443 Deprecated, with no requests for revival. Removed. -26062d1 Updated. -4d04bb5 Extra, more accurate asserts can't hurt. -82d6966 Tweaked. -fc31200 Important change. -7dbbf16 Allow multiple nicks, refactored irclib.Irc a bit. -dc4d787 Forgot an import. -6fbe52a Improved the help message. -ef659dd Updated. -16f4231 Forgot questions. -c515e92 Added an __call__ on Groups so a better error message is raised. -282846f Added registry.split. -d868a17 Added "Date Submitted" to the reported information -3f08089 Added registry.split. -191fe6e Updated. -d7941fd Let's catch errors in loading src/ plugins. -d0552fd Let's segregate our ChannelLogger logfiles. -d0e5d72 Updated. -f9c6127 w00, less path mungingEXCLAIMEXCLAIM -5c3f13b This must not have been run in awhile. -b2dbbe9 small cleanups -db111b7 Removed, they broke. -fe63755 Fix bug, yay. -97cfeef Slight output change on Babelfish. -115b3bd Updated for Utilities/Format split. -0fbbd8c Work around a Python stupidity -177d6fe Added myself as the __author__. -b9da065 Slight tweak. -3f0dcf1 Let's handle old registry entries gracefully. -bb08574 Refactored a touch. -f9c030f Updated some stuff, refactoring for the the User.config command. -1ed71e9 It's nice when things work -70dc5c3 Updated. -53b29f1 Allow commands to be the same name as callbacks. -4352cfd Separate class MarkovDB. -0dc52d7 Updated. -7869413 Add a log.info. -2e4a8e3 Updated to use the helper functions conf.register* -3d039fc Slight docstring fix. -88b9663 Removed final remnants of bracketSyntax. -278310e Moved some commands from Utilities to Format. -f2ac57e Fixed the problem with prefixing the nick in private messages. -6fb53c1 Added revision strings. -3532fbb Added revision strings. -3be6659 Updated. -0c38398 Let's just make sure everythings a string. -370c30a Refactored, added moderate, unmoderate, and key. -f871d38 Added Channel.limit. -35038fd Added Channel.mode. -2369a1a Updated. -2ebbec7 Added format command. -28d702a Finished color command. -a4386a6 Updated to make mircColors an IrcDict, and clean up the limplementation of mircColor function. -3cb0cf8 It's good for things to compile. -f441219 Initial checkin. -c064aa1 Let's make sure to zfill those digits before we mircColor. -d7df686 Updated. -01435e1 Fixed some bugs, added rainbow, etc. -9e6a3ed Fixed bug #960696. -ce315d3 Forgot a #. -315810d yay! no more stray whitespace -27e3b07 Improved RSS.announce -9d4b715 Fix a typo and remove extraneous whitespace -70efdfb Slight cleanups. -a95f1bc Added resize operation to RingBuffer and make IrcState use it. -8282d3e whitespace and a forgotten conf import -093aa40 whitespace -44e8ff5 Added reconnect command. -39bf2e4 Minor updates. -3689583 Added aol filter. -2d11b44 Added aol filter. -95f8a74 Added Nickometer plugin from baggins. -3b74c01 Added http proxy support. -2b506b2 Made setUserValue argument order consistent with userValue argument order. -87d8d60 Oops, forgot to commit this with the Note commits. -b1db399 Updated. -35e2c45 Added multiple recipient support. -1cc62cf Added a list command. -6287713 Updated to reflect the new supybot.networks crap. -73cb817 Fixed TODO 124. -aad1d2d Updated to allow different networks. -b88dd0f Updated. -fd6cb44 Let's return the node, just in case it turns out to be useful. Of course, we know it turns out to be useful, or else we wouldn't be adding this... -83e16fa Added some help and Dunno.stats. -4a7e2db Example plugin helps. -2431ddb Allow help strings for plugins, except plugins that have an explicit command with their name. -70dd4db Dotted. -327254a Add Currency plugin and fix some whitespace annoyances. -2377a4a Automatically convert non-strings to strings with safeArgument. -aeb4707 Updated with a useless comment for people reading the source code. They won't think we're complete OO heathen now. -40ec693 Updated for some privacy issues. -e759547 Updated. -0585ccb Improve Weather.wunder's UV report and add heat index reporting -bc1027d Updated the function to match the help. -7bf740d Don't reveal the channel unless the nick command is given in it. -ecae9af Updated to handle 438. -c9867b2 This wouldn't work how users would expect it to work, so we're removing it. -efca378 Let's make sure to handle the situation when the Irc object isn't in self.connected. -7420801 Added RFE about connected time. -1d6d200 Fixed brain-o in error message. -91a440e Add rudimentary blocking of adjusting one's own karma -7fbb6da Revert the previous 'fix' since to can never be None at that point. Also, remove those evil lines full of white-space! -e5e1f2e Bugfix. I can't test this on my laptop, so expect a couple more of these. -8875162 Don't number if there's only one factoid, and added a factoidPrefix configuration variable. -cc193c3 Added lucky command. -79db100 Actual commit for the fix for reply. -e98daac Let's be more ASCII. -032fbe4 Added permbans command. -0937ba2 Added a channel-specific enforce value. -180d2e8 Fix some help messages -30a8c06 Misc.last --nolimit -d9d8c04 Slight bugfix. -dae0db1 RFE #952861. -ef91ae1 Add [<reason>] to Admin.part -5419ed0 Don't send JOIN if we don't join anything. -2b87b4d Grr. -b6fbfef Hate. -287f016 Hack. -b594ef7 Trying fix for lack of prefixing name. -fefe1f2 Who would've thunk ya needed utils -8472276 Fix some bugs I introduced with the conversion to utils.getSocket and improve DCC's error checking. -1383da0 Prevent scheduled downloads from happening when we're generating docs (hopfully), and fix a userdataFilename bug introduced in the earlier fix. -9d9c302 Add handling of opening sockets to communicate with IPV6 hosts. -17a4042 Removed mini-wizard. -233174d Remember the basedir when we prompt users for their directories and wrap the prompts a little tighter. -61d6e02 Move creation of userdata.conf to scripts/supybot just to ensure that we're not trying to create it before the directories exist. -18138da Catch some sqlite exceptions that probably shouldn't be happening, but I don't have the best of luck with sqlite. -2176493 Fix some typos in configure() -0721a70 Simplified the last fix and commented out the kban tests since they don't work properly -581a489 Changed the non-strictRfc implementation of isNick not to allow full hostmasks. -90a0529 Fixed a bug and caught some interesting issues with strictRfc. Still need to look into Channel.kban -d9d1aef Clarify the help for Channel.permban -2657257 Fixed a couple bugs and added tests for said bugs. -45b534f Make Owner.defaultplugin more robust in it's error detection. -b9598ab Herald.default & conf.supybot.plugins.Herald.defaultHerald -6f336f2 Possible fix for the dumb bug from dumb servers who put dumb dots in the dumb channels's dumb name. -ed14dcb Updated. -eb2deeb isDispatcher stuff. -b2a70f2 Fixed bug reported by locsmif on #supybot. -d8b7254 Revert a reply() change and fix some tests. -06e92cd If an invalid password is specified *and* the hostmask isn't recognized we need to watch for a KeyError instead of assuming it is the owner trying to register a hostmask for another user. -32f39e0 Babelize wasn't properly setting the language when it terminated early -5633b9d Updated the tiny regexp to match the site's new layout. Added more checks for nonSnarfingRegexp. Lowered the minimum length we check for tiny URLs since they can be as short as 20 characters. -2bf2166 Changed a message slightly. -9b662b3 Made registry variables for the defaultLanguage and safeSearch default. -36e7931 A few small corrections -dcd5606 Tried to fix jamessan's dealio. -b77a16f hamweather changed on us -5693e0e Fixed some error reporting -14ae059 Help needed help. -d546f41 Weather.wunder -4479c43 Cleaned up regexp naming so that it is more consistent and easier to use with multiple weather commands. Added Weather.wunder. -34555c5 I didn't like the idea of supybot being able to time travel -d508b19 Evil lines of DOOM!!!...or just lines that should be empty but have whitespace. -f0c3cea Added a nice little finally, just in case. -24c2543 Fixed bug in announcements. -880bf85 Somehow this bug has been around since 0.77.0 -ce8c77f Updated. -6bff999 Remove logging of eStrId. -65c9ebc Updated slightly, let's see if this helps. -9c4b80c Added sendquote. -b01ca98 Change to a sendMsg to stave off a possible loop. -06a8f68 Forgot an import. -ab51ed5 Added a 437 handler. -6d5050e Okay, total exorcism of the stupidity. -ebaecbf Okay, previous fix was super-dumb so for now I'm making it just not allow pipes in aliases at all, though we may decide to change that later. -98d03ad Initial checkin; possibly useful plugin for developers. -0972466 Fixed a typo in the Relay.join docstring. -c931710 pipeSyntax is now in supybot.reply AND it's channel-specific .. fixed addAlias to reflect that -8ab613d Remove bracketSyntax, make brackets channel-specific. -6d10929 Stop bolding exception. -81d1d56 Handle variable prefixChars correct whenNotCommand. -25ec8f7 One more little tweak. Five hexadecimal digits isn't too hard to 'get'. -fd5463a Changed eIds/eStrIds. -9100151 Added a nice little exception id system based on the idea in Mongoose <http://themongoose.sf.net/> for easier tracking of bugz0rs. -faa5a8c Removed old and busted; added new hotness. -5603c62 Maintainability updates. -f099a53 Moved the gc.collect until the end. -0c51ead Minor stylistic update (I think). -738546b Updateed to have a bit more personality and infinity percent more configuration variables. -2f2b7bd Changed supybot.defaultCapabilities to a space-separated list, made prefixChars channel-specific, and a few other quick changes. -741fc1d Oops, didn't anchor the no. -8dccee9 Unclaiming Note (sorry, ink), claiming Todo, fixing the other author strings. -e59ae37 Commented out some print statements, made the reply not prefix the name. -e3643e0 Complete rewrite. -b4f977e Fixed the wacky addressed problems. -a764359 Author strings, yay. -583f08f Ignore no user error when trying to set last location -145024a Updated -86451cc Added Sourceforge.fight -336fabe Fix bug #945522 -3672f72 Returning after irc.error is good -2ebabe1 Hah! -d82c694 Reimplemented set to be more general. -6b3ed89 Minor updates. -ea90ba3 Added ignores. -6e6d619 Added a setValue option to setUserValue. -ae54251 Our first use of the userdata registry! -e3b690f Added userdata registry. -ab1b7d3 Initial checkin. -d43cb14 Fixed bugz0r with regexp. -5d10dc2 Oops, syntax error. -21b1acd Oops, forgot to update these for the protocols change. -3eedd04 Initial checkin. -4aedfc0 Initial checkin. -4fdc49b Forgot one more newline. -0c5aaaa Fix for toXml. -eaf40ce Added __author__ string. -c890018 Added reason to kban. -cf54ef7 Added reply and tweaked success. -f9442d9 Let owners tweak users to their utter enjoyment. -95ef531 Let's change the default for supybot.databases.user.hashed. -418e143 Told people who see garbage to file a bug. -b21b3af Genuflect before the master of anality (and rejoice that bug #944861 has been fixed). -550f6cd All hail the king of anality. -d9a580a Updated tell not to tell to channels. -dc1bc4b Updated a ton of configuration variables. -65ad15d Fixed bugs in zipinfo and netcraft -b5ad1be Fix for G-LiTe's bug. -3455bcb Updated. -1638a1c Fixed bug #941579. -2c2e21e Fixed bug #941101. -8274d5d Fixed strictRfc appropriately. -ef5e7c8 Fixed a bug that I thought was already fixed. -4a232f2 Fixed bug #941013. -20ac099 Add Http.zipinfo -7f87c1e Fixed some bugz0rs. -d59da5a New Infobot stuff... should actually work a bit, but still not finished. -7d35657 Mark the files that I'm "claiming" -e8470b4 supybot.plugins.Plugin.public. -349245a Fix a (probably) long-standing bug with Debian.file and pythonZgrep. Update Debian.version so that it uses the user's 'package' name as a subword for which to search. This better reflects the original behavior of Debian.version. Also added --exact option to Debian.version in case people don't want to use the subword search. -adad9c1 Updated. -cd30393 Added an author command. -daaf146 utils.commaAndify has new optional comma argument -481dd51 Add comma argument to commaAndify -a0e7bd2 Slight cleanup. -b952411 Fix for bug committed last night. -b7fb78a Slight optimization, finally figured out how to automatically intern all IrcStrings. -41a1c9f lock, unlock, restore. -4db5d0e Let's not synchronize topics unless we're actually relaying the channel, k? -fb46330 Allowed for strings in ircmsgs.mode. -50226b4 Added a log message when not answering due to supybot.reply.whenNotCommand. -623d719 Fixed bug #942506. -53ed45f Fix for uncaught KeyError. -27cd893 Make sure we don't take revenge on ourselves. -c63826d Better traceback handling. -bd1dedb Added toXml. -fbe9460 Oops, didn't think I'd need any changes here. -e2de278 Allow the empty string for supybot.brackets, so users can turn off command nesting. -7bee883 Updated. -2c1437c Initial checkin for Anonymous. -e50f3cc Added Utilities.last. -dfe1743 OoopsEXCLAIM -d2a8078 Should fix both RSS bugs Vee2d2 reported. -b5ac09b Oops, forgot to update these for the reviter=>reversed change. -81aff97 Apparently reply.whenNotCommand is False when we're running the tests -173af65 Update RSS.info to accept an rss feed name as well as a url -28fe96c Allow irc.error() to be called with no arguments and act as if ArgumentError was raised. -5915154 Let's ignore HUP when daemonized. -ea4259a Updated version number. -f701080 Made 'alias foo bar' work as expected. -c131313 Added a monologue command. -7b16100 Fix for bug #938377. -16b65f5 detailedErrors should be True. -ac67bb0 Added more daemonization code. -494352b Tyop. -d3d43f8 Various sorted updates (pun intended, punks :)) -ed8df0a Updated sorted for 2.4 compatibility. -85807dd Fix for slashdot bug, I think. -9a90727 Changed reviter to reversed. -96838d0 Removed catch, moved curry to utils.py -69c7c76 Added another handler for daemonized...we're getting pretty close, we just need to actually daemonize :) -eee1f7c Added a <number of headlines> argument to feed commands. -850fdf2 Let's remember to remove the pidFile. -ca9f696 Weed out the last of the floating point COUNT bugs -42f279c Updated. -e6792f2 Updated. -313624c Improved error message for the 'preserve the configuration' load attempt. -6ef38bd Added pidFile support and a signal handler for SIGTERM (the default for kill). -e63dbb0 I really should test these things before I commit. -54cdfdb Let's make sure we wait long enough to connect. -48f2de6 If a project doesn't have any bugs/rfes/trackers, we should just say so instead of raising an exception and making it look like there was a problem. -8955f43 Added another translation regexp to fix bug #936790 -201fb0a Usability enhancement: Added a note in the callbacks.Privmsg docstring which points people to getting the config values of a plugin. -086a2fc Refactored LogLevel crap. -437afe7 Updated with a little infrastructure for allowing daemonization. -4e5f79e Updated. -e3b1eb1 Fixed bug in test. -85d66a4 Updated. -8eb2022 Changed an exception raised. -119619d Updated to fix a bug in Config.help and a bug in the test for Config.list. -9be3ea0 Updated test because of CENSORSHIP. -7fb2edd Slight improvement. -7850da7 A little logging, etc. -069d48b Added announce command. -e7f6aa8 FinallyEXCLAIM -2a62e3c supybot.plugins.Babelfish.disabledLanguages -> supybot.plugins.Babelfish.languages -136ec78 New implementation to the 'prevent myself from relaying my own relay messages' code. -a4f2336 Moved the release checklist to sandbox, no need to distribute it. -b32f98f Oops, forgot some stupid spaces. -cf5b75f Minor stylistic update. -c955a32 Changed the default of detailedError, less important now that we have LogToIrc. -f68ce97 Fixed globbing in User.list. -747b8f4 Fixed colorstrip => stripcolor bug in test. -0487686 Added a proper random.choice implementation that works with non-sequence iterables. -7ef716f Added the network name to the logfile for channels by default. -74f2b75 Small changes. jamessan, look at this. -e6468e5 Updated wizard and a tiny docstring update. (ooooooooooh :p) -e8dcca2 Against my better judgment, I'm adding a command-line option to allow dumb people to run their bots as root. -4c7985f Against my better judgment, I'm adding a command-line option to allow dumb people to run their bots as root. -2d2340b Fixed 001 for misconfigured servers. -e194e89 Check that an action doesn't continue past the first reply. -f150db5 Initial checkin of DBM Markov. -69b255b Commented. -4a5380b Fixed LogToIrc overriding default log level. -4489974 Added --capability to user list. -6a7981a A little refactoring and make sure Sourceforge.tracker reports the URL since bug/rfe used to -68766a5 *Someone* forgot to remove the debug logging. -e29c4eb kmj is right. Writing in third person is balls. :) -25281d7 Workaround for Markov wonkiness. -4923fc4 Oops, wrong commit. -fdc5612 Readability. -d8dad26 Updated. -a4b5456 Uncommented something I didn't understand. Good thing I saw this before the release :) -392108a Blech, some commented-out code until after the release. -0284ec8 Added supybot.plugins.LogToIrc.notice, for sending logs to nicks via NOTICE instead of PRIVMSG. -bf7a893 No need to ghost; let's try switching to the nick and only ghost if we get a 433. -16c4150 Mega r0x0r update. -96e8f32 Added a replySuccess if the user making the request isn't in the channels he's requesting the bot part. -12f9d6e Let's make the second prompt configurable too. -b888fa4 Updated version. -99adf85 Uh, someone forgot to make the remainder of the changes necessary for the unColor -> stripColor conversion... -b9ab839 BadWords will now filter words that have been formatted -e87c31a ircutils.strip{Bold,Reverse,Underline,Formatting} -38fee5b Oops, forgot a canonicalName. -86a217c Added. -227738f Bugfix for Shame. -7556219 Updated. -08fc07b Yay! Finally able to consolidate Sourceforge.{rfe,bug} into Sourceforge.tracker. Less code, more functionality. What could be better? -c428e89 Improved Google.spell message. -e21acb5 Updated. -e3da04e Forgottten period. -589cdd0 Added supybot.log.individualPluginLogfiles. -bb850f2 Added some extra logging. -866e4eb Added the ability to have multiple targets as well as do some capability-checking on the targets. -1a40c6f Whoa. Long time no commit. Anyway, we make shelf dispatch to Shelf appropriately. -6504dfc Ooh, a better implementation. I rock. -1cb8cd0 Added RFE #900293. -b15b85e Changed the name from LogToChannel to LogToIrc and made it capable of message nicks and not just channels. -a4bf228 Updated help for echo. -7fa9f47 Updated timestampFormat to handle the empty string. -7bf8ba2 supybot.plugins.Weather.convert -403a561 Add supybot.plugins.Weather.convert, which determines weather or not whether will convert temperature to the configured unit. -5d8f015 Fixed bug #934240. -b829916 Updated the help messages for SyntaxErrors. -aea2f42 Updated a docstring and made sure to lower all the channel logfile names. -e127a95 Updated LogLevel. -132adef Updated. -e32b66d Fixed a boo-boo in the help string for fundb.add -72c0eb5 Added success. -d5ee023 Updated some design of the Values. -0027117 Fix some coloring/formatting bugs we had -e877874 Forgotten colon. -2e2e90b Reverted to 1.25. -cb97f75 Added the ability to auto-{op,voice,halfop}. -7aa3505 Commented a possible optimization. -7f6c401 Comment some of my intentions. -0758518 Add a heapify because our modifications don't guarantee that the heap property is preserved. -bea41b3 Fixed asyncore hogging the CPU on disconnect. Although this really looks like a bug in asyncore to me. o_O -03294c8 Same fix for asyncoreDrivers and a small cleanup. -ff3c996 - Prevent a duplicate INFO log message. - Forgot a return there, which would cause it to send messages on a disconnected driver. -1feffe9 That shouldn't be there. -edc6ea8 Fixed the socketDrivers problem (THANKS G-LITE{EXCLAIMEXCLAIMEXCLAIM}) -1541f05 Seperated logging to channels to it's own plugin. (...and a couple of smaller changes to log itself) -9c26113 Added a test for notice and private combined. -e65a7ec Made it depend on sqlite. -6584790 Updated User.setpassword not to require the old password to be correct if called by an owner for another user. -e2f6cd1 Added a build-depends on python-dev, which is required for distutils. -d28d272 Improved error message for bad hostmasks in addhostmask. -e89827f Added support for logging to a channel. -63758a1 Updated version. -ac80e34 Updated. -f578485 Fixed a NameError exception -1f0e646 Fixed bugs in these tests. -ec0dd27 All in the name of case insensitivity. -0194abf I may finally have squished the most obvious bugs. -09f54f0 Updated. -f80cea1 Updated help text for notice. -44ab483 Slight update. -f8b83f6 Slight optimization, not that it matters, but it makes the code easier to read, too. -4354a79 This should be guarded by the network condition. -ee5afd1 Fixed some thingy. -8a979b3 Updated. -34ca553 Man, I really didn't get enough sleep last night. Let's try this. -f77f48d Added some lockingEXCLAIM w00rEXCLAIM LocksEXCLAIM -c198f79 Filter.colorstrip -b2153c8 unColor is now working. Added a colorstrip outfilter to Filter to close RFE #863599 -7f6040a Refactored callbacks.{error,reply} and its friends; added supybot.reply.errorWithNotice. -47d7f5e Correctly get the disabledLanguages value (it's a ChannelValue, not GlobalValue) and update the tests to match the new failure string. -9d3c1e6 commaAndify(..., And='or') -c75e8b5 Updated version numbers. -60bdc8b Picked up a few more configuration variables. -3538dee Ah, a better way to do default normalization. -9eee85d I really should test these things before committing. -22fb1b4 Made the success message from unidentify more useful. -77f2c84 Made drivers.module use OnlySomeStrings. -4258435 Some users might unidentify without being identified. -8587c3c Added supybot.plugins.Babelfish.disabledLanguages to disable certain languages from being translated/spoken -106f957 Fixed string formatting bug -46a3f07 Made sure we can normalize for OnlySomeStrings. -c97d390 Fixed the non-quitting bug, although it's not been tested with twistedDrivers itself. It works with the other two. -9cfed8f Correctly handle the case where sys.stdout is closed. -5f53515 Fixed bug that cause RSS.announce not to announce in more than one channel. -93f64b6 Added supybot.reply.maximumMores. -ce75589 Oops, I meant registry. -6cddfb5 Added supybot.reply.truncate, to turn off the normal moring of things. -77e6aa7 Oops, syntax error. -b74cbfa Errant dot, begone why the FSCK can't I put an exclamation point in a stupid commit message? Bash freaking sucks. zsh handles this just fine. I can't even escape the stupid markEXCLAIMEXCLAIMEXCLAIM I CAN'T EVEN PUT STUPID PARENTHESES IN THESE COMMITS MESSAGES DIE GNU DIE DIE DIE DIE DIE DIE STUPID DOUBLE QUOTATION PARSING BITCHES -8979bc8 takeRevengeOnOps. -4697f61 Added supybot.plugins.Channel.alwaysRejoin. -75ef083 Fixed an error message slightly. -4c1d2c6 Fixed bug #927010. -36f182d Handled bug #926443. -f8f1b45 Slight readability change. -a4b4c21 Added supybot.databases.users.hash. -ee6ec32 Added Debian.bug -14ec774 *finally* got the Debian.incoming globbing fixed. fnmatch.fnmatch is wonky -7e7343d It's nice to have sgmllib imported when you're trying to catch it's exceptions -72462d8 Looks like I didn't finish a thought. -3e1521f Added slightly better handling of ImportError in do001. -d4c7db7 Began Relay.reconnect and changed names to nicks. -1d27db4 Fixed forgotten import. -e64ce62 Updated slightly. -1654a35 Added trueCycle in preparation for the new registry stuff for multiple servers per network. -cc9522e Slight cleanup. -71ea32c Added supybot.brackets for specifying what valid bracket characters are. -d9c535f Slight cleanups. -f166ce8 Removed ConfigIrcProxy, I forgot we didn't use it anymore. -346d0a5 your colon misses you, jemfinch -7d3c9ff Fix for fix for scheduler.list showing ran (but not removed) events. -c96065a Fix for scheduler.list showing ran (but not removed) events. -42301c1 Add a test for the recent Http.stockquote bug and remove testing of Http.weather (I thought I had already committed this) -ba31427 Tweaked docstring for flush and started stuff for online notification of exceptions. -f5365a6 Added channel logfile rotation. -07d10bb Fixed bug #923562. -97dde42 Switch to hotshot for profiling -48d6dc5 Add testing of units configuration -f130db3 Better error checking with Http.stockquote and remove Http.weather's tests. -a1e48a8 Make sure the Wind Chill and Heat Index temps are configurable in Weather.ham -73a9ffc Removed useless PluginDocumentation. -532db9c Added logging of version of plugin in plugin logs. -9dc2618 Fixed to use supybot.databases.users.timeoutIdentification correctly. -ae97d03 Added removeChannel to the SpaceSeparatedListOfChannels. -a898bda Slight rewording of log message. -4837707 Slight refactoring. -1545778 Change words from a channel value to a global value. -5765a34 Updated. -c697af6 Focused an else and added an assert. -a1e4b79 Handle actions correctly in last. -b7a70d2 Slight textual fix. -ea8c7dd Added timestamp configuration variable. -0575635 Removed leading spaces if the timestamp is set to nothing. -5b03c6d Just some extra logging in case a flusher fails. -adc046a Added flushImmediately and [nolog] prefix. -59e5a6b Fix for bug that rejects extraneous spaces in Boolean registry values. -22d484e YAPMR -90718f0 Hopefully this will keep us from having any new plugins with no __revision__ variable. -6a211ad YAPMR -3ae730a Fix the passing of quoted text on to Google searches ... again. This time it's correct. ;) -823c91f Updated Wordstats plugin to allow removal of tracked words. -f14f3ef I like webutils -4e7d862 Removing the "see foo" referencing code as it is error-prone (it's really tough to accurately track self-referencing leading to recursion and circular references leading to infinite looping) and I don't think it's all that useful. Fixing it would make the already-contorted code of this plugin even worse! -a79bc26 Updated Seen.seen to accept no arguments. -672b2e9 Revert the non-PRIVMSG watching until we have a proper mixin to be able to track part, join, *and* quit. -5718424 Adding DocBook meta-documentation, also redefined some of the entity classes in supybot.dtd to make them more "correct" -1f4cc2a yn returns a boolean already -eadfd71 Fixed some exception handling madealios. -601ea79 Some small cleanups -b6f2cef Added a revision string. -e31aa25 Don't respond with the units so as to ease nesting convert and calc -212da17 What's a leter? maybe I was thinking of lederhosen or something... -d3de7cb Remove replySuccess. -b9483ae Added itemgetter and attrgetter to operator. -e04489e Add matching of $randdate or $randomdate -4b32a20 Add Seen trackers for PART, JOIN, QUIT (and fix ircmsgs.prettyPrint for QUIT) -4db8096 Don't notice news to the channel with supybot.reply.withPrivateNotice on. -4b1e5b5 Don't display errors in snarfers,, mo. -700fe71 Minor update to cpu output, mithro said it was confusing. -48f40f0 Oopth, forgot to include this with the Big Fat Honkin Docbook Commit -d1bb8ce Bugfix with 433 handling. -151b2f8 The "DocBook is fun" commit. We now have a whole new DTD and stylesheets to use, as well as all the docs being in SGML now. -8ea62d2 I should get some kind of anality award. -aabd318 Let's make Heralds use standardSubstitute too. -fc71c53 Made echo use standardSubstitute. -5606fe6 weatherCommand -> command -8590bc2 weatherCommand -> command -31c8af3 Yay! Now Network.whois can retrieve information for any domain. -d2e1d80 Use plugins.standardSubstitute in supybot.replies. -0773359 Made urlSnarfer respect lobotomies. -90ace94 Minor stylistic updates. -de512b2 Guarded asserts with strictRfc. -8b23e0f Add a couple of convenience units. -0e574d7 Forgot something -e5ce3c8 A few more fixes/cleanups -ad1a23f Removed doindent and trap KeyboardInterrupt in supybot. -52230d1 Somewhat fixed. -295eafc Added weather command. -a8554a0 Check that we're not root before running. Not for security issues, but just because it causes so many problems with user databases and whatnot. -af442c8 I guess I should've used setValue instead of set for LicenseKey -6f24ebe Fixed some things with WeatherUnit and temperature parsing in Weather.cnn -d3b8c25 Added Weather.cnn, which retrieves weather from weather.cnn.com. Renamed Weather.weather to Weather.ham in preparation for jemfinch adding the ability to specify which service to use when Weather.weather is called. Added ability to specify default temperature units in which to report the temperature. -9f766c1 Added itertools.groupby. -d0547ba Added logging of invite. -1300548 We should also be catching timeouts on the read. -a760367 -.-- .- -.-- --..-- -. --- .-- -- --- .-. ... . -..-. ..- -. -- --- .-. ... . ... ..- .--. .--. --- .-. - ... .--. ..- -. -.-. - ..- .- - .. --- -. .-.-.- -7859f16 Fixed a bugz0r. -168b438 Fixed bug with aliases that fail to load. -65bec68 Fixed bug with aliases that fail to load. -a59beb0 Updated version. -35f4e01 Updated. -1624b1a Symmetry is beautiful. -39bbf68 Fixed some typos. -58decb3 Fixed bug #900879. -57ec45e Added some little bit of extra logging. -dda4d61 Added the stuff needed for channel karma. -d9a4a6d forgetting[something] KeyError: something -5deb991 textwidth=70 reformatting along with some documentation fixes that I noticed -940a934 Clarified the prefixChars help string -b8ff81d Shored up the finale a bit -61dbf12 Remove a subclass from test_Amazon. Only quote words in Amazon results if they are not being bolded. -9441f14 meta-changelog this is! -8b20ad7 Updated. -c563559 googleSnarfer shouldn't prefixName, and shouldn't come back with failuers. -fc93bb4 Minor doc fixes. -837ab99 Changed copyright date in template. -52da421 Removed addendum about registry; docs/CONFIGURATION handles that quite well. -9e51729 New DocBook file for the capabilities doc, updated the Makefile correspondingly, also fixed a few minor things in the capabilities doc itself. -bfea2fc Make Topic.add and Topic.change agree on how strict they are with users adding and changing topic items (i.e., they now both fallback on simply the nick whenever a registered username is unavailable) -0b48743 Added tests to catch the pipeSyntax bug and to test G-Lite's new bracketSyntax enabling/disabling. -708ee91 Actually, that is rather unnecessary. Sorry for messing up so bad today. :/ -52e7551 Whoops, messed that up good. -f08f875 Fixed a nasty bug where pipe syntax would still work if it's disabled but the pipe character is spaced out, as in: @foo | bar Also added supybot.bracketSyntax; defaults to True, don't worry. ;) -ffe0c5c There's only one Config plugin that I know of -2747baf Fixed bug in IrcObjectProxy{Regexp} where actions weren't targetted correctly based on the to/private arguments. -70ce38a Added another FAQ. -a7d83ef Fixed bugz0r in the way stuff is printed. -a97c961 Documentation update. -faa27d5 Fix for bug #899271, as well as some other problems with the test suite and ChannelPluginTestCase. -dcf7d16 Fixed typo: -3128255 MoobotFactoids.randomfactoid must've felt so lonely not having anyone to test that he was ok. Add that to him having an unwanted msg lying around, and he must've been quite sad. -1ef5461 Fixed doMode only to do something when there are actual arguments. -c070e66 Fixed revision (again). -99926fd Added mode, and made sure to send one after joining a channel. -e609d5d Fixed the problem of having multiple upkeeps scheduled. -3851d1d Added amazon snarfer and price information. -7192e97 Added url to Ebay.auction as per RFE #896118 -f1e34cc Added invite command with test, fixed docstrings. -976efd8 Added skullY's patches for Network.whois for .orgs. -6be8850 Oops, we use commas now. -a35e185 Just changed a var name to be more clear in _lock for MF, and finally fixed the MF tests so that they all pass (without removing test functionality)! -f3c481d Removed some catching of exceptions that can never happen due to MetaFirewall. -2dab520 Fixed the __str__ of some Value subclasses. -c0dad91 Updated. -32aa12b Finally fixed test0rz. -bef64f2 Should fix bugz0r with OptionList.tokenize. -465e12e Mess up in rewrite. -37247ad Rewrite of OptionListTestCase to actually test things well. -98cc71d Fixed quoting issues (permanently, I hope) in the tests. -952676b Fixed bug found by skullY. -497db73 Updated. -62f3242 I thought this already sorted by id... -ef550c2 Fixed bug lkn4it reported -- no doJoin. -c809cc9 Tried to fix0r the bugz0r that wishy and I are having with failures to reconnect. -f14341e Updated for the new release. -af9f1ca The start of my stuff on the Config plugin, was written before it stabilized so it may not be correct at this time, but it's better than nothing! -223ac90 Added logging of ERRORs from server. -de72ad4 Made a potential AssertionError not get raised. -6d117b2 Fixed bug #898028. -ced437b Change the default upkeepInterval to 1h instead of 5m. -bd7c758 Slightly fixed a formatting issue. -c5aa3f0 The documentation was wrong, not the code. -2fb2a6e Made us not respond in invalidCommand if the factoid isn't found. -f752ad5 Commented out some useless debug logs. -4f84303 Made an extra note about the registry. -e86fdd4 WordStats didn't have a proper __revision__. -48d6c98 Made a SupyTestCase base class to handle COOL STUFF\! -5c660fd Fixed's Strike's bug in Misc.revision. IT'S STRIKE'S BUG, MIND YOU\! IT ALWAYS HAS BEEN STRIKE'S BUG\!\! DON\'T EVER LET HIM TELL YOU OTHERWISE\! -bdbcd95 Put a note in the help for config about leaving off the supybot.. -3566d94 Fixed bugz0r reported by gnd and lkn4it. -20b3b6a Hopefully fixed the persistence problem. -bfd5066 Added some more better handling for channel modes. -67ab9f8 Fix for 'revision Math' bug. -ff370e2 Who knows why I wrote that without a for loop before? -487fb3c Made separateModes int the argument if it can. -3bdef0f Change the behavior to match the naming and help. -23393ed Set licensekey registry values to private values. -2f470b3 Typo\! -d94b3f7 Use expandtabs instead of expanding by hand. -4a086e6 Geezle peats, I thought I fixed this already\! -68eb84c Better error handling on open. -3776788 Fixed bad configure juju. -fb59b25 Added the ability for configuration variables to be private so they can't have their values gotten by people who can't change them. -38cf55e Made the initial log message better. -4786631 Made title snarfer not snarf if the URL is in an addressed message. -af0a498 Made Factoids infinitely cooler. WE REFUSE TO BE A REDHEADED STEPCHILD! -0dcaf94 Don't change our nick on 433 if we're using our default nick. -6f8fafb Added error handling for nick changes. -6c88a6a Better error message in the cases where there are no commands. -8569d70 Fixed over-specifying test. -175c73d You gotta have an encoding, dude. -4c681b2 Fixed test, made sure that a failure in adding lookups doesn't keep the plugin from isntantiating. -f8f9773 Store the q on the function itself in case we want to debug with it later. -60bf8eb Fixed testPlugin. -1d53c99 Fixed test. -87f4d36 Fixed tests. -c68a801 Fixed failing tests. -1a62fed Woohoo, fixed the bug with register in tests! -74300bb Man, I must've been really sleepy when I 'fixed' that code. -e2795d3 Fixed the failing testAddressedReplyWhenNotAddressed test. -2806269 Changed slightly the phrasing of supybot.reply.noUser. -c916152 Clear the _mores when reset. -f2fc683 Added Herald.get. -681c091 Instead of asserting non-unicodeness, let's just encode it. -d3dcc62 Offer a reset method. -b5f48db Let's try this out. -2d79a47 Fixed problem with integer-looking ids in repeat. -af60780 Forgot an enumerate, man, that sucked. -3902e9f Sort plugin results. -e45ad03 Robustitude\! -7745807 Improved the help for supybot.directories.plugins. -cf4b0da Fix possible raised RuntimeError. -4396d65 Added docstrings for the class. Eventually help should show these instead of the dispatcher helps. -17d6c1b Made sure to handle the case where the driver object has no irc or its irc is None (like a Scheduler driver or something). -c65dfd7 Made sure the failure of one flusher doesn't affect them all. -31bb1ab Remove stupid alias crack...er...crap from Sourceforge. -66f12fa commaAndify list -b668da9 Removed stupid alias crap\! -09eae1b Make sure to catch amazon.NoLicenseKey and provide a nice "hold-my-hand" help message. -f364bb9 Added world.starting to know that we shouldn't flush. -69671d5 Handle EINPROGRESS more appropriately (i.e., actually try to work :)) -157106f Changed from a warning to a debug log for unexpected NickServ notices. -dda081b Changed error message in the case of no license key. -1f9d794 Fix the Debian.version regexps and fully propagate the Zegrep -> Zgrep renaming that occured a few days ago. -bd4451c Made RSS.announce require #channel,op. -4a706a1 Updated. -f5d3b4b Fixed removecapability bug. -5d3a343 Fixed G-LiTe's bug with -l. -b96dab0 Made to remove the former installation to stop any confusion from occurring. -14ab800 Fixed bug #894619. -1264f21 Fixed supybot.channels to use an IrcSet instead of a list. -3b899fd Moved enablePipeSyntax to advanced and cleaned up some style stuff (the rest will wait until after the release is out). -cf1c3a8 Made Sen case-insensitive (again...) -139e1bb Stylistic updates. -78bf842 Slightly more pervasive logging. -8df8c27 Safety catch for inconsistent wordstats/users databases. -d077e9a Stopped trying to mess with stuff that we don't know how to handle; I'd rather have uglier log messages and a bot that I can figure out than otherwise. -c04d363 strictRfc added, off by default. -0c605c2 Fixed invite, thanks lkn4it. -75246f8 Proper ordering of options in Channel.kban's help -5aef3f2 Removed all instances of repr()'ing (or "%r" % ...'ing) factoid values or keys, as that mucks about with unicode input/output which is desirable to keep. -b15f121 Fix, cleanup... I'll let you decide. ;) -d2d5f88 Trying something out for fixing the Jawoota unicode bug. -ac74ef9 Fix for bug #893264; we can now discover what channels require registration and only go after we've identified. -d9f1c47 Fix for bug #893264; we can now discover what channels require registration and only go after we've identified. -71d0b03 Made Relay *actually* save the channels in the registry. -a1cb1ae Added ghost command, caught a few more errors in identify. -dd66098 Made Admin.part properly remove the channel from the list of channels to join. -abf56c9 added new test for longer numbers -5eac427 Changed float division to integer division -03ebdc3 Make starting the bot a little safer; we won't have to worry about trashing our registry file until around 5 minutes after the bot has started. -d6f79c4 Made a showDefault configuration option for deciding whether or not to write the default to the registry, and made registerPlugin set it to False (who needs to know what the default is for that stuff?) -20285ae Fixed bugz0rs in RSS's announcements. -0c2de45 Threaded RSS's announcements and made reloading/flushing work properly. -0098784 Small stylistic update (now it's a little more readable). -6ebc226 Reject invalid join commands outright. -ec8d1be 'nother buggeh that prevent my previous commit from working. :)- -85fc5f2 Allow channel keys in registry. -f186dd0 Small buggeh. -dcd87d9 Small grammar fix. -bc10f87 Fixed bug #893608. -53f9c0a Made an empty stings cancel out of the plugin selection. -b63fc24 Updated descriptions of how to re-enable commands. -5969fbf Make op/halfop/voice like de{op,halfop,voice}. -e3e896f Added proper detection of Alias plugin. Added addition of search aliases in configure. -0308406 htmlToTexted the team. -e6f1b6e Added a TODO. -c60664f Fixed bugz0r #893239. -de30db8 Changed the assert to a log.info. -a6b0c7d Fixed a SyntaxError. -ef31ca7 Made so there are no stdout logs through the wizard. -340d1aa Fixed bug #893247. -86eb377 Handle a possible suck-100%-cpu bug if drivers._drivers contains only the schedule driver. -f2bb0c0 Update to work with registry changes and add 'deprecated' warnings. -08158ca Added a __revision__. -2a586bd Change project registry value to defaultProject. -abd4eed Don't put a period at the end of the Misc.plugin output! It's useful to be able to do "@list [plugin foo]"! -1cffed1 I should commit the test, too. -8623e98 Yay, now we can convert negative numbers between bases -915d467 Added a try/finally block. The snarfer test still needs one added. -ea2f4a5 Fixed urlSnarfer bugz0r. -da209e5 Made enable case-insensitive. -72adc73 some :tw=70 gq fun and fixed a grammar mistake wrt when you should edit the users file -a178492 Made the interval between upkeeps configurable. -c290465 Fixed lots of stuff. -5239339 Changed the timing log from info to debug. -b5c52a9 Make defaultPlugins get automatically read from the registry. -15ae4d5 Man, I don't know where that extra line came from, but it's bothering me in cvs diff. -5bc79e2 Updated slightly to try and give a purer environment to tests. -e0e53b5 Updated to use makeChannelCapability, which is more appropriate. -40a0ed9 Updated test to match implementation. -54750f1 Fixed ignorant tests in Admin. -ca4a8dc Moved some error handling to a different place. -0ba2815 Added help string for supa1337. -96eecfd Fixed most tests and made some stricter policy changes, as well handled the case of getUserId returning several hostmasks a little better. -6051299 Fixed tests for BadWords. -5f18d57 Slight stylistic updates. -578eb26 Updated for the csv conversion. -645d654 Updated to use plugins.ChannelUserDB. -04b2ecd Minor updates. -3ca4b1d Updating version numbers. -244a0b9 Updated, mostly (if not completely) finished. -e1f3393 Updated. -36c6aa2 Useless comment removed. -6b6efcd Removed some useless debugging madealios. -34f4e34 Updated to a flatfile database. -eaade69 Updated. -679b4de Gotta give the channel and id in deserialize. -d451233 Oops, forgot this was a set, not a list. -f2f2680 Added support for groups alone having help. -2092fe4 Fixed the output of Misc.plugin slightly. -07e6482 Added Owner.defaultplugin again, we needed a better interface to setting/removing default plugins. -7df4875 Don't make directories, foo! -5d5bffe Made channels to be stored in the registry, as well as slightly refactored do376. -c9655c6 Added announce command. -c43947c Oops, forgot this guy. -0ab8675 *Really* fixed supybot-adduser now. -6072094 Changed ChannelUserDatabase to ChannelUserDB. -18fcfd9 Converted Seen to use the ChannelUserDB. -097d4e9 Changed Herald to CSV. -57454c8 Grammar proper good is. -416a177 numbers -> integers -ab26fbd Added tests for new base command -4d29647 Modified base command to allow conversion between non-decimal bases -6a2f901 Fixed bugz0r. -2022839 Gave replies the **kwargs. -0982ee2 Fixed bugz0rs in the new version. -169a692 Fixed. -94c16a0 Made version look online to find the newest version. -f65c0a6 Updated. -832165e Added cache command. -1a22cd5 Added two configurables to Note, thus closing another RFE. -9108591 Added isCommand to the firewalled methods. -b2efbdc Added RFE #871658. -0525b9a Ooops, thought I tested it, but it turns I had forgotten to install. -a32a263 Added RFE #890130. -b51961b Added supybot.defaultSocketTimeout as a configurable. -a0d830c Added a test for supa1337. -1c1046cd The bot won't de itself anymore. -aa6e663 Added Babelfish.languages (which we should've had long ago) -ede140b Added the supa1337 filter for complete unreadability. -a7c2f24 Added some subjects. -a20f742 liquidx is cool. -47d8154 Added log.firewall and log.MetaFirewall, and converted several classes to use them. -4fec15f Fix the cause of several exceptions being raised on loading of plugins. -9011290 Make sure failed loads of plugins don't prevent those plugins from later being loaded. -61e46c5 Try to fix target and prefixing of name. -d282b85 At least fix the formatting problem. -ea2f71d Safety catch to prevent a possible exception at dying time. -0784ad7 Changed replyPossibleBug to a channel value. -1f31204 Fixed bug. -6c968f4 Updated. -50b0957 Oops, forgot to commit this awhile back. -303bba2 Minor little tweak. -cc68310 Turned stdout off entirely. -b6c7fca Forgotto import conf. -c455642 Oops, shouldn't still require sqlite. -3dc5dca Didn't register the plugin :) -aff2e6f Updated. Not finished, but Vee2d2 needs it. -6e06230 Added output to the list of functions imported from questions. -3af53ac Converted to zgrep from zegrep; I thought I did this before... -dce0378 Updated again. -92a7ae1 Updated not to depend on the old ircdb. -21ef041 Updated to make case insensitivity with preservation much easier (based on utils.InsensitivePreservingDict). -8eeb9e7 Updated error messages. -9def8a4 Hmm, didn't define keys. -19a86f3 Added a raiseError optional argument to getChannel. -6771c24 Added InsensitivePreservingDict and made IrcDict a subclass of it. -0d2724d Fixed Dunno.change and added a test to make sure it works -a027966 I'm dumb. -2dbd144 Use dh_python as suggested by jamessan. Also make architecture "all". -07a50e7 Fixed debian/control formatting -3b1e4df Updated. -f9188e4 Fix the stupid 'I refuse to quit, even in the face of insurmountable odds!' bug. -c7e6e63 Added some info about me since jemfinch decided to remove me from the ACKS files -82b0bff Properly disable the commands. Also, the configure prompts still need to be updated to reflect the correct way to re-enable these commands. -82a4d96 Oops, didn't have an __revision__. -5e3fae4 Robustified\! -a7c7cc2 Minor stylistic changes. -952aa0e Fix0red the groupz0rs. -a4aff25 Changed --enable-eval to --allow-eval to mesh with src/conf.py -d009358 Fixed possible uncaught exception bugz0r. -fcb5163 Updated. -3d186a1 Changed not to use onStart. -3e08f7b Updated to use the registry and remove onStart. -bb104ea Removed people that are in DEVS. -4673993 Added descriptions. -be31cac Made lookups persistent with the registry. -03c6efc Partial conversion to registry, need to get it on my desktop box to test. -285ac5e At least import the plugin module, so configuration is preserved. -0d61366 Changed to use the registry. -96568b3 Debianization of supybot -ee6107d Added an extra caveat to the supybot.flush help. -9f33b4c Oops, didn't give the appropriate namespace. -5d98b1a Converted ignores to a separate file, rather than a registry value. -3deab7b Added a defaultplugin for ignore to Admin. -43af36e Strike's a tard. -988bf3d Fixed defaultPlugins. -b8b014d Output the default value into the registry file. -a15b87c Convert channel capabilities, too! -1663642 Fixed a tiny bugz0r. -4c8f3d5 Made the registry dynamically reloadable as well as added a supybot.flush configuration variable. -1df9b64 Got it back workin, mo. -27b24e1 Reordred some more, changed the default of prefixChars, and fixed some older-written values. -e853325 Reordered some more. -62d2c13 Reordering stuff. -0db9d6f Restrict Alias from making Aliases that coincide with plugin names. -9bf4f35 Refactored registry to remove the Group/Value distinction. -18ce33a Shortened upkeep message slightly so it fits in a single line with the timestamp. -fe71094 It doesn't fix it, but it's cleaner. -717ee92 Catch exceptions in dying callbacks so all callbacks get a chance to die. -393a5b4 Cooler upkeep logging message. Again. -c0f3c7d Cooler upkeep logging message. -e9aac2e Made into a flatfile, w00t! -0768926 Initial checkin. -40e3c86 Forgot to re-add the user/channel databases to the flushers. -1232cc0 Fixed tinyz0r bug in _canonicalizeName. -3bd50b1 Fixed testing, w00t! -cb3f763 Oops, forgot to %. -4b10780 Eh, those things didn't need to be where they were. -5264cfb Updated. -8f68371 Updated to use a cooler config file. -07ba0d5 Added some useless little facts on exit. -b9e611f Allow an implicit supybot. -c0ea69e Made the exceptions raised give more useful messages. -84b0295 Fixed User.list. -51a4db1 Converted Alias to use the cool new preserver stuff. -6c4fd0d Oops! -e8e5e11 Changed command to badCommand. -b119f94 Converted to a new user/channel database format. -7b8b1a2 Improve supybot's handling of PRIVMSGs that start with 'supybot' -4e6fb0b Initial checkin. -0830e57 Fix the output of doctype, I don't care if we're different from mozbot. -92b2bd3 Made stdout stuff dynamically check the value of supybot.log.stdout. -651db47 No need for user 0 now; just change it to None. -ad4b794 Fixed bugz0r in handling of nested actioning replies in tell. -096bbdc Added --{from,to} and --sent options to Note.list -b943f61 Updated. -33cafb8 We want to set the log level, not minimuPriority (which doesn't exist anymore) -4f9e63f No, it really is #channel,capability now. -23c4b69 Whoops. :p -5957eaa Lots of wizard updates. Still have to get rid of the onStart and afterConnect stuff though. -03c4644 Fixed tests. -b410a79 So begins the slow whittling away at the "Condense old notes" RFE -7f2578a Updated to make the tests pass. -4a4aa6e Hopefully this Amazon.books test will be more stable than the last one. -ec32901 Fixed the test. -2b93f02 Fixed test and the names of some configuration variables. -f3fd7da Changed num to stats. -f124b72 Changed a ChannelPluginTestCase. -17b32e8 Added nicer error handling if the user does try Note.get. -02e566f Added a TODO. -8e1b968 Fixed all tests for this plugin. -55c392f Fixed tests. -781ff46 Moved some seen stuff out of ChannelStats. -941d4e1 Updated to put just the domain rather than the whole url in snarfer replies. -c101fd1 Made globalValues a group. -9e9246e Updated. -4ebbf7b Fixed all tests. -e51b41e Split Seen out from ChannelDB. -356e32c Removed the configurable test. -42d80b6 test-logS gosh darn it\! -4c94713 Removed a useless test. -009b3b4 Attempting to remove config stuff from tests. -67a97fd Added getDomain and some tests. -b592ef2 Fixed test failures in Bugzilla. -487692f Updated for the registry. -463163d Removed defaultPlugin test. -d2c6d66 Fixed failing test for roulette. -2c5e616 This episode was brought to you by the letter 't' as in 'test'. More tests are good. -2d21655 blootbot-compatibility (and cool feature desire) - moobot factoids that are like "see <factoid key>" now actually return the value of that factoid key -2beb507 Fixed all current failures in the no-plugins test cases. -59d563f Converted supybot.log.minimumPriority to supybot.log.level. -da99f93 Added search command. -ef794ae Removed some debugging logs -1e76f3a Added vee2d2's Debian.new command -731c9f0 More bugz0rs fixed. -8aa74de Converted to work. -5b2d89b Fixed that one bug submitted by jamessan about plugin.command capabilities being unhandled. -3f4a429 Must've accidentally removed addressedRegexps during the conversion to registry. -6049e4c Added vee2d2's roulette w/out ops idea. -953e79e Changed a log entry. -6ecd46b Added modes to the Channel. -b01886f Make a backup of the registry file on startup. -3590d2a Slight stylistic updates. -88ba40b Added cycleToGetOps configuration variable. -43d0619 We don't use '.' as the channel capability separator anymore. -a4c9d3f Formatting. -1f934bf Removed line that wasn't absolutely necessary and seemed to be causing trouble. -ec28843 Finished fixing the switch to registry. -6362a02 Let's play it safe. -c9787b2 Fixed a few bugs in the conversion from configurable to registry. -f0097c2 Remove get/set, changed it to just config. -3de0f0e Updated, had bugs from the registry conversion. -3b17c81 Changing the name from ChannelDB to ChannelStats. -e399b22 Converted Relay to use the registry. -b4d327c Removed unnecessary __init__ and die methods -fac4c56 Removed any unnecessary configure methods (ones that only called conf.registerPlugin) and changed all other configure methods to accept the advanced argument instead of onStart. -17174d1 Fixed the configure() definition. Fixed Debian.file so that something like "@debian file ntpq" actually works without the user needing meta-characters. -9423cbc Adduser works again. :) (and a small wizard bugfix) -e0f1538 Bad indent. -7ebfa3f Since when is there a reload command in Misc? -0c53779 Fixed calc docstring that I inadvertently messed up -1ad8ba4 New tests for new convert command -bc11f76 Updated configure() to only take one argument (onStart) and switched all of the onStart.append('load pluginName') calls to conf.registerPlugin('pluginName', True) -7bdf821 Fixed a bug -4e5957d These don't work yet, but I need to be able to see my other diff. -f57ceba Make sure network is always present, even if unset. -c61e0c2 Converted to use the registry. -ca06e32 Removed! Bwahahaha! LONG LIVE THE REGISTRYcvs remove src/configurable.pycvs remove src/configurable.py -9cf39df Changed the help of learn to match the registry. -43c00a3 Added a network attribute to the Irc object. -755f2c3 *** empty log message *** -7f107ff Made maxSize a config variable, supybot.httpPeekSize. -b2f5fb6 Made hierarchical. -fda68a2 Updated to add a few more configuration variables. -1f60dc3 converted QuoteGrabs to use registry -0e3a4c3 Changed the capabilities separator to ';' since we use ',' in the actual capabilities. -3e2f3b7 Added tests to reflect the changes to pluralize() and depluralize() -214b796 Initial checkin. These don't work, but I figured I'd add them anyway. -a6e8685 Added blank line. I don't remember why, but I'm tired of looking at it in CVS diff, and I'm sure I added it for a reason. -aabb617 Updated the comment in the templated configure. -78d4c39 Forgot not to import configurable. -10afe5b Removed bestuptime. -e7c019e Updated to the new registry dealio. -3f310ef Added a Regexp type. -64f4013 Updated to use the registry. -a53819a Fixed some bugs left over from registry conversion. -0509705 Updated to use the registry. -0627cb9 Updated to use the registry. -ca09420 Updated to use the registry. -dbcbdb7 Huh? -1f76272 Removed a URL. -bd066d6 Made do001 more robust against failures loading. -3bac853 Some slight updates. -363fa7e Changed to notice, stuck an extra empty line in. -385d803 Fixed multiple logging of repr'ed msg. -048db92 Fixed no-help case in Config.help. -5b4b7f2 Oops, forgot a return. -46e6fda removed stupid print statements -69f4041 *** empty log message *** -778f382 Filled out the module docstring. -215a2b3 Changed to registry. -8100958 Forgot to set the default in GroupWithValue. -578fca2 Deprecated the Friendly plugin. -a54e5a6 Added --groups to list; more tests. -8f4483b Stop using cgitb because it's stupid. -1d43b84 Initial checkin. -ecf9ed4 Typo -3624267 Oops, forgot to commit this. -847b53d Fixed some bugz0rs. -26355a6 Spelling/grammar fixes. -ac2b048 Fixed a capitalization bugz0r. -1130baa Updated a whole lot of documentation. -b9abf84 Removed killProxy, which was never used. -b8f497a Removed useless comment. -73a6601 Added optional 'to' handling to translate. -64b3683 Fixed capitalization bug in @seen. -b94a7a3 Made defaultplugin use the registry. -977d7a2 First functional commit; units.dat placed in file & read with StringIO. -f36113a New convert command uses convertcore.py, plus updated units command. Additionally, _floatToString now slightly more lax in checking "near enough" to zero, and uses same check for "near enough" to int. This was done so that convert [calc 2*pi] rads to degrees equals exactly 360. -78eafe3 Fixed the sqrt bug submitted by kmj. -f3b49e4 Added cyborg. -75ef763 Factored out _floatToString. -fbf417a Improved the default supybot.replies.noUser. -4308350 Updated slightly. -7202aa6 Some updates. -c4bb732 Moved StringWithSpaceOnRight to registry.py. -e189ec2 Added some handling for 'try' in the pluralization stuff. -c62702c Foo! -89dadb7 removed the configurables I had forgotten to remove -d5bb45e Modified it to work with the new config scheme -3327eae Updated, fixed a bug, started on dynamic reloading. -734fc71 Made list not show the full name of the registry entry. -f1ac644 Small update to normalize whitespace of prompts. -8f1d5bb Updated. -b6dac88 Added a mini-wizard for people who run without a registry file. -108bbd8 Factored out _floatToString for kmj. -aa426ed More, better workaround for the mx.DateTime suckiness. -46ec7d8 Oops, missed a "return" causing "seen --user idontexist" to double-reply. -bdafdfe Cleaned up a few logging messages. -5ac4a56 Oops, wrong variable name. -87c26da Fixed capitalization bug. -bb92d8e Converted to use the new registry dealio. -e9b8c40 You don't need global unless you're reassigning the global name :) -27639a9 Added registerGroup. -ac8bb2e Removed the reset command. We can nest default, if we want. -8cc8bba Made do001 handle already-loaded plugins (like, uh, right after reconnecting...) -fea97c9 Handled non-existent helps. -52bdcaf Converted RSS to the new registry dealio. -1714359 Added an extra assert to testString. -0cb2be6 Updated. -58332ad Added several new types for better error checking, converted supybot.channels to be space-separated, and made Admin.{join,nick} Do The Right Thing. -bd47403 Made registryValue work with dotted syntax. -b2b9f64 Reimplemented CommaSeparatedStringType in an extensible manner. -4b8df59 Made to annotate by default. -114f9b3 *** empty log message *** -03e3ad4 Added a little extra error catching in irclib.Irc.takeMsg. -19e9d86 Added an annotated option to registry.close and a fullNames option (to be used later) to getValues. -0e1b692 Workaround for sqlite stupidity. -2963fd3 Add some tests for Sf.todo* and make a little TODO for anyone that's interested/me to remember -c801aa9 Massive updates. urllib2 -> webutils, configurables -> registry, fix Debian.version -2f3ad58 Update to use the registry -7336a4c Someone forgot to convert the testsuite when FunDB.num was switched to FunDB.stats. Took care of that and updated to use the registry. -75b6da8 Clean up the registry calls -e9f77d6 Clean up the registry calls -c3173fe registryValue was missing a little self loving -0cd95c6 Added supybot.reply.noCapabilityError. -e8bba56 Added supybot.reply.detailedErrors. -e88f2e5 Set defaultcommand for help to be Misc. -03647ce Added supybot.threadAllCommands. -4b10839 Changed channel capabilities to use commas. -23c2640 Made test-conf if it doesn't exist. -393dbf4 Removed Interactive driver (heck, I don't know the last time I even looked at that code, let alone used it). -7684da3 Added note about eval() uses having to be approved by jemfinch. -c98ac09 Initial checkin. -302f824 Made splits more flexible. -f161f9d More wizard workage. Seems to be working pretty well right now. :) Removed 'plugins' from the default list of plugin directories. Th's up to the user to decide. Also some possibly hackish use of the _cache again but I see no real way around it. -26c4bcd Juggled some parentheses around and added registryValue to callbacks.Privmsg. -da3c063 Changed eval/exec so that they never even get defined if conf.allowEval isn't True. -17fec22 Removed unum from setup. -39856a6 Tried to make sure Ircs and Drivers get nuked appropriately when they die sadly. -d77bd96 Oops\! Made supybot.replies.success into supybot.replies.error. That's one way to confuse people :) -67db74e Made sure to catch exceptions in takeMsg. -68c4ca6 Factored invariant checking into setValue as appropriate. -b8d73d9 Possibly a bit hackish, but we use registry._cache here to preset some registry variables so directories the user doesn't want don't get created by conf and log and to prevent log from logging anything non-critical. -7837ee2 name() is defined in IrcCallback, parent Class of plugins. Can't be used. -3936afc I don't know what the difference is, but CVS tells me something's different. -6748dc2 Converted to use a global value instead of a channel value. -201f11c Updated for the new registry dealio. -28a79d4 Whoa...really dynamic class stuff just to make sure a default-created-but-not-overidden value in a GroupWithDefault doesn't not get set blah blah blah... -5d21f69 Reordered stuff for the LogLevel change. -81a40ee Updated for the registry._cache change. -17804c9 Updates! -a3c1b87 Cache is not a public variable and should not be used. -894c9d6 Revert accidental rollback of name to username. -fe23675 Made setting supybot.log.minimumPriority set the actual level being logged. -9997042 Added Sf.totalbugs and Sf.totalrfes -144a5bc Made replyNoBugzilla a registry variable -886e447 env is your friend -5f82d72 Updated to use registry -0b11192 Updated to use the registry. -6831daf Brain fart -97eadb6 Can actually search with Google now that google.setLicense is being called. Also, maxiumum-results -> maxiumumResults to prettify the function calls. -006909b Converted to use the registry. -a7559f3 More work on the wizard. Removed allowEval. (somewhere else?) Still a couple of FIXME's. Added a function to prompt and set registry values to questions.py. -9ce0e7d Updated PositiveInteger. -a8c3d67 Convert Google to using the registry which required adding PositiveInteger Class to the registry. -bb97cb3 Updated not to set the supybot.plugins.Dict value when it registers the plugin. -cc672b8 Changed the order to its original order. -8228f7d Forgot to update when registerPlugin moved to conf. -4fa547c Updated the configure function. -fd132f2 Added setdefault and get to IrcDict. -0081c27 Check that channels are valid before trying to join them. -9c0b26e Updated to make setting channel values and global values easier. -946f686 Added an extra comment. -8424761 Converted Dict to the new registry format. -0b62247 self.open() needs to happen *after* self.filename is set -224cacc Fixed several bugs and added the replies rich reply method. -fca57c9 Unneeded, w00t! -24ff1a9 Except that registry has to come before conf -4ea29eb Proper ordering of imports -6ff6fba Made an error message a bit clearer. -c96b0f6 Reduced several log.infos to log.debugs. -4df1011 Added Config to the default list of plugins loaded. -dc87ed2 Added log.timestamp. -6950f65 Topic sync has broken one of our invariants. -fccf2c4 Modified supybot-wizard to work with the new registry... somewhat. It seems to work and generate the config file which right now defaults to supybot.conf in the current directory (which will be changed, ofcourse). Moved some of the wizard's stuff to questions.py and cleaned up. -9aede17 Changed not even to define eval/exec when conf.allowEval is False. -b63d48f Reduced maxDelay from 10 minutes to 5 minutes. -eb217d8 Changed num to stats. -9f2013d Changed username to just name. -bc789d6 Forgot to import ircdb. -f12c1ba Made tell not tell lobotomized channels. -81339b6 Allow no registry file to be specified. -6ca7892 HUUUUUUUUGE Configuration change. -b18ad35 Made a stronger attempt to make sure the registry file gets written. -5b120d3 Initial checkin. -79fb00d Fixed bug #878955. -7c96752 Case insensitive. -dddf1d2 Removed a debug message. -1572ccf Typo I presume :) -29426e2 Moved isIP* to utils from ircutils. -b2f23c6 Updated the rest of the code to use utils.changeFunctionName. -8a322cf Changed from being globally threaded to just threading the email command. -f5ec8f1 Refactored, and made sure Privmsg.callCommand doesn't catch exceptions. -27100c6 Fixed to make sure all spawned threads set the callback's threaded attribute in the meantime, as well as changed to use utils.changeFunctionName. -cd5a1cb Added changeFunctionName to be used elsewhere. -8f53601 Added test for no escaping WebError. -1e15c4c Partial fix for bug #877601, I'll do the rest in class. -8164f5b Partial fix for bug #877601, I'll do the rest in class. -38e8c33 Stylistic updates. -4cd70bb Added years and weeks to seconds. -fd294fa Added special 'me' handling to tell. -83cc313 Increase timeout to 2 seconds. -19a63ef Handled deprecation in tests. -942d67c Changed a %s to a %r. -69f8c40 Added deprecation support. -11908f5 Simplified quit. -a7ba5a0 Made world cleanup drivers, too. -63c64af Fixed double-killing ircs problem. -3c25e6f Make _make... __make... -da0cf9b Added a few more methods. I think we're going to have to make Group.__getattr__ return the Value holder, not its .value attribute. -d283985 Removed tempvars. -b072772 Updated, added a test for errorReplyNoCapability. -2a60ba6 Clear exception info to make sure things get collected, just in case. -74961db An attempt to prevent the ugly exceptions from being raised on quit. -69f61d7 Updated. -4a28fd9 Tweaked an error message, hopefully fixed the reconnecting problem. -cbb015a Handled the ugly "timed out" error message. -4db8dfb Catch an exception uncaught before. -d33c533 Removed set and unset, since they're not used at all by anyone. -a61b5b8 Added storing of the default value to Values and GroupsWithDefault. -fbcec1b Fix the 'No high bidder' bug (#876914) -9f1af0d Fixed quit to note that it doesn't *really* take an argument, and to say who the bot was quit by. -80da030 Changed the HangmanGame class a little and how a game works. -eee9b5a Made revision accept a .py at the end of the filenames. -d18d6b6 Committed the fix for the bug mentioned by Flumminator. -0ddb356 Changed the sorting function. -3319e25 Added writing! -fe0e5e9 Fixed uncaught exception on messages with just spaces. -8224996 Bugfix! -1a824e4 Added loglevel RFE. -2ea1810 Updated to allow help-getting. -2098484 Fixed a bug -18c49c9 Fixed case sensitivity on quotegrabs list. Again?? I could have sworn I fixed this already once! Doo-doo-doo-doo doo-doo-doo-doo doo-doo-doo-doo... -3d0b8dc Updated to let GroupWithDefault have a .set() that works. -f90adb5 Initial checkin. -8eb9eff removing debug code is good -6c1e115 Finally put a small band-aid on the sourceforge functions. Now one can specify the search type, but you'll still get an error if the bug isn't on the first page. -6a48344 I don't know why I named it _res in the first place. -bed5624 Oops, had to change a self.log to just a log. -94c2d9f Added bug #836270 to the BUGS list. -8039679 Added a dot. -9d7c1a6 Make it so that ACTIONs don't get added as factoids -13e0447 Added bug #874038. -75d5298 Remove some tabs. -65b139d Changed slightly to use nonCommentNonEmptyLines. -992781c Changed permissions -4452ca8 Added functions for reading non-comment or empty lines of a file. -90b4e8b Add me! -3c47dc9 I can't find why the hangman test fails. -5749355 YABF -9f96715 Fixed a typo in a variable which caused an exception -049839c Fixed broken URL. -27151f6 Fix for bug 873896 -3e93599 Fixed bugz0r in errorNoCapability. -cb73cc3 Add some logic to the wind chill/heat index regexes so that they don't grab N/A and clean up the construction of the index string. -69aaea2 Moved base command to Math (from Fun) and added a test for no escaping ValueError. -626958b Change the path back to normal and switch irc.reply back to how it should be -585eb4a Oops, still had a msg! -e5689da Changed the logging of actual messages to debug, not info. -1c2bdcb TinyURLs are now 24 characters in length -db16ba3 Guess I should make sure I delete the debug line and not the code line -c6a6fd4 Teaches me not to compare strings like they're ints -57b038e Make sure seen doesn't warp the case of the nick given. -f453d10 Added a few asserts (the same one three times, actually) to catch old code with a clearer error message. -1c03464 Huge commit to finish refactoring of replies. -5700a69 Used Words dbHandler variable and fixed a couple of bugs -845142e Updated replyNotRegistered stuff. -2846b4a Updated more replies. -099b8bc Updated some capabilities stuff. -2591848 Moved a couple of methods from Words to HangmanGame -b44c7b5 Cleaned Hangman code: - Made it work with the Word db - Used a HangmanGame class instead of a dict for states - Changed lines that were too long -530aec2 Updated the reply infrastructure. No more msg, it's just not necessary. -1863c8b Nice ChannelDB... -731b95a Changed a few Nones to 'unsets'. -88cc041 Updated. -1132c63 I forget what I did. -ed77484 Fix for isIPV6 on platforms that don't support IPV6. -aa7408c Changed over to the cool new RichReplyMethods stuff, mostly. -2fce1dc Added a note. -ebacb99 Forgot to update for the Fun/Filter split. -6645679 Removed a flaky, useless test. -eb0251c Oops, forgot to remove stuff from Fun. -a6ab624 Moved Filter stuff out to its own plugin. -d5aeefe Moved Weather to its own plugin. -4b9c025 Oops\! -81202eb Fixed bug #871986. -d6e9eaf Don't call invalidCommand with CTCP messages. -58d86e7 Added Hangman -989783c Just in case, let's add a reset in connectionMade. -e9eaff8 Updated. -f4127b6 Added bold configurable -0d25243 Added configurables for smileys and frowns. -85e0783 Added RFE #871165, doInvite for Admin. -8d6956f Add a check for an int id so people who use 'note get' will understand the error message more. -553d7d6 Inital commit. -ce93c28 Oops, forgot to change the name of the defined function. -e8f3b64 Fixed some bugz0rs. -4dd0e26 Added configurable prefix to new news item announcements -626038f Yeah, let's make the RIGHT fix this time -12842c6 Fixed a boo-boo (missing ')') -72f2e66 Proofing docs/ -09dfe24 Fixed bugz0r with nested commands in Scheduler.repeat. -17c6e69 Don't replySuccess from Scheduler.repeat. -f1a68ff Moved seconds command to Misc from Scheduler. -d9e4cef Initial checkin. -b2c1566 Fixed! -05ff7d3 Initial import to workaround the stupid __del__ methods. -8fc6502 Added a bit of extra protectedness in PeriodicFileDownloader._downloadFile. -332a182 Doesn't matter now, but just in case... -d27fa33 Added an extra assert. -80bab37 Oops, gotta self it. -ab27174 Essential canonicalNaming was not being done. -22767c2 Added an extra log message or two. -2dbbdb7 Changed the type of the topic-separator configurable. -a4507d0 Set dying during quit. -4e69914 Made to relay actions and away messages. -8260958 Updated. -881a2e0 Stylistic updates. -a10900d Made throttling work correctly. -bb74f51 Fixed several bugz0rs. -e989cd4 Added an additional logging message. -a5bfb61 Added RFE #799694, Automatic posting of new RSS news. -da1d09d Added a few more types, fixed help to include the current value again. -c88a7c3 Backing out canonicalName in isCommand. -9453c89 Removed some debugging prints. -ef4bff5 Made isCommand use canonicalName and added getCommand. -669ac89 Moved _urlRe to webutils as urlRe. -61eb55f Added checking for ops and actually being in the channel to getops. -f515bd3 Removed, it's not very useful anymore. -a065477 Changed get to just plain note, as per RFE #869628. -95c2098 Added some extra logging. -18b06db Fix for findBinaryInPath test. -c4a122d Fixed bug #869652. -7e4cab7 WHAT'S MAH NAME?? -7c8892a Fixed. -44aebd9 Slight style update. -ed5f89b Added some extra logging. -1948402 Fixed a minor ui issue. -680729f Fixed bugz0rs. -b0559e3 Added server command. -14eff0f Fixed problem in do002, splitting the wrong arg. -e9c67b2 Finished the nuking of VERBOSE and PRINTF. -68591b1 Fixed bug #868338 (Relay.whois). -a0d2a9d Fixed bug #863808; added isIPV6. -8b6733e Fixed some bugz0rs. -a58e5b9 Fixed some tests. -7955f65 Initial checkin. -e869cf7 A little logging change. -542259f Added options to kban. -5502794 Added docstring to disambiguate, fixed some bugs. -4b3b245 Made addressedRegexps and Regexps not run if there was an error. Also slightly refactgored handling of errors in Privmsg/IrcProxyObject. Also fixed spawning of threads to set the callback's threaded attribute. -34d0cdc Added tons of new Types and globalConfigurables. -45af651 Slightly updated. -2b32ccd Refactored Irc/Driver interaction. -26995a7 Added conf.requireChannelCommandsToBeSentInChannel. -8895ffd Should fix bugs #858964 #862544. -a7d0eb9 Added a whole buttload of configuration variables. -24d191d Added non-snarfing-regexp and title-snarfer-includes-url configurables. -b1cd34b Added better handling, hopefully fixing bug #860614. -8a73924 Allow a comma separator in the en masse plugin addition. -e1b0d7d Removed printf and verbose. Just use debug instead. -1f441c5 Forgot to return the name in addEvent. -87f3c2a Added the --nonetwork and --noplugins flag. -1c05266 Initial checkin. -d5ed1e7 Guard against non-existent spell/fortune/wtf commands. -7cf2743 Be more appropriate, since not all OSes have child time. -dea580d Kill the empty line\! -a477824 Removed a (now) useless test. -bcbfd21 Made matchCase its own available function. -8366d74 Began **kwargs'ing tests (with getMsg). -c0e219e Initial checkin. -6393a0c Better handling of unknown memory thingies and proper handling of Darwin and changed memory to RSS and stuff like that. -526f8d7 Make sure to relay actions and away messages. -a247e2f Better error handling for calc/icalc. -2f55345 Added bold and maximum-results configurable. -8399529 Removed trailing periods in larts and praises. -8070401 Added learn-separator and show-factoid-if-only-one-match configurables. -c331bcf docs/GETTING_STARTED -5de5653 Updated. -a47a7de Updated schema and whatnot. -92ad8bf Fixed indentation bug. -629dd86 Fixed lack of case-insensitivity in randomquote -f886d65 fixed another .0 bug -6000b1c Fixed a few places where int()'ing COUNT result cols was required -bf3b4a0 Added test case for bug #866178 - invalidCommand called when addressed with nick for karma++ -7b0af3d Fixed a _really stupid_ error message buglet. Man I suck sometimes. -cb5c22c Made pinging the server optional. -38b9cfa Adding a test to make sure that bad nesting errors out completely and doesn't call things like addFactoid. -29cdcfb Fixed #862667 - floats in 'karma most' output, also made the number of items shown with 'karma most' into a configurable and fixed a typo in one of the other configurable descriptions -1474c16 Fixed #862645 - unquoted spaces getting sent in HTTP request -b6c780c Updated to the newest version of feedparser (nee rssparser; we kept the old name). -36b6821 Set the default timeout for all sockets to 10 seconds. -e3661e3 Removed assertRegexps and assertResponses, added RFE #836316 (target keyword) and frm keyword. -bddac5c Oops, shouldn't have made self._whois an IrcDict. -b995b2f Fixed a kernel bug which only happens when either one of the stable or beta kernels isn't listed on the page and also fixed the geekquote tests to match the new behavior. -7ce4ab2 Added titleSnarfer (RFE #842238). -29b0e20 Added followIdentificationThroughNickChanges for RFE #845346. -3334180 Just in case. -bbafb42 Added conf.replyWhenNotAddressed for RFE #859183. -eca7194 Minor code cleanup. -d9fcd25 Oops, removed a log. -751090a Some kind of little cleanup. There was a pluralize call that used the wrong order for its arguments. -a3edca4 Workaround for bug in cgitb. -d413607 Forgot an import. -fd01a22 Changed some logging messages. -6df8eed Caught a previous uncaught exception. -7b983bc Added some better logging. -4a6ac27 Added a configurable to determine the number of things shown in the ranking. -a63d175 Added memoization of hostmaskPatternEqual. -4472822 s/callback/plugin/g -c1f8812 Added an assert. -a12c420 Forgot a return. -cf80ab7 Added Relay.command. -8636352 Minor changes. -7036073 Changed zegrep to zgrep -e. -bb4d9af Made more platform-neutral (ironically). -db8d18b Oops, forgot to commit this with the case-insensitive more changes. -2ba6835 Added RFE #859119, configurable karma response. -54102ae Stupid vim! Didn't show my my syntax error. -d168314 Added a little better checking to the spell command. -6a67460 Fix for bug #859630 -dfe9008 Oops, I'm retarded. f.func_name needed to be just name. -35ecd7b Closed #860139 - including wordstat count in stat output as well as rank. Also made it so that if your name already appears in the top N results that it doesn't append that rank stuff. -0002861 Removed legacy dependency on the debug module, following the example of the 1.21->1.22 changes in supybot-wizard -be44ed8 Add Bugzilla search -40cac59 Updated version number. -2b8bd98 Updated. -0fbfe32 Added an appropriate error message when acronymfinder.com cuts us off. -590c9c6 Made help handle defaultplugins and whatnot correctly. -e485984 Make sure the ban length is an integer -42ce8c3 Swapped the argument order for utils.{pluralize,nItems} -f4f91bc Removed --exact searching, made to search keys, not values by default, and added --values switch for searching values. -06c85f5 Removed --exact. -c922957 Changed got376 to afterConnect. -a551c32 Just an early start on the more complex stuff. -c432a93 Try to prevent the ping loops we got in earlier. -8f777db Fixed bug #858008, and a fix for another bug that invalidCommands that raise an exception stop the whole process; now it'll continue to later plugins. -627dd87 Now globs will actually be globbed -318b9d5 Added Lookup.search -e196650 Fixed some grammar errors -f592aab Fixed bug #857299. -b7fbaed Made sure it doesn't relay CTCP messages. -3f6d347 Added isCtcp. -2e5b900 Todo.remove stuff -0c3c37b Now Todo.remove can take multiple taskids to be removed instead of just one -c6d77bb Added a topic-sync configurable for determining whether or not the bot should relay topic changes. -7f7562e Allow ambiguous aliases. -94cdec8 Oops, should've used irc.error...brainfart! -da6743b Added appropriate error messages for Admin.join when the channel can't be joined. Also added channels command to see what channels the bot is in. -9678560 Made configurable. -5980afc Made URL easily changeable and changed it to advogato. -091be13 Spread out some tests, made action error on the empty string. -f989479 Topic.reorder, Http.extension, and Relay.whois info -3978be5 Fixed bug #856997. -ae44a33 Put the new module in sys.modules, just to be safe. -a609994 Fix for bug #857054. -b4ffe24 Fixed it to reload Owner and Misc as necessary. -8df0b38 Nicer error message. -3ef5f54 Clarify the docstring for privmsgs.getArgs -66ec4ab Improve some error handling and test some more uses -9ca2732 Just to double-check that indexing checks and unique topic number checking are done properly. -15a2b84 Yeah, for fixing code that wasn't the cause of the problem I was trying to fix. Lemme put that back to normal. -f4995b4 user->nick change for Relay.whois -76e20b9 Got rid of another urlopen call -05238bf Topic.reorder: Fixed some bugs found via jemfinch's new tests -88581d9 Added utils.sorted. -0aa5f2e More tests for reorder. -8fe7d7e Add identified status and away message to Relay.whois -03aad17 Added Http.extension -d91cc33 Added Topic.reorder -8fb158d Robustified. -c8da4ad Removed a conf.replySuccess where one isn't needed (in unban). -4c64ffb Changed some logging messages. -e770054 Nicer exit message :) -dbc7df7 Had to import log after we import conf. -088d350 Fixed bug #856621, fixed the commented-out minimumLogPriority question. -8997261 Updated. -588d8eb Updated. -ef3ea98 Guarded test_Amazon against not having a license key. -daf8177 headers conflicted with a command name, so it's now called trheader -ec16d3a Reverted a version. -5d9ecea Fixed bug in Poll.add, it didn't handle sqlite returning a string. -60797f7 Handle p.d.o being down gracefully. -1608d25 Make sure that {data,conf,log}Dir exist so that we can write files to those directories -2105be8 Fix an oopsie in the Poll tests where I was trying to close the wrong poll -533426d Let debug be gone, replaced by utils -6b5d32c Removed an old comment. -fe9bf97 Change changeusername to changename. -fc1fc32 Debian.incoming: glob is now required. Change glob behavior to match the rest of supybot's globs. -607793b Added Amazon.books and Amazon.videos so that users can search those products by keywords. Added tests to match. -946d9b2 Http.weather: Cleaned up some regexes and added proper checking to re.search result assignments. Added reporting of Heat Index/Wind Chill if they are different than the actual temperature. -d59b302 Added test for active/inactive in Todo.todo. -7d7e396 Converted to use a DBHandler. -836ef99 Converted to use a DBHandler. -028f25e Added questions for replyWithNickPrefix and replyWhenAddressedByNick. -31a5e2b Added an assert to prevent improper usage by inexperienced developers. -0719b5e Stylistic changes. -ead91da Tightened up the restrictions on User.hostmasks, also required privacy for it. -be7a292 People should be able to get a todo regardless of its active/inactive status. -2ec9748 Renamed replyWhenAddressedByName to replyWhenAddressedByNick. -2fea3e7 Fixed RFE #855159. -f6f46f6 Fixed bug #855014 and added RFEs #855453 and #855454. -8727e62 Fixed several latent bugs, made much more robust. -b91a1b8 Oops, shouldn't have committed, a stray underscore got here. -12fff19 Added a comment. -1dfca18 Added another case to except clauses for Connection Reset by Peer. -d064186 Changed \x02...\x0F to an ircutils.bold. -a36f81e Handled detailedTracebacks again. -a23fbcf Handled the case where nickmods got all run out. -bba1d27 Final changes in preparation for release. -aded21c Reordering in order of end-user importance in anticipation of a release. -99782d0 Added another check for setprefixchar to make sure it returns when it hits a bad prefixchar -2e4ecfe Fixed a bug in setprefixchar where things would get wonky when trying to set an invalid prefixchar -9269040 Added tests for multiple regexps and regexp+glob. -f26115b Fixed bug #853654. -5a6b532 Fixed bug #854232. -f8f0333 Changed the order of three statements so Owner can't get loaded twice. -40dcc0e Changed a log.info to a log.warning (more appropriate). -f85a069 Oops, the old logic for starting option ids at 1 was bogus. -ef6e12a More poll tests -c7f50eb Added some poll enhancements -9873981 Updated deop/dehalfop/devoice to work by default on the sender of the message. -56b68d6 Fixed bug #853904. -41fd7c7 Added icalc test. -3606658 Updated. -c8783e5 Added an icalc command for doing calculations with real integers. -e46765f Added a trusted capability (defaulting to off); made Utilties.re require it. -978fcc2 Added a commented-out test I never got to work. -417f57f 'Fixed' bug #853791 (really, just fixed the error message). -8242302 Updated the logging of various things that need logged. -5fb21b5 Eh, sorted some output. -5300ca5 Changed the format of Channel.capabilities to match User.capabilities. -fd97e8d Fixed bug in that you could add over top already-existing commands. -0857e3a with Sourceforge.bug and Sourceforge.rfe's powers combined, we have Sourceforge.tracker! -93d3d78 Commented out some debugging log statements (yes, I realize they were in a huge comment block already) -69ce95d Add a forums link to our navbar -fa1c70b Finished flushing out Amazon's use of the web services. Added actual tests to the test suite and updated pyamazon from 0.4 to 0.61 -a74d1d5 Added a little extra logging. -1b462c8 Added a few more substitutes and allowed a few more names to be more compatible with blootbot. -cebcf5f Initial checkin. -4aa05c3 Added ping command. -3398f1a Made the error message better when people try to run a plugin that requires sqlite and they don't have it. -2aaca31 Moved Configurable out to its own module. -6925ecf New hostmaskPatternEqual that's a bit more correct and perhaps slightly faster. -1f38ac2 Removed timestamps from stdout logging. -95fc453 Added some tests for hostmaskPatternEqual. -05ab09b Fixed to re-raise errors appropriately. -bb154e0 Updated some format, didn't log some messages when the world is dying. -8fc9b00 Don't log the 'scheduling reconnect' message if the world is dying. -32eaa11 Some better logging. -bc70835 Make sure to normalize the whitespace on help. -e23bf41 Use items() intead of iteritems() because we're deleting from the dictionary. -8cbcb2e Added some informational logging. -7accc31 Fixed the 'Alias raises a buttload of exceptions' bug. -246afc3 Made it not depend on Alias anymore. -c6b232b Made to require admin capabilities to add/remove lookups. -ed5fede Added Note.unsend command. -43a890e Added kick command. -4726fdf Made sure the pluralized power commands don't get run with no arguments. -e4d9f6d Added some asserts to the pluralized power message functions. -b2f9825 Fixed bug in handling of pages less than maxSize but with no Content-length header. -39ab2b7 Added Channel.{deop,devoice,dehalfop} -7f3cafb Fixed ops, deops, halfops, dehalfops, voices, and devoices. -8e7416f Limit the number of mores to 50. -902ff30 Removed an extraneous __revision__ string and import fix. -890d2a5 Added an iteritems to ChannelsDictionary and made it into an IterableMap. -0f3dcf0 Added Http.size, Http.doctype, and Http.headers. -7b9c0cc Changed the name of WebException to WebError. -b6faf36 Added test for the wordstats-top-n configurable -42afa12 Time to *really* finish up the stuff in the RFE and not just close it without completely finishing it off ;) -31de7d0 Fixed bugz0r! -2046e63 Made to use the conf.confDir. -e9b20c8 Fixed bugz0r! -f8ea57b Added RFE #852937. -d4442a0 Slightly tweaked, added test. -fe9468c Always bet on black! -5dfb00f Added lobotomies command. -fd06e1c Changed to use DBHandler. -2f7d2d7 Gave DBHandler a .die() method. -77a8d8b Added swap to rpn. -1d54f0e Handle the case where the suffix is in the name itself. -882b872 Made defaultplugin show the default plugin for a command if not given a plugin. -ee5de6e Made sure to depluralize the command name. -6e46263 Cleaner line break -7a418a1 Damn, it feels good to be a ChannelDB -949ea7a Made utils.pluralize a little smarter. -9277d41 According to pysqlite 0.50.0 you can have a fractional number of items in a db :( -1ff4465 Intify the stupid help. -1b8d655 Added help strings to lookups. -64499fd Updated. -f9adc0d Made the separator a configurable. -ee8be5a Stupid SyntaxError! -b5f6155 Changed to be a ChannelDBHandler. -1f4c163 Should be able to reload Relay now, but it's untested. -8e624e6 Fix for bug #852350. This should work, and it explains why I've never encountered it myself: I don't have mx.DateTime installed. Now we just make sure sqlite thinks *everyone* doesn't have it installed. -2a9d9d1 Reworked so there's no double-import problem. -da92309 Fixed bug #851661. -f23d8b0 Added some extra logging. -bc56a8e Handle errors in getUrlFd properly in Http.kernel. -f370f1c Updated. -1aaf611 Made sure the fd gets closed in Http.kernel. -aaef8cd Webutilified. -5549322 Fix for bug #852422. -2f1c841 Added getUrlFd, used it in Http.kernel. -4e5e568 Fix for bug #852433. -b473532 Made last default to the current channel. -f65b3cd w00t! we have more than 1 command -9fe682f I have the *power*! ... of webutils -1fa9e8c sockets, they do a body good -53b9a47 I canno' do it capt'n. My irc.error doesn't have a msg -a0b0999 Apparently the pigs at hamweather think Tsra == Thunder Storms. I didn't find that to be very obvious, so I added a little .replace() to be more friendly -b1f0bbe Shouldn't have taken out the callCommand when I converted to webutils. -8d9ed6b Added webutils module; used it in Http. -17d9a59 Used cgitb instead of the default exception printing. -9264b63 Added most command. -b39e123 Added __iter__ to UsersDB for a cleaner interface. -e34d9de Fixed RFE #851183, ircdb.users.numUsers. -71bd9ed Fixed RFE #828722 and removed Lookup's dependency on the Alias plugin. -602f926 Fixed RFE #828722 and removed Lookup's dependency on the Alias plugin. -c8de1e8 Made the string of flags that require an argument an optional argument so you can parse the flags for some other purpose. -3179a8d Fixed the case problem in User.list. -9788815 Added tests for globbing ability. -8ff3472 Added User.list command to list registered users. -97b8bab Added User.list command to list registered users. -4c4fbac Added User.list command to list registered users. -23d81ec Removed pydoclink (whose idea was it to add that useless command anyways?) /me hides -b6dd266 Re-added colored stdout logging. -f240115 Changed the name of cpustats and netstats and cmdstats to remove the stats part. -35df9e1 Added test to make sure overlong regexps don't slip through. -3aa6faa Some code accidentally code committed, a useless function. -24f95e6 Small efficiency/readability fixes. -efa81e0 Fixed SyntaxError. -ca6ebdc Added some extra logging of eval'ed expressions. -cada17e Added logging of the regexp and originator, in case of abuse. -fb2d9b7 Various re fixes, including bug #850931. -42e4353 irc.error()'s need a msg -b0fa844 Added pydoclink, a command which returns a link to the current documentation for the specified module -76c4dfc cleaned up a couple of pylint warnings -3adad29 Removed extraneous paren -7bdf105 Added test for reasons' period not being kept in the actual lart/praise. -068003c Added tests for Bug #850931. -72f9361 Fix for bug #851254. -e15d15f Made sure Http.title doesn't read infinitely. -0b0d10f Removed periods at the end of the reason. -a40742e Added the id of the just-added todo to the reply. -b0fa390 Added the number of people to Relay.names. -13b718f It's probably a lot more useful to list the most popular options first in the results. -ea23b47 Did a complete rework of the poll plugin. -d5c9873 New logfilesize. -8ee09a0 Set the minimum priority. -e187479 Fixed crossword bug committed by Xylo. -41ab058 Changed the priority of the ignoring logged message. -d9cac7b Removed. -48166f4 Huge update to the logging infrastructure. -c97fe5e The configurable help message now includes an example. -1999cb4 ddipaolo-- (hey buddy, next time you might want to actually update the configurable item's help string when you copy it from another module) -89857d9 Made Karma a configurable, added the 'simple-output' option to forego all the 'increased/decreased' output when requesting something's karma and to just return the name and the total karma. -8dc24b2 Implemented usability fix (RFE #849691) where if listkeys returns only one factoid key, it should just return the value. -d64f531 Fix for bug #849619. -23968ba Fix bug #849302. -a524d72 Removing our custom urllib2.py because the python2.3 urllib2.py apparently fixes the bug that was holding us back earlier. -130f30c Completed the implementation of handling google groups URLs with 'prev=/' in them -d7dfff7 Added __revision__ strings. -c151c77 Made Admin the default for {add,remove}capability.. -e6ec71c Added some comments, updated for the change of anticapabilities from ! to -. -574c861 Fixed bugs with stupid contractions in NickServ notices. -a763674 Added server attribute to Irc objects. -e4db34d Twisted driver had no die() method. -adfb3e4 Oops, had msg instead of response in the verbose printing. -5564e43 Added ability to configure showing of ids on or off. -4770ef1 Added the to= keyword argument to reply. -e65dcaa Allow more time for connect than for normal reads. -77393f8 Fixed bug in identification/doNotice code that would cause an infinite loop if the stupid services on the stupid (coughoftccough) network use a contraction. -533b6ae Updated. -2c779bd Changed Alias.freeze to Alias.lock. -6d3cb48 Fixed uptime sorting. -a3aeaee Updated tests for another unavailable game. -28cd12a Updated. -3e5ff45 Oops, $ is parsed in the ChangeLog :) -86524fa Added revision command for finding out the revision of supybot's files. -210809a Fix for bug #848475. -86b41dd Allowed escaping of colons in supyfact files. Didn't allow escaping of backslashes, yet, but that's less a worry, I think. -4cb4960 Stopped listing the plugin dispatcher command in the commands list. -a4284e7 Added __revision__ strings. -1687b3f Wasn't using an IrcString for the chanserv nick. -5f4a541 Added __revision__ strings. -6ce845f Updated to include strings in @objects output. -4e273a2 Fixed some use of regexps, commented out a test that was failing because a game expired. -a966513 Changed commit behavior of UsersDB and ChannelsDictionary to commit on setUser/delUser/newUser and setChannel, respectively. -1507ff8 Updated. -79e28d4 Added a test to test_Http.py in the weather section that I forgot to add with my previous commit. -aa19f78 Fixed one s/needed/required/ in EXAMPLE and updated example.sgml to match the current EXAMPLE file -0a13904 Added an additional check to weather. Fixed getting a single argument that coudl not be found properly. -f53c92c Fix for bug #847950. -2cdd239 Fixed an UnboundLocalError caused by forgetting to assign a default None value to some vars. -dc2c9c5 Made __iter__ equivalent to iterkeys in IterableMap. -bd15dad Initial checkin. -d338789 Fixed bug in acronym showing the header, added a test. -d05a9a3 Updated for newly tweaked acronymfinder page. -d1bbb01 Poor attempt to fix the 33 years bug. -f7d5be5 Explained the sf alias and its usefulness. -45de360 Added note about included botscripts. -d618e9e Fixed logic bug in prefixchar questions. -e6ad161 Be more lenient about non-existent pluginDirs. -dfadfe7 Made Configurable store its data in human-readable/editable form. -1d95410 Fixed introduced bug in that callbacks.Privmsg.handled wasn't set appropriately when a command was called. -6ae0a0b Made configure handle comments and empty lines. -27ce1d3 Fixed an uncaught exception in configure. -877d376 Restricted the characters that a prefix character can be. -7642def Don't bother asking about Alias if it's already been loaded. -f44a155 Updated. -dcac677 Initial commit. -748a818 Updated. -f79aafa Fixed to run on systems without sqlite. -41c2ead Changed to be a Configurable, fixed a few possible bugs. -b1f424d Handled Windows' timeout number on socket.error. -0b9d7bd Fixed bug #847032. -37c6516 Fix for bug #846065. -0e88918 Minor stylistic fixes (I thought there'd be more, but I solved another problem without messing with this plugin). -7784d21 Fixed the bug in acronym for the change in format and tightened the test to catch such changes. -4ed97b0 Changed to use a DBHandler. -f2f61fd Configure question about snarfer should be for all users -6b5ef88 Added some debugging printfs that may be useful in the future. -7b26501 Some small fixes to Poll. -e7fd4ca Fixed a bug in ChannelDBHandler that *somehow* would cause a wrong database to be returned from getDb. -d83cf14 Fix for bug #846714. -966a094 Fixed bug in isAction. -0cc2c2f Fixed html entities in rss titles. -10fe799 Fixed handling of timeout on socket in Debian.version. -cdda36f Fixed the self-lart bug. -581dcda Tweaked output of seen. -e9b8158 Fixed lots of raised exceptions because I had the wrong number of arguments. -b3aade6 Cleaner output for nonexistent entries. -308ae55 Fixed bug #846053. -0da5c27 Fixed bug #846332. -43c5946 Fixed bug #846220. -6f93426 Minor style update. -0ab9d4e Do sorting the right way (not only are cmp functions slow, but with nicks you need to sort by ircutils.toLower, not str.lower). -c283ca7 Yay! Full navbar on all pages -e3b0974 Now we can sort names independent of case! -8b9f5a6 Fix the Google Groups snarfer bug and added appropriate tests -8854363 Cleaned up the generated source some -6bcd109 Added navbar -539b307 Typo fix reported by Stuka. -288c281 Added tests for the weather errors-that-shouldn't-be-errors. -e21d710 Fixed the problem where country abbreviations that match USA State abbreviations will never be found. -6106f27 Some more cleanups -a561767 Updated. -8b3afe9 Fixed the links at the bottom, which I broke. -8a850e7 Ask first before calling getpass. -de81be0 Slight efficiency/readability fix. -0f19c10 Minor stylistic updates (I missed two strings using triple double quotes instead of triple single quotes) -b8c6b37 Minor stylistic updates; also made plugins.html and commands.html go to docs/ and link to docs/plugins/__.html -484bb71 supybot.css is in supybot-www now. Major overhaul to docs generator -a178090 Made into a ChannelPluginTestCase. -00985ab Updated the test for the new snarfer default. -5fe1aee Updated the test for the new snarfer default. -05390b6 Updated the test for the new snarfer default and renamed the general test to 'test'. -fb4a4ff Changed the default of the snarfer, added a question to configure. -2a5cc04 Finished the alias sf question in configure. -738d1bb Removed addbadword and removebadword; changed the name of addbadwords and removebadwords to add and remove, respectively. -e20f692 Handled empty lines appropriately in supyfact files. -c17f85e Fixed escaping IOError from add command. -909597b Changed the name of the commands in Markov and added a test (that currently only tests documentation) for Markov. -dd6cbef Reordering in order of importance to the end-user. -429c90a Added __len__, __repr__, and a useful __init__ to IrcMsgQueue. -9a7de79 Made removeHostmask remove all the matching hostmasks. -0b90d80 Caught the right error. -dd9bd35 Changed to handle non-installed sqlite. -e5d71ac Changed the Lookup test to run even when SQLite isn't installed. -baaa017 Made the help messages more inline with the other channel-based command helps. -fa7a05a Fixed a bug; s/exclamation point/dash/ -7dd1f4d Removed example string from the template in suypbot-newplugin. -15639d8 Multiple choices for polls. Still broke.. needs tests.. etc etc. Work in progress :) -0c4a60c Consolidated the renaming of plugins and described the exact changes. -6e79848 Updated. -13ee678 A few changes. -1b0082a Formatting blarg. -b745b65 Oops, some of the recent additions were redundant. I kept the one that sounded better. -179eba5 Added a ton of plugin changes to the changelog in preparation for release. -23db0b7 Handled the case where one factoid is returned from Factoids.search better. -8a2e50b Should fix jamessan's bug. -9d44399 Fixed an uncaught exception in Debian.version. -f66c567 A few more refinements to the documentation -20674ea Updated the plugin docstring. -2cbcddb Caught the LookupError raised from a bad encoding. -d7e95f5 Tightened the check for a proper auction id and refactored _getResponse. -7cd2844 Cleaned up commands.html a little bit using some suggestions from ddipaolo -f57f57c Fixed some bugs in Bugzilla and added some tests to try and catch more problems in the future. -5cfe9ff Yay! We finally have a threaded Markov plugin -8dbaae1 Added a configure() question about aliasing sf to Sourceforge. Updated the snarfer configurables so that they default to off and made the configure() question available to all users. Updated the snarfer tests to ensure the snarfer configurable is true before starting the tests. -31c0577 Update configure() and configurable default states so that the default for snarfers is off and all users are asked whether they would like to enable the snarfer -f6e8485 All tinyurl related commands now query the local database to see if a tinyurl already exists for the url that is being snarfed/passed as an argument. If not, tinyurl.com is used to generate the tinyurl -2909c4a @ebay -> @auction -f7e44d8 Better error message and make sure an int is provided when we need it -47817f8 Updated error message for overflow. -76f4a8f Forgot to change configure to reflect the revenge update. -e054269 Converted revenge to a configurable; still considering ChanServ. -27cb6d5 Set the defaultplugin of capabilities to be User. -8dea8d4 Changed snarer to auction-snarfer. -c37b775 Prevented a possible raised exception in IrcMsgQueue. -688013d Forgot to do a % in the debug.msg. -a2a97c1 Um, made urlSnarfer do what it was actually intended to do :) -7cbec39 Added a test for the configurable. -6e1704a Needed to catch the possible KeyErrors in config. -a5627c3 Made the 'add any more commands' dealio a little more intuitive, I think. -df06523 Fixed help string for alias add. -3a571c3 Updated to thread tinyurl (there's still an un-passing test, but it seems to work on the bot itself). -23fa15f Made urlSnarfer thread the snarfer if the callback isn't already threaded. -889ed86 Bugfixes (and removed threading). -92ed968 Made password getting more standard. -398045b Commented out a debug.printf. -8ec0a35 The configurable key wasn't updated properly. -b6efb5c configure() should append 'load Dict' to onStart, not 'load Dictionary' -4459b3c Updated examples. -320d6b0 Fix for bug #842414. -27ce432 Made ChannelDBHandler threadsafe, and wrote a DBHandler for threadsafe non-channel-based databases. -dc93f86 Changed some maps/filters to imaps/ifilters for efficiency reasons (I was bored, basically). -eb6e112 Changed some maps/filters to imaps/ifilters for efficiency reasons (I was bored, basically). -28d371a Fixed spell problems; stopped caching spell fds (it's not called often enough to care, or go through the trouble). -a8f3136 Changed last to be slightly more effiicent; changed a map to an imap. -0e01a1d Sweede is a fscking retard. -296af52 Removed some old stuff related to superReload and made ircs die before shutdown. -1961ff1 Removed Misc from the plugins list. -927b1d4 Removed vestigal quotegrabs table statement. -720c725 Documentation pages now link to each other. There is also an index sorted by plugin (index.html) and an index sorted by command (commands.html) -1ef8b60 Fix for bug #840908 -f8e920e Added some pickOptions tests -d4e5047 Fixed bugs in option parsing. -7a9482a Let ++/-- regexps have whitespace on the end -882652a Style changes -557e518 Of course I can't reproduce the bug when I'm testing the fix for it, but this should take care of the bad error message. -fba0e90 Backed out the last test addition. -11da098 Added a new test for the OptionList stuff to check to see if parsing is working as expected. -f3e2e2a Added a squish command/outfilter. -93b16b7 Made the bot refuse to kban himself; made him not use a banmask that would ban himself. -563e5ad Style updates. -9b20e1d Fixed a possible uncaught KeyError, and added the ability for a kban to work on the person requesting it (so we can put it in aliases :)) -6004181 Fixed bug in banmask when the host doesn't have a dot in it (rare, but possible). -7b86dfb Made $nick the same as $who. -d496328 Fixed bug in formatting of pydoc. -02b2edd Multiple bugs that couldn't be tested while the dict.org server was down have now been tested, found, and eradicated. -b40a7e7 Oops, if you remove a switch, remove it in the help :) -da3be6b Made sure the bot doesn't clobber an already-existing user in the user database when it changes nick. -e48569b Changed addcapability to reject all attempts to add the owner capability. -66061f6 Fixed the formatting problem in expect. -08244ff New test and fix for the associated bug. -965d8e0 The dots need to escape from tinyurl -4ce677b Slight syntax fix for @weather reply -512319c Style changes -6892709 Update the tests to match the changes in the plugin -988ac32 Not all tinyurls end in 4 random characters, so I shouldn't be looking for 4 characters. Switched to \w+ -e4f912f Made Aliases disambiguate themselves, and made that API in Owner public. -b8c9459 Updated to the new version in preparation for the next release. -2f2d813 Forgot to update the configure function for the new Configurable-ishness. -760483e Converted to Configurable. -dd4c09e Updated to include timeouts on the connection; changed name back to Dict.py. -bb231a1 Removed --fancy option; made True the default. -d1e049c Stylistic update. -e828c33 Need a return after the dispatch to _oldnotes. -d60df81 zeropad the color code used in colorize so that we don't lose characters, at least any more than we already lose to the irc character limit, which will be even more now that we are zeropadding... -e9b64d4 Add support for plain-text google groups links. -2b55842 Fix the help strings for the bug{,s} and rfe{,s} commands. Remove the generic Exception catches. Give a better response when bugs and rfes receive a bug number. Add various tests. -5149d17 Made Configurable persistent. -028b23d Allowed abbrev to accept the dictionary object (good for passing in shelves or PersistentDictionaries). -94041ac Changed to use utils.abbrev to allow any unambiguous abbreviation. -e0cfe72 Added an assert for easier debugging. -2e0b225 Changed the needed= keyword arg in privmsgs.getArgs to required=. -86e2110 Changed the name of Notes to Note and changed some command names in Note. -0ca1511 Made Aliases persistent. -225ee0e Oops, SyntaxError. -fdde275 Reordered superclasses so the proper die() method is called. -0a3b05f Moved action to Misc from Utilities. -7549788 Give a proper error message for possibly uncaught exception: bug #839653. -3b6b478 Moved action to Misc from Utilities. -405f4ab Fixed bugs #833206 and #837628. -c50e27a Fixed bug #838900. -4cc9579 Fixed bug in tests; it was caused by the prefix character being snarfed in along with the URL. -8c10948 Fixed bug in tests; it was caused by the prefix character being snarfed in along with the URL. -bb9cb5d Fixed some bugs, tested some more and fixed those two. Boomshakalaka! -473ce16 Added more tests for the lexer, to make sure stuff within dangling parens is left alone. -9d8d47b Fix the @seen --user bug and add a test to keep it fixed -8f1329b Refactored a touch. -973cc66 Didn't have a .users before the getUser. -2c78876 Add a url that tinyurl had some problems with -9dd2680 Fix for bug #839053 (parens without bars not handled correctly). -8303015 Added ignore, unignore, and ignores to be complete with Channel. -afeba84 Added a test for a bug I thought was there but turns out isn't. -717fcab Removed the 'chan' from commands. -8580b6a Made Owner complain if there is more than one src/ plugin with a given command. -4b94ebe Add handling of 'Invalid Item' pages. Update tests to check 'Invalid Item' handling and to parse another active .ca page -234728b Changed to Configurable. -783b56b Removed Toggle stuff. -9b6bbd5 Forgot to commit this for the Configurable update. -0435ff0 Added ConfigurableTypes.{str,int}. -024f462 Converted to Configurable. -6519d08 Removed the Toggleable subclass, since it wasn't being used at all (accidentally committed earlier, I'm sure). -3275859 Converted to Configurable. Also reverted the _urlRe back to the old version, which works better. I don't care that parentheses are valid URL characters, they simply never happen in practice. Practicality beats Purity. -c434925 Updated to use Configurable. -f2d3e99 Converted to Configurable. -3ed58d9 Updated to use Configurable. -64e664e Converted to use Configurable instead of Toggleable. -367d561 Removed the test for ToggleDictionary, pending the complete removal of Toggleable. -2058d50 Converted to Configurable. -5fb5533 Hopefully fixed bugs in Unix.spell once and for all. -4711e22 Fixed a few more metacharacter DoS bugs. -e5249c8 Updated to use Configurable. -b4e12a1 Fixed some bugs. -1432951 Updated. -362ca56 Fixed some bugs, added a test for ConfigurableDictionary. -248312f Added a test for lithp. -cbe13ab Added a ConfigurableTypes class for various type converters. -69adce4 Added Configurable class and changed Ebay to use it (as an example). -901a225 Added safeEval. -900f2a9 Make sure '@action' works -646cbe4 Fixed stupid syntaxerror. -ee7ce27 @echo should reply with help when it receives no arguments -ca8ed72 Added a colorize command -df88fc9 Removed an assertion that was asserting a condition that didn't need to be true. -9b6dce4 Committed partial Configurable implementation (gotta go back home and hack on it more later). -7d5a7bf The purpose of help has changed and morehelp is no longer a valid command. help -> syntax, morehelp -> help -c32939f Using 'was url)' caused problems since () are legal characters in a url. Switched to 'was <url>)' for tinysnarf replies. -25aacc3 Add name ordering and mode-characters for relay names. Name ordering is also done by mode (ops sorted, then voices, etc) -4200349 Forgot to actually creat the _snarfedUrls attribute. -867814e Oops, forgot to commit this. -5dd35ea Untested, but I wanted to get urlSnarfer in there. -b4a5605 Added some much tighter error-checking to the spell command; also used select to make sure the file handle is readable before trying to read from it. -54aec8d Added hostmask and added_at to the 'get' command, to reveal impostors! -abbe99f Fixed bug in seen regexp that would catch the old GK rating, too. -3f1296a Fixed some text to read a bit better. Still doesn't look quite perfect though -2a33262 Converted to be somewhat clearer than _mostDict. -12c5280 Default displaying of usage examples to False until we put the example strings back in -5a6f3ee Removed the example strings until we figure out what to do with them -3995cc3 Switched to assertError for when no factoids exist and added testing of author ordering -e00852b Updated wordstats to default to checking for a word first instead of a user in the case where there's only one arg supplied. -ea81e96 ddipaolo suggested switching from a tuple to a dictionary to make things more intuitive (if we even decide to keep this format) -ac97573 Well, now @most has one set of commands that it will run, but it required a big dictionary. -a55193e Added @most <popular|authored|recent> (RFE #829830) -6ea38ae Changed wordstats to use accessor ircdb.users.getUser instead of accessing the ircdb.users.users data structure directly. -adc9e05 Overhauled 'wordstats' to handle a plethora of argument combinations and wrote some naaaaaaaaasty tests to make sure they work as expected. -f051166 Added a "quotegrabs get" command to get quotegrabs by id -c746f94 Optimization to hostmaskPatternEqual. -a46476a Remove @url get. Add the snarfed url when replying with the tinyurl. Tests are updated accordingly. @random will display the corresponding tinyurl when someone decides on the display format -84bff2f @tiny should be specifying cmd=True when I call _getTinyUrl. That was the whole point of having a cmd parameter. -b14ee76 Added 'chanignores' command to list current channel ignores. -6de6fb8 Changed the initial value of threadsSpawned to 1. -1a4780b Added an addword test and fixed the wordstats failures. -5081016 Added some wordstats tests. -9e94295 Fixed possible raised KeyError. -5d45c92 Fixed the stupid DOM Element output, added test. -76ad289 Fixed the stupid DOM Element output, added test. -ed94dd4 Fixed freshmeat command, changed it to use xml.dom.minidom. Also removed example string. -ce212fa Fixed bug #835786 -- case insensitive now. -71791ab Added wordstats and whatnot. -c803edc Added substitution and fixed ' returns the same thing all the time' bug. -57e0e75 Finally caught Bug #835371. Also refactored the plugin and added some tests -09a64b7 Bastages changed the format of their page! (fixed a regexp for getStats) -f6c83b3 Fix insult so that it doesn't reply to the person that called it. Also fixed the instult tests so that the check the entire response, not just a regex -4a1a662 Add a better help description to identify -863aeb3 Only throw a recursion error if the command matches the alias name exactly -8b6783e Apparently NoRecurse only failed when the word for the alias was a subset of the command word. -8474b10 Made Relay not ignore, and added a check to Owner.doPrivmsg to make sure commands can't get called by ignored people (even if noIgnore is True on the plugin with the commands. -5f2f970 Test to make sure recursiveAlias only errors when the full word matches -1558635 Added an assert to verify that a toggle without a specified channel only toggles the value of the current channel and not the default toggle. -4d8e880 Fixed karma response in the case of absolutely no karma. -afa0cb8 Fixed bug in relay whois; chopping characters off the end of the channel rather than the beginning. -a456c5e Changed the name to URL. -d548447 Moved Karma off into its own plugin. -93f02aa Added curry to fix.py, converted some code to use it. -c1e9205 Stylistic update; there are things better than lambdas... -2875385 __parented some classes. -65e469b Removed crazy-buggy rate limiting stuff. -94e3726 Added a checkIgnored to Owner.doPrivmsg. -91b01f9 Reduced some lines to fewer than 80 characters. -b35501c Commented out a test that was causing several other failures. -3757892 Fixed bug in test suite. -8e45f35 Refactored a bit and allow 'pydoc copy'. -3f8c149 Fixed major bugz0rs with IrcSet and IrcDict. -6092ce4 Added the 'list' function, added code to prevent duplicate grabs being added to the database. -def70e1 Make different randomdates and randomints in the same string give different values add tests to make sure it happens -ff57e4b Made proper super calls. -944ef33 Fixed the reloading sets.Set bug more cleanly. -c362784 Added a comment regarding a current bug in @bugs and @rfes -aae6f52 Fixed bug with reloading of sets module. -33775ae First bit of quotegrab testing, just tests existing functionality. More tests to come when functionality is added. -be3e5e4 Changed magic numbers to variables. -5fb5241 Fixed a few bugs. -3fde50e Initial Checkin. -bc5529c Forgot to update the second call _disambiguate to the new interface. -66797de Changed the name of the quote command to get. -cc94948 Fixed greedniess of a few regexes and did some associated fixes. -bf12760 Added tinyurl stuff -6b4d03f Made it always default to src/ plugins unless explicitly overridden. -0de26af changed factoids to use irc.reply(..., action=True) instead of queueMsg -526c4c3 setdefault -> defaultproject defaultproject without a project name clears the default project cleanup bugs and rfes a little (although they aren't working in the case of 'bugs #'. must use 'bugs project #') -72e5543 Added support for more countries (should support all english-speaking countries) and added support for ebay.com/.*?/ws as opposed to just ebay.com/ws -96f299c Included plugins.standardSubstitute in factoids parsing now -68d36db Snarfer cleanups and toggle tests -d74a59a Cleaned up the snarfer -f27ba11 Added test to make sure reloading sets doesn't kill the subclasses of sets.Set (which may in the future not be subclasses of sets.Set. -077fcd8 Added logging of regexp cache size. -d816bc6 Added selfstats toggle; Fixed karma to be case-insensitive but case-preserving. -4d77ffc Added the ASPN Recipe snarfer (RFE #831028) and tests -5f55e2b Added a test for randomnick and fixed the bug it found. -e46e248 Added a few more tests, and one for the case-preservation characteristics of karma with multiple arguments. -31ef30d Changed the name of some variables ('whore' doesn't partse as 'who re{gexp}') and added tests. -0adde0c Use randint instead -d557443 Make Dunno use standardSubstitute -51f8010 Added $randomint -82d2d81 Fixed a bug where addFactoid wasn't splitting on the first "is" -1d1d7a8 Lots of changes to make it follow the format of a typical supybot plugin -fcd4919 Fix the snarfer re so that it does match extraneous text -15b18ed made karma case-insensitive -07ef648 Made the tests for callbacks.addressed more extensive. -4e48550 Forget to catch the actual exception instance in callCommand. -9e7a37e Test praise for good measure -d50d435 For some reason I was replacing the bot's name with the user's name -8c93488 Fixed Bug #833786 (spurious brackets not handled correctly). -ca8b17f Made join default to admin. -c3d7efa Fixed bug with reload not working with non-canonicalNames. -c318d5e Added the "action" command and associated tests. -9ddc7c7 Somehow messed this one up. -895ecf7 Fixed bug #832590. -b0fd3f5 Move ircutils.standardsubttext to plugins.standardSubstitute, make it do case insensitive replacement -06ce1bc Added change. -af32b12 Added some asserts to prevent bugs like we had earlier. -3f081ee Added some error checking to join and part. -bc6f4bd Converted to not use the new module but the types module instead. -8d04bdb Refactored some stuff to be a bit cleaner. -50c18a6 That's some ugly output there, buddy. -51c5d53 Added defaultplugin. -f4e4233 CanonicalNamed the toggles. -1280dbd Added test, fixed a bug it found. -288dc6c Changed repr to pprint.pformat. -8819240 Added a few commented-out debug printfs and set self.__class__.toggle instead of self.toggle. -47a9d24 Changed setconf to show what the value of the variable is if we don't give something to set it. -83e16b0 Fixed Google test. -29d20d2 Changed the color command to a toggle. -b14bc6e changed testEmptyNest a slight bit. -646e41b Changed the regexp for sfSnarfer to make it a little easier to read. -2ed2f6a Used the wrong variable in assertNoResponse. -138c87f Changed to a ChannelPluginTestCase. -58cf080 Fixed the nesting bug with testEval and testCalc. -e556e78 Moved ambiguous command handling to Owner; fixed handling of empty nested command. -0011fff Changed all %d's to %s's -e5e507f Added adminition against using %d. -afc74b9 Fix replacement of my/me not obeying word boundaries. Also created tests to ensure it stays fixed. -8cc9620 Fixed ordering by priority when requesting todos for a person (or self) -70be390 Add standard substitution function -bef71df Added a test to make sure I don't make that stupid mistake (not including "msg" in irc.error) in the same place again. -3b0276e Fixed a dumb dumb bug where I forgot to include the "msg" arg for irc.error -2a0687e Fixed AttributeError in seen. -2b68eb9 Make seen not error if it doesn't recognize the user. -50e1690 Added test for empty nested command. -afbf513 Changed not to use the deprecated new module. -08f5adf Ew, ugly SQL!plugins/Quotes.py -bfdbda6 Changed karma pluralization to use utils.pluralize() and fixed the tests to avoid erroring due to ambiguous commands for 'stats' (since 'User' is also loaded for the tests) -0400f02 Added the Toggleable.__init__'s and therefore the help commands -6d36432 Fixed __init__ and its error with instancemethods not having adjustable __doc__ strings. -535cdde Switched the togglesnarfers to the new Toggleable mixin -f0b8501 MoobotFactoids should be pretty dang close to finished now. Got the "_is_" syntax working just fine. -0c96bf7 Made replies all one message -cd42709 Made toggle require either #channel.op or admin capability. -5617dd6 Added some commented out tests in case we decide to change the interface of ToggleDictionary. -acd36c8 Added toggles for auto-{op,voice,halfop} -372d22e Fixed bugs in Toggleable. -4f67318 Added Toggleable mixin. -e49e5d0 Changes to ToggleDictionary. -2757f23 Added solaris to the list of supported operating systems for memory stats. -05f8d6a Added "todo change" and tests for it. -f9d97c9 Overhaul of Todo, somewhat. Made everyone's todos accessible by anyone, either by id or by username. Also, made it so todos are never deleted, just set to inactive. -2527f47 Punctuation ("?!") is now stripped from keys before insertion into the db -d174226 Added the ability to do hashed passwords. -8ae5984 Fix some typos I thought I had already committed -9825356 Cleaned up error message when exceptions are raised on loading the plugin module. -b63f217 Added a saltHash function. -80deb23 Fix for relay whois bug with the reporting of status on channels. -186239e Fixed an infinite loop problem in the new invalidCommand code. -a34589c Completed the removal of callbacks.Privmsg.doPrivmsg. -b5f7bec Gave up on responding with *all* the nonCommands in a message. -63c86ec Removed a test that was left over from the unified Dunno/MoobotFactoids module -0a34794 Small stylistic change and removed the returns from invalidCommand. -86a3746 Added a finished variable so we don't have to rely on return values from invalidCommand. -7703e3f Typo fixes. -ef4aed0 Just some slight style things (I'm committing because DannyB will be hacking on it later). -c2f179c Fixed some bugs and cleaned up the test suite. -084fe18 More MoobotFactoids/Dunno separation fun and fixes -3db33b5 Removed the replyWhenNotCommand machinery entirely. -b9fb362 Oops, not self.msg. -eaa1586 Made sure commaAndify raises TypeError when it's given lists of non-strings. -5750480 Forgot to set the prioirity appropriately. -9dc16ee Changed the most recent title test to use the proper URL. -e0f617a Beware the Dowloading! -faea5a5 Split out dunnos from MoobotFactoids (into Dunno.py) in anticipation of the invalidCommand infrastructure addition. -ad022a8 Added ToggleDictionary class and modified the tests to better model the specification -e03c65f Changed the whole handling of nonCommands and ambiguousCommands and whatnot. Now plugins can define an 'invalidCommand' method to be called on invalid commands. -114909f Fix a silly line-continuation error -7ae53ef Added loss to the plurals dictionary. -6e91113 plugins/Gameknot.py: Add replyPossibleBug string to 'page format' error src/conf.py: Fix a typo in replyPossibleBug string -d370c48 Fix a new bug where a person not having a 'seen' status wasn't properly trapped -ed44f00 Missed an 's' in there -61576fd Reworked the togglesnarfer stuff -1e4879d Reworked the togglesnarfer mechanism -8ff643d Added a test for a website that causes @title to break -fbb3702 plugins/Sourceforge.py: lots of cleanups to the code. Also changed how togglesnarfer works. test/test_Sourceforge.py: updated to follow the plugin changes -19f50ea Added test for toString output when a channel is specified. -206de8d Initial checkin; has test for ToggleDictionary. -5ace5a4 Some fixes to Poll, removed delete command, added example. -9caaf8f Loaded Misc in every test because that's just plain neceessary, what with replyWhenNotCommand and all. -f2ab257 Unloaded Misc before testing for no response. -c150567 Misc includes a version command and is now loaded by default, so I had to disambiguate the version test. -aab9d8a Made the output of gkstats a little prettier. -fc11ff4 Handle properly the case where no matching commands were found. -a1c911e Added the ability to see notes you've sent yourself. -ebcc9a3 Added the ability to see notes you've sent yourself. -fbd08fe Added the plugin name to the command if the command is abiguous. -7ba9a85 Test for gkstats Strike. -6077e28 Cosmetic change to a variable name. -0f45fe2 Fixed bug in testGreet. -218e53b Removed the die on the IRC object in relay disconnect because that makes all the plugins die. -3934930 Changed the way the plugin name is reported in help. -dd673bc Changed splitting on None to pull off the nick to splitting on ' '. -f83b2fb Fixed Added at: format again. -3538f2c Made outfilter channel-specific. -5ae13a9 Made the bot keep stats on himself. -fa5ac0a Fixed test to match new output. -5ddd26c Fixed a bugger in Misc.py. -a666edd Added RFE #827538 and fixed the help test. -42795d3 Removed the percentage thing, it's not entirely useful. -9320ad0 Long live unicode! :D -143448c Made sure plugins are sorted in error messages. -388da45 Fixed failure (used testHelp) and added an encoding so Python doesn't complain. -094bdee Fixed bug with commandsOnStart not being called unless they were already canonical names. -8d9eb27 Initial version of the Poll plugin. Still needs some work. (RFE #715810) -d85c8c5 Added plugin name to help output. -aa088ef Added memory reporting stuff to cpustats. -6acd477 Geezle peats, still didn't get the channel thing right. -df3602b Added another field (Submitted by) to the snarfer. Centralized the re options for the parsers -c9a6f88 Updated for the new assertError/assertHelp. -ff8159c Made only-syntax return without the parentheses. -83c0d34 Changed to match the new behavior of assertError. -80777b9 Added assertHelp to remedy the fact that help strings now count as errors. -f8da745 Updated to consider getting the help string an error in assertNotError and assertError. -af402fd Added a configuration option to show only syntax on ArgumentError. -660ba14 Fixed some failing test cases. -4422718 Converted ChannelsDictionary to use a PersistentDictionary. -7d960ca Added PersistentDictionary.flush. -b9434a2 Added PersistentDictionary. -fa589ac Fix for bug #829353; added a test for the remove command. -300004c Fix for bug #829300 -d54ec97 Fixed bug in CVS. -8229759 Added 'setpriority' and tests. -c1ee1b8 Cosmetic fixes. -051928e Added locked_by back ... to stay, now admin/owner people can lock/unlock factoids that they didn't create. So it'll be nice to be able to see just who locked a factoid of yours. -1b25a20 Made MoobotFactoids case insensitive, and added tests to make sure that case-insensitivity works. -f0574da Fixed the 'title' regexp to be non-greedy, in case there's a tag within the document itself. Also put a test for this (which will hopefully be a permanent link... not sure though) -aa05fc1 Made it so admins can unlock anyone's factoids. -68dd30c Made stats default to the name of the person asking. -6d9aea2 Missing conf import -85e863f Parse 'my' in @lart and @praise (Closes: RFE #828950) -aa09eb1 Forgot to set the probability for NO YUO -7fd9859 Switch irc.queueMsg to irc.reply -7e01b8a Convert irc.queueMsg(callbacks.reply to irc.reply -8b200ef Removed bug. -cbbc281 Changed an irc.queueMsg to irc.reply -d608f82 configure() was still adding 'load IMDB' to onStart instead of 'load Movies' -6cae1b5 Rewrote @insult and cleaned up the tests for all of FunDB so that they are more deterministic -dd40523 Added the note id to the response to sendnote. -589172a Removed the never-should-have-been-committed connect/disconnect commands. -f847208 Updated docstring for dispatchers slightly. -3944b00 Updated. -0ff6b89 Fixed a bug introduced with the utils.dqrepr'ing of channels. -2ab2afd Updated configure to be more descriptive about disabling progstats. -179f994 Added description of the separator in the channels question. -9ed6c5b Fixed missing backslash. -b3a95c3 Updated to reflect the change in name of the wizards. -600f2e6 Removed the Python-commented version of the LICENSE. -10c7b7c Made sure no messages longer than 512 bytes every leave the bot. -7bf4149 Fixed pluralization bug in info. -1168251 Removed shrinkList and privmsgPayload. -8914543 Made optional in convert. -65b87f8 Fixed bug in info; returned n+1 factoids when there were only n. -e255ef2 Made local plugins to be ordered before global plugins. -8a37860 As part of the renaming madness, removed any ^db prefix -c14decf Updated wording of the irc server port prompt -0b380f5 Add --id option to geekquote, make it always allow multiline quotes -de63973 Angle bracketed replyPossibleBug URL. -84690d5 Fixed escaping ValueError in soundex. -9a5cb77 Fixed escaping ValueError in soundex. -5c1fc01 Added optional argument to FunDB's excuse -f7caf3f Updated jeffk and lithp. -b03e561 Added configure() prompts to automatically disable the snarfer -1657339 Fixed some help strings. -e39a8c4 Improve the error messages returned in a few "except" blocks. -615ed5c Made sure the snarfer doesn't respond if there's no license key. -d60b3da Made error message better for dispatcher commands. -6cf0005 Put "prefixName=False" in a bunch of the irc.reply()s so that things like dunnos wouldn't look stupid. -6382e75 Forgot to import socket. -93f1949 Could have sworn I committed this already... turns on globbing by default (I think .. too lazy to diff and see if that's what changed) -89e5a4a The snarfer wasn't quite fixed. Should be fixed for good this time. Also added a test to make sure that a bad url isn't snarfed. -d55f5c4 Add snarfer toggle -0ea2f22 Made the environment slightly cleaner in PluginTestCase.setUp. -52bd330 Made the environment slightly cleaner in PluginTestCase.setUp. -f967783 Fix import as stuff, add URL snarfer, add test for URL snarfer -657df52 Fixed search to put the word between stars if it doesn't have any globbing metachacters. -1879f07 Slight code cleanup and catching of timed out connections. -8f6adf6 Add dberlin's friendlytoofriendly patch -dc9acab Improved the snarfer re and added the 'Buy It Now' price to the list of things which are snarfed. -f57aba4 test/test_Souceforge.py: Removed the commented out tests plugins/Sourceforge.py: Reverted the snarfer RE back to how it was, with a slight improvement. This should make it catch more URLs without having all the negative feedback the last RE produced. -f9bd4db Made the wizard and Relay.configure utils.dqrepr their channel names. -689c464 Made --from use ircutils.nickEqual. -9240ca8 Slight modification on exclaim. -4be5758 Brought BadWords up to the times. -13c10c8 Made outfilters stackable, added md5 and sha as outfilters. -e502432 Lowered the plugin's priority so it makes its decisisons about whether or not to relay something before anything else has gotten hold of the message. -d28b015 Added an apropos command. -e8284ca Fixed os.path lookups. -e189603 Fixed multiple-karma responses in the face of no results. -8ebef1e Commented out most of the https tests; made the regexp that the snarfer matches on much less complex so it would match a new URL that it didn't match before (and won't be so complex to maintain, to boot). -bd87b8b Eh, just some more error checking on a broken command. -9c2a812 Fixed bug in isNick. -f09928e Fixed RFE #827285. -0769c0a Added special handling to make sure reloading Misc doesn't kill MoobotFactoids. -be97120 Made the hostmask command default to providing the hostmask of the person asking giving the command if no nick is provided. -cad2269 Made ordering in PrivmsgCommandAndRegexp depend on the list of regexp-methods. -9cb41e6 Made ordering in PrivmsgCommandAndRegexp depend on the list of regexp-methods. -7a1130c Made it so only one method will be called, unless a plugin specifically declares a command to be alwaysCalled. -e298f33 Fixed problem with new.function. -232c634 Made to load Owner by default. -86b633c Fixed MoobotFactoids tests to jive with new "glob by default" behavior. -ec7644f Better message for failed assertNoResponse calls. -98a13e2 Fix multiline geekquotes -52d4767 Added a period to the invalid alias complaint. -388fae0 Made the snarfer remove the parentheses from a URL. -d472938 Made the ambiguous error message when multiple commands are ambiguous a little prettier. -3c4a53c Slightly changed the error message to make it sound better. -7d3d501 Added the Ebay plugin and tests -8521e23 Changed the name of the class to match the name of the plugin class -912fb78 Made the last test pass. -d470488 Fixed to accomodate changed plugin names ("MiscCommands" -> "Misc", e.g.) -4690740 Switch Sf back to Sourceforge due to a conversation I wasn't aware of where they reversed the naming-decision -d959f84 Got most of the dunno stuff in place. -a67748e Changed --id= to just in praise and lart. -69c2147 Fixed a small buggeeeeh where lart and praise work without a victim. -5b1026e Added --id= to praise and lart (RFE #827075) -71c7941 Modified the snarfer so that it recognizes sf.net URLs. Also updated the tests to check that functionality. -e4909c5 Switch the Sourceforge plugin name to Sf -d2b993d Fixed the tests to match the change in Debian command names -617b492 Doh!... again. Seems I left listconf in in the previous commit. -c67a3ea Fixed ambiguous error handling. -ec62689 Generalized the command names. -cc41299 Updated the wizard to specify which join it's using. -72402b9 Removed handling of ambiguous commands in IrcObjectProxy; Misc is the only place where it's to be handled. Also fixed bug that a dispatched command raising callbacks.ArgumentError results in the syntax for the dispatcher. -3ac622c Fixed a few bugs arising from the switch to generic names. -7593ac1 Fixed up wizard to match the new names of the src/ plugins. -79d455d Changed the default minimumPriority. -0c93c80 Updated to use more generic command names. -e767feb Updated to use generic command name and to require privilege for licensekey. -aee6579 Still catching remnants of the FileLookup switch. -15b6767 Made output in case of Ctrl-C prettier. -2175bd7 Oops, had one remaining ownercommands to deal with. -d8187d4 Removed the .py for eventual packaging in Debian. -baa9922 Sorted the names so they'd go in a predictable order. -ab2bea5 Changed the names of the src/ plugins. -8150a36 Moved to sandbox. -0349f7b Converted to use more generic command names. -c4b8388 Oops, didn't quite finish. -48737f2 Made command names more generic. -1037ade Changed to more generic command names. -907979b Changed command names to be more generic. -0f30bbc Fixed bug in MiscCommands.replyWhenNotCommand that it would respond to unhandled CTCP requests. -9ca4050 Changed to use more generic names. -5bae246 Made names more generic. -2b212bb Changed to use more generic names. -1bd48bf Changed names to be more generic/consistent. -3310e0c Converted to use generic command names. -62f371d Converted to use generic names. -26d41da Forgot to normalize in cases of type.method. -0da50a6 Added some actual Debian tests -1b1fe44 setconf can now list conf variables and tell which type they are. -776bad5 Fixed bug with pydoc logging.Logger. -e1eb6cf Fix for bug #826612. -4a8b627 Added the outfilter command, great fun. -ef4efab Forgot one password -> serverpassword change. -a73f4bd Doh! -33e6bf3 Removed the remainder of the Moobot plugin. -f1e915b Add new bugzilla module -ce88b05 Added @disablesfsnarfer and its test -f6088d5 Uncomment the urllib import Update the usage example Fixed a couple bugs in debversion regarding number of arguments -2117d66 Dropped an extraneous paren -281926b Updated the class names for the table rows -3beb83f Added cleanConfDir and cleanDataDir to PluginTestCase. -c8fd603 Added 'non-secret' to the 'isn't on any channels' response in relaywhois. -7180f8c Changed the name back to Lookup. -645302a Added handling for ambiguous commands to doPrivmsg. -3212ece Finished 'big change' to allow dispatching and stuff. -55ccb85 Removed the syntax command; changed interface of callbacks.findCallbackForCommand to return a list of the matching callbacks; fix help to handle the prefixing of the plugin name. -112303a Updated jeffk. -e12f69b Added conf.replyWithPrivateNotice and 'notice' command. -b02cdef Added the option to turn on stderr logging. -173f99c Updated jeffk. -4040b24 Oops, committed a failing test. -0ab3347 Updated ChannelDB to use user ids instead of usernames. -0b6c208 Fixed handling of callbacks.ArgumentError in PrivmsgCommandAndRegexp. -7815d2c Added code to make dataDir/logDir/confDir directories if they don't exist. -0409c4f Added an example. -05d8514 Moved FreeBSD to the sandbox. -2d56e72 Made pydoc accept methods on builtin classes. -e760320 Changed to use the repr of the last message. -c81170b Added a jeffk command. -1ddc519 Fixed bug in list, was using .startswith instead of == for the plugin name. -3fb2795 Moved the more useful Moobot commands to Fun. -eb31db6 Added memoization optimization to tokenize function. -68fd496 Added memoization optimization to tokenize function. -06cd9ae Added memoization optimization to tokenize function. -8fc200a Removed premature optimization of using the regexp to decide when to tokenize. We'll optimize when we have to, likely by making tokenize memoize. -ef7cd08 Fixed testHelp to control its own destiny. -53c37af Added an update to UptimesDB in __init__. -207ac96 Updated some tests somewhat. -c9e6f77 Restored the original conf.replyWhenNotCommand value on die(). -c75e124 Updated some tests. -fd39c59 Wasn't setting world.startedAt. -5a8714d Updated tests. -8e9f4fa Renamed to test_Fun.py. -621c920 The owner user password was shadowing the server password. Fixed. -2505376 Oops, typo. -1509219 Removed stuff about PyChecker. -7b8322d Changed the name back to News. -17e555c Changed the name back to Google. -ccad26f Added a more descriptive return message on KeyboardInterrupt. -b727890 Made sure the wizard doesn't allow bad prefixchars. -d21a99a Added stripping of prefix characters from help argument. -1eb2a38 Changed ChannelTopic back to Topic. -f57a523 Oops, forgot to update the privmsgs.thread. -7f05bcf Changed the Lookup plugin to be FileLookup instead. -4b4ae20 Changed the Dict plugin to Dictionary. -08fa5e0 Changed the name of the FunCommands to Fun. -86b60e0 Small stylistic/formatting changes. -487ac95 Fix for a few exceptions escaping, bug #826177 in partciular. -37b796a Oops, forgot an 'or'. -f917053 Didn't update nickmods to match conf.nickmods when Irc.reset is called, in case we're on a dumb network like Freenode. -e1d1343 Using utils.depluralize now instead of my previous hack -29a3264 Added more information to the snarfer and cleaned up the related tests. -aab016d Changed the name of the Google plugin to GoogleTools. -f92d03e Changed the name of the Topic plugin to ChannelTopic. -4928999 Changed the name of the Topic plugin to ChannelTopic. -84fc2b1 Changed the name of the News plugin to ChannelNews. -7ca4070 Changed the name of the IMDB plugin to Movies. -fa8fc4a Fix for bug #825749, improper relaying of relay of kicks. -9966fc7 Made Status update the uptimes database on every message. -e69d8a1 Added some tests to catch an re m// bug -2221ace Hopefully fixed bug with empty word to define. -edab9e5 Added a scramble command and accompanying tests. -4c8bb93 Changed bug to reportbug. -6e728e7 Improve the snarfer re so that index.php is not required -3dac2d9 Escape the .'s in the urls for the snarfer -a2c6084 Replaced the old-style irc.queuemsg with newer irc.error -5ff7093 Oops, forgot the docstring. -2ffe5a1 Added depluralize function and fixed latent (untested) capitalization buggerishness. -121be3d Made the constructor take dictionaries. -f392696 Added TwoWayDictionary. -b2dd349 Fixed all the #! lines to be consistent and a couple formatting issues with the copyright -a6ddd48 Fixed the order of arguments on debversion and made it only do one package at a time. -1e00aab Updated. -d307421 Added QUIT statkeeping. -422bc27 Updated. -683ba63 Fixed bug in IrcState.copy -- it wasn't doing deep copies. -ee24acc Fixed bug in default argument for IrcMsg.__init__ -- args should default to (), not None. -b6185c4 Fixed problems with cpustats on Windows; at least now an error is reported. -c40f5e6 Fixed problems with cpustats on Windows; at least now an error is reported. -d6faad6 Added server reporting to the Relay.relaywhois command. -3c676f8 Removed the OwnerCommands.say command; it wasn't useful enough. -06a45ff Eh, just made the formatting of assertActionRegexp different. -889e99c Fixed an invalid irc.error in the part command. -2ddb080 * added assertActionRegexp (semi-tested, not thoroughly tested) -a63ee1e * Decided to ditch the "_is_" syntax. I never liked it and implementing it may prove to be difficult here. It may find its way back in, but there's no point in having it in there now when it doesn't work right anyway. -aee5c6c * Finished up MoobotFactoids, I think. Added delete, augmentFactoids (foo is also bar), and replaceFactoids (no foo is bar), as well as cleaning up some of the regexps that were there (we allow spaces in the factoids, dummy!), and also made the addFactoids regexp more accomodating to other phrases with the word "is" in them :) Also, updated the tests for it, of course. -ea024de * Fixed some quoting issues in list*. Adopted the practice of repr()'ing all factoid keys before displaying them (idea stolen from searchfactoids in Factoids). Also fixed them in the tests as well as adding a test to insure that it's done right. * Added the listkeys and listvalues commands. -fafa016 Add some more tests to verify the depluralization efforts. Also split the http and https snarfer tests into seperate functions. -a428c6f Add slightly better handling of de-pluralization -ddfd7e1 * LOTS of updates to the MoobotFactoids test suite, parts of which aren't ready yet, but the test targets should be pretty static from here on out, except adding new tests. * Fixed up lock and coded unlock in MoobotFactoids (actually, factored the common code out into one helper function that each call). * Added the changeFactoids (=~) portion. * Changed the table structure again (should be the last time). Locked_by was redundant if we're only going to let factoid creators lock/unlock. Removed it. -f567f36 Fixed a bug with debfile so that it doesn't error out when there are no arguments -1a51ced Added support for environment variables in pathnames. -63135c4 Removed a debugging print. -ba9e9f4 Max out the recorded uptimes at 50. -f987a6e Removed several instances where it would raise exceptions the message after parting a channel. -bd7f1f9 Fixed the snarfer to allow https links. -b6fb71d Added one minor thing so *all* unexpired news items aren't shown. -5be65f1 Added changenews and oldnews. -ed3d757 Made perlReToPythonRe always raise a ValueError instead of re.error. -388e171 Oops, left some debugging prints in. -0ac86a7 Made sure ChannelPluginTestCase only reworks the message if its command is PRIVMSG. -6476e63 Added an unban command. -db720ce Added verbose command line option. -1edbaab Removed a comment. -6712760 Added test to make sure MODEs came before PRIVMSGs. -50d777e Added test to make sure unban worked. -0385b71 Updated. -cb4b357 Fixed timeouts. -41f1cdd * Fixed INSERT query in addFactoids to mirror the changes made in the table structure a few revisions back (oops) -27796b0 * Updating MoobotFactoids tests to include more tests (testGetFactoid) -cabfab3 Only swap the background color of the td if we know for sure that we are going to be displaying one. Fixes the problem of blocks of tds that are all the same color. -0064748 Whoa, that was some old code -- written before IrcMsg had an __len__, apparently. -79ea3b1 Moved bestuptime over to the Status plugin. -e4c64ec Made *everything* case-insensitive. -76c4b7e Converted the Irc class to use IrcCommandDispatcher. -b515336 Added commented-out test for log with multiple arguments. -66d0198 Minor changes. -b692681 Found bug in utils.sortBy, mentioned by Tim Peters on Python-dev. Fixed, and tested. -2bb8f95 Updated. -8e37d2a Made loadPluginModule case-insensitive. -56016de Added more information to the load help. -8fd6a09 Made the help for wtf more descriptive. -cfb4a0b Added assertAction to PluginTestCase. -6150a21 Added an assert to unAction. -aa1b992 Added error reporting to regexp-based callCommands. -a5042e2 Oops, debug.reset opens all the fds into the same file! -3ae8136 * adding MoobotFactoids stuff as per jemfinch's request - though it's not quite done yet -578eac1 Updated. -90717d2 Updated. -f706191 Added test for rpn 2 degrees and fixed rpn to pass it. -33cd4aa Updated. -1d5dfa0 Added an optional key argument to cycle. -6c3e193 Fixed bug found by G-LiTe and added a test. -68a84e1 Changed date from 2002 to 2003. -a0fe541 Fixed bug in perlReToReplacer where escaped slashes would stay in the output. -367569f Updated. -a1dc346 Moved setting of debug variables earlier so nothing would print when debug.stderr is false. -9eff6d9 Removed/commented out some debug.printfs. -697b7d5 Added a necessary global statement to allow bolding. -9d30ca3 Removed stuff about PyChecker. -84f931b Lots of pylint cleanups -2acf59d Added a urlsnarfer and the appropriate tests -c202848 Lots of cleanups. Added a generic _formatResp that works with both bugs and rfes. Renamed _*Opts and _{bug,rfe}Re so that they can be used with both bugs and rfes (since they're the same for both cases). Bolded the description when requesting a single bug/rfe. -eb2db79 Fixed error messages in timeout cases to be more understandable, and added platform-independence in the -e option. -aabe07e Stupid me forgot to import sets. -7f4e457 Changed a slash to a backslash. -22fb0ec Added a note for Windows Users about the placement of supybot-wizard.py. -f8377f0 Updated. -9988f9d Baseplugins -> plugins update. -5c1ecc2 Better error messages in addAlias. -4cb7c18 Fixed tests for all; added additional test cases for the empty sequence. -da7e321 Updated. -f41a802 Removed possible double-listing of plugins in getPlugins(). -2140a8a Fixed bug in test for variable. -7528215 Fixed handling of secure flag by IrcUser.setAuth. -6406e29 Updated. -eb01a8e Removed pi -> 3.14 capability. -5e3c5fc Faster implementations for all/any. -701380d Updated version. -d6057cb Updated. -e9bcf8a Should've been removed a long time ago. -6fa0ef0 Cleaned up the usage example -3c5978a Added the Sourceforge plugin (which has the commands: bugs and rfes) and the accompanying tests -ecbdb0b Made the bot not relay his own TOPIC messages. -48f71bb Made to relay topic changes. -7fe7c03 Removed the whole dealio with PRINTF and whatnot. -9f2352f * Fixed searchtodo * Wrote tests for Todo.py -1e8de55 Fixed bug where factoids would raise a DatabaseError when there were no arguments given. -d9d141a * Added the most horribly named command ever - utils.ellipsisify -88f33ed Added test for ellipsisify. -5793283 Tyop. -816d59b Don't bother with the questions about the info alias. No one cares. -2afb4ef Fix for bug #820810: Don't ask to load Alias if Alias is already loaded. -5d24cbd Changed channel from #sourcereview to #supybot. -bc3ec9f Fixed pluralization bug in stats command. -18a8f81 Fixed bug in list where _exec would show. -b7f4cbe Added fix for msvcrt.heapmin not working in Windows 9x. -8df7fb6 Added timeout and plugindir options. -30b054c Fixed several bugs and added a test to make sure they don't happen again. -155aeeb Added dccIP and unDccIP. -fc24f3d Made seen case-insensitive. -7973dc8 Fixed bug #820259, where he was killing himself if his nick didn't exactly match in case. -8eed3f0 Stupid __eq__ not being used in __ne__... -ce0002f Made IrcString more efficient/better, added a test for it. -2f8b537 Updated. -aee2b15 Fixed to handle secure flag properly. -7b28cab Converted karma stuff to use addressedRegexps. -aa7efcb Fix for some bad tests; added support, fixed a long-latent bug that I thought was being tested for but wasn't. -b637309 Added a simple test. -7943351 Added a missing commit. -e96c135 Added addressedRegexps set to PrivmsgCommandAndRegexp. -d376476 Added karma tests. -657db2c Changed the uses of queue to a smallqueue. -ae61e17 Added reset() to smallqueue. -b0f5674 Fixed bug #820262. -e903411 Forgot a parenthese. -4b0ecc9 Changed __all__ to the empty list so people won't misuse fix.py. -1065149 Fixed Debian to use fix functions appropriately :) -d1bc7d4 Fixed bug in supybot-wizard; exception was being raised when modules with no configure function were added. -8eaf73a Made sure profiling data is logged to a file. -18d52f8 Needed to import fix and call fix.rsplit instead of utils.rsplit -0d8ef3e Tests for the whatis functionality. -b719ab6 Fixed bug in looking up specific factoids. -206e14f Oops, didn't check to see if the file was there before stat'ing it. -8b7b4d9 Added wildcard support, as per RFE #817309 -5275742 Made sure debug.PRINTF was True. -2fb9273 Fix for RFE #818993, smarter PeriodicFileDownloader. -f28bed5 Fixed bug in relaywhois response. -e0184c5 Added some more error-checking to the addAlias method. -28fb603 Added some more error-checking to the addAlias method. -1099ca0 Changed whois to internic. -e25f065 Fixed MiscCommands.doPrivmsg to use an IrcObjectProxy when sending stuff to replyWhenNotCommand. -f93b1e3 Optparsified, and added the -e option to exclude certain tests. -1c96752 Changed the pass statements to 'raise NotImplementedError' statements so the new changenews test would error out more quickly. -9f2d619 Changed the pass statements to 'raise NotImplementedError' statements so the new changenews test would error out more quickly. -c5a7573 * First version of the Todo plugin, simple but functional enough for the most simple of uses. -de5202c Bugfix. -8fba4a8 * Fixed a little buglet in the debversion output where the "Shown" count would be incorrect for any time nothing was found. -1a594b6 Use ircutils.nickEqual instead of ==. -1e28e4f Changed msg.prefix to msg.nick in the self.chanserv comparison. -9e0ab0e *Trying*, as hard as possible, to be nice to Windows. -b1977a1 Can't use ChannelDB, it requires SQLite. So we'll use Gameknot. -6bbbede Ugh, Windows. -0c303de Being even nicer to Windows. -0f350ee Removed, since they're practically useless. No one's going to write their own conf files by hand. -b1495a1 Added a docstring. -1fa9f79 Changes to be nice to Windows. -6107000 Slight formatting changes and whatnot. -c32a207 Updated to allow flags to be specified in assert{Not}Regexp, and to default to use re.I. -a79674c Updates. -d83cc90 Slightly changed the format of cmdstats. -498682d Changes to be nice to Windows. -d3a9a46 Changed email addy. -59977f7 Initial checkin. -7399537 Updates. -2a727d2 Updates. -ef51751 Removed star imports. -ec0de64 Changed baseplugin not to require 'from baseplugin import *' because fix is now munging builtins. -0a46f90 Renamed baseplugin to plugins. -970c819 Changed fix.py to munge __builtins__ rather than requiring a "from fix import *" statement. -5576661 Forgot the example. -6320511 Added a few more asserts to *SetTestCase.testReprEval. -9fe8ed1 Forgot an import. -8ef808a Some bugs were being shadowed for some reason, and there were bugs in the handling of the owner privilege that hadn't been found because those tests had been shadowed. -d5c4b15 Forgot an import. -66fc538 Changed the anti-capability prefix to - instead of !. -cb7ffa4 Changed another error to reply. -2fd902c Forgot sweede, dude! -fee74e9 Moved some stuff to the __main__ part to make sure it's called only once. -2cd657c Made sure ChannelDBHandler is before callbacks.Privmsg* in the inheritance order so self.die() is ChannelDBHandler's and not callbacks.Privmsg*. -151657f Changed an error to a reply. -5025f20 Broke reset up into two component functions which will have to be called separately to fix testing in Windows, I'm sure. -e5525cd Incremented version number and added two docstrings. -bbf367f Added __all__. -606ac05 Added docstring, imports. -6eff484 Slight indentation fix. -9ef4ea2 Forgot some imports. -d0c7d47 Some slight regexp updates. -84b7454 Forgot sets import. -4b228c9 Initial checkin. -93cc17a Updated to make sure the test doesn't run if sqlite isn't installed. -3af3b4c __all__'ed baseplugin.py, updated other plugins to reflect that. -53c6542 Added docstrings and removed an unused import. -69493eb Added docstrings. -d4ba047 Added smallqueue class. -0ffaa5d Removed some useless imports. -72af23b Added docstrings, removed ny. -325e751 Added a docstring and doctested nItems. -18a8725 Fixed a latent UnboundLocalError in setsecure. -5de5a56 Minor stylistic updates. -8046f76 Forgot two imports for the bug command. -6ad95c5 Added docstrings. -6bd138c Added docstrings. -d079777 Deleted a few variables that shouldn't have been exported. -1a07e42 Added module docstring. -2db6584 Extra docstrings, and indentation problem fixed. -43e41f4 Minor updates. -71fcfb8 Deleted a few variables that shouldn't have been exported. -f580738 Removed unused import atexit. -9053310 Added docstrings. -b9d265c Added docstrings, removed some unused methods. -6261036 Added docstrings, fixed some weird indentation. -c1a2f1b Added docstrings. -5b5f8a1 Added docstrings. -8d62020 Added lots of docstrings. -bc195a6 Added a whole lot of docstrings and such. -8134584 Converted to use callbacks.findCallbackForCommand. -195dc20 Made quotes.randomquote simple dispatch to a quote with a --id option. -9543859 Changed searchfactoids to default to a glob search; --regexp and --exact searches work with specific options. -bbbc97c Added fix for possible bug in re.finditer. -9f24c13 Moved the list of commands from cmdstats to the commands command. -46ebfce Fixed ambiguous error message when some other module is causing the import error. -4a45951 Fixed stupidity with printf (boolean) and printf (function). Changed the boolean printf to PRINTF. -3be0c26 Syntax still said --url instead of --fancy. -5f15fd8 Removed the cvsup command, useless with global installs. -d6f5bd3 Made register command guard against people with matching hostmasks trying to register again. -3d99059 Fix for escaping ValueError from ircdb.checkCapability. -046be17 Added unum subpackage (and unum.units). -12e5658 Added unum subpackage. -baf5da1 Added 'private' command, to reply in private. -1e8f8f6 Updated testConvert for the new output format. -b100ceb Updated example string. -29825d7 Forgot to update help for the new indexing. -1e64fad Fixed replyNoCapability messages to be in private. -36984d3 Added RFE #801859: no-hostmask (secure) option for users. -9cbc766 Fixed to kill bold much more accurately. -81e1c09 Updated debfile to default to glob, but allow regexp and exact options. -d52c8b9 Test for multiple regexp matching. -cbc109a Getoptified debincoming. -ff2e043 Added docstring for rsplit. -ff6fdf0 Added convert and units command. -41bacab Accepted RFE #812257: Multiple regexp matches in one message. -cecb130 Added disablegooglesnarfer command to disable the snarfer. -4bda1fc Bug fixes for .so modules. -ac78a1c Stylistic changes. -88b3d63 Made to index from 1 instead of 0. -4eaec74 Made to index from 1 instead of 0. -746e292 Made to index from 1 instead of 0. -a8d7de2 Made indexing start from 1 instead of 0. -747b20d Moved from scripts/plugin-documentation.py -f1e1589 Optparsified. -eb3be4c Optparsified. -fd22981 Made it not raise an exception when Ctrl-C'ed. -6fdde22 Added filename option for specifying what users.conf file to use. -76febf4 Optparsified. -da38a7b Changed minimumDebugPriority to minimumPriority (since it's set in the debug module now anyway). -898a4e2 Added an assert to banmask. -32eb85e Fix for KeyError escaping from stats. -de7da5a Fixed --user to actually work. -3d0bc9f Moved the bug command to AdminCommands to reduce abuse. -4fc4df9 Forgot to update the test for the new seen behavior. -dcffc5d Minor change: names -> nicks in @seen help. -0e0dad2 Added additional help for karma command. -f9a7bf0 getopt-ified seen to use nicks by default and users only if given the --user option. -3891360 Changed irclib.Channel to irclib.ChannelState. -2ea1052 Forgot to update this test based on the move of cpustats to the Status plugin. -538a262 Moved {zen,pydoc} to the Python plugin and {whois,dns} to the Network plugin. -1c2a090 Added NICK to high priority messages but not PASS. Baaad. -f843450 Fix for bug #815242, pydoc fnmatch.fnmatch fails. -2821527 Made NICK a high priority message. -5627f63 Updated the Amazon Web Services URL -bc5ec5d Fix for recent discovery that some misconfigured servers will send 422 instead of 376. -d013623 Added fix for servers with a missing MOTD file. -a714fce Fixed cmdstats to make sure only canonicalNames get in. -b9a81a3 Added 'individual' to commands processed. -8b04e1c Added cmdstats command. -ce3043a Initial checkin. -b5c5262 Added ~ handling to getDirectoryName. -4ccd229 Added ~ handling to getDirectoryName. -df1a269 Added a bit more error checking in the case of bad arguments. -31d4189 Typo: you -> to. -dba6ae9 Made addlookup ignore comment lines (designated by initial '#'). -2da90c9 Guarded IrcState.doMode to work only with channels. -6169822 Guarded IrcState.doMode to work only with channels. -1410d1a Added the ability to handle multiple karma items in one request, like Moobot. -20107fb Updated for the 0.72.0 release. -d88b7e9 Added a check to template.py that makes sure it doesn't run as root. -29fd291 Cleanup of debincoming (also made sure to thread it). -1470d80 Oops, said before instead of after, duplicating a question. -2b6eb66 Fix for bug #813150. -14459d0 Commented out new.function stuff for later when new.function actually works. -d0f9e11 Fix for bug #814149, bad error message in relaywhois. -a91c55a Updated to use checkChannelCapability. -6429a00 Made sure to reset the debug file descriptors; fixed logfilesize test. -f6ccc12 Added debug.reset, necessary for helping out testing. -0843710 More complete tests. -6e23e1d Made sure ChannelPluginTestCase actually joined the channel in setUp. -fe4af22 Added op/halfop/voice handling in IrcState. -8e45ffc added debincoming command -9f8db6e fixed string formatting in final output -b71787b * Added a required per-channel news capability * Fixed tests (syntax error, tabs/spaces) * Updated addnews to use new persistent userids -2682670 Added test for the recent bug fixed in addressed. -31b1aba Forgot to change an IndexError to a ValueError. -60c0054 Fixed Strike's bug: angryman^^^^^: list would elicit a response from angryman. -d7812d7 Added a note in the helps for commands that accept passwords that they must be sent privately if they include a password. Also, one command wouldn't return conf.requiresPrivacy if it was sent in a channel with a password; that's been fixed. -6904309 Oops, forgot to not set minimumDebugPriority if it's the empty string. -359ad14 Updated for the help/morehelp -> syntax/help conversion. -407ac34 Fix for RFE #811970, generalized not a command response. -b1f0cb6 Removed a gratuitous world.ircs.remove, probably fixing bug #801438. -c3e9c38 Changed @help to @syntax, @morehelp to @help, and changed the output of @morehelp to be prettier. -6061513 Fix for minor lack of period, and update to not limit own results (now we have more :)) -923a38b Fix for RFE #811853, and fix for bug where @voice would actually try to give halfops (good thing no one ever found that :)) -ad78a34 Fixed bug in the test. -873fbe2 Oops, removed a not-so-extra non-blank line. -12e9e03 Removed an extra blank line. -d3a21e2 Added an example string. -d9ebb5e Made the template have a hole for the python interpreter, to be filled in with the one the script is called with. -2c8dee3 Fix for configure bug. -949f744 Added a debugVariables hole in the template so we can set debug variables. -757f1aa Fixes to expect, some to the way it wraps, etc. -eadc1bc Various fixes. -eeccf84 Changed some quotes so emacs would syntax-highlight properly. -343fd76 Removed unused variable. -707b55a Oops, forgot to change the last string. -0f3f152 Added test for the Python version so people could understand when their bot wouldn't run. Now it won't even install :) -4a6dd97 Fix for bug #812099. -6690b08 Changed the name of the generated file and made sure to os.chmod it if we can. -1e736dc Various minor fixes. -a51deb2 Remove OwnerCommands from the list of plugins and made the output for configuring plugins a little bit nicer. -6928a3a Fixed an uncaught exception in Lookup.configure. -38aad75 Forgot to from fix import *. -67d0e2f Forgot to map to strings. -06be2a6 Used a single-quote when I should've been using triple quotes. -e4eafb9 Updated for distutils and added supybot- prefix to prevent confusion with normal commands. -5d31e2a Moved to tools. -a13c8ab Removed the old sys.path-munging code now that we're disutil'ed. -0bbaa4a Updated template for the new distutils install and gave it the ability to run on its own. -d97698d Missing a return. -474e611 Initial checkin of the distutils stuff. -351b2e6 Moved such functionality to supybot-wizard.py. -84ccdc2 Moved to tools/, since that's what they are. -01ee116 Forgot to return after an irc.error. -309a5df Updated. -b41d953 Initial checkin. -b0600cb Added supybot- prefix to make them distinguishable from real commands in a global install. -9a83f90 Removed, old files. -f08bc70 Removed, old file. -1c86e6f Removed shrink command since it's mostly unnecessary since we got the mores. -05eddc7 Fixed to use the proper irc.reply arguments instead of callbacks.reply. -12d707a Updated IrcObjectProxyRegexp.reply to match the interface of IrcObjectProxy.reply. -23453ef Made the game snarfer not prefix the response with the the nick. -bb9c956 Made sure there were no problems in __call__ if it wasn't started. -06e2e05 Added some guards for self.started to make sure certain commands aren't run before the plugin is started. -fcab1a3 Added a try/finally statement like ChannelLogger just got. -3f78522 Made sure the error message is correct when a user tries to removeCapability something that isn't there. -b50a01d Made sure IrcUser.removeCapability raises KeyError on capabilities the user doesn't have. -b1654bd Oops, accidentally committed a tyop in a comment. -a6d7177 Added a try/finally statement to the addMsg in __call__ so lastMsg will still get updated if it raises an exception. -20e5bdb Added a try/finally statement to the addMsg in __call__ so lastMsg will still get updated if it raises an exception. -6084d00 Added __slots__ to IrcDict and IrcSet for optimization purposes. -7081d64 Added test for IrcSet. -e4143b4 Added a bit to the morehelp for calc to explain floating point inaccuracies. -fa11153 Removed possible UnboundLocalError that would (a) crash the bot, and (b) never be reported. -14f008d Made debug.py make conf.logDir if it doesn't exist. -d57c173 Tiny update to the lithp command. -b4b2b2b Added --with option to quote command. -e40183f Fixed stupid verisign bug. -3e28059 Fixed bug in genre pluralization. -644eb1c Removed inapplicable comment. -015bb9e Fixed bug in addPeriodicEvent with a name. -8680d46 Miscommunication between callbacks.py and MiscCommands.py over what the boolean in Privmsg._mores meant. -f325de3 Thought of a bug, wrote a test, discovered it was a bug, fixed it. -29d297a Oops, missed something that should've been in the test case. -b1b0040 Changed inFilter to __call__, since it doesn't do any filtering. -41d3039 Removed some debugging stuff that never should've been committed. -9092fb7 Fixed bug with lines not ending in \n because of the optimization added earlier, storing the original string form as originally received. -d39475b Made sure PluginDocumentation didn't check PrivmsgRegexp instances. -d2eff8f RFE #810366: --private option to MiscCommands.list. -3a329b0 Added the uptimeEnder to world.flushers instead of just running it atexit. -a1da1ba Made IrcObjectProxy.error respect conf.errorReplyPrivate. -babe4cc Added documentation for the interface to the IrcMsg class. -e75b928 Fixed bug with channel capabilities for channels with . in their name. -1ac029a Added rsplit function. -cae8905 RFE #807340: OwnerCommands command for setting conf variables. -f137b21 Added extra logging to Enforcer in the case where it's not started. -90d1a55 Had an addCapability where I should've had a removeCapability. -fd568a7 Made echo not prefixName. -f13aa41 Added error reporting for unmet capability checks. -d685435 Added error reporting for unmet capability checks. -287c902 Forgot a return after an irc.error. -a02282c Changed how logging through the debug module is handled. -1ad12d2 Fixed an oversight. -76cb2a0 Added test for behavior. -f4d7b28 Added test for unregister. -ce293a3 Added second test of 433 response. -4ab9dc7 Added changeusername command and fixed the framework so tests could run. -476ef32 Changed conf.py to remove some useless files (rawlogfile and ignoresfile weren't used) and changed ircdb to do the os.path.join itself. -3af8f1c Added private and action keywords to IrcObjectProxy.reply and converted FunDB to use them. -0a2539c Fixed bug where ChannelPluginTestCase would try to chop off the first word of an ACTION. -40de833 Converted test framework to use the new functions in OwnerCommands. -ab302e5 Oops, left a random.choice with the arguments of a random.shuffle. -a16bb77 Extracted loadPlugin{Module,Class} behavior into separate functions that can be exported to all modules. -a765308 Extracted loadPlugin{Module,Class} behavior into separate functions that can be exported to all modules. -411289e Made privmsgs wrappers stackable. -fad77c9 Forgot to change a topicget to a gettopic. -d227111 Added privmsgs.name, privmsgs.channel, and privmsgs.checkChannelCapability. Converted the Topic plugin to use some of them. -fd1aacb Fixed snarfer for drawn games. -70b80f0 Added configuration variable to determine whether pipe syntax is accepted. -1c99146 Added some try/finallies to make sure replyWhenNotCommand always got reset properly. -41339e8 Added an exception for malformed IRC messages and a little more error checking to the string parsing for IrcMsgs. -5ace516 Reworked some callCommand stuff to centralize some code. -457de48 Made sure no information is leaked with last being able to return private messages. -71bba5d I was setting the prefix for the message to be added to the IrcState object, but I don't know why. We'll find out soon enough. -288f617 Fixed a bug in the handling of the msg keyword argument in IrcMsg. -e02589c Added small optimization. -bd80036 Made sure to canonicalName the capabilities that are added. -2bc60c9 Added some stuff, though it still needs much more. -3016b98 setdefaultcapability and unsetdefaultcapability were behind the times. -b95985c dbchange now updates the added_by field -292bb25 Removed requested_by and use_count from {lart,excuse,insult,praise} tables -9ed2dcb Fixed bug #807245, changetopic reorders topics. -7719b8d Fixed a couple typos in dbinfo -32b0b65 plugins/FunDB.py: added support for dbchange test/test_FunDB.py: added testing for dbchange -aee02dd Fix for jamessan's bug. -e368e90 Um, yeah...strings are immutable in Python. I should know that. -66b64bd Oops, forgot to remove this before committing :) -1abddef Added upgrade script to upgrade old botscripts to the new template. -35e7d40 Reorgnized template in preparation for the upgrade script. -148746c Make sure it doesn't allow plugins that don't start with a capital. -467688d A bit of cleanup work, mostly on the python zegrep portion of debfile -6c898a8 * Initial import of DocBook conversions of documentation -894b213 Fixed typos and grammar errors -679b8fb Fixed output in the face of a single responding dictionary. -3da65af * Beginnings of news stuff, yay -feb8538 Made usernames case-insensitive. -df9ce1b Added note about examples/Random.py. -24e26dc Updated EXAMPLE, finally :) -2d0671b Changed delhostmask to removehostmask and fixed a bug. -0293a2b Fixed bug in addhostmask. -e729b43 Updated for the new ircdb.users. -644fd69 Changed random.sample(seq, 1)[0] to random.choice. Completely forgot the name of the choice function. -b497acb Removed the URL from the snarfer output. -7be6ce5 Forgot to convert back to the one-name system. -3616399 Added documentation. -9e042c5 Added reconf command. -9f51a69 Moved calc and rpn from FunCommands to the new Math plugin. -b34b6ef Fixed to use the proper nick. -d2ec31c Fixed bug in removeAlias that it wouldn't clear the frozen set. -c232a31 Converted to match the new ircdb stuff. -a5199c7 Updated for the new users.conf format. -8cdb3dd Added support for bulk plugin addition. -9c7b851 Added RFE #805372, question about usage examples. -e31d2d8 Added unregister command. -358533b Removed deepthought command now that we have a supyfact for it. -caa099d Added RFE #804955, lookup should return a random key: value if not given an argument. -fb60da1 Added ability to specify optional arguments in aliases with @\d+. -5a15783 Made sure chanop capability supercedes everything else. -d3a8168 Made sure the default plugins aren't listed in the plugins list. -2e82a85 Added hostmask command. -92369c6 Changed logging of ignorance in PrivmsgRegexp. -41d266f Updated ircdb to have persistent user ids. -a0e0ca2 Forgot to check if conf.replyWhenNotCommand is True before deciding not to respond if there's a non-command in the dealio. -417c1f3 Added a 'from fix import *' -fac2343 Switch whoami to use conf.replyNotRegistered -f524ec0 plugins/Quotes.py: addquote now announces the id of the new quote test/test_Quotes.py: updated to reflect change in plugin -91274d3 addquote now returns the number id of the quote that was added, i.e. Quote #4 added -0aa448b Added keyword option And to commaAndify to allow specifying a word other than 'and' as the last separator. -a169b64 Registered upkeep with atexit. -da8ee2a Fixed bug where the bot would respond with 'there is no such command' if it wasn't the canonical name. -407da29 Made more help a little clearer. -0041814 Forgot to handle the case where there wasn't any command in morehelp. -47ea9b8 * Fixed Debian's debfile command to work properly -9eb08fa Removed length restriction from deepthought. -7dfeb8d Added necessary imports to configure. -60dc669 Added special handling in the case where the bot is kicked from the channel. -bafc23f Added configure questions. -e6556ec Removed zipcode stuff. -74a9964 Updated PrivmsgCommandAndRegexp to also sort its regexps by their method name. -99f88bd Added DCC CHAT support. -ab88ee0 Fixed bug where he'd reply that a command didn't match when regexp methods matched. -ec1e60b Updated test to reflect new msg.nick != irc.nick guard in doPrivmsg. -77ff4f8 Help updates, updates for metagoogle, and a change in bolding. -7605f65 Initial checkin. -273e4a7 Added removeAlias method for easy access from within other plugins. -dca6951 Extracted alias-adding functionality out into a function usable from within other plugins. -30bedeb Oops, broke something, and didn't fix anything. -7dfdef7 Made the bot not respond to himself when he gets something that's not a command. -335addc Had to move baseplugin.py to src/ for supporting multiple plugin directories. -d46f649 Made --url into --fancy and made simple URL responses the default. -176b9b3 Fix for RFE #801934: Response in case of non-commands. -ffefdf1 Added new pipe syntax to check for recursive aliases. -e0fae30 Now allow multiple plugin directories, RFE #802614. -73986cb Fixed new assert in testTitle. -ecc820a Fixe for bug with titles that spread across lines. -f95a804 Changed asserts to show the repr() if they fail. -580edc3 Added a commit to doPrivmsg. -949deee Added RFE #802856, so regexps aren't required by searchfactoids. -073040d Fixed bug #802804 about the bad appearance of [not an acronym]. -d68c426 Fixed bug #802801 about calc exposing too ugly error messages. Added tests. -9bca5d9 Fixed bug #802826, --safe wouldn't work. -6716483 Added version check to the template. -e386518 Fixed escaping KeyError and added test. -2719812 Fixed bug with ACTIONs and added test. -8e44660 Forgot to change the --url results based on now getting the id from the database. -071f391 Most IrcMsg.__hash__ were returning 0, because I was using & instead of ^ -cec0f77 Changed unlearn to forget. -3625d98 Removed extra dot.. -0c3e75b Added #id to lasturl. -61a0142 Added functionality to protect private commands from being @more , and fixed the fact that it doesn't work across the Relay. -89d5f7a Make sure the urllib2 file gets closed properly in pgpkey -cc07bc1 Switched pgpkey from using .read() to .readline() since there's possibly a large amount of results. -b00743c Changed tests to work with new name for unlearn (forget) -d9e3a19 Removed the trailing ' :: ' from pgpkey -ecdcc63 Switched a couple error messages to use conf.replyNotRegistered -f8c85b0 Fixed doPrivmsg and added more useful error messages -43fbbb9 Changed to use callbacks.reply again, now that we have the prefixName option. -9d8aa07 Added pgpkey and a test case for it -6b3600c Added replyNotRegistered -f818efa Added better logging of message times and prefixName option to IrcObjectProxy.reply. -7ed1791 Fixed bug where it doesn't respond to non-registered users. -6aa3e06 Raise ValueError in the case of bad input. -66b62a4 Fixed calc command. -4bb8d6a Fixed xor test case. -6b72288 A little more error-checking can't hurt. -da6f429 Made a do376 so it authenticates (hopefully) before joining a channel. -315d871 Added pipe syntax. -c07468e Added test to make sure .sendMsg went before .queueMsg. -4ca8f91 Added WHERE clause for making sure started <> 0. -c2f73da Made @bug send an email to a private mailing list. -45044c5 Made it copy the list of messages when is used. -017ddb1 Added optional argument to more command. -e53d4e7 Removed less command. -e3148c0 Removed foldoc command (it's markedly inferior to Dict.dict). -a08c1e2 Changed the stylesheet. Matched the new class names in the generated html. -cfa737d Changed limit to 100 instead of 10. -b699315 Converted not to care about how long its messages are. -8dc4579 Added a bit better diagnostic to IrcCallback.__call__ except clause. -d11d24c Fixed a bug in testExclaim. -61ad6c7 Fixed bugs all over it. -b68908e Convert not to care how long its messages are. -7571543 Added first exception for pluralize. -d3f1ca7 Convert not to care how long its messages are. -3161bb5 Converted to not care how long its messages are. -3ba5942 Added test for more command and framework. -01d71dc Changed maxHistory to 1000. -5ef3d7c Moved tell and last commands from FunCommands to MiscCommands. -5db67b0 Changed (more) to show the number of remaining messages. -0c3cb05 Converted to not worry about message length. -92b745f Added bold to the (more) that gets appended. -723ff12 Fixed bug in more stuff. -3873b35 Added the more command. -bb42905 Initial import -50c1749 Made the pages HTML 4.01 strict compliant. Changed the path to write out the documentation -392113f Fixed single-quote-being-quoted bug and changed directory to docs/plugins, and removed some old debugging stuff. -c711dc9 Fixed commented-out test. -8a70f15 Fixed bug in aliases with no arguments and added test for it. -e01d52b Added less command. -c662da1 It actually works now, but it's ugly. -2266fae Fixed enable and disable not to allow ValueError through their makeAntiCapability calls. -5296d51 Changed some asserts to raise ValueError instead. -63403e6 Fixed documentation bugs. -4dfa786 Added tests purely for documentation. -b0ccf44 Fixed a documentation bug and changed startnickserv to startservices. -5ea31bb Added PluginDocumentation tests. -0c9efdf Wasn't calling setDaemon on threads spawned in PeriodicFileDownloader. -526ac1e Added URL for codecs module to encode/decode morehelps. -91de0b0 Fix bug that didn't allow commands without arguments in onStart. -8fa457e Guard TwistedCommandsTestCase against not having twisted. -c0eb527 Uh, why did I raise? I don't know. Anyway, handle write errors correctly in _sendIfMsgs. -0314133 Added a few more hints. -1ad2652 Updated. -74d3b78 Added PluginDocumentation to test to make sure all commands have documentation. -7023b25 Added tests for the longest, stupidest bug in existence. -1ad3ec9 Fixed some bugs with removetopic when the topic didn't match topicUnformatter. -1795229 Added dup to rpn and fixed bug with calc and rpn commands that they couldn't do negative values. -0bcffe0 Changed morehelp for translate. -6d9cf3e Added test for empty topic in IrcState. -e039633 Made outFilter handle empty TOPICs. -7d01f9e Made IrcState handle empty TOPIC correctly. -9249df4 Made to ignore empty TOPICs just sent for information. -5974639 Made Enforcer send an empty TOPIC to each channel when startenforcer is called so there is no exception when self.topics is empty. -3eb86b8 Made PRIVMSG and NOTICE low-priority so TOPIC would happen before them. -c45e38b Added ability to send empty topic messages to get the current topic. -b3253df do332 wasn't guarded by self.started. -be45eb2 Reordered some statements. -184e9be Added another tiny test to Notes. -15c115d Added a sanity guard to finalEval and changed a debug.printf to a debug.msg. -8f2766b Fixed UnboundLocalError from a variable name change in debfile. -da329a3 Changed priority of OwnerCommands to make sure it's ***always*** first. -5bc445f Added docstring for CapabilityCheckingPrivmsg -2484ce9 Bold, for Strike. And also a bugfix, so it's not an entirely useless commit :) -7f77e68 Added a test. -9ddc8b2 Forgot a format. -559bd74 Added a randomdictionary example and changed the no matches output in the case where a dictionary is specified. -7501b3a Moved dict stuff to its own plugin. -e59f076 Forgot module docstring. -21f0cb8 Moved babelfish stuff to its own plugin. -49ef542 Added --url option to lasturl. -0719bde Added priority stuff for RFE #799899 -0f843dd Fixed stupid failed tests in Notes. I'm retard. -dd6f5de Minor cosmetic changes. -5bcd98e Finally found that crazy KeyError exception being raised, I think. -57146b9 Added tests for src/ modules. -7e80782 Added a test to make sure JOINs happen before WHOs, and changed code to make that the case. -f1a9b3f Added a sleep to the spinloop so it doesn't suck up 100% cpu. -fed6273 Make mention of in morehelp. -b682b8c Bold . -39a5879 Fixed docstring for last command and change the way dict shows chopped entries. -0c77571 Added test for searchfactoids. -85fad59 Added whois test. -5944282 Added more example. -dc2e207 Added rudimentary whois command. -596958c Added beGracious, changed to raw strings for regexps, and created test. -d02b425 Added a test for empty []. -3be6255 Updated example to have searchfactoids. -5fbba15 Converted searchfactoids to accept a regular expression. -7b3a62e Fixed bug with empty [] in command. -b2beec0 Forgot to remove a format character after the last commit. -15f4ad8 Converted timeElapsed to use nItems. -2003681 Converted uses of utils.pluralize to utils.nItems. -28b0fdb Made sure to close file descriptors in debfile. -d43b1ea Added dictionaries command and changed the order of the arguments to the dict command; also added --fancy argument to last command. -ea74e4e Fixed bug with multiple criteria in the last command. -b1a40f1 Rudimentary key searching added with the searchfactoids command. -55e3478 Uh, I thought I committed this already...moved functions from fix.py to utils.py. -bef838b The setattr of the _exec function wasn't right. -dd27e3a Forgot to import utils. -1208dd8 Oops, forgot a parenthese. -1d70b27 Added a die method. -f65829b Moved several things from fix.py to utils.py. -708e8e5 Forget docstring and to remove the old regexp. -64459c9 Fixed unColor to be right. -fff4a7d Made a set of the dbs that responded so each db only gets listed once. -9a2f80a Forgot to commit from chemistry. -062231b Added code to allow removal of all factoids associated with a given key. -dab57f3 Fixed bug #800165. -3fb9798 Removed the crazy topicPrefix stuff, it was pretty useless. -d0b7d59 I like the extraneous '.' on the end of the factoids. -f719009 Fixed something, although by now I forget what it was. Ah, the doTopic stuff. Yeah, I fixed that. -339375b Made to work again. -fa878a9 Fixed bug in doKick. -dfb1b26 Added a doKick. -a002393 Added test for pydoc assert. -2e23c68 Just chop off the extra if everything is too big; also allow specification of the dictionary. -56e6fbd There is no more BasePlugin. -4200b4a Updated doJoin to use utils.nItems and made it doPrivmsg instead. -bb91ade Updated world.upkeep to return the number of objects that have been collected and updated the upkeep command to return that number. -0791d9c Changed last/lastfrom to the new method as per RFE 798374. -9256468 Changed maxHistory to 300. -67d5465 Changed an if to an elif in lasturl. -1da0f30 Small change in order of sortBy and shrinkList. -c98a25d Oops, forgot the '% word' -f06a552 Fixed bug in socketDrivers and made it less likely to happen with a fix in drivers. -25aca81 Added warning about blocking in the morehelp for cvsup. -0a2d173 Updated module docstring. -f0816d5 Changed bold and mircColor to use the right ender \x0F. -fd57203 Changed a something to an anything and looped until a valid key is given in configure. -4c980ae Added nItems. -5857a17 Added dict command. -9a1959e Made _checkNotChannel return False if it's sent in a channel, and checked that return value in the resulting functions. -a764de5 Added sortBy, which uses the decorate/sort/undecorate pattern to sort by a certain criteria. -64c97a7 Added morehelps for some functions. -7bbb893 Fixed bug where 'alias punish lart ' would make punish raise a 'cannot nest' error. -236582f Changed a popen2 to popen4. -9b2a114 Changed the name of the uptimeEnder function so it shows up more clearly in atexit._exithandlers. -8f475fd The command finder function (I forget the name) would find serendipitously named methods in PrivmsgRegexp, and that's bad. Fixed and added a test for the known case of it. -92b2d19 Made seen command handle actions better. -15fe20e Newest list of stuff for beta release. -9a11e2e Updated. -a846928 Added wtf command. -83707f8 Added normalizeWhitespace. -ebc00fe Fixed logging of ignores to actually say who's being ignored. -5c92c85 Changed socketDrivers to be the default Driver. -1d77fa5 Added exponential (well, 0 -> 60 -> 300) reconnect backoff. -9600ada Oops, thought I tested, turns out I didn't. start -> started. -a2d9e58 Changed format of reconnect scheduling log. -1cf1e02 Removed some debugging stuff (clearing msg.prefix before sending it) and added logging to match asyncoreDrivers and twistedDrivers. -2b6f989 Removed useless line. -2bd4a88 Made it reset the IRC object before reconnection, and made it catch connect errors. -57b21b6 Added line for socketDrivers. -ee8dece Cosmetic; semicolon instead of comma. -3fd0463 Attempt to solve the atexit-closed-database problem. -8b1a47b Attempt to solve the atexit-closed-database problem. -35aff3f Added a sleep so we don\'t spin if we're the only driver. -38d1896 Changed to make sure every SocketDriver times out in a conf.poll length. -5313428 Initial checkin. -6c81eb9 Made 'import this' not print. -862489d Modified a docstring -78d32f1 Forgot the world.upkeep periodic event. -85caaf6 Fixed bug in automatic canonicalNaming of non-commands. -aa9f8a9 Added new lart/praise functionality. Now accepts a reason for larting/praising something -38f801f Added thorough testing of new lart/praise functionality -7ae25e4 Removed stupid for loops that I forgot to remove when I removed the debug.printfs. -d1677d4 Changed regexp in Privmsg to be more flexible. -e6bfc72 Minor changes, added some (commented-out) debug.printfs. -0fe7b81 Guarded inserts into sys.path. -011ebfb Made output somewhat prettier. -44972da Cleaned up makeDb. -30d3747 Added utils.pluralize. -1461535 Added test for no reason other than to make sure something worked before suggesting it to someone. -01adb33 Fix a typo -0061e42 Added tableDict, tableExists() and createTables to clean up/fix makeDB() -5c034ea Fixed the onStart load string to match the module's name change from NickServ to Services -07d4628 Fixed a missing parameter to an irc.error() call -488fd6d Forgot self. -cc2689d Forgot to import world. -883287c Added bestuptime command. -c891592 Fixed bug in strlen where it didn't account for spaces. -ea34e11 Added some more description. -35cbbf7 Made RSS docstring more appropriate, now that help works with modules. -7795e6b Fixed help to work with plugin names. -26f28e5 It doesn't work, but maybe someone can find the bug. I can't. -bf5d0aa Updated example. -7290221 Removed the title line from zen's _these. -36ecc4f Added zen command. -442392b Guarded inserts into sys.path. -7a51fcc Removed some debug.printfs. -cdd180a Forgot to move test over to Http with the kernel command. -d0d95cd Fixed odd error in findAliasCommand. -1cd7ccb Found bug in perlReToPythonRe and fixed it. -167acef Guarded against crazy win32 boxes. -21879d0 Turned off color if on a windows box. -b2436f4 Changed %70 to %68 for safety and lining up reasons. -5841566 Docstrings updated. -dfc9f2f Finished change to Services. -97d5ee8 Tyop -f3b2ea9 Fixed our code that caused a bug in textwrap.py. -e623d2e Added docstring and guard for lasturls. -736d46c Forgot to close the file object from urllib2.urlopen. -7911d0f Moved kernel over to Http as per the wishes of the kernel.org folx0rs. -8f40c90 Fixed new pluralization bug in cpustats. -f4fb779 Added docstrings. -5538461 Converted schedule over to heapq from bisect. -f70919f Added a missing import line -ac8a5bf Added question about example and pager functionality. -06f7fef Stupid missing import... -f87eb2e Tyop. -b2d7893 Made self.channels an IrcSet. -b29da50 Hopefully got the prefix thing right. -feff6f7 Added eightball command. -465ab3a Added test for case-insensitivity in key lookup. -953fe86 Made error messages more elucidating in PluginTestCase. -2e4c943 Changed topicUnformatter regexp slightly and fixed shuffletopic so it wouldn't send a repeat topic. -e1e2605 Added question for prefixChar. -900fa49 Changed default on allowEval to False, for safety reasons. -89a0d12 Added tracking of how many commands have been processed. -295c5d8 Added example. -e48024f Added a (almost useless) test for ChannelDB. -fcdcebf Changed the name of NickServ to Services. -2c2031e Made randomfactoid more useful and fixed a bug in unlearn. -60c598b Wrote tests and fixed lots of bugs and usability flaws. -22fcd45 Made sure the data directory is pristine before each test. And fixed a typo. -37f88d5 Added more tests and the lasturls command (and --nolimit option to the lasturl command. -376e404 Added commandsOnStart to make PyChecker happy. -6d7e68f Added tests, fixed the bugs the tests found. -6066376 Handled more user-friendlyily the case where they forget to make plugins a tuple and just put a string in PluginTestCase.plugins. -b6b47b5 Added example string. -4763cb4 Made expect even prettier. -1b2b18c Added new options, more user-friendliness. -3c8a7c2 Used textwrap to make things prettier. -63eb848 Added tests for error conditions. -336108c Added example string. -b6a70d0 Tested basic functionality (not ) -83d587b Changed some bugs in configure. -f1d8762 Added module docstring. -740acc5 Brought up-to-date with current plugin template. -f4a057c Changed binascii.hexlify to encode('hex_codec'). -c81c452 Added expectWithDefault. -db5c58b Added test for bad modified date. -2935c16 Added example string. -a0bf562 Redid startup/configuration junk. -5860657 Added 401 to the commands that result in a 'no user on this network' message for relaywhois. -aabd095 Moved world.version to conf.version. -50d1b9b Forgot stupid utils import. -d21d868 Added hexip command. -550f0fb Forgot return after irc.error and added test for non-existent location. -ce67b6e Added better error reporting. -c8b09bd Added configure function and example and module docstring and more function documentation. -9d51e99 Added example strings. -5c86cd2 Changed template to wrap lines in example. -b572562 Added utils.wrapLines and wrapped the lines of each plugin's example. -8d66947 Added assertNotRegexp to PluginTestCase. -5756569 Fixed bug in weather, added test for it; added example string. -adbd4fd Guarded the sys.path.insert. -bb1bdd2 Added tell command. -9550971 Added ability for commands to raise callbacks.CannotNest if they are not nestable. -fff9952 Added example template to template. -f9fee97 Made channels description in relaywhois slightly more descriptive. -52dba88 Made much more efficient. -51a474d Added verbose log for spawning CommandThreads. -6b0fbdc Had translate instead of babelize in testBabelize. -8f4bc0c Fixed possible error (uncovered during test) in Irc.die. -6d8a9e9 Changed 'no notes' message to be more natural English. -8f33ff2 Made --at option for lasturl be more natural with domains. -19a9804 Added a test and fixed several bugs it found. -5491d97 Gave a proper error message for a relaywhois is a nick that isn't online. -58d444b More documentation. -09c77aa Can catch re.error instead of sre_constants.error. -3dd176a Updated a whole lot of stuff. -898b219 Unified the ircs' histories, making lastfrom work correctly. -b1a392c Made the driver reset the Irc on disconnection, not connection. -c380995 Made IrcState keep history persistent through resets. -b1e6cc5 Added a reset method to RingBuffer and queue. -ed92fca Changed to make 'too long a message' error messages less inaccurate. -ab56241 Added getopt.GetoptError to exceptions to return help on. -b8550ab Made the driver die in Irc.die. -906b83f Added example. -28d81d6 Made it handle improper arguments correctly; I never noticed that it wasn't doing it already. -c954693 Removed id number from randomurl output. -84c028c Removed id number from randomurl output. -871d685 Added an example and changed the regexp not to allow <> into the URL. -79b199c Removed list of commands in module docstring. -0cf3145 Fixed ugliness (tons of returns?) and SyntaxError (missing parenthese). -cfe4ce1 Fixed ugliness (tons of returns?) and SyntaxError (missing parenthese). -5289f6b Renamed conf.timestampFormat to conf.logTimestampFormat and added conf.humanTimestampFormat. -23321ca adding Notes test case -79fe7d8 Added thread, to make threaded commands in an unthreaded module. -edebbe4 Removed some debug.printfs. -95d6890 Raised the debug.minimumDebugPriority so output during tests isn't so ugly. -b397650 Removed spurious blank line. -075af09 Commented out some debug.printfs. -5eafec7 Made morehelp better for dbadd. -7932c60 Added example, and made dice commaAndify its numbers. -5630782 Made CommandThread work with non-instancemethods. -e30cf69 Added privmsgs.thread, and so nuked ThreadedFunCommands (subsumed into FunCommands) -17f00fb Updated PluginTestCase to allow asynchronous test cases and added test_TwistedCommands.py. -84959a1 I can't even tell what this change is, but apparently there is one. -ad81597 Added fortune command and some more tests. -56117a0 Made the error message in the face of problems connecting much prettier. -eb7b696 Made increase/decrease karma stuff work more like moobot (i.e., require a prefixchar and disallow spaces) -d73abeb Made @karma++ not return [karma++]. -a92798c Fixed relaywhois to not require the network if the relay is only relaying between two networks. Also fixed a possible later UnboundLocalError in a few places. -c6f1d74 Tested to make sure capitalization didn't matter. -ebabf61 Changed Candler to delete the database as well as commit/close on die() -18260e9 Removed arg, strsplit, and fixed re to handle s/// regexps too. -c9c77f9 Fixed mime/unmime and docstring. -12ec2a8 Initial checkin. -5bf5938 Initial checkin. -65af254 Raise exception in PluginsTestCase.setUp if no self.plugins. -0f83505 Initial checkin. -3ae2f79 Forgot to reply with actor stuff. -d7ec79d Initial checkin. -6cc3103 Added PluginTestCase.{getMsg,assertNoResponse} and a timeout option to some commands. -7851f3a Added test for Utilities module. -98b0acb Made karma return the highest/lowest karmas when given no arguments. -577e751 Made the output of osuemail a little bit cleaner. -3071126 Added osubuilding command. -5536e21 Added module docstrings and changed argument order of osuemail. -5b2cc92 Weather now works. This is gotenks2's commit. -5234c73 Converted states to lower before checking for membership in the set. -98011fe Added docstring. -63fafdc Added bwp's weather module -5769e4d Updated ChannelDBHandler to always return a new database if self.threaded is True. -ade0976 Added an item. -38e63c6 Fixed exceptions raised by relaywhois. -e18bc38 Fixed asserts to use the new 'all' predicate in fix.py. -a7826bd Added any/all sequence predicates. -6c26e4e Made the response of the upkeep command more useful. -8b05ce6 Fixed inability to find out the specifics about 'die hard'. -57b0c23 Added strlen command. -68b9b5f Guard against an error on exit. -f0b5330 Added a return value to shrinkList, the number of things removed from the list. -320f1d2 Made imdb handle people properly. -f35da83 Added rating to imdb output. -5d554a5 Initial checkin. -53d8837 Added unCommaThe function. -17478da Began some swithover to the new method; mostly I just needed to try a commit. -0743b3e Moved commandArgs outside of __init__. -3fe81eb Added docstring and configure function. -bdd66db Removed comments; removed zipiter (no one used it, and itertools.izip is available now). Added docstrings to all remaining non-docstringed functions. -b86205a Changed out some try blocks for if/else -749003d Removed configuration-related stuff. -f941312 Satisfying PyChecker is my life's goal. -57cc661 Should be able to reload Relay module now too. -147d5cf Finally got the persistent configuration working with the Relay module (though don't try to reload it :)). -9d20105 Fixed grouping of regexp. -1ebfb82 Fixed a test or two. -270982d Has more useful failure messages and does proper tearDown of the irc object now. -8e068ce Made configuration commands persistent, yay! -a11873a Must've missed some sliceIndices conversion. -05eabee Anchored a regexp and fixed a bug or two. -95f5abd Made sure no prefixchars got into the karma table. -1342a76 Removed some debug.printfs. -3c2ce01 Added support for: created by, requested by, # requests to lart/praise/excuse/insult related functions Added more error checking Added a simple pluralizer Added tests to stress lart/praise/excuse/insult portions of FunDB -274ce40 Updated the tests to stress more possibilities -ab93b90 Committing jemfinch's commaAndify fixes -436dc54 Added configuration question for color. -11c7124 Added notification of which record number was added when adddb is called. -f98d1f9 Small refactoring (the calm before the storm, so to speak) to start putting some more config stuff in conf.py. -52fab17 Added docstrings for ignore -0b6fce1 Replaced the last of the specific functions with the general getdb. Fixed some sql statements and cleaned up some responses. -94e25c6 Forgot to guard morehelp command against None __doc__s. -c413261 Fixed crazy quoting bug. -9b3faa1 Removed some extraneous escaping of quotes and switched _tables from a list to a set. -b785cc2 Remove an extraneous print statement -24005d3 FunDB: Made more general get/remove/num/add commands to consolidate getlart, numinsults, et.al. test_FunDB: Started adding tests for FunDB -11a3cf1 Add the missing "onStart.append('load Amazon')" -35c3327 Moved debversion to Debian from Http. -d3fd184 Fixed a few bugs in debfile. -2aee349 Initial commit. Has debfile command. -4610154 Added PeriodicFileDownloader, a plugin mixin that handles the nastiness of getting files periodically. -ae2fc04 Removed/modified some country codes for babelfish modules. -f3af416 Added tests for the babelfish commands (translate, babelize, randomlanguage). -710dcd7 Added the capability to specify a mask for the whois helper. -af9d8b6 Fixed relaywhois problems. -6bfd991 commaAndified timeElapsed. -526e5b6 Added error to babelize in case one language isn't english. -70c43fd Added more specifics for jamessan -588dace Added some more ACKS. -2d6f22a Fixed a bug in the regexp; removed a latent security bug that was just waiting for that regexp bug to be fixed. -088047a Stylistic updates. -97c8d4d Spelled portuguese wrong. -2286248 Killed NameError in relaycolor. -4858770 Ew, modified the original argument in utils.commaAndify. -89e4a3e Added command to turn colorization off. -28a8071 Add babelfish.py and the corresponding translate & babelize functions to Http.py -8c72168 Reordered imports. -ca64671 Removed spaces at the end of lines. -9dc1221 Added the missing 'import utils' -9c17ec5 Documentation change. -8a47be6 Added Amazon module, useful for its isbn command. -01eb693 Added function commaAndify to turn a list of strings into a proper English foo, bar, and baz string. -15ba96b Made the configure script use more natural English. -88e47b4 Documentation changes. -06c36d2 Change to satisfy PyChecker. -137f05b Made supybot report SyntaxError to the user. -edf695a Fixed the karma (++/--) regexes -3e58971 Line shortened. -866916f Made it snarf all URLs, not just ftp/http. -fa51889 Fix for UnboundLocalError in kernel command. -08c9a9c Now plugins that are added to the conf file are removed from the list of available plugins. -c8cafb6 Fixed the problem where 'load Unix' would never be appended to onStart -c5c44ec Added a few more TODOs and a schedule. -2e28200 Fixed extra [y/n] options in expect. -fb07813 Added docstring for PrivmsgCommandAndRegexp -230020a Removed sliceIndices and replaced all uses with slice.indices. Yay 2.3 -7fd35a1 Made some changes to satisfy PyChecker. -dcacf9c Added lasturl command. -8b093f3 Fixed some database errors. -7aabcfd Fixed a typo. prfix->prefix -23f2106 Added win/loss/draw percentages to Gameknot.py -861e29c Fixed the total matches problem. -6560f9e Finally removed all the known bugs. -e05a0d1 Found a bug, wrote a test, yay. -5ab19c4 Added test for new snarfing output. -6025eca Stupid regexp error. -a50e81d Changed the gameknotSnarfer to show whose move it is or who won the game. -2c6f505 Added vim modelines. -0f4a78d Added a snarfer for stats links and refactored. -ef4b6d9 Removed some apostrophes so syntax highlighting works in emacs. -e2e277d * added a test for utils.findBinaryInPath -83c44ee * added new utility, findBinaryInPath which searches the PATH for a specific binary * removed getSpellBinary, and replaced with findBinaryInPath calls -352207b * more descriptive morehelp for spell in Unix.py * show total matches and number shown for spell -effb14e Argh, stupid empty lines...I hate when I put those in there. -2b79b65 A few updates to the spell command, and some tests. -99a7386 * added a 'spell' function in Unix.py -3c5be8a Basic snarfing and random URL returning is done. -cae9f9a Added an ignore command, useful for sequencing several nested commands. -62fbccc Removed enumerate. -e3364e0 string_escape is better than unicode_escape. -f2bb968 Added a few more test cases to testDQRepr and made it less fragile. -f9928ba Oops, forgot to re-enabled non-testOrd tests when I committed. -384393d Re-enabled the part that says how many asserts there are. -b299a56 Added a noneFill parameter to group. -00290fa Fixed a possible bug in the ArgumentError handler and replaced my SyntaxError(Error) stupidity. -44d4c98 Had to do a map(int, ...) thing because sqlite sometimes sucks at that kind of thing. -958bd65 Shouldn't have removed it, since it has the hacks for telling me how many asserts it has done. -14043d2 Tyop. -b78caba Wrote some more tests for FunCommands; found some bugs in the process. -074268f Added some tests and fixed a bug they found in the title command. -bbf0f71 Added assertError, assertRegexp, and assertRegexps to PluginTestCase -a5baf0e Stopped coloring networks, it sucked. -1d9f7f3 Added a little del to the reload/unload stuff -9770311 Made Notes notify on PRIVMSG as well as JOIN. -cb6f1a1 Made zipcode handle zipcodefor stuff. -9db6ace Added upkeep command. -5cacbfb Wrong pluralization in karma. -0415251 Added assertNoError to PluginTestCase -d25b389 Fixed bug in calc. -46cf8bb Tyop. -330dfad Added specific logging of CTCP requests. -936c1fd Re-enabled ircutils.nick under a new name (IrcString) and for a different purpose (to make IrcDict and IrcSet work properly). -0231cdc Somewhat working now. -c4005a1 Made the reload and load commands also update linecache, so tracebacks are correctly line-numbered and whatnot. -ebd2113 Moved zipcode over to the FunDB module. -e30aa88 Made the db commit before closing in ChannelDBHandler. -622f96c Made the old callbacks die before the new callbacks are loaded. -6d40bb4 Karma works now. -2dd5a52 Changed nick/user/host of server hostmask to be the hostmask itself. Also disabled _ircmsg import for the time being. -2a4c2ea Nuked ircutils.nick. Good riddance. -7fb632c Changed colorization slightly to include network abbreviation. -9b62a86 Removed an unneeded debug.printf. -88c6c7b Some changes to the karma stuff, I forget the details. -199de7e Changed the signature of canonicalColor to return an (fg, bg) pair. Also accepts a shift parameter which is the number of bits to >> the hash of the string. Both are used in Relay.py. -ad432a6 Added more color to reduce collisions; robustified relaywhois. -d81c1be Moving ChannelStats over to ChannelDB as we add karma and quotes. -39cce9c Changed from 's.find(x) != -1' to 'x in s' -feda60a Updated some tests. -2760c1b Added group and test for group. -eb6fb90 Removed the immutability checks in IrcMsg. -241d20e Removed, since gameknot was the last thing in it. -bba0e6e Moved gameknot stuff out to its own module. -09f2ae8 Made PluginTestCase handle multiple plugins. -0c8ee83 Reduced the number of rot13 asserts to 10. -1a05dc9 Made PluginTestCase handle threaded plugins properly. -2c87c18 Optimized IrcMsg.__str__ slightly. -5f7656c Made throttling properly respect world.testing. -1bbcfa9 Added a semi-accurate refcount measure to objects. -0cf850d Made to use new PrivmsgCommandAndRegexp callback. -f203bca Added ability to define regexp callbacks in a mostly-Privmsg environment. -60fa81c Removed nick hack in IrcMsg; I never liked it anyway. -936effb Removed since the bug was fixed in 2.3. -d7990d8 Added first plugin test case, mostly for example. -84b9610 Added TestCase subclass for testing plugins. (Also removed Cmd class from previous attempt) -f9e6777 Added more docstrings. -90ec43d Removed since the 2.3 cgitb does what I want. -58453cc Added a minimal test for schedule. -abd94e3 *Really* optimized objects command. -02ce886 Added relaysay command. -6dded57 A few minor optimizations to take advantage of itertools. -031c81e Added ilen, a function to return the length of an iterator. -36996dd Updated stuff for 2.3 to break 2.2 compatibility :) -b463337 Forgot to add the % name to the 'no user' gkstats response. -29f0b63 Added some more documentation. -ade9514 Added more documentation. -5ec5b99 Made safeArgument handle colors correctly. -a4b6ee2 Added caching for __str__, __repr__, and __len__. -6e19d92 Forget this with the other 2.3 upgrade stuff. -3b5825e Removed use of eval from the tokenizer. -80b04b4 Added encode and decode commands. -1cae966 Upgraded to 2.3. -b7cb48b Added flip function. -a6f8dda Fixed googleinfo updating. -1230769 Added googlefight command and cleaned up the output of metagoogle command. -f7637bd Added metagoogle command. -ad3fb44 Bugfix in mircColor. -c6a8ceb Slight optimization in getCallback. -33f2818 Made Relay use ircutils.canonicalColor. -1891a46 Fixed bug in deepthought. -51ab17a One line fix that's been in my code for awhile but not committed. -7a281d5 Fixed some mircColors indiscretions and added a test for the new (proper) behavior. -fb730d7 Fixed bug in acronym; why did it blindly remove the first and last responses? -b64e0d5 Added a set of deepthoughts so lookup is faster if the queue gets large. -5644c8d Changed some mircColor stuff. -7c34d8b Minor formatting change. -2a52871 Tweaked mircColor (yeah, I'm anal beyond all reason) -d346d87 Tweaked deblookup and changed its named to debversion. -d326841 * added preliminary version of deblookup module (basically a straight copy of moobot's deblookup with some minor tweaks) -0e16b70 * added mircColor() function to ircutils as well as mircColors dict * added test cases for this function * implemented nick coloring for Relay -ebc3533 This file was hanging back on protocol since it's been less used. -50bcc22 Made unmorse handle underscores in addition to dashes (as longs) -c8fbb45 Made the part command behave sensibly in the face of an empty argument list. -3fe182b Must've forgotten an older commit... -a7daba5 Added some more documentation (though the work is probably not done). -194eb12 Added a module to remove bold outgoing from the bot. -65d2dab Added shrink command. (made it shirnk a little more) -8ba0d3a Added shrink command. -e745ec6 It's a string, not an integer, idjit! -df02bd5 Fixed plurality problem in gkstats. -440a336 Added relaywhois command. -e27f7e5 Had to make it handle -O and -p in the getopt jazz. -6ead5d2 Added psyco option, -O -5f8c054 TypoError -1928b2f Added psyco option, -O -725da85 TyopError -e689904 Changed me handling in lart. -5c0ae0e Changed moduleof to use the canonicalName of the command. -a44ecb4 Made the reliance on conf even less user-intensive. -f8a54c4 Fixed irclib.Channel to use ircutils.nick on its stuff. -d9399fb Added urllib.unquote to foldoc error message. -73c3b81 Changed style of ord command to be cleaner. -046c699 Fixed binary command. -1a704ef Made Markov module threaded. -a6d9ee0 Fixed the null nick problem with the IRC bot's own messages. -d9b994f Fixed bug in Irc.reset. -1131cc4 Changed format of ACTIONs to match normal PRIVMSGs. -51cb83d Made logging for rate limiting more informative. -4c6e33b Added rudimentary profiling support. -90409d0 Braino. -d810fe3 TypoError. -bbb4649 TypoError. -93df6be TypoError. -7d59495 Added another assert for proper IndexError raising. -f2ae4b5 Finally found the underlying cause of the relaynames bug. -82bb295 Fixed enqueuing in deepthought. -ee805e2 Fixed IndexError on empty deepthoughtq. -b1a1c85 Fixed bug in queue.__{get,set}item__. -a35bf21 Made sure utils.timeElapsed doesn't go all decimal on me. -ae3623f Added two more tests. -f35c9e8 Had wrong channel argument in IrcStat.do332. -800efee Removed spurious quoting from acronym. -ec80113 Fixed bug in Channel. -4be5d42 Fixed Http.deepthought to queue thoughts and to import structures for such queueing. -f0c32e0 Stupid SyntaxError...grrr... -76539b3 Made it so if IndexError is raised, the data structure isn't modified in __delitem__ -0f018d0 Changed acronym to allow as many acronyms as possible. -b6e9d10 Added import sre_constants. -f10eff8 Added import utils. -9bf2b8a Handled case in last where argument isn't an integer. -c310783 Failed google now handled in googleSnarfer. -663a9f7 Failed regexp now handled in googlegroups. -c5e1e8e Fixed NameError in topic. -00d186c Forgot underscore in isNick. -0cfde66 Fixed a few tests. -66497f1 Added __delitem__ (untested, though) -f407801 Added IrcCommandDispatcher as base class for IrcCallback and IrcState. -db44951 Changed a debug.printf to a debug.msg. -97ce807 Fixed a slight ugliness, use dir() instead of __dict__. -6f7e3e5 Moved queue from fix to structures. -328cdf2 Fixed bug in isNick that was causing the Relay.relaynames bug. -9b56122 Fixed quit function. -82c2a83 Fixed quit function. -1e910d3 Added quit function. -5bc901e Changed foldoc to hopefully stave off the empty return. -c0c5101 Changed to only strip \r\n from right side of last argument. -0934037 Changed utils.timeElapsed to use just a seconds instead of a now/then argument. -345f819 Changed reload to not unload the module if there's an error in loading. -b633960 Fixed lart code not to lart the bot himself. -26f185c Changed some formatting of command relays. -6822cc3 Better error handling for title command. -d7bdb77 Fixed bug in googlesite. -b1e95f8 Started trying to make factoids useful. -737f35c Removed rate limiting during testing. -670669f Initial checkin. -8a5e50b Added show of how many asserts were done. -26a4579 Added slice support to queue. -71bd193 Turned off superreload command. -3c33583 Upgraded to 2.3 version; added a global 'asserts'. -54788a6 Some slightly new helper functions and stuff. -ce6b03d Added a few important helper methods. -45cdde6 Added title command; fixed a latent bug or two. -b037bcd Changed to only message doJoin when the user hasn't been notified of new messages. -8d0d138 Updates to variable names and whatnot. -4f094a2 Changed utils.shrinkList to ircutils.shrinkList. -0aa5ece Trying new syncmail, added Cmd class. -3620be1 Forgot the utils. -0cc386e Change notification to only-notify-of-unnotified-messages. -3f764ea Added more tests. -bef6533 Needed to commit something, this will need to be changed. -5045894 Changed the order of __init__s (yeah, I'm a dork). -6eacfb6 Changed IrcState.history to a RingBuffer instead of a MaxLengthQueue. -ff54eec Swapped implementation of MaxLengthQueue. -fe2f2c1 Swapped implementation of MaxLengthQueue. -8fa7c95 Somehow these didn't get updated when I moved queue to structures. -25daf96 Enabled __slots__ on RingBuffer. -45b4d95 Moved data structures from fix to structures; changed implementation of MaxLengthQueue to a RingBuffer. -ca4ad38 Initial import. -c39fba7 Syntax fix for SQL. -5aa9bea Forgot to import world. -545f675 Forgot to add prefix to IrcMsg in two functions. -b8e3396 Added some (now commented out) debugging printfs. -35d0a3c Decreased size of checkCapability by moving some duplicated code out to another function with no good name. -2456082 New test-passing implementation of checkCapability with debug.printfs commented out. -67e072c Changed implementation of queue. -ebb30d7 New tests. -d9ca163 Had to change PING/PONG handling to workaround non-RFC-compliant servers. -06fe786 Added .reconnect() method to drivers. -e1e6b97 Had to add and \!owner and \!admin to conf.defaultCapabilities -96e2a67 Added say command to OwnerCommands. -5c6a6b6 Changed tests to be more thorough. -8b2ef24 Removed comment. -83e8422 Whitespace change. -c46ae75 Removed spurious parentheses. -959459d Finally passes all tests. -9fee5f1 Again, run tests before committing. -df66715 Oops...should run the tests before submitting new assertions :) -2227f5c Fix for bug in Irc.removeCallback. -e1dfcbd Added partition to facilitate bugfix in irclib.Irc.removeCallback. -7e1eb72 Forgot to change test.py based on change in testing module names. -80e4dfb Added world.threadsSpawned, logging of the number of threads spawned, and added the information to cpustats. -cc61041 Removed commented out stuff, added help string to superreload. -b3e6c68 Changed nick class not to use __slots__. -30322c4 Changed nick class to use __slots__. -8bdfe2d Added docstrings to all the functions. -bacbf53 Lowered the default values for limit on shrinkList and privmsgPayload. -e06ce95 Changed formatting of rpn in case of a non-empty stack. -3188810 Added returns after irc.errors. -b9153e5 Added rpn command. -674fe77 Added some asserts to match RFC more. -c0d511c Added Driver module attribute. -11a674e Added handling for case of a channel with no pairs/follows. -29efc01 Added copyright. -f8bc027 Added morehelp for the whole module. -4b3c916 Added something to stop assertion errors in case of ChanServ stuff. -f6392d4 Added ignoring check in PrivmsgRegexp. Fixed stupid bug stupid stupid bug tyop bug.GRRRRR -92250ca Added ignoring check in PrivmsgRegexp. -f6488d6 Prevented deprecation warning and added another logging feature. -a861941 Fixed stupid bug. -0e505d8 Some more .__class__.__name__ -> name() conversions. -7971760 Forgot to import drivers. -85abb8c Fixed strange editing error. -eb44d5c Added new driverModule attribute for driver independence. -77ac7c6 Added newDriver function for driver-module independence. -dc8b430 Fixed reconnects. -ee74036 Changed to be driver-module independent. -499507c Fixed tyop. -ed06656 Moved google groups snarfer to the Google module. -e4fd36f Fixed 'useless reply on bad arguments' in threaded commands; added/changed Combine class. -e4591e3 Changed list command to use cb.name() instead of cb.__class__.__name__. -43ae918 Changed format of rssinfo command. -747d48c Changed a few SQL statements and added oldnotes command. -ab7fd51 Changed morse/unmorse and related stuff to be (hopefully) clearer. -85331d2 Added support for old google (the crazy irc bot)-style google responses. -1c49500 Added strtranslate, strupper, and strlower. -8054a1c Changed format slightly in rssinfo. -7e56114 Normalize whitespace in rssinfo. -9966624 * Corrected the gameknot Forums regex to not require the ("&r=\d+") part since not all the URLs necessarily have it. * Added the game title to the output as well (haven't done a ton of testing on the regex, but it worked on every game I tried it on) -c506306 Changed size of results and removed list of commands. -aa3e7da Whitespace. -4cb24f7 Added robustness changes and manhole stuff. -1178536 Added Combine, a callback to combine two Privmsg callbacks (most often Privmsg and PrivmsgRegexp) -5adbaf5 Made the join command not send the WHO command if the bot is already on the channel. -fa53cf3 Rewrote dict command. -c99f688 Changed to use ircutils.shrinkList. -7fa59b0 Changed definition of notFunky to include extended characters that might not be printable in my locale. -73a5de9 Scheduler implementation changes to be (hopefully) more efficient, to pop() rather than pop(0). -77154f2 Changed asyncorePoll to just 'poll' -b321ca8 Wrong number of arguments on error. -32268cd Removed unused import. -ba67e2c Made it htmlToText headlines. -8d50d79 Added new getopt capability to google command. -e9e8122 Initial import. -06b3929 Naming scheme change. -984e29e Initial import; new naming scheme. -df3dcb7 Various updates. -ce27a25 Initial import. -15f7dfe Make Irc.removeCallback shorter and more readable. -5a11ebd Fixed searchports somewhat. -110eb47 Qualified foldoc raise of ArgumentError. -aafc138 Fixed permissions bug. -42e1a7c Added morehelps to all commands. -243e6ea Removes list of commands in module docstring. -b11c3f4 Added notification on join of unread/unnotified messages. -dd3ebb6 Moved file writing to later in the run. -8a18f03 Comment changes. -481c9f3 Fixed changetopic to use utils.perlReToReplacer and added help/morehelp for all commands. -d5484f6 Added final morehelp docstring. -cd73dfb Changed formatting in presence of lacking titles and made it respond with as many results as it can. -9941d35 Updated significantly; channelstats command added, bug fixed (frowns was only counting smileys) -bd07133 Initial import. -aecad2f Changed re command to use new utils functions. -a11f302 Added perlReToPythonRe and perlReToReplacer and associated tests. -b40431c Added docstrings and method skeleton. -82c7d58 Began switch to allow notifications. -f67fa45 Added repr command and fixed strsplit. -25d90d6 Changed a few typos: irc.users -> ircdb.users. -5ef41fa Added IrcMsg parsing time logging. -7868702 Fixed gkstats so that it doesn't display duplicate text with gkseen -c7a867b The 'seen' regex for gkstats was changed back to searching through text instead of html. -c251ad3 Various code changes. -8d6174a Ugh. -71cec26 Stupid variable name. -a55386a Forgot stupid args to privmsgs.getArgs() -9ad27d4 Added argument to logfilesize. -ea7a319 Forgot to map(len, L). -7f21380 Forgot to import operator. -71d13d4 Forgot to self. cursor. -250cf8a Changed implementation of notes command. -ab1d8ce Fixed typo in irclib, forgot to fix it here. -31d2de0 Added nice 'nicks' attribute. -49b8982 Added keyword argument to recoverableException to determine the type of exception logged. -f5cf223 Added allowed escaped strings to shlex.py -5c3cf2b Made PrivmsgRegexp use isCommand. -2423481 Fixed gkstats to not break on people hiding their online status. (closes: #720926) -0d99f06 Removed makePrivate. -2230149 Fixed moduleof command. -d4ee42d Fixed moduleof command. -d53a184 Fixed moduleof command. -a5e7a19 Added superreload command. -f94c1a2 Added moduleof command. -2148a6e Added proper ArgumentError handling for threaded callbacks. -aa47782 Added better handling of ImportError. -c6e47e6 Bugfix, hopefully -217f30b Bugfix, hopefully -fd22551 Commented-out debugging printfs. -4b0fd19 Overhaul of RSS.py: * Changed caching mechanism to cache the entire feed instead of just the responses * Added 'rssinfo' command to access the RSS info elements like URL, description, last updated time, etc. * Updated docstrings and configure for the 'rssinfo' command -e3e7ce4 Made assertions more useful. -18d9d59 Rewrote Alias implementation -4caedf2 Converted some %d to %s. -33f7660 Fixed removal of leading whitespace on last argument in parsing messages. -6287d61 Added dqrepr. -7f90fdc Added log of PING-based disconnect. -662024d Changed ChannelLogger to only log channels. -4e14a85 Added verbose logging of tokenize times. -d7fce63 Finally fixed looping bug. Really. I mean it this time. I fixed it. It's gone. -f1ee8b1 Typoed variable in class Irc. -066ed44 Changed seen to use utils.timeElapsed. -f6a286b Fixed makeNewAlias to allow and better argument handling. -4c67a96 Fixed bug in xor. -c92386f Changed ISNULL(word) to word ISNULL. -13109d1 Changed word=NULL to ISNULL(word) -62a833f Added markovfirsts command. -8b0f622 Added markovfirsts command. -fd43eea Fixed re command. -bd8de87 Fixed re command. -62c407d Added re command. -e5c5808 Must've forgotten to commit this earlier. -9253ce5 Stupid lack of import... -96e79c2 Fixed behavior for actions. -3ddc088 Forgot to move two lines under the fix. -c282ead Fixed UnboundLocalError. -f39b35e Must've forgotten this one earlier. -019a648 Changed dictionaries in IrcState to use ircutils.IrcDict. -d596752 Fixed bug (no __delitem__) in IrcDict and added test. -6aa1e8a Changed many dictionaries to the more appropriate ircutils.IrcDict. -5a8f0ce Forgot to put backtick in validchars. -7828b73 Stupid variable name changes... -0485516 Security fix. -b24d360 Just changed some inserts into _mathEnv to be in the initial declaration. -fd4c20c Added is_first field to database to make sure markov phrases start naturally. -78b44e7 Changed markov command to know when to stop instead of taking a length. -9de8e31 Slight format change to gameknot snarfer. -021f8b6 Added more tests. -5764cbd Whitespace change. -4d4bb3a Wrong variable in join command. -a576de0 Made ChannelDBHandler lowercase channels. -241e493 Initial import. -67cbd83 Closed bug 715763, 'Several JOIN commands don't allow specification of a key' -227f6e1 Made isIP actually test properly and added tests. -c1dd820 Fixed isNick to allow digits and added test. -436b5e3 Template forgot advanced argument to configure. -d16c6aa Initial (non-functional) import. -5138606 Finally got QUIT relaying to work. -5518f75 Wrong index. -f4d187b Added __getstate__ and __setstate__ to set and Channel. -64b60dc Trying different index. -7890e9d Added some debug statements and fixed outFilter. -6327960 Added test for MaxLengthQueue. -5da85d4 Forgot to actually enqueue in MaxLengthQueue.enqueue. -9295254 Wrong index. -a79df8d Stupid typo. -595821f Forgot stupid __getstate__ and __setstate__. -c19bae2 Forgot stupid self. -79a1d35 Added and started using MaxLengthQueue. -67412da Fixed stupid bug. -f6c46bc Change to irc.state.copy() -896ce38 Added __getstate__ and __setstate__ to IrcState -d37e229 Fixed non-relaying of QUITs. -59b6a7b Fixed stupid regexp. -1bc77ba Added getlart, getexcuse, getinsult. -091f287 Fixed the unallowed dashes and underscores in command names. -c849eda Minor changes. -8c9811e Changed AsyncoreDriver to accept an irc as an argument, hopefully fixing the looping bug. -60169ac Raised 'too many exceptions raised in too little time' limit to 10 exceptions in .5 seconds. -088e984 Commented out debug.printf statements. -e5a6f83 Added morehelp to googlelicensekey -1113173 Initial import. -f76dedd Fixed verbose logging of command times to only print once for threaded commands. -ce1435a Minor changes -24129e2 Moved from plugins/deprecated/ -bdd6207 Stupidity -33a9e88 Changed strsplit and arg. -15487a6 Fixed arg. -22155c2 Fixed AttributeError in strsplit. -c8c7c40 Added arg command. -4cdf013 Improved formatting of headlines. -a5a1211 Added check to make sure a user's hostmask doesn't mask another's. -3c41919 Fixed length check to be 512, not 450. -2c97e73 Added changes for world.testing and inserted 'plugins' into the sys.path. -96d5355 Added more tests. -705ec27 Fixed PyChecker complaint. -2047dd7 Added something(prompt). -822a125 Added check of world.testing so nasty exceptions aren't printed during testing. -6f7a33c Minor changes. -9a79c6b Added echo command. -94e753a Added configure to optionally disable progstats. -1035e92 Added configure. -1bf368a Fixed typo. -6adf5cf Totally changed interface and added configure. -11ae911 Added changes from jemfinch. -e5b0cd3 Added configure. -fa3e65d Added configure and proper length coverups for bad words. -51f80c2 Upgrade to asyncore from 2.3; removed fcntl dependent stuff (since I don't have it on my system). -a07136b Support for new module-level configuration. -6305958 Initial import. -89fca3e Forgot to add 'src' to sys.path -89fa785 Added command timing to the verbose log. -58902cd Forgot two stupid newlines after the comments. -6e0aff9 Added more support for passworded servers. -16374c5 Fixed bug (and added test) in distance. -1b79a30 Added check for owner capability in IrcUser.checkCapability -ec2908b Added more tests. -02ba017 Added joinModes function; docstring to bold; assert to separateModes. -584237d Added exception list support for ban and bans; changed the order of arguments in user; added password command -4f54eb8 Added 'quotes' to docstring (wasn't there before) -7d2a096 Added check for rateLimiting in Privmsg.doPrivmsg (didn't check before) -66236e1 Added support for PASS command on connect. -d625b56 Added arstechnica and advogato; restructured to make adding feeds quick and easy. -43c0de7 Forgot to import time. -6976d58 Removed slashdot and moved it to RSS.py -78a2a21 Initial import. -01b9ae7 Changed to be entirely interactive. -99364a2 Changed slashdot to use rssparser and also to remove all stories if the resulting message is too long. -1e353f7 Initial import. -83dd73a Fixed bug #715340, nested commands not parsed correctly. -9c78731 Added morehelp. -047470f Fixed gkstats 'last seen' regexp. -a708471 Added morehelps and change a gkstats regexp slightly. -ec88721 Made queue pickle-able. -6d3c060 Made sure all authentication was removed on bot exit. -f078d7f Changed IrcState.history to a queue(). -e93f0e6 Pulled out questions.py, added a few more niceties. -d9263c8 Initial import; pulled out of scripts/setup.py and put here for public use. -2aecb6b Added more tests -b6608b9 Added flatten. -f4b1884 Made it more interactive. -8f16571 Fixed stupid syntax error (wrong quotes around praise) -1d23d06 Added tests for isAction and unAction -27c8854 Added commented-out test for when slice support is added to queue. -277a1a3 Changed conf.minHistory to conf.maxHistory. -6f49bd2 Added a few more tests. -e4715d4 Added length=0 handling to soundex to return the everything. -b8f2bbb Another go at fixing the looping bug. -a50643c Added soundex to utils (along with a test) and to FunCommands. -4790d58 Initial import. -d708a6f Re-enabled __slots__ and added __getstate__, __setstate__ -d0a569e Added rawmsgs, msgs, and getMsgs for easy test messages. -eed4d68 Initial import. -cf5af96 Added __getitem__ and __setitem__ tests, as well as an IterableMap test. -d6059ac Added proper ValueError raising when there's no command in IrcMsg.__init__. -cf8c5c0 Changed Channel to make it more in-line with future sets.Set. -a3c4b9b Lots of updates; most importantly, queue() and set() now take iterables as their single argument. Note that this will cause configuration file breakages. -bc56b5b Added comments to denote sections. -7a3d06a Changed NOTNULL to NOT NULL and the order of the methods (yeah, I'm anal) -e962cc1 Added test for abbrev and fixed a bug it found. -100d0fa Added levenshtein distance -c88b431 Initial import. -ae18871 Fixed bug found in IrcChannel.checkCapability -061f2e0 Added __ne__ method to IrcMsg -9a39417 Added more tests. -b7e11b8 Initial import. -1855baf Added more tests -a46ce6b Changed the way Irc handles unresponded-to PINGs. -29effdf Made sure the bot responds with uneven quotations or brackets. -d4d81f0 Initial import (to fix bug in 2.2 and 2.3) -8d2ac8c Changed nickToLower to toLower (it works for channels too -40b8eb3 Changed ircutils.reply to ircutils.replyTo -20032a0 Added __len__ to set. -ea787b8 Fixed bug in printf -46eb878 Changed validArgument to isValidArgument -771f075 Fixed new bugs caused by assertions -b5d47aa added numlarts, numinsults, and numexcuses -ebdd969 Added docstrings and assertions. -33b4aa0 Changed debug.debugMsg to debug.msg. -e88a5a3 Added logging line to scheduleReconnect -a30ee6c Changed IrcMsgQueue a bit to make it even more smarter; Added reconnection on ERROR disconnect; Added reconnect on returned PINGs. -d6087e2 Added i to _mathEnv -69cbe9f New tests -689f440 Had safeArgument logic flipped -e186cd0 Changed drivers.close() to .die() -1eb088d Added timeElapsed and converted FunCommands to use it. -eb9e5c8 Changed drivers.close() to .die(). -fa10737 Initial import -d5c5e12 Removed funkyArgument; now we use safeArgument which does the repr() itself. -10e8965 Fixed some bugs found by PyChecker -36f7c77 Added needed import and change debug.printfs to debug.debugMsg. -ea11c0e Whitespace changes -8fde27d Creates better, smarter templates. -e9a5ad1 Removed; subsumed by a smarter scripts/newplugin.py -1dc82ec Made set more in line with the sets that will be released in 2.3 -981c216 Added some asserts. -f82383e Changed default verbosity -0dfaa78 Normalize whitespace in pydoc -336c6fd Added period (yeah, I'm anal) -6b4636e Fixed bug in argument handling -073188e all systems go, added some pretty stuffs to be STYLE compliant :) -c3ecba3 Initial import -16a16a0 Removed PyChecker warning -0984db5 Basic test running added -9e05519 Changed driver.die() to driver.close() -f682f63 Made catch return and fixed __repr__ of queue. -a5fc83e Finally fixed looping bug -7c31468 everything appears to be working, please lemme know if it barfs -924d48e Prettified acronym's morehelp -a75910d Initial import (placeholder) -f1b02e6 Formatting changes to netcraft and gkstats. -59a803d Ugh, stupid bug. -fcb0403 Added proper response for invalid hostnames -c49bd6f Fixed handling of channel capabilities -2b2f935 Added some information, removed others, etc. -6385806 Changed a message to be more accurate -3384780 Forgot to remove the creation of debugging files. -089d032 Fixed AttributeError in cpustats -818f01e Converted Irc.fastqueue to a fix.queue -5ef1d3e Added keyword arg to htmlToText to determine how to replace HTML tags. -dcf7fa5 Added some more functionality (__iter__, __eq__, __repr__) to queue. -d7e3b18 Added more intelligence to IrcMsgQueue -75768aa Added netcraft command -487c99c fixed output when querying for all unread notes -b21071c Fixed bug in load and removed Sorry. -99cb357 Fixed pydoc command to allow getting docstrings of objects in __builtins__. -3f3d26d Added check to make sure logs/* were normal files. -10a0fe9 Made uptime command not based on loading of FunCommands module. -c31167e Stopped catching exceptions in the wrong place in callCommand. -806a45a Reverted back to non-exception-raising irc.error. -952b7b6 Added pydoc command -7e8aab6 Added check for duplicate module loading in load command -f82170d Backed out previous change -f4d6ba0 Changed 'too many exceptions raised' time to 0.20 seconds, not 0.05 seconds. -508ed5b Added queue implementation -4123a9d Stopped clearing conf/ -798bac6 Found and fixed the bug that sucked up 100% cpu when the network got disconnected. -ecdcabb Most structure and commands in place -3da6310 Added some fixes; seen command works, and stats somewhat works. -dae47de Basic framework in place -cd5781c Added flags class attribute to PrivmsgRegexp -f0cfa30 Added QUIT propogation -b61539a Oops, bad search/replace regexp put a privmsgs in the wrong place. -a54020a Fixed bug #711056 -e06f07d private/public messages working now -c618a8f getnote (almost) works now -46f3012 Changed privmsgs.getArgs to raise ArgumentError, and make the necessary changes in callbacks to Do The Right Thing -df77cfa Fixed minor bug in IrcMsgQueue and removed needless if statement -a52a1fe Forgot to change the class name -988618a Altered lithp command to handle 'z' and changed a list comprehension with a builtin to a map -bfc6533 Changed OverflowError message. -880e004 Added better handling for OverflowError -c599e99 Added binary command -9b5739c Added advanced/not advanced questions and check to make sure the server resolves. -390c1fa Attribute mode changes to someone -4c3944d Added question to see if user wants to set user/ident -2ce7729 Fixed minor style bug -aa9c867 Fixed spurious exception atexit. -c700f3c Straightened out some IrcState inconsistencies. -2bb3189 Fixed nick and mode change propogation -b147dfe Added some (now commented-out) debugging statements -e9f41a2 Fixed variable name typo -68440bd Added proper NICK handling to IrcState -534c367 Slightly modified acronym regexp not to capture extra groups -d6f7fef Changed acronym to use %r for definitions so they get quoted. -f9cdb62 Added nick and mode propogation -2806ec0 Fixed double-reply on bracketed non-commands -8e32a7c Fixed variable-name typo in funkyArgument -fb756c8 Removed trailing newline that was causing trouble in parsing configuration file -68dbb32 Added __future__ import -371210d Removed Utils.py because it conflicts with src/utils.py on case-insensitive OSes -0fc8e5e Initial import; conflict with src/utils.py -0f6fe97 Fixed a single-quote bug in Tokenizer -817e967 Made funkyArgument a bit more concise. -8fd1d71 Made lithp a little more naturally lispish -10a65f7 Added abbrev -b1a2b87 Adjusted the regex. Added morehelp response. Adjusted the request so that it specifies a browser (site does browser-checking). Used some list comprehension to show only the first 5 results. -50cb288 Modified how entries are added to self.revcache -fc0bbc3 Removed a print statement -a2d004b Fixed gkstats so that they work with utils.textToHtml -f7939bd Finished the google groups fix. Added a check for links to framed pages in order to grab non-framed pages to parse through. -ce741a1 Added changetopic -848ec44 Whitespace normalization -f7c4090 Initial import; going off Ofnibot's source to start with. -9e97a96 Added source command -fc1b9f8 Added question to ask if the user wants the bot to join any channels -6859415 Removed a few unused modules PyChecker noticed -ce03a98 Fixed a few errors found by PyChecker -b943daf Accidentally commited earlier; just a few style changes and docstring improvements. -85e7e3a Removed CHANGELOG and TODO, not very useful these days -4713976 Made list command sort its response. -4340162 Um, weird typo. -c428066 Fixed 'let's send a new topic every second' problem. -2249017 Made single quotes not quotes anymore. Now only double quotes and backticks work. -8d857b6 Changed lithp command to change ss or SS to just th. -42d2067 Changed lithp command to change Xes too. -c85b3bc Changed lithp command to be case-insensitive -c080418 Added lithp command. -e861a8a gettin' there, slowly... -5f5ef91 Trying converters out. -a4ff3ab gettin' there, slowly... -e99df44 Added topic propogation -25e7156 Formatting changes -55aaa59 Changed DBHandler to ChannelDBHandler -5f77c05 and we're STILL fixing syntaxproblems -bce7b6f Changed stripHtml to utils.htmlToText -332c2cb Debugging messages commented out -b0daafe *Really* fixed now. -0dbab5b Fixed stupid nick-handling bugs -9808581 Still toying with sql syntax -2db2f64 Fixed NickServ module. -0863a95 Removed a useless variable and changed a response to use conf.replyRequiresPrivacy -042f455 Removed a useless if statement and changed the order of another -3059118 A little better error reporting -fb150d0 Made configuration file parsing more flexible. -a4ae47d Made sure there can't be an unpack tuple of improper size or empty blocks in the config file. -39afa87 Added another blank line at the end just in case -846b485 Slight efficiency increase -88dbed3 Took out short blurb about GPL (Strike gave consent) -cd35045 Fixed leftover debuging line and TypeError -c41b2c2 Began fixing google groups parser. -b43acf0 Fixing relaydisconnect not to call otherIrc.die, since that kills the callbacks. -d33e679 Forgot msg in someIrc.reply -f97ab0d Fixed IrcObjectProxy.finalEval to give help in the face of an empty Error exception (like that raised by privmsgs.getArgs) -406b263 Fixed getArgs to raise an empty callbacks.Error on invalid arguments -551a68c Added @getprefixchar -c582cd9 Finished polishing relaynames -b67f2fa Fixed showing of originating server in relaynames, and showing of empty name -a144afc Fixed showing of originating server in relaynames, and showing of empty name -54221f1 Added relaynames command -3cea056 Fixed exception-raising problem. -41aa44e Fixed bug in handling of outFilters returning None -954951e Added conf.detailedTracebacks to determine if cgitb should be used. -7d44088 Fixed IndexError in Irc.removeCallback -f1823ef (Hopefully) fixed joins-being-sent-to-original-channel bug. -b615955 Fixed .conf.conf part at end. -ebd8cfd Fixed whitespace bug in HTML stripper. -fc20715 Added utils.py, with a quality HTML stripper; removed stripHtml from other source files -f355465 _gkrecord regex needed to be before stripHtml. Also fixed the _gkseen regex since there is not always 2 spaces. Used \s+ instead. -3cd7272 Satisfied PyChecker -e3309c3 Satisfied PyChecker -714de6b Irc.callbacks is always mutated, never replaced, helping the Relay module out. -37b9342 Accidentally left a debugging statement -b95095d Added cvsup command -15e2657 Fixed funkyArgument to allow bolding. -bc93b29 Fixed memory leak that disabled Google command -4da96fb Fixed stupid bug in outFilter (* is a special regexp character) -5e785ba Added ability to override conf.py defaults with -c option -2719dcd Changed default for telnetEnable to False, for obvious reasons -5db1dbd Changed idiom in doPart to be more like others -c62a65e Fixed a few bugs -da27691 Fixed join/part being relayed bug -e3cf575 Fixed problem with actions being relayed back to the original network -f32efbf Added Friendly.py, a module to be friendly to people. -5954b72 Removed friendly.py; it needs to be renamed Friendly.py and stuck in plugins/ -256e2e0 Fixed stupid bug in outFilter (forgot *not*) -34a4713 Fixed stupid bug in outFilter (extra parenthese in regexp) -fae918a Fixed stupid bug in outFilter (forgot to return msg) -32262af Changed over to privmsgs.CapabilityCheckingPrivmsg and finished relaydisconnect. -d5c7789 Made bot relay its own non-relay messages and factored out formatting of PRIVMSGs. -c268078 Fixed action handling -ca08509 Split UserCommands out from privmsgs. -d1a5457 Changed privmsgs.CapabilityChecker to privmsgs.CapabilityCheckingPrivmsg -2404efa Made it a bit more user-friendly and useful; added owner user creation. -b640aa7 Fixing SQL syntax -f785d97 Fixed users/channels instantiation to allow for non-existent files -0663267 Updated setup.py to reflect moving-out of various *Commands from privmsgs. -6dc64ce Broke AdminCommands out of privmsgs. -5844a14 Separated MiscCommands from privmsgs. -c299956 Fixing little syntax errors -b040e85 Broke ChannelCommands out of privmsgs -cbfcd0b Removed dumpdb.py and makedb.py, both useless since the conversion to SQLite. -935b09d Made major changes to make it nearly functional, added methods to read, send, and delete notes -979ed77 Re-enabled the old reloading method, we'll see if it comes in useful. -20c37dd Put setDaemon in its proper place. -ee6a33b Made making modules that rely on certain capabilities being preset much easier to to write (CapabilityChecker) -21ad5fa Finally somewhat functional. -67944a8 initial import of Notes plugin (in progress) -4679d9b Added strsplit command -1da16fc Removed factually incorrect information -37ce2de Changed bareword to actual string. -df45ce1 Fixed html stripping in foldoc. -6aacef4 Fixed FunCommands.lastfrom actually use channel argument -1f88cd4 PyChecker found unused imports -6c3e6d7 PyChecker found another non-selfed variable -a13c55a PyChecker found a non-selfed variable -587c33c PyChecker found a typoed variable name -e7da39d Untested, but close to functional -e112e32 Still buggy, but more featureful -5fa489e Fixed bug in IrcObjectProxy.getRealIrc: issubclass->isinstance -56a204b Made isCommand checking more flexible. -8ab1e98 Removed useless try/except block. -1623c59 Added __eq__ and __hash__ to the Irc class (necessary for the Relay module) -a848a89 Took out a few things, added a few things. -05b6303 Added extra line before vim line at bottom. -db69351 Do a msvcrt.heapmin() during upkeep on Windows -4d43fe1 Changed nature of threaded implementation to give more descriptive debug messages and to catch and report uncaught exceptions. -1808366 Removing sandbox/makescript.py -6ba9b0f Removing sandbox/anagrams.py, which isn't necessary because FunDB subsumed its features. -a54068d removing sandbox/debian.py -01a2b06 Removed sandbox/8ball.dat -2a5f817 Removing old files. -ead342c Changed defaultCapabilities to a set() instead of a list -f9b755e Removed auth from un-disable-able commands -6d56a86 Forgot irc.reply(msg, conf.replySuccess) in addlart. -76fb597 New style guidelines for SQL. -73244ba Fixed a typo in the docstring of getArgs -17815fb Don't complain about not adding messages to the message queue when world.startup is in effect. -ff8a967 Moved startup to world. -273e426 Changed randomquote to give the number of the quote -b38e5e2 Initial import; workaround for bug in Python 2.2 rfc822.py -468efc0 Added link to SF.net page -d07305b Stylistic bug -4469382 Finally fixed unidentify -1ceab43 Fixed bug in recent commit: msg -> self.msg in IrcObjectProxy -96b03bf Fixed checkCapability to handle anti capabilities during startup -90687f6 Fixed minor period-bug in a docstring help -423e066 Fixed unidentify to not require a name/password. -eabd3c8 Removed auth/unauth aliases for identify/unidentify -657526b Fixed makeAntiCapability to Do The Right Thing in the face of channel-like capabilities -03c50ff Made a helper function tokenize(s) so it can be called instead of Tokenizer().tokenize(s) -57b2fff Added itersplit -d3e28c1 Fixed randomquote in the face of an empty database. -4b6f87f Fixed an AttributeError (connection->conn) -6fa4679 Fixed a stupid variable name (def\!) -5651ae2 Fixed a platform-dependence bug and rewrote some config file parsing to be cleaner. -fa261c0 Added acronym and geekquote commands and triple-quoted method docstrings. -958d1c9 Added kernel command -967a747 Added comment about debugging prints. -5af91f0 Added comment about joining strings -2b7e8c7 Some documenation updates -a4cf067 Changed a typo and updated a slight misrepresentation. -2e00779 Initial import; expect function and roadmap done. -eb48daa Added default module docstring and imported privmsgs and callbacks by default. -0afc399 Added module docstrings (which will later be used by the installer script. -bf25751 Added module docstring and dawdit alias for unmorse -54e0c07 Added module docstring and removed nslookup/host as aliases for dns -8bafe4e Changed module docstring and the order of arguments for startnickserv -0535b87 Corrected my gkstats _record regex. -0294dd2 Made the 'record' regex more generic. This should make it work for everyone. Added a check for 'Team', since not everyone will have one. -c803e5e Added vim:set ... : strings to source in order to keep file formatting consistent between developers. Jeremy should be adding the equivalent settings for emacs soon. -bbe6cbc Fixed bug #708321 -dd35f8f Fixed typo: reponse->response -6787023 Removed cfactive, since, well, CoderForums isn't active. -7851ea4 sets aren't lists, and don't have .extend(). -b6e98a5 Added slashdot command (thanks, inkedmn!) -c628d60 Fixed UnboundLocalError -089e6a4 Fixed a lot of RateLimiter problems; solved Forums.gameknot problem. Also made irc.error raise an exception (that's later handled) in non-threaded callbacks, so there's less a chance of error in not returning after irc.error. -8c27ab7 Slightly changed format of gameknot URL snarfer -300cb1d Removed printf debug -27deaaa Fixed UnboundLocal bugs, caused by not returning after irc.error. -d91b9e9 Added team and "last seen" info in gkstats -b8189d5 Fixed morse code -52b1270 Removed __init__ and created _revcode more naturally. Also added some morehelp strings. -5aea60b Added @give command. -24c6eaa Fixed chr command to take hex/oct/binary literals and added a base command -8d287c2 Fixed bad pluralization in cpustats -f606623 Stupid tabs. -94c10ca Changed format of gameknot URL snarfer. -7e5162d Fixed various non-closed urllib2.urlopens; changed gkstats to respond appropriately if there's no such user. -25d4f12 Fixed lacking irc.error and irc.reply in PrivmsgRegexp; pulled reply functionality into its own function. -3a6c557 Added ord/chr commands -fcdcd11 Changed gkstats command to respond that the user wasn't found on nonexistent users. -d2f5614 Fixed strjoin and added strconcat -4670e6d Added license. -c86363d Made gameknot.com URL snarfer bold the names. -ced5e6b Fixed gameknot.com URL snarfer formatting -4ee9dc7 Fixed gameknot.com URL snarfer formatting (double colons) -d782f7c Fixed gameknot.com URL snarfer -ee7e274 Slightly changed the formatting of the output (again). -d9b17f5 Slightly changed the formatting of the output. -5ec9df1 Fixed some bugs in the weather command. -677a63a *** empty log message *** -5e39dba Added inkedmn's weather command. -c4a577c Minor change in formatting of Http module and foldoc command. -7801c84 Initial revision +2009-05-25 James Vega + + * Version 0.83.4.1! + + * Fixed a bug in Factoids where the help could not be retrieved for + any command. + + * Fixed a bug where Plugin.list wouldn't list any aliases/RSS feeds + from the Alias/RSS plugins. + + * Updated Google to ensure the third-party json module (different API + than simplejson) isn't loaded. Based on a patch from Ricky Zhou. + + * Updated Channel.nicks so it doesn't reply with nicks from secret + channels outside of that channel. + + * Updated Channel.{op,halfop,voice,deop,dehalfop,devoice} commands so + they respect the server's "max mode changes per message" setting. + + * Updated utils.str.nItems to accept long as well as int. Thanks to + Ricky Zhou for the patch. + +2009-05-18 James Vega + + * Version 0.83.4! + + * Fixed a bug where we were attempting to tag a non-existent IrcMsg. + + * Fixed a bug where the Web plugin was not catching the correct + exception. + + * Fixed a bug where the Protector plugin was attempting to use a + non-existent variable. + + * Added verbiage to supybot.log.level indicating that it doesn't + control the logging level for stdout and pointing out the correct + config variable. + + * Added a new rank command to the ChannelStats plugin. + + * Added a new remove command to the Later plugin. + + * Added new azn and uniud commands to the Filter plugin. + + * Fixed a bug in the Socket driver that could cause it to continually + attempt to reconnect to a server which is unavailable. + + * Fixed a bug in supybot-wizard that would cause it to abort if the user + chose to use SSL. + + * Fixed the haveOp context to call getChannel if it wasn't already + called. + + * Fixed a bug in supybot-test where the entire test run would end if one + plugin couldn't be loaded. + + * Updated the httpUrl context to prepend 'http://' if that would result + in a valid HTTP URL. A noticeable benefit is that users can now call + "@title slashdot.org" instead of requiring the user to call + "@title http://slashdot.org". + + * Fixed Supybot to be compatible with Python 2.6 + + * Added a note to Owner.defaultplugin's help to point out + supybot.commands.defaultPlugin.importantPlugins, which affects which + plugins have priorities over ambiguous command names. + + * Rewrote the Google plugin to use the new AJAX API since Google + hasn't been giving out new keys for the SOAP API. + + * Added a new translate command to the Google plugin. + + * Fixed a copy/paste error in the help for User.capabilities. + + * Updated Web.title to give a more appropriate message if the URL + definitely has no title. + + * Fixed irc.reply so prefixNick is not used when action=True. + + * Implemented the command flood prevention, controlled by + supybot.abuse.flood.command.*, thanks to a patch from nebajoth. + + * Added utils/crypt.py to provide a uniform interface to the Python + crypt functionality regardless of the Python version being used. + + * Fixed the urlRe and httpUrlRe regexes in utils/web.py to be more + correct about what they match. They now match according to RFCs 1034 + and 1738. + + * Updated getSyntax to allow the syntax string to be specified, + similar to getHelp. + + * Updated getCommandHelp to respect supybot.reply.showSimpleSyntax. + + * Updated Factoids.getCommandHelp to respect + supybot.reply.showSimpleSyntax. + + * Fixed a bug where getCommandMethod would return methods that weren't + actually commands. This was exposed by adding a die Alias. + + * Removed supybot.plugins.Channel.banmask in favor of a general config + variable, supybot.protocols.irc.banmask. + + * Updated AutoMode to respect supybot.protocols.irc.banmask when + banning. + + * Updated Channel.ignore.add and Channel.ban.add to respect + supybot.protocols.irc.banmask. + + * Fixed Channel.kban so that it will fall back to an exact hostmask + instead of refusing to ban the user when the banmask would also match + the bot's hostmask. + + * Added the ability to disable ChannelLogger's logging on a + per-channel basis. + + * Fixed Config so it will respond with an error when the set, get, or + default commands are called on config groups that don't have values. + + * Added a new config variable, supybot.plugins.AutoMode.owner, which + can be used to prevent AutoMode behavior from applying to the owner(s) + (since the owner has all capabilities). + + * Fixed the regex parsing in utils/str.py to correctly handle multiple + backslashes before the search/replace separator. + + * Renamed supybot.plugins.Google.safeSearch to + supybot.plugins.Google.searchFilter since the behavior and valid + values changed as part of the switch to the AJAX API. + + * Updated RSS.announce to have list, add, and remove sub-commands + instead of the old option-parsing interface. + + * Added a new config variable, + supybot.plugins.ShrinkUrl.shrinkSnarfer.showDomain, which controls + whether the shrinkSnarfer displays the domain of the original URL + along with the shrunken URL. + + * Updated the default value for + supybot.plugins.ChannelLogger.filenameTimestamp so it sorts + chronologically. + + * Updated Misc.last to prevent users from retrieving messages from + channels they aren't in or from private channels when they're in + another channel. + + * Fixed supybot.directories.plugins so the directory Supybot is + installed to is not included. This change makes the config file work + across Python upgrades without user-intervention. + + * Updated Config.config to show both the global and channel-specific + value (if it exists) of the variable. + + * Fixed Google.calc to work around a change in Google's HTML. This + change should be more resilient to future HTML changes. + + * Fixed a bug where User.set.password could not be used if your + current hostmask wasn't recognized. + + * Fixed a bug in Limiter where the limit could be set to fewer than + the current number of users in the channel. + + * Updated String to give a more useful message when decoding a base64 + string fails. + + * Updated User.hostmask.add to require it be called in private since a + password may be given as part of the command. + + * Updated BadWords to only strip the formatting of messages which have + a bad word in them. + + * Fixed a bug in the supybot script where it would continue to run + even if it was unable to create the pidFile. This could cause + multiple instances of supybot to run simultaneously if using + supybot-botchk were being used to keep supybot running. + + * Updated plugins.DB to return a fake database check when generating + documentation. This allows the user to generate docs without having + the required database plugins installed. + + * Updated supybot-plugin-doc to be able to generate reStructuredText. + + * Removed the Insult plugin. + + * Added the Dunno plugin, which can be taught responses to use in + place of the normal invalid command response. + + * Added the Success plugin, which can be taught responses to use in + place of the normal operation succeeded response. + + * Updated the data file for Math's convert command. + +2007-10-22 James Vega + + * Version 0.83.3! + + * Added the BadWords plugin from supybot-plugins and updated the + plugin to allow kicking of people who use defined BadWords. + + * Added support for different log levels on stdout vs the log file. + + * Fixed a bug where the bot always reacted to invalid command floods + even if supybot.abuse.flood.command.invalid indicated not to. + (Closes: #1716878) + + * Fixed a bug where the RSS plugin would lower-case URLs, thus making + them impossible to retrieve. (Closes: #1666786) + + * Fixed ircmsgs.prettyPrint to handle unrecognized commands. + (Closes: #1630963) + + * Fixed a bug in the Services plugin where the bot would continuously + send Ghost commands. + + * Fixed Google.calc to handle a change in Google's HTML. + + * Fixed a bug where Plugin.list was listing functions which weren't + valid commands. + + * Fixed RSS's handling of encodings to eliminate some ascii conversion + errors. + + * Updated the rssparser using plugins with the renamed and newer + feedparser 4.1 in order to properly handle Bugzilla RSS feeds. + + * Updated PLUGIN_TUTORIAL to specify that the user needs to import + Python's random module. + + * Updated the Web plugin so it uses HTMLParser over sgmllib's parser + since sgmllib's enters an infinite loop on invalid input. + + * Updated getHelp() so callers can pass in the help string. This is + used in the Factoids plugin to dynamically generate a help string + based on a config value. + + * Updated questions.py so bolding is handled better. User input, + default values, and defined choices are no longer bolded. + + * Updated String.len to use wrap(). This greatly simplifies the + command and introduces better argument handling. + + * Updated a few uses of sre to use re if the bot is running under + Python 2.5. + + * Fixed test cases for mircColor and sorted (thanks dcraven). + + * Updated assertAction's error message to give useful information + about what went wrong. + +2006-07-23 James Vega + + * Version 0.83.2! (A long overdue bugfix release) + + * Added ADVANCED_PLUGIN_CONFIG, ADVANCED_PLUGIN_TESTING, CAPABILITIES, + USING_UTILS, USING_WRAP, STYLE, and PLUGIN_TUTORIAL docs. + + * Updated the Services plugin such that it will not spam GHOST + commands faster than once every 60 seconds (or as set by + supybot.plugins.Services.ghostDelay). + + * Updated the Seen plugin so that performing @seen with a leading + wildcard will not result in duplicate nicks in the response. + + * Updated RSS to handle the feed's advertised character encoding in + more of its commands. + + * Updated "Channel.ban list" to show how long until the ban expires. + + * Fixed the bug where addressed karma adjustments would cause the bot + to crash. + + * Fixed Alias.lock and Alias.unlock to work properly now that the + alias functions are no longer attributes of the Alias plugin. + + * Fixed a Windows-specific NameError in log.py. + + * Fixed Config.help to actually perform the string substitution of the + given config name. + + * Replace Twisted with Socket as the default network driver. + + * Added an --ssl option to Network.connect. + + * Added a question about SSL network connections in supybot-wizard. + + * Added recognition of UnrealIRCd's protected users and channelowners + as ops. + + * Updated URL.last to perform a case-insensitive search. + + * Updated the Author class so it performs the email munging. This + prevents munging occurring for punctuation in a person's name. + + * Updated ircutils' color handling to specify a default foreground + color of white if only a background color is specified. + + * Updated registry.StringWithSpaceOnRight to accept the empty string. + + * Updated registry.StringSurroundedBySpaces to be a single space if + given an empty string. + + * Updated utils.str.format to recognize digits before the '.' in %f + formatting. + + * Stop explicitly setting a umask. Instead we'll just obey the user's + umask. + +2005-09-01 James Vega + + * Version 0.83.1! + + * Fixed a bug in Owner where plugins would not be automatically loaded + unless the bot was connected to more than one network. + +2005-08-30 James Vega + + * Version 0.83.0! + + * Updated the Services plugin to realize it is identified when + NickServ says that the bot is already identified. + + * Updated Network.whois so that +s channels are only returned when in + that channel. + + * Updated RSS.info to retrieve the proper information from + rssparser's results. + + * Updated the RSS plugin to encode the headlines in the proper + charset, if the feed specifies an encoding. + + * Fixed a bug in Todo.todo when negative priorities are used. + + * Fixed a bug in Web where the entire title was not correctly parsed + from the web page. + + * Fixed a bug in Web where the title was correctly parsed, but a later + parsing problem caused the command to not reply with the title. + + * Fixed a bug in Misc.last where the last message in a channel was + skipped when the command was not called in that channel. + + * Fixed a bug in Channel.ban remove and Channel.ignore remove when + there were no bans or ignores. + + * Fixed a bug in User.hostmask list when there are no registered + hostmasks. + + * Changed the prefixName keyword argument to prefixNick. + + * Updated the socket handling to properly detect when an IPV6 + connection should be made. + + * Updated irclib to handle IRCds (like IRCNet) which send a + MAXLIST-style value for the MAXBAN 005 key. + + * Updated the plugin loading to happen during __init__ instead of when + receiving the 001 message. This allows the bot to connect to networks + that require a CTCP response on connect. + + * Updated the SIGHUP handler to reload the ignoresdb. + + * Fixed a bug in ircutils.isNick so that it no longer allows nicks to + start with a hyphen. + + * Fixed a bug in the first spec which would cause an error to be + raised if the first converter failed. + + +2005-05-30 James Vega + + * Version 0.83.0rc3! + + * Updated Topic such that it can undo the first topic change performed + in a channel. + + * Removed -O and -OO options for scripts/supybot. + + * Removed password hashing options for scripts/supybot-adduser. + + * Fixed a bug where RSS.remove wasn't removing the feed from + conf.supybot.plugins.RSS.feeds. + + * Fixed a bug in Topic.set where setting the first topic would change + the entire topic. + + * Fixed an AttributeError in the Ctcp plugin. + + * Fixed a problem where Supybot would attempt to connect to a network + it was already connected to. + + * Fixed a problem where a command with the same name as its plugin had + to be invoked as "plugin command". + + * Fixed an exception when irc.reply was called with a non-string + argument. + + * Fixed an ImportError in Twisted driver when OpenSSL wasn't + available. + + * Updated Socket driver to fix some longstanding issues. + + * Added supybot.drivers.maxReconnectWait, which determines the maximum + amount of time the bot will wait before attempting to reconnect to an + IRC server. + + * Added utils.python.Synchronized metaclass to ensure synchronized + access to class methods. + + * Moved utils.changeFunctionName to utils.python.changeFunctionName. + + +2005-05-12 James Vega + + * Version 0.83.0rc2! + + * Added News, Unix, and Insult plugins which were missing in the + previous RC. + + * Updated Misc.list to show the full configuration variable name when + the plugin has no commands. + + * Fixed an HtmlParseError exception in Web's title command and + titleSnarfer. + + * Fixed an ImportError exception when calling Todo.todo with no + arguments. + + * Fixed a bug where Channel.{enable,disable} would throw an exception + if only a command names was specified. + + * Added utils.str.ordinal (patch from genjamin AT gmail DOT com). + + +2005-05-02 James Vega + + * Version 0.83.0rc1! + + * Added supybot-botchk script. This script can be run from a + cron job to make sure your Supybot restarts when the computer it + runs on is rebooted, and can make sure the bot restarts if it + ever crashes (which it shouldn't). It also allows restarting the + bot without shelling out to the box it runs on; if you quit the + bot, it'll automatically restart. + + * Added supybot-plugin-doc script, which generates documentation for a + plugin. + + * Added SSL server support for the Twisted driver. + + * Added Web plugin, which contains most of the commands that were + in the (formerly included) Http plugin. + + * Added Reply plugin, which contains several commands that were + in the Misc and Utilities plugins. + + * Added Games plugin, which contains several commands that were + in the (formerly included) Fun plugin. + + * Added String plugin, which contains several commands that were + also in the formerly included Fun plugin. + + * Added Topic.fit, which adds a new topic to the end of the + channel topic, removing topics at the beginning as necessary to + squeeze the new topic in. + + * Added Seen.any, which reports the last time a person was seen + at all, rather than just the last time a person said something in + a PRIVMSG. + + * Added Web.fetch, which replies with the text of the given URL. + This might be useful in combination with Utilities.re command, + for pseudo-parsing URLs within aliases. + + * Added Note.next to retrieve the next unread note (patch from Sune + Foldager. Come back, Sune!). + + * Updated User.capabilities always to respond in private (for + owner users) and to prevent non-owner-users from retrieving other + user's capabilities. + + * Updated Relay.{join,part} so they require the admin capability. + + * Updated Plugin.contributors to pull author/contributor information + from the plugin in addition to the authors already hard-coded in + Supybot. + + * Added conf.supybot.protocols.irc.queuing.rateLimit.join to throttle + how fast Supybot joins channels. + + * Added conf.supybot.plugins.Herald.requireCapability, which specifies + the capability a user needs to affect another user's herald. + + * Added conf.supybot.plugins.ShrinkUrl.bold, which specifies whether + the plugin should use bold in its responses. + + * Renamed conf.supybot.plugins.Herald.throttleTime to + conf.supybot.plugins.Herald.throttle. + + * Renamed conf.supybot.plugins.Herald.throttleTimeAfterPart to + conf.supybot.plugins.Herald.throttle.afterPart. + + * Renamed the general log file (misc.log) to messages.log. + + * Renamed Google.metagoogle to Google.meta. + + * Renamed conf.supybot.protocols.irc.queueDuplicateMessages to + conf.supybot.protocols.irc.queuing.duplicates. + + * Updated Alias.add so that alias names can coincide with plugin names. + + * Added netsplit throttling to Herald. Now if only we could do + that to Relay... + + * Changed Todo's db format to a single flatfile db per user. + + * Fixed a bug where the nickInChannel converter would add the channel + to the args list. + + * Fixed some exceptions in RSS. + + * Fixed a problem with RSS not properly escaping feed names. + + * Fixed supybot.utils.str parsing of regular expression separators + other than / (patch from gcbirzan). + + * Fixed Owner.enable so that commands can actually be re-enabled. + + * Fixed Bug #1190350, incorrect extraction of a website's title. + + * Added various functions to supybot.utils.file (touch, writeLine, + readLines, chunks). + + * Renamed the 'regexps' attribute in callbacks.PluginRegexp + (formerly callbacks.PrivmsgCommandAndRegexp) to unaddressedRegexps + to callbacks.PluginRegexp so as to complement addressedRegexps. + + * Removed the extra argument to utils.str.pluralize which specified + whether or not to pluralize the string. + + * Changed the order of the arguments to utils.str.nItems. + + +2005-01-16 James Vega + + * Version 0.80.0! + + * Updated Babelfish to include Dutch, Greek, Russian, and traditional + Chinese as supported languages. + + * Updated RSS.rss to obey supybot.reply.oneToOne. + + * Updated registry.py to specify which registry value has an improper + docstring. + + * Fixed a bug in Ebay.auction, the "Current bid" regexp needed to be + updated. + +2005-01-12 James Vega + + * Version 0.80.0rc3! + + * Updated the Geekquote snarfer to snarf qdb.us' links. + + * Fixed a bug in Infobot, mis-typed registry value. + + * Fixed Network.connect to actually use the supplied password. + + * Fixed supybot.databases.plugins.channelSpecific.getChannelLink() + to return the proper channel link instead of returning the given + channel. + + +2005-01-11 James Vega + + * Version 0.80.0rc2! + + * Implemented Observer.remove, which disables and removes the observer + from all channels. + + * Added supybot.databases.channelSpecific.link.allow to determine + whether a channel allows other channels to link to its database. + + * Added supybot.plugins.BadWords.stripFormatting, which determines + whether the bot will strip any formatting before filtering bad words. + + * Added supybot.plugins.Markov.ignoreBotCommands, which determines + whether the Markov plugin will learn commands given to the bot. + + * Added a Network.driver command, which reports the current driver + being used. + + * Added an Infobot.update command, which allows the user to import an + existing Infobot factpack. + + * Added a Topic.replace command, which replaces the given topic with a + new topic. + + * Added a Note.search command, which allows the user to search for + notes they have sent or received. + + * Added supybot.databases.channelSpecific.getChannelLink(), which + returns a channel based on how channels link to each other. + + * Added supybot.plugins.Channel.banmask which specifies the default + method of generating Channel.kban's banmask. + + * Renamed supybot.databases.plugins.channelSpecific.channel to + supybot.databases.plugins.channelSpecific.link. + + * Updated RSS.announce such that it adds the arguments to the current + list of announced feeds instead of overwriting the current list. + + * Update the Google groupsSnarfer to work with Google's beta groups + website. + + * Updated Network.disconnect to announce that the disconnection + attempt has started. + + * Updated Debian.bug to handle website changes. + + * Updated Observer.{add,remove} to require the Admin capability. + + * Updated Infobot so that it actually works reasonably well; removed + the deprecation. + + * Updated Sourceforge to handle changes in the website. + + * Updated UrbanDict to handle changes in the website. + + * Updated plugins.getChannel and plugins.makeChannelFilename to + properly handle the new channelSpecific database setup. + + * Fixed a bug with ShrinkUrl.ln; the url needed to be urlquoted before + being passed off to ln-s.net. + + * Fixed some database conversion bugs in fundbConvert.py. + + * Fixed a bug in socketDrivers where reconnection attempts would + always occur immediately, thus continually blocking the bot. + + * Fixed an exception in registry.OnlySomeString's error method; + the parent method doesn't accept an argument. + + * Fixed a bug in RSS where announcing the same feed in multiple + channels would cause improper displaying of the new feeds. + + +2004-12-22 Jeremy Fincher + + * Version 0.80.0pre6! + + * Added a Topic.separator command, which replaces the current + separator with a new separator, changing the topic to reflect the + change. + + * Changed the supybot.user configuration variable so that if it + isn't configured, the user will stay up-to-date with the current + version of the bot. To take advantage of this, set your + supybot.user configuration variable to "" + + * Removed the supybot.databases.users.hash configuration + variable, so all bots hash by default. + + * Fixed a bug with AutoMode's auto-banning feature; a variable + was misspelled. + + * Fixed a bug with ChannelValues picking up children that aren't + channels. + + * Fixed Misc.apropos not to be case-sensitive. + + * Fixed bug in User.register; it works now. + + +2004-12-20 Jeremy Fincher + + * Version 0.80.0pre5! + + * Added a "shuffle" command to the Utilities plugin, which + shuffles its arguments. Useful in combination with + Utilities.last, which returns the last argument it's given, in + combination with Utilities.apply, in order to pick a random + string (think aliases). + + * Added supybot.plugins.Relay.noticeNonPrivmsgs, for making the + relay plugin use NOTICEs rather than PRIVMSGs to relay + non-PRIVMSG messages to a channel. This often affects tab + coloring in IRC clients and thus makes it so that relay messages + color the tabs like the actual messages would have. + + * Numerous bug fixes. Many, many bugs fixed. Oodles and oodles + of bugs have been fixed. Myriad bugs fixed. Get the idea? :) + + +2004-12-17 James Vega + + * Version 0.80.0pre4! + + * supybot.databases.plugins.channelSpecific.channel is now a + channelValue so that individual channels can decide to link their + databases. + + * Deprecated asyncoreDrivers. Use twistedDrivers or socketDrivers + instead. + + * Moved {eval,exec} from Owner.py to Debug.py in the sandbox. + + * Numerous bug fixes. + + +2004-09-30 Jeremy Fincher + + * Version 0.80.0pre3! + + * Deprecated FunDB, added two new plugins, Lart and Praise, to + handle the same features individually for larts and praises. + There is a script in tools/ that will convert from a FunDB to a + lart or praise database. + + * Deprecated the Infobot plugin, in expectation of a rewrite. + + * Deprecated the Quotes plugin, since we don't know anyone who + seriously uses it. Let us know if you do use it, because it may + be removed in a future version. + + * Added Karma.{dump,load} for dumping and subsequently loading + the Karma database. + + * Changed the News database implementation to a flatfile + database. + + * Removed the tinyurl shrinking code from the URL plugin and put + it in the ShrinkUrl plugin, and added the ability to use ln-s.net + as different URL shrinker as well. + + * Added an outFilter to the ShrinkUrl plugin that will shrink any + outgoing URL that is longer than the minimum length. + + * Added a Freenode plugin as proof-of-concept; the bot can now + use CAPAB IDENTIFY-MSG to ignore users that aren't identified. + + * Added the ability for the Seen plugin to match nicks with + wildcards. + + * Added a showLinks configuration option to the RSS plugin to + show links during announcements (and another such variable for + non-announcements). + + * Added the spellit, hebrew, and shrink filters to the Filter + plugin. + + * Added the ability to log to separate directories to + ChannelLogger. + + * Added the option to Lookup.add to add lookups that don't reply + with the key. + + * Added "at" and "until" commands to the Time plugin; they're not + perfect, and they don't parse nearly enough times, but they're + somewhat tolerable for now. + + * Added a Sourceforge.stats command. + + * Added single-letter commands to the Words plugin when a hangman + game is active. + + * Added supybot.plugins.Services.disabledNetworks, to disable the + Services plugin specific networks. + + * Added supybot.protocols.irc.vhost, for binding to a vhost + before connecting. + + * Added supybot.reply.format.time.elapsed.short, offering now a + "short" formatting for elapsed times. + + * Added supybot.commands.quotes, for configuring which quotes can + be used to quote arguments to commands. + + * Added supybot.databases.plugins.channelSpecific.channel, + specifying the "default channel" for non-channel-specific + databases to use. + + * Moved the supybot.humanTimestampFormat configuration variable + to supybot.reply.format.time. + + * Added a configuration variable determining the maximum length + of replies internally, so they can't suck up as much CPU as they + would otherwise. + + * Added a configuration variable determining the maximum nesting + depth allowed, so exceedingly nested commands will be stopped + before they're executed. + + * Added configuration variables concerning the formats used by + the central and plugin logging facilities. + + * Added a configuration variable determining the quote characters + used by the bot to quote literal strings. + + * Added support for line-wrapping the registry configuration + file. + + * Moved supybot.reply.{brackets,pipeSyntax} to + supybot.commands.nested. + + * Fixed a longstanding bug with the bot "forgetting" + channel-specific configuration variables if they weren't + exercised during the duration of the bot's uptime. + + * Fixed renames so they're finally persistent. + + * Fixed a bug having to do with Note and unsent notes. + + * Fixed several bugs in the interaction of Infobot with other + plugins. + + * Added commands.wrap, the new method for wrapping commands and + handling type validation errors consistently throughout the bot. + + * Upgraded many of the outside projects we include to their + newest versions. + + +2004-09-17 James Vega + + * Version 0.80.0pre2! + + * Added supybot.plugins.Google.colorfulSnarfer, which determines + whether the word 'google' in the bot's output will be made colorful + (like Google's logo). + + * Added the Time plugin, to hold all of our Time related commands. + + * Added max() and min() to Math.calc. + + * Added Unix.pid, which allows the Owner to retrieve the pid of the + bot's process. + + * Added supybot.plugins.Sourceforge.enableSpecificTrackerCommands, + which enables the rfe, bug, and patch commands. + + * Added Topic.topic, which returns the current topic of the channel. + + * Updated conf.Databases to use a more sane database ordering and + include anydbm. + + * Updated various plugins to use our new-style database abstraction. + Plugin databases using this new-style will be named Plugin.dbtype.db. + +2004-09-12 Jeremy Fincher + + * Version 0.80.0pre1! + + * Added the facility to supporting several different database + implementations in a plugin, allowing the user to specify which + databases are supported as well as in what order of preference. + + * Added the Insult plugin, for colorful, creative insults. + + * Added the UrbanDict plugin, for defining words based on + UrbanDictionary.com. + + * Added the Observer plugin, for watching a channel for regexps + and running commands when the bot sees such regexps. + + * Moved Http.geekquote to a new Geekquote plugin, added a command + for using qdb.us, and added a snarfer. + + * Added a SuperIgnore plugin, a good example of an inFilter and a + way to completely, totally ignore people. + + * Changed the name of the Network plugin to Internet. + + * Added a new Network plugin, and moved some commands from Owner, + Misc, and Relay to it. + + * Added CTCP flood protection. + + * Added a supybot.plugins.Karma.allowUnaddressedKarma + configuration variable, for allowing karma increments/decrements + similar to Infobot. + + * Added supybot.reply.whenAddressedBy.nicks, to allow users to + specify a list of nicks to which the bot will respond as if they + were its own nick. + + * Added the ability to support multiple-word karma + increments/decrements. + + * Changed Owner.rename to be handled persistently; now renames + work across restarts of the bot or reloads of a plugin. + + * Changed Misc.last to include a timestamp for when the message + was sent. + + * Added the Channel.alert command, to send all currently + connected ops on a channel a message. + + * Changed the MoobotFactoids plugin to allow commands to be + nested in factoids definitions and searches. + + * Removed the futurama command in favor of adding a + futurama.supyfact file to supybot-data. + + * Improved the Http.kernel command, showing more kernel types. + + * Added a new contributors command and a way of storing + contributors and their contributions in a plugin. + + * Changed the name of Anonymous.action to Anonymous.do, to be + more consistent with "say" and other bots (MozBot, iirc). + + * Added the ability for channel bans and ignores and global + ignores to have expiration times. + + * Added invalid command flood protection. + + * Changed RSS' headlines output to bold the separators in order + to make it easier to distinguish the headlines. + + * Added a --no-network option to supybot-wizard. + + * Added several attributes to IrcMsg objects as they pass through + the bot; currently we tag them with receivedAt, receivedBy, and + receivedOn. + + * Added RichReplyMethods.errorInvalid, a nice helper method for + sending errors about invalid values. + + * Changed the --nonetwork and --noplugins options to test/test.py + to --no-network and --no-plugins. + + * Changed plugins.makeChannelFilename, swapping the order of the + channel and filename arguments and making the channel optional. + + * Changed the first argument to callbacks.Privmsg.callCommand to + be a name rather than a method, for greater justice. + + * Added a new mechanism for ordering plugins (subclasses of + callbacks.Privmsg) which is much more flexible than a simple + priority system. + + +2004-09-06 James Vega + + * Version 0.79.9999! + + * Added stripFormatting option to ChannelLogger plugin, which + determines whether non-printable formatting characters are logged. + + * Added Sourceforge.patches command to complement the current bugs + and rfes commands. + + * Added abs() to Math.calc. + + * Improved the interface for Config.list. Now groups and values + are listed, with groups being denoted by a leading @. + + * Improved Config.config such that the user can specify the entire + config variable name (conf.supybot....). + + * Fixed a bug where ChannelLogger wouldn't log ignored nicks. + + * Fixed an incorrect path in INSTALL. + + * Fixed some missing imports in Unix's configure method. + + * Fixed a bug where an owner could publically retrieve a private + configuration variable. + + * Fixed an exception when trying to remove non-existent Heralds. + + * Fixed an exception in RSS.getHeadlines. + + * Fixed a couple bugs in Poll, when retrieving the Poll id. + + * Fixed a problem with trying to use socket.inet_pton under + Windows; Python doesn't build their Win32 port with IPV6 support, + so we have to brute-force IPV6 detection. + + * Fixed a few bugs with how Infobot handled the SQLite db. + + * Fixed others/convertcore.py so that liter-based units are + properly capitalized (L not l) and use 1000 as the conversion rate + for MB, KB, etc. since MiB, KiB, etc. are also known units. + + * Fixed a bug where Infobot would confirm an unaddressed factoid + definition. + + * Fixed a problem where Google.stats didn't keep track of all + searches. + + +2004-08-31 Jeremy Fincher + + * Version 0.79.999! + + * Added the ability to send long fortunes line-by-line rather + than all in one (or several) messages; it will do this if + supybot.reply.oneToOne is set to False. + + * Added many configuration variables to the Unix plugin, allowing + configurable commands and options to those commands. + + * Changed the output of Config.list to show groups with a + preceding @, rather than use the --groups option. + + * Changed the Google.stats (formerly Google.info) command to be + persistent, using the registry to record old values for the + number of searches made and the number of seconds Google has + spent searching for the bot. + + * Added module __revision__ logging to our exception logs, for + more information in bug reports. + + * Fixed a bug with asyncoreDrivers' handling of reconnects; it + would not reconnect when commanded to if it had reconnected + before. + + * Fixed several bugs where the bot was testing nicks for + equivalence without first normalizing them, leading to some false + negatives. + + * Fixed a bug with the handling of + supybot.reply.withNoticeWhenPrivate so all private messages + really are replied to with a notice. + + * Fixed Http.geekquote to match the current bash.org layout. + Also, made sure all ids are valid ids before requesting a quote + (apparently bash.org is returning a certain quote for all invalid + ids). + + * Fixed a bad regular expression in the Ebay plugin which could + cause the bot to suck up 100% CPU for a signficant (perhaps + practically infinite) amount of time. + + * Fixed a bug where the bot would sometimes reconnect to a + network after being told to disconnect. + + * Fixed an uncaught exception in Owner.connect when the user + forgets the network name + + +2004-08-30 Jeremy Fincher + + * Version 0.79.99! We're getting asymptotically closer to + 0.80.0! + + * Added Anonymous.action, to anonymously perform actions in a + specified channel. + + * Added a Karma.clear, so channel ops can clear the karma for a + given name. + + * Added a Topic.redo, to redo the last undo. + + * Added supybot.protocols.irc.umodes, to allow the bot to set + user modes upon connecting to a network. + + * Fixed numerous bugs involved with disconnecting, reconnecting, + and using multiple networks. + + * Fixed a bug that would prevent the bot from quitting except via + multiple Ctrl-Cs. + + * Fixed some mis-interaction between the Karma plugin and the + Infobot plugin. + + * Fixed RSS's announcements. + + * Fixed bug in Later whereby no more than one message could be + queued for a nick. + + * Fixed Services.configure, as well as several bugs in Services + which sometimes prevented the bot from identifying. + + * Fixed bugs in the Poll module that caused the list and poll + commands not to work. + + * Fixed the ebay snarfer. + + * Fixed exception raised by some CTCP messages when the URL + plugin was loaded. + + * Fixed Debian.version. + + * Fixed Amazon's use of unicode. + + +2004-08-27 Jeremy Fincher + + * Version 0.79.9! + + * Added Infobot, a plugin to emulate Infobot. + + * Added Anonymous, a plugin for anonymously saying things to a + channel. + + * Added Tail, a plugin which will tail logfiles and send the + new lines to a configurable list of targets. + + * Added NickCapture, a plugin which tries to recapture a nick + that's being used by someone else, both by watching for QUITs + with that nick and by checking via ISON for that nick. + + * Changed the behavior of "seen" with the --user switch instead to + be a separated command, Seen.user. + + * Changed the behavior of "seen" with no arguments instead to be + a separate command, Seen.last. + + * Moved the connect and disconnect commands from the Relay plugin + to the Owner plugin, so a Supybot can be on multiple networks + without ever loading the Relay plugin. + + * Added relay bot detection to the Relay plugin. Now, rather + than get involved in a loop with another relay bot, a Supybot + will (if it has ops) rain down its wrath upon the offender. + + * Added supybot.plugins.Quotes.requireRegistration, which + determines whether a user need be registered to add Quotes to + the Quotes database. + + * Added supybot.plugins.RSS.showLinks, which determines whether + the bot will show links to the RSS headlines along with the + normally displayed titles. + + * Removed supybot.reply.withPrivateNotice and split it into two + separate configuration variables, supybot.reply.withNotice and + supybot.reply.inPrivate. + + * Added supybot.log.stdout.wrap, to allow optional (defaulting to + True) wrapping of stdout logs. + + * Added supybot.databases.plugins.channelSpecific, a value that + determines whether the database used for channel-based plugins + will be a channel-specific database or a global database. This + value, ironically enough, is channel-specific -- channels can + each individually decide to be "part of the Borg" or to "be their + own channel." The default, of course, is for databases to be + channel-specific. + + * Changed the way channel databases are handled; instead of + generating #channel- files, instead we create a subdirectory + of the data directory named #channel, and then stick all the files + in there. It's a much cleaner way to do things, in our opinion. + + * Added several configuration variables to the Status plugin to + determine how verbose the cpu command is. These are, of course, + channel-specific. + + * Added a configuration variable to the Dunno plugin, + supybot.plugins.Dunno.prefixNick, which determines whether the + bot will prefix the nick of the user giving an invalid command to + its "dunno" response. Formerly, it never would; the default for + this variable, however, is True, because that's how the rest of + Supybot works. + + * Added Owner.rename, a command for renaming commands in other + plugins. + + * Added Config.channel, for getting/setting channel configuration + variables. + + * Fixed the problem with channels with dots or colons in them + raising exceptions whenever the registry was accessed. + + * Changed Fun.eightball to provide a similar answer for a question + asked multiple times. + + * Changed Fun.roulette to use a 6-barrel revolver. + + * Changed Bugzilla to use the registry, rather than a custom + flatfile database format. + + * Added the KeepAlive plugin, to send useless keepalive messages + to someone every some period. It's mostly just because we + noticed that MozBot had one, and we couldn't allow ourselves to + be outdone. + + * Changed the URL plugin to use flatfiles rather than SQLite + database. Also reduced the functionality of the last command by + removing some options that no one ever really used, and removed + the random command (who uses that anyway?) + + * Changed the Words plugin not to use SQLite. We lose the + anagram command, but crossword and hangman become much easier to + use, since all the user has to do is put a words file in + data/words. + + * Changed the Relay plugin to rely only on the registry, allowing + it to start and join all networks and channels with no user/owner + interaction at all. Also, removed the Relay.say and + Relay.reconnect commands, since both can be accomplished easily + using the Relay.command command in combination with + Owner.reconnect and Anonymous.say commands. + + * Added supybot.reply.withNoticeWhenPrivate, to make the bot + reply with a notice when it privately messages a user -- this + generally means that the user's client won't open a query window, + which may be nice. Do note that users can override this setting + via the user registry variable of the same name. + + * Added supybot.nick.alternates, which allows a list of alternate + nicks to try, in order, if the primary nick (supybot.nick) is + taken. Also added a nick-perturbation function that will change + supybot.nick if there are no alternates or if they're all taken + as well. As a result, removed supybot.nickmods. + + * Changed ChannelLogger to log channels to logs/ChannelLogger, + rather than simply logs. + + * Added the ChannelRelay plugin, to relay messages between two + channels. This might be useful for people who want to forward + CVS update messages from one channel (such as #commits) to + another. + + * Added Channel.mode, to set modes in the channel, Channel.limit, + to set the channel limit, Channel.moderate and + Channel.unmoderate, to set +m and -m, respectively, and + Channel.key to set or unset the channel keyword. + + * Added a new plugin, Format, which offers several commands for + formatting strings on IRC. Moved several commands from to it + from the Utilities plugin. + + * Improved the functionality of RSS.announce. Calling it with + no arguments now lists the currently announced feeds. Removing + feeds is done by specifying the --remove option. + + * Added a reconnect command to the Owner plugin. + + * Added aol and rainbow filters to the Filter plugin. + + * Added Nickometer plugin, a translation of Infobot's Nickometer. + + * Added multiple recipient support for notes. + + * Added BadWords.list, to list the bad words currently being + censored by the bot. + + * Changed Misc.help to allow plugins to specify their own help, + and added help for several of the more confusing plugins. + + * Added Dunno.stats, to return the number of dunnos in the + database. + + * Added the Currency plugin, to perform currency conversions. + + * Added conf.supybot.plugins.Karma.allowSelfRating, which + determines whether users are allowed to adjust the karma of their + current nick. + + * Added --nolimit option to Misc.last, which causes it to return + all matches that are in the history. + + * Added conf.supybot.plugins.Herald.defaultHerald, which provides + a default herald to use for unregistered users. Herald.default + was also added as a friendly interface to managing the + defaultHerald. + + * Added Weather.wunder, which uses wunderground.com to report the + current weather status. + + * Changed supybot.defaultCapabilities to be a space-separated + list rather than a comma-separated list. Also added a check to + make sure -owner was in supybot.defaultCapabilities, and to + require a command-line option to allow it not to be present. + + * Added Sourceforge.fight, which returns the list of specified + projects and their bug/rfe count in sorted order, least to most. + + * Added Utilities.reply for replying to a person with text. Like + echo, but it prepends the nick like the bot normally does. + + * Changed Utilities.success to accept an optional argument + for text to be appended to the success message. + + * Changed User.{addhostmask,removehostmask,register,unregister} + to allow owner users to do what they will with their users. You + can now add hostmasks, remove hostmasks, register users, and + unregister users willy-nilly. + + * Changed and moved several configuration variables. + supybot.{throttleTime,maxHistoryLength,pingServer,pingInterval} + all moved to supybot.protocols.irc; supybot.httpPeekSize moved to + supybot.protocols.http; supybot.threadAllCommands moved to + supybot.debug.threadAllCommands, and probably a few others I + forgot to mention. + + * Added Http.zipinfo, which returns a veritable plethora of + information about the supplied zip code. + + * Added a configuration variable for every plugin, "public", that + determines whether the plugin is considered public (i.e., whether + it will show up in the list command when the list command isn't + given the --private option). + + * Added Misc.author, a command for finding out which author + claims a particular plugin. + + * Added Topic configuration supybot.plugins.Topic.format template + string allowing full customization of the Topic items. + + * Added Topic.lock and Topic.unlock, for locking and unlocking + the topic (setting +t or -t, respectively) + + * Added Topic.restore, for restoring the topic to the last-sent + topic. Useful for when people change your carefully crafted + topic by means other than the bot. + + * Changed supybot.brackets so you can now provide the empty + string, which means you cannot do nesting of commands. + + * Added Utilities.last, which replies with the last string + given to it. This is useful for sequencing commands and then + replying with the output of the last commnad. + + * Updated RSS.info to accept a feed name as well as a url. + + * Added a signal handler for SIGTERM, so you folks killing your + bots uncleanly won't have as many bugs :) + + * Added a signal handler for SIGHUP that reloads the bot's + various configuration files. + + * Added a new configuration variable, supybot.pidFile, which + determines what file the bot should write its PID to. The + default is not to write the PID file at all. + + * Added a comma argument to utils.commaAndify, which specifies the + character to use in place of the comma. + + +2004-04-16 Jeremy Fincher + + * Version 0.77.2! + + * Fixed numerous bugs, high and low, big and small and + in-between. Definitely worthy of a release. + + * Added supybot.plugins.ChannelLogger.includeNetworkName, so the + logs aren't strangified when relaying between channels. + + * Added a --capability option to User.list, to allow people to + list all the users possessing a certain capability. The main + reason this was added is so jemfinch can tell who owns which + Supybots on #supybot :) + + * Added Utilities.success, mostly for making aliases such that + they can respond with success if no errors were encountered in + any nested commands. + + * Changed the name of the new filter, colorstrip, to be + stripcolor. Better now than after it was highly established :) + + * Added configuration variables + supybot.plugins.Services.NickServ.password (which replaces the + old supybot.plugins.Services.password) for specifying the + NickServ password, as well as + supybot.plugins.Services.ChanServ.{op,halfop,voice}, which + determine what the bot should request of ChanServ when it + identifies or joins a channel. These latter variables are, of + course, channel variables. + + * Added configuration variable + supybot.plugins.Babelfish.languages (which replaces the old + supybot.plugins.Babelfish.disabledLanguages) for specifying + which languages will be translated/spoken. + + * Fixed bug #863601, plugin BadWords fails on color codes. + + * Replaced Sourceforge.{rfe,bug} with Sourceforge.tracker, which + can query any tracker type (not just RFEs and bugs) and responds + with more information, a la trackerSnarfer. + + * Added supybot.log.individualPluginLogfiles, which determines + whether plugin logs will be logged to their individual logfiles + in addition to the misc.log logfile. + + * Added supybot.plugins.WordStats.ignoreQueries, which, when + true, makes the bot ignore queries (and not increment its word + statistics). + + * Added the LogToIrc plugin, for sending logs to an IRC + channel or nick. Useful for traceback notification and whatnot. + + * Changed supybot.log.timestampFormat to specially handle the + empty string -- if it's set to the empty string, it will log + times in seconds-since-epoch format. + + * Added supybot.plugins.Weather.convert, which determines whether + or not Weather.{weather,cnn,ham} will convert temperature to the + configured temperatureUnit. + + * Changed User.setpassword not to require the to + be correct if the requesting user has the owner capability (and + isn't the owner himself). + + * Added ircutils.strip{Bold,Reverse,Underline,Formatting}, which + will remove the specified formatting or all forms of formatting + in the case of stripFormatting. + + +2004-04-09 Jeremy Fincher + + * Version 0.77.1! + + * Added supybot.reply.errorWithNotice to make the bot give its + error messages in a notice. + + * Added Filter.colorstrip, an outfilter that strips all color + codes from messages. + + * Added supybot.plugins.BadWords.{replaceMethod, nastyChars, + simpleReplacement, requireWordBoundaries}; see the associated + help strings to find out what they do. + + * Added supybot.plugins.Babelfish.disabledLanguages, to disable + certain languages from being translated/spoken. + + * Added supybot.reply.maximumMores, to give users the ability to + set the maximum number of "more" chunks replies will generate. + + * Added supybot.reply.truncate, to turn off the normal chunking + of replies that later can be retrieved with the more command. + Setting this variable to On means that no chunks will ever be + created. + + * Added supybot.plugins.Enforcer.takeRevengeOnOps, which makes + the bot even take revenge on #channel,ops who try to violate the + channel configuration. Of course, such people can change the + channel configuration to their bidding, but it's a decent + protection against errant botscripts or something. + + * Added supybot.plugins.Channels.alwaysRejoin, to make the bot + always rejoin when it's kicked. + + * Added supybot.databases.users.hash, allowing those running bots + to specify the default hashed/unhashed state of user passwords in + the config file. + + * Added Debian.bug, which retrieve bug info from Debian's BTS. + + * Changed Relay.names to Relay.nicks, to be consistent with + Channel.nicks. + + * Added supybot.brackets, a configuration variable for specifying + which set of matching brackets to use for nested commands. Valid + values are [] (the default), {}, <>, and (). + + * Added a configuration variable to ChannelLogger, timestamp, + which determines whether the bot will timestamp its logfiles. + This is a channel-specific variable, of course. + + * Updated ChannelLogger not to log messages starting with + [nolog], in order to allow private information to remain private. + + * Added a configuration variable to ChannelLogger, + flushImmediately, to cause all channel logs to be flushed every + time they're modified, for those people who like to read the logs + through tail -f or something similar. + + * Updated WordStats to allow removing of tracked words. + + * Updated Seen.seen to accept no arguments and return the last + message spoken by anyone. + + * Updated the Herald plugin to use the standard substitute until + we get it updated to use commands as heralds instead of plain + strings. + + * Updated echo to use the standard substitute on its reply. + + * Updated Network.whois so that it can now retrieve + information on all domains. + + * Updated the Weather plugin to be retrieve weather from either + hamweather.net or cnn.com. Also added + supybot.plugins.Weather.{command,temperatureUnit} so that you can + specify which command (Weather.cnn or Weather.ham) to use when + Weather.weather is called and in which unit (C, F, K) to report + the weather. + + * Updated standard replies (such as supybot.replies.success, etc.) + to use the standard substitute (such as $nick, $who, $channel, + etc.) in their text. + + * Fixed snarfers to respect lobotomies. + + * Fixed Admin.join not to add the channel to the supybot.channels + registry entry if joining the channel wasn't successful. + +2004-02-20 Jeremy Fincher + + * Version 0.77.0! + + * Changed the format of the user and channel databases to + something much more readable and user-editable. Be sure, if + you're upgrading, to run tools/ircdbConvert.py on your user and + channel databases *BEFORE* installing the new version. + + * Updated almost every document we have, and added a + GETTING_STARTED document. Yay! + + * Added several new options for Channel.kban: --exact, --nick, + --user, --host, for more flexibility in determining what the + banmask is. + + * Added a Scheduler plugin for scheduling events to occur at + specific times. + + * Added a Herald plugin for announcing to the channel the arrival + of certain users. + + * Changed the reply method of the irc object given to plugins not + to require a msg object. + + * Added inter-factoid references for MoobotFactoids. Simply + define a factoid as "see " (and nothing else) and it + will automatically go pick up the value for that factoid and + display it in its place. Sort of a "symlink" for MoobotFactoids. + + * Added the ability to reply to factoids without the "whatis" in + the Factoids plugin. Now, you can use "@foo" instead of "@whatis + foo". + + * Added --{from,to} and --sent options to Note.sent. + + * Changed Note.get to simply be "note". Instead of "note get + 145", you should use "note 145". + + * Changed channel capabilities to use a comma to separate the + channel from the capability instead of a period. This is because + channels can include periods (but not commas) and since we now + allow "plugin.command" capabilities, there's no way to know + whether a given dot is separating the channel from the capability + or the plugin from the command. + + * Removed Admin.setprefixchar, since it's unneeded with the new + configuration. + + * Removed Status.bestuptime, since it was buggy and no one felt + like maintaining it. + + * Added Http.cyborg, a fun little command for getting cyborg + abbreviations for names. + + * Added Sourceforge.totalbugs and Sourceforge.totalrfes + + * Removed Owner.{set,unset} since they matter not. + + * Made the smileys and frowns configurable in ChannelDB. + + * Added a vast array of new configurables -- check out the various + config commands in Configurable plugins to see. + + * Added better error reporting for Admin.join, explaining to the + user if the bot can't join the channel. + + * Added a title-snarfer to the URL plugin. + + * Added Relay.command, a command for sending commands to the bot + on a different network. + + * Added Bugzilla.search, a new command for searching a bugzilla + installation + + * Added an INVITE handler in Admin, allowing users with the admin + capability to INVITE the bot to a channel. There's also a config + variable, alwaysJoinOnInvite, that will cause the bot to join + a channel whenever someone invites it to a channel, not just users + with the admin capability. + + * Added conf.requireChannelCommandsToBeSentInChannel for requiring + all channel-related commands to be sent in the channel. + + * Added conf.followIdentificationThroughNickChanges for having the + bot update user's identified hostmask when they change nicks. + + * Added conf.replyWhenNotAddressed, a configuration variable for + having the bot always attempt to parse a message as a command. + + * Added conf.replyWhenAddressedByNick, a configuration variable + for having the bot *not* respond when addressed by his nick. + + * Added conf.replyWithNickPrefix, a configuration variable for + having the bot not prefix the nick of the person giving a command + to the reply. + + * Changed all "zegrep" stuff to "zgrep -e" stuff, since zegrep is + on fewer platforms than zgrep. + +2003-12-12 Jeremy Fincher + + * Version 0.76.1! The birthday release! + + * Fixed a bug in irclib.py that could cause the bot to loop, + connecting and disconnecting from the server because it didn't + think the server responded to its PING. + + * Fixed a bug in the Services implementation that could cause + the bot to continually loop, connecting and disconnecting from the + server. + + * Fixed Misc.help to follow the same default plugin rules that the + rest of the bot follows. + + * Added better error reporting to Admin.join, so the various error + conditions that might make the bot incapable of joining a channel + will be reported. + + * Updated RootWarner to be configurable, offering each channel the + ability to define whether or not people who IRC as root will be + warned, what that warning will be, and whether or not they should + be kicked. + + * Added a configurable 'topic-sync' to the Relay plugin to + determine whether the topics of the two channels should be kept + synchronized. + + * Added Lookup.search for searching the various loaded lookups. + + * Added Topic.reorder, a new command for reordering the topics in a + specific manner. + + * Added Topic.list, a new command for listing the topics in a + channel (mostly in order to help out with Topic.reorder :)) + + * Added Http.extension, a new command to retrieve file extension + information from filext.com. + + * Updated Todo.remove to allow removing multiple taskids + + * Updated Relay.whois to include a user's away status and identified + state, if the server supports it. + + * Added utils.sorted, which does what list.sorted will do when 2.4 + is released. + + * Added ircutils.isCtcp, for determining whether or not a message + is a CTCP message. + +2003-12-6 Jeremy Fincher + + * Version 0.76.0! + + * Added a "trusted" capability that defaults to off (-trusted) and + is required for Utilities.re (with which it's possible to DoS the + bot) and for the new Math.icalc (with which it is trivially + possible to DoS the bot). + + * Added Math.icalc, a new command for doing integer arithmetic. + It requires the "trusted" capability. + + * Added the Fun.ping command, because MozBot has it. + + * Added Note.unsend command, to allow users to "unsend" notes + they've sent but whose recipient has not yet read. + + * Added Channel.{deop,devoice,dehalfop,kick}. + + * Added Http.size and Http.doctype and Http.headers to retrieve + various meta-information on URLs. + + * Added a ranking to ChannelDB.wordstats. + + * Added Karma.most for determining various "mosts" in the Karma + database. + + * Added User.list command to list registered users. + + * Added 'roulette' command to Fun plugin. + + * Added a Channel.lobotomies command to list the channels in which + the bot is lobotomized. + + * Added a swap function to Math.rpn. + + * Changed the name of User.changeusername to User.changename. + + * Changed the logging infrastructure significantly; each plugin + now has its own logger (and thus logfile), in addition to being + logged in the main logfile. + + * Fixed bug in which the bot wouldn't rejoin channels after a + reconnect. Thank the Lord for tcpkill :) + + * Fixed Http.freshmeat for projects with a space in their names. + + * Changed RSS so RSS feed commands may be added while the bot is + running, and so added RSS feed commands are in the RSS plugin. + + * Changed Lookup so added lookups are added in the Lookup plugin + itself so there's no dependency on Alias, and so loaded lookups + can be seen via 'list Lookup'. + + * Fixed bug #850931 as well as several other minor bugs in + Utilities.re. + + * Fixed bug #851254, Factoids.whatis didn't work on numeric keys. + + * Added the ability to turn on/off the showing of ids in FunDB + excuse/insult/praise/lart. + + * Added the to= keyword argument to the various reply functions to + you can specify a target to send the message to. + + * Changed socketDrivers to allow more time (10x more, to be exact) + for connecting to the network than for the normal read. + + * Fixed a bug in Http.weather that would cause an ugly error + message for a command like "weather hell". + + * Added the number of strings to the Fun.object output. + + * Fixed bug in RSS.configure; no aliases could be added. + + * Changed Alias.freeze to Alias.lock. + + * Fixed sorting in Status' uptime database. + + * Updated the Gameknot tests for expired games, and updated the + Gameknot plugin to handle such links in its snarfer. + + * Added a 'server' attribute to Irc objects to unify the way to + access such information. + + * Added revision command for finding out the revision of the files + in a running bot; also added __revision__ strings so CVS would be + happy to keep such information for us :) + + * Fixed bug #848475 -- bad error message from regexp-expecting + commands. + + * Stopped listing the plugin dispatcher command in the list of + commands for that plugin. + + * Fixed bug in Gameknot.gkstats when retrieving the stats for + users who haven't yet played a game. + + * Added a numUsers() method to ircdb.UsersDB (ircdb.users). + +2003-11-18 Jeremy Fincher + + * Changed commands so that plugins no longer have to make sure + that their commands are unique within the bot. Ambiguous commands + will reply with an error message and instruct the user to + disambiguate the command by prefixing with the appropriate plugin + name.. Many commands that formerly contained the plugin name (or a + portion thereof) have had it removed, and many plugins have had + their names changed so prefixing a command with the plugin name is + less bulky. Rather than list each individual example, you can + read the plugin documentation posted at ***TODO*** + + * Renamed numerous plugins: OwnerCommands became Owner, + AdminCommands became Admin, ChannelCommands became Channel, + MiscCommands became Misc, UserCommands became User, URLSnarfer + became URL, Notes became Note, FunCommands became Fun, IMDB became + Movies, and Aliases became Alias. + + * Made aliases persistent across reloads/bot restarts. You should + probably change your botscripts not to add the aliases onStart, but + (assuming those aliases don't change) it should still work fine. + + * Added the ability for users to specify that their passwords + should be hashed on disk. + + * Added MoobotFactoids plugin for moobot-style factoids (which are + meant to mimic blootbot-style factoids). People used to + traditional IRC bot factoids plugins will probably find this + plugin more to their taste than Factoids. + + * Added Ebay plugin for snarfing eBay URLs as well as getting info on + certain auctions. + + * Added monitoring of occurrences of certain words on a per-user + basis, adding two new commands to ChannelDB (addword and + wordstats). + + * Added Bugzilla module for accessing various data in Bugzilla + pages. + + * Added QuoteGrabs module which allows people to grab interesting + quotes from other people and store them in the bot for later retrieval + (also optionally have the bot randomly snarf quotes). + + * Added a "change" command to change factoid values in the Factoids + plugin. + + * Added Dunno plugin as an optional replacement for the boring 'no + such command' response. + + * Changed FundB to allow accessing excuses, larts, and praises by + id. + + * Added substitutions for 'me' and 'my' in insult/praise/lart. + + * Added 'change' and 'old' commands for News. + + * Added ASPN Python Cookbook URL snarfer. + + * Moved karma out of ChannelDB and into its own Karma plugin. + + * Moved uptime-related commands to from FunDB to the Status plugin. + + * Renamed the Network.internic command to whois, since we can now fix + ambiguity by prefixing the plugin name. + + * Removed the "googlesite" function. + + * Removed "dictserver" command in favor of using the Configurable + framework with the Dict plugin instead. + + * Removed TwistedCommands plugin to the sandbox; the one command + it provided (dict) is now better provided in the Dict plugin. + + * Removed the Moobot plugin (the commands were moved to the Fun + plugin or dropped entirely). + + * Removed all example strings from plugins. To be replaced with an + automated process later. + + * Converted several plugins to the new Configurable plugin type + Plugins modified include Bugzilla, ChannelDB, Dict, Ebay, + Enforcer, Gameknot, Google, Python, Relay, and URL (formerly + URLSnarfer). + + * Changed ChannelDB database to use integer user ids instead of text + usernames. + + * Changed Http.geekquote to use multiline geekquotes (and removed + the option to do so, since it's now the default). + + * Added a --id switch to geekquote to pick a specific geekquote. + + * Changed most commands in News to require the 'news' capability. + + * Changed Relay.names output to show (and sort by) status in the + channel. + + * Removed 'relaycolor' command in favor of Configurable framework. + + * Added total memory usage to 'cpustats' output for several *nix + platforms. + + * Removed the total percentage of CPU time from 'cpustats'. Not + only was it inaccurate, but we needed the room for memory stats. + + * Changed Topic.shuffle to ensure that the topic is actually + shuffled. + + * Changed all commands which take an index (various Topic and + Factoids commands) to index from 1 instead of 0. + + * Fixed several bugs in Unix.spell whereby the bot could be + frozen. + + * Changed the name of the "bug" command in the AdminCommands + plugin to "reportbug" instead. + + * Added QUIT stat-keeping to ChannelDB. + + * Removed the OwnerCommands.say command; it wasn't useful enough, + and is so easily written that anyone can have it back if they want + it. + + * Changed OwnerCommands.load (and reload) to be case-insensitive, + so "load funcommands" works just as well as "load FunCommands". + + * Changed the keyword parameter "needed" to privmsgs.getArgs to be + "required" instead. It just sounds better, works with "optional" + better, and we won't get an opportunity later to change it. + + * Updated IrcObjectProxy.reply to allow a "notice" boolean keyword + to determine whether or not to reply via a notice. + + * Added privmsgs.urlSnarfer, a wrapper around snarfer methods that + handles both the threading and the limiting of replies so loops + between two snarfing bots can't happen. + + * Added structures.PersistentDictionary for dictionaries that + should be saved to a file in repr()ed form. + + * Added structures.TwoWayDictionary for dictionaries that should + map keys to values and vice versa. + + * Added a curry function to fix.py for doing currying (if you + don't know what it is, don't worry about it :)) + + * Added utils.depluralize to do the opposite of utils.pluralize. + + * Added utils.safeEval for safe evaluation of Python data + structures (lists, dictionaries, tuples, numbers, strings, etc., + but no operations on them). + + * Added utils.saltHash for handling the hashing of passwords with + a salt. + + * Added plugins.standardSubstitute to do standard substitutions + for things like $who, $nick, $channel, etc. + + * Added plugins.Configurable, a plugin mixin that allows easy + specification and persistence of configurable data on a global and + per-channel basis. + + * Fixed plugins.ChannelDBHandler (and added plugins.DBHandler) to + be threadsafe, so threaded plugins could still use a database, and + non-threaded database-using plugins could still receive the + results of a threaded command. + + * Removed ircutils.privmsgPayload and ircutils.shrinkList, both of + which existed prior to the addition of more, and aren't needed + anymore. + + +2003-10-12 Jeremy Fincher + + * Version 0.73.1! + + * Fixed a bug in Math.{calc,rpn} where certain functions + ("degrees" in particular) that didn't like complex arguments would + fail on numbers on which they shouldn't. + + * Added an optional "key" argument to ChannelCommands.cycle. + + * Fixed bolding in supybot-wizard.py. + + * Fixed handling of the secure flag by ircdb.IrcUser.setAuth; + previously it didn't prevent someone with an unmatched hostmask + from identifying. + + * Fixed imports in the DCC plugin. + + * Fixed a bug where the bot would not reply to nick-addressed + messages on a channel if his nick wasn't entirely lowercased. + + * Fixed the Relay plugin to relay topic changes; an oversight not + caught earlier because supybot has for a long time managed our + topics. + + * Fixed a bug in the Services plugin where the bot would ghost + himself if his nick didn't match in case the nick given. + + * Added the ability for PrivmsgCommandAndRegexp to have regexps + that are called *after* callbacks.addressed has been called on the + message -- see ChannelDB.{increase,decrease}Karma for an example. + + * Fixed bug in supybot-wizard.py where plugins without configure + functions would raise an uncaught exception. + + * Fixed debincoming to work since the removal of baseplugin; it + was missing an import. + + * Fixed MiscCommands.doPrivmsg to send an IrcObjectProxyRegexp to + the replyWhenNotCommand function. + + * Fixed debversion to display the correct output when no matching + packages were found. + + * Fixed ChannelDB to import conf; karma didn't work otherwise. + + * Fixed a bug in the Enforcer plugin that would cause the bot to + ban everyone from the channel whenever ChanServ deopped someone. + + * Changed the "whois" command in the Network plugin to "internic" + instead. + +2003-10-05 Jeremy Fincher + + * Version 0.73.0! + + * Added the News plugin, news handling for channels. + + * Changed the initial character of anti capabilities to '-' + instead of '!'. '!' can be the initial character in a channel + name, and so any command using getChannel and accepting a + capability as its first argument (several in ChannelCommands) will + have difficulties (the channel then *must* be specified since + getChannel will consider !capability to be a channel name). Note + that this means you'll need to either remove and re-create or edit + your config files to change ! to - in capabilities. + + * Removed the "cvsup" command; it's been useless since we had a + global install, and can only serve to confuse. + + * Added a "private" command to MiscCommands to allow users to + specify that a response should be made in private. + + * Added a "secure" flag to user database records that *requires* + that one of the user's hostmasks match if the user is to be + recognized. This flag may be set with the "setsecure" command. + + * Added a convert command to the Math plugin. More conversions + are necessary, if anyone's interested in doing it. The available + units are available via the "units" command. + + * Fixed the pydoc command to allow access to standard Python + modules that are shared libraries rather than pure Python code. + + * Added a "Python" plugin and moved FunCommands.{pydoc,zen} to + it. + + * Fixed the supybot- scripts to use optparse so they now + accept many command line options (but most importantly, the --help + option :)) + + * Added a debincoming command to the Debian plugin; it searches + the available packages at http://incoming.debian.org/ + + * Moved the "bug" command from MiscCommands to AdminCommands in + order to prevent possible abuse. + + * Changed ChannelDB.seen to default to using nicks; a --user + option can be passed to use the old behavior. Note that this + means you'll have to update your ChannelDB database; use this + SQL statement to do so: + CREATE TABLE nick_seen ( + name TEXT UNIQUE ON CONFLICT REPLACE, + last_seen TIMESTAMP, + last_msg TEXT + );