diff --git a/LimnoriaChan/config.py b/LimnoriaChan/config.py index 2a49879..7017872 100644 --- a/LimnoriaChan/config.py +++ b/LimnoriaChan/config.py @@ -47,6 +47,11 @@ LimnoriaChan = conf.registerPlugin('LimnoriaChan') # This is where your configuration variables (if any) should go. For example: # conf.registerGlobalValue(LimnoriaChan, 'someConfigVariableName', # registry.Boolean(False, _("""Help for someConfigVariableName."""))) +conf.registerGlobalValue(LimnoriaChan, 'login', + registry.String('Limnoria', _("Login to GitHub (to post issues)"))) +conf.registerGlobalValue(LimnoriaChan, 'token', + registry.String('', _("Auth toket to GitHub (to post issues)"), + private=True)) # vim:set shiftwidth=4 tabstop=4 expandtab textwidth=79: diff --git a/LimnoriaChan/plugin.py b/LimnoriaChan/plugin.py index df9418f..bb33bc7 100644 --- a/LimnoriaChan/plugin.py +++ b/LimnoriaChan/plugin.py @@ -29,6 +29,8 @@ ### import re +import json +import urllib import supybot.utils as utils import supybot.world as world @@ -67,6 +69,25 @@ class LimnoriaChan(callbacks.Plugin): """Add the help for "@plugin help LimnoriaChan" here This should describe *how* to use this plugin.""" + def issue(self, irc, msg, args, user, title): + """ + + Opens an issue called <title>.""" + if not world.testing and \ + msg.args[0] not in ('#limnoria', '#limnoria-bots'): + irc.error('This command can be run only on #limnoria or ' + '#limnoria-bots on Freenode.') + body = 'Issue sent from %s at %s by %s (registered as %s)' % \ + (msg.args[0], irc.network, msg.nick, user.name) + login = self.registryValue('login') + token = self.registryValue('token') + data='title=%s&body=%s&login=%s&token=%s' % (title, body, login, token) + url = 'http://github.com/api/v2/json/issues/open/ProgVal/Limnoria' + response = json.loads(urllib.urlopen(url, data=data).read()) + id = response['issue']['number'] + irc.reply('Issue #%i has been opened.' % id) + issue = wrap(issue, ['user', 'text']) + _addressed = re.compile('^([^ :]+):') _factoid = re.compile('%%([^ ]+)') _dynamicFactoid = re.compile('^(?P<name>[^#]+)#(?P<arg>.*)$')