From 23d851aff066a39e3ceb01f85c30539e467a70ea Mon Sep 17 00:00:00 2001 From: kongr45gpen Date: Tue, 15 Mar 2016 16:41:58 +0200 Subject: Add support for github secrets --- plugin.py | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) (limited to 'plugin.py') diff --git a/plugin.py b/plugin.py index 6153d62..89a4832 100644 --- a/plugin.py +++ b/plugin.py @@ -34,6 +34,7 @@ import urlparse import threading import BaseHTTPServer +import supybot.dbi as dbi import supybot.log as log import supybot.conf as conf import supybot.utils as utils @@ -61,6 +62,11 @@ class Github(callbacks.Plugin): messages = [] pass + add = None + search = None + stats = None + change = None + def ServerStart(self, httpd): try: log.info('Server Starts - %s:%s' % ('', self.port)) @@ -68,6 +74,7 @@ class Github(callbacks.Plugin): except: return + def __init__(self, irc): self.__parent = super(Github, self) self.__parent.__init__(irc) @@ -117,6 +124,63 @@ class Github(callbacks.Plugin): # Debug command get = wrap(get, ['lowered', optional('lowered'), optional('text')]) if world.testing else False + def abs_val(self,irc,msg,args): + pass + abs_val = wrap(abs_val,[]) + + class secret(callbacks.Commands): + class DB(plugins.DbiChannelDB): + class DB(dbi.DB): + class Record(dbi.Record): + __fields__ = [ + 'secret' + ] + def add(self, secret, **kwargs): + record = self.Record(secret = secret, **kwargs) + return super(self.__class__, self).add(record) + def set(self, id, secret, **kwargs): + record = self.Record(secret = secret, **kwargs) + return super(self.__class__, self).set(id, record) + + def __init__(self, irc): + # self.db = self.DB(("%s-secret") % (self.name(),)) + print(conf.supybot.databases()) + super(Github.secret, self).__init__(irc) + self.db = plugins.DB(("github-secret"), {'flat': self.DB})() + globals.secretDB = self.db + + def set(self, irc, msg, args, channel, secret): + """[] secret + + Sets a Github secret for a channel to a specific value. + is only necessary if the message isn't sent in the channel itself. + """ + self.db.set(channel, 1, secret) + # record = Github.secret.DB.DB.Record(secret = sec) + # self.db.set(channel, 1, secret) + irc.replySuccess() + set = wrap(set, ['channel', 'text']) + + def reset(self, irc, msg, args, channel): + """[] + + Removes a Github secret for a channel. + is only necessary if the message isn't sent in the channel itself. + """ + self.db.remove(channel, 1) + irc.reply("Channel %s no longer has a secret." % channel) + reset = wrap(reset, ['channel']) + + def generate(self, irc, msg, args, channel): + """ + + Generates a Github secret for a channel. + is only necessary if the message isn't sent in the channel itself. + """ + secret = Utility.randomString(40) + irc.reply("Setting secret for %s to: %s" % (channel, secret)) + self.db.set(channel, 1, secret) + generate = wrap(generate, ['channel']) Class = Github -- cgit v1.2.3