Created by Martin Morrison and last modified
Get this branch:
bzr branch lp:~isoschiz/endroid/roulette
Only Martin Morrison can upload to this branch. If you are Martin Morrison please log in for upload directions.

Branch merges

Related bugs

Related blueprints

Branch information

Martin Morrison

Recent revisions

15. By Martin Morrison

Initial version of the Russian Roulette plugin. Untested at this point. Stores stats, but provides no way of accessing them.

14. By Martin Morrison

Add a spell checking plugin using Google's service APIs; also minor tweaks to the patternmatcher plugin to make it easier for plugins making use of it.

13. By Martin Morrison

Add a new Correct plugin that allows you to correct your previous message using sed-style substitution syntax.

12. By Martin Morrison

Add a metaclass to the Plugin class that automatically registers the plugin within its module. This further simplifies plugin writing, as you no longer need a get_plugin() function.

11. By Martin Morrison

Final (?) review markups.

10. By Martin Morrison

Fix the rate limiter (a rounding bug in cron.py) and add an abuse checker to the ratelimit plugin that makes use of the blacklist plugin to blacklist overly chatty users.

9. By Martin Morrison

Review markups, and a better ratelimiter:

- Add lots of docstrings
- Cron is broken. Unsure why. :-/ Lots of added debug to try to fix (though this needs tidying up before release)
- Added concept of message priorities
- Added error handling for message handlers
- Outgoing filters now also get a Message object (which you can send on with send())
- Rate limiter now has a proper Token Bucket, max queue length, priority message handling... and doesn't work (mostly due to Cron calling us in a tight loop!)

8. By Martin Morrison

Add Blacklisting and Ratelimiting support.

Full changelist:
- Add support for multi-line lists in configuration files
- Rejig messagehandler to use a class rather than globals
- Add support for both receive and send filter callbacks
- Add priorities to callback registrations (so that ratelimit can happen after blacklisting)
- Rename a few classes/variables
- Add a reply_to_sender method to Message object, to allow plugins to send unicast easily even if the message was heard on a MUC
- Add Blacklist plugin, which allows admins to blacklist bare JIDs. Any messages from or to them are dropped
- Add Ratelimit plugin, that ensures a minimal interval between messages sent to a given bare JID
- Misc changes to remove globals in a few places

There are still a few changes required:
- Ratelimit plugin should auto-blacklist if it's being abused
- Ratelimit could allow bursts to pass unaffected
- Add some more debuggability and configurability

7. By Martin Morrison

Don't allow pub ratings to go negative!

6. By Martin Morrison

Update help strings on all plugins; finish adding the pub picker plugin, including:

- Configurable "venue type" (defaults to pub)
- Register and vote on your favourite venues
- Add aliases
- Rename (i.e. pick another default name for the venue)
- Randomly picks the venue
- Allows listing of DB contents

Branch metadata

Branch format:
Branch format 7
Repository format:
Bazaar repository format 2a (needs bzr 1.16 or later)
Stacked on:
This branch contains Public information 
Everyone can see this information.