diff --git a/.gitignore b/.gitignore index 4984243..9ed0ede 100644 --- a/.gitignore +++ b/.gitignore @@ -2,5 +2,3 @@ *.egg *.egg-info .DS_Store -build -docs/_build diff --git a/README.md b/README.md index 60a2cb6..fadce68 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,76 @@ +EarwigBot Plugins +================= + Additional IRC commands and bot tasks for [EarwigBot](https://github.com/earwig/earwigbot). They are included separately due to being outside of most peoples' use cases, or because they require -additional setup aside from the main bot. +additional setup aside from the main bot. To install, place the command or task +file in its respective subdirectory in the bot's working directory (the same +one that contains its config file). + +IRC Commands +------------ + +- **AFC-related commands** (*afc_pending*, *afc_report*, *afc_status*, + *afc_submissions*): implements various services for + [Articles for creation](http://en.wikipedia.org/wiki/WP:AFC). It has no + dependencies, but `afc_report` requires the `afc_statistics` task plugin for + parsing submissions. `afc_submissions` accepts a config option, + `"ignoreList"`, a list of page titles to skip; it will try to use + `afc_statistics`'s ignore list if none is defined. + +- **geolocate**: implements an IP geolocator using + [ipinfodb](http://ipinfodb.com/). Requires an API key stored in its config as + `"apiKey"`, which should be stored encrypted if that option is enabled. + +- **git**: allows the bot to carry out basic git maintenance functions, like + pulling and checking out branches on repositories. A list of repo paths + should be stored in its config as `"repos"`. Has one dependency, + [GitPython](http://packages.python.org/GitPython), which can be installed + with `pip install GitPython`. + +- **praise**: adds a simple way for the bot respond to ad-hoc commands based on + entries in `praise`'s config (in the `"praises"` dictionary). Its original + intention was to implement silly "easter eggs" praising certain users; for + example, `"!earwig"` would make the bot say "Earwig is the bestest Python + programmer ever!". This would be implemented by having an entry in + `"praises"` with the key `"earwig"` and the value + `"Earwig is the bestest Python programmer ever!"`. + +Bot Tasks +--------- + +- **afc_catdelink**: delinks mainspace categories (or templates, if necessary) + in declined [AFC](http://en.wikipedia.org/wiki/WP:AFC) submissions. + +- **afc_copyvios**: checks newly-edited AFC submissions for copyright + violations using the bot's built-in copyvio checking support. Takes multiple + config values, including connection info for a MySQL database to store + processed pages and a cache (disabled by default; usable by the + [toolserver interface](https://toolserver.org/~earwig/copyvios)). A script to + create the database is in `tasks/schema/afc_copyvios.sql`. + +- **afc_dailycats**: creates daily, monthly, and yearly categories for AFC. + +- **afc_history**: generates charts about AFC submissions over time, including + number of pending submissions throughout the project's history as well as + counts for individual reviewers. Takes multiple config values, including + MySQL database info. A script to create the database is in + `tasks/schema/afc_history.sql`. + +- **afc_statistics**: generates statistics for AFC on the current number of + pending submissions and recently declined or accepted ones. Takes multiple + config values, including MySQL database info. A script to create the database + is in `tasks/schema/afc_statistics.sql`. + +- **afc_undated**: periodically clears + [Category:Undated AfC submissions](http://en.wikipedia.org/wiki/Category:Undated_AfC_submissions). + +- **blp_tag**: adds `|blp=yes to` `{{WPB}}` or `{{WPBS}}` when it is used along + with ``{{WP Biography}}``. + +- **drn_clerkbot**: clerks the + [dispute resolution noticeboard](http://en.wikipedia.org/wiki/WP:DRN), + updating case statuses, building a chart, and notifying users. + +- **image_display_resize**: resizes upscaled portraits in infoboxes. diff --git a/commands/git_command.py b/commands/git_command.py index cc6cbe5..94b45ea 100644 --- a/commands/git_command.py +++ b/commands/git_command.py @@ -27,8 +27,8 @@ import git from earwigbot.commands import Command class Git(Command): - """Commands to interface with the bot's git repository; use '!git' for a - sub-command list.""" + """Commands to interface with configurable git repositories; use '!git' for + a sub-command list.""" name = "git" def setup(self): diff --git a/commands/praise.py b/commands/praise.py index 8c6c706..5b02e8b 100644 --- a/commands/praise.py +++ b/commands/praise.py @@ -30,7 +30,7 @@ class Praise(Command): try: self.praises = self.config.commands[self.name]["praises"] except KeyError: - self.praises = [] + self.praises = {} def check(self, data): check = data.command == "praise" or data.command in self.praises