def clonecallback(bot, event): wave = event.chan if wave.data.threshold != -1 and (wave.data.seenblips > wave.data.threshold): wave.data.threshold = -1 newwave = wave.clone(bot, event, event.title) plugs.load('jsb.plugs.common.hubbub') feeds = plugs['jsb.plugs.common.hubbub'].watcher.clone(bot.name, bot.type, newwave.data.waveid, event.waveid) event.reply("this wave is continued to %s with the following feeds: %s" % (newwave.data.url, feeds))
def clonecallback(bot, event): wave = event.chan if wave.data.threshold != -1 and (wave.data.seenblips > wave.data.threshold): wave.data.threshold = -1 newwave = wave.clone(bot, event, event.title) plugs.load('jsb.plugs.common.hubbub') feeds = plugs['jsb.plugs.common.hubbub'].watcher.clone( bot.name, bot.type, newwave.data.waveid, event.waveid) event.reply( "this wave is continued to %s with the following feeds: %s" % (newwave.data.url, feeds))
def dispatch(self, taskname, *args, **kwargs): """ dispatch a task. """ try: plugin = self.plugins[taskname] except KeyError: logging.debug('tasks - no plugin for %s found' % taskname) return logging.debug('loading %s for taskmanager' % plugin) plugs.load(plugin) try: handler = self.handlers[taskname] except KeyError: logging.debug('tasks - no handler for %s found' % taskname) return logging.warn("dispatching task %s - %s" % (taskname, str(handler))) return handler(*args, **kwargs)
def handle_waveclone(bot, event): """ clone wave into a new one, copying over particpants and feeds. """ if event.bottype != "wave": event.reply("this command only works in google wave."); return wave = event.chan event.reply("cloning ...") newwave = wave.clone(bot, event, event.root.title.strip(), True) if not newwave: event.reply("can't create new wave") return plugs.load('jsb.plugs.common.hubbub') feeds = plugs['jsb.plugs.common.hubbub'].watcher.clone(bot.name, bot.type, newwave.data.waveid, event.waveid) event.reply("this wave is continued to %s with the following feeds: %s" % (newwave.data.url, feeds))
def handle_waveclone(bot, event): """ clone wave into a new one, copying over particpants and feeds. """ if event.bottype != "wave": event.reply("this command only works in google wave.") return wave = event.chan event.reply("cloning ...") newwave = wave.clone(bot, event, event.root.title.strip(), True) if not newwave: event.reply("can't create new wave") return plugs.load('jsb.plugs.common.hubbub') feeds = plugs['jsb.plugs.common.hubbub'].watcher.clone( bot.name, bot.type, newwave.data.waveid, event.waveid) event.reply("this wave is continued to %s with the following feeds: %s" % (newwave.data.url, feeds))
def handle_helpplug(bot, ievent): """ arguments: <plugname> - how help on plugin/command or show basic help msg. """ try: what = ievent.args[0] except (IndexError, TypeError): ievent.reply("available plugins: ", getpluginlist()) ievent.reply("see !help <plugin> to get help on a plugin.") return plugin = None modname = "" perms = [] for package in plugin_packages: try: modname = "%s.%s" % (package, what) try: plugin = plugs.load(modname) if plugin: break except NoSuchPlugin: continue except(KeyError, ImportError): pass if not plugin: ievent.reply("no %s plugin loaded" % what) return try: phelp = plugin.__doc__ except (KeyError, AttributeError): ievent.reply('no description of %s plugin available' % what) return cmndresult = [] if phelp: perms = ievent.user.data.perms if not perms: perms = ['GUEST', ] counter = 1 for i, j in cmnds.iteritems(): if what == j.plugname: for perm in j.perms: if perm in perms: if True: try: descr = j.func.__doc__ if not descr: descr = "no description provided" try: cmndresult.append(u" <b>!%s</b> - <i>%s</i>" % (i, descr)) except KeyError: pass except AttributeError: pass counter += 1 break if cmndresult and phelp: res = [] for r in cmndresult: if bot.type in ['web', ]: res.append("%s<br>" % r) if bot.type in ['irc', ]: res.append(r.strip()) else: res.append(r) res.sort() what = what.upper() ievent.reply('<b>help on plugin %s: </b>%s' % (what,phelp.strip())) ievent.reply("commands: ", res, dot="\n") else: if perms: ievent.reply('no commands available for permissions: %s' % ", ".join(perms)) else: ievent.reply("can't find help on %s" % what)
from google.appengine.ext import webapp from google.appengine.ext.webapp.util import run_wsgi_app from google.appengine.ext.webapp import xmpp_handlers ## basic imports import base64 import logging import urllib import urlparse import uuid logging.warn(getversion('GAE HUBBUB')) if not plugs.has_key("jsb.plugs.common.hubbub"): p = plugs.load("jsb.plugs.common.hubbub") else: p = plugs["jsb.plugs.common.hubbub"] class CallbackHandler(webapp.RequestHandler): def get(self): logging.warn('hubbub - incoming GET') if self.request.GET['hub.mode'] == 'unsubscribe': self.response.headers['Content-Type'] = 'text/plain' self.response.out.write(self.request.GET['hub.challenge']) return if self.request.GET['hub.mode'] != 'subscribe': self.error(400) return
def handle_helpplug(bot, ievent): """ how help on plugin/command or show basic help msg. """ try: what = ievent.args[0] except (IndexError, TypeError): ievent.reply("available plugins: ", getpluginlist()) ievent.reply("see !help <plugin> to get help on a plugin.") return plugin = None modname = "" perms = [] for package in plugin_packages: try: modname = "%s.%s" % (package, what) try: plugin = plugs.load(modname) if plugin: break except NoSuchPlugin: continue except (KeyError, ImportError): pass if not plugin: ievent.reply("no %s plugin loaded" % what) return try: phelp = plugin.__doc__ except (KeyError, AttributeError): ievent.reply('no description of %s plugin available' % what) return cmndresult = [] if phelp: perms = ievent.user.data.perms if not perms: perms = [ 'GUEST', ] counter = 1 for i, j in cmnds.iteritems(): if what == j.plugname: for perm in j.perms: if perm in perms: if True: try: descr = j.func.__doc__ if not descr: descr = "no description provided" try: cmndresult.append( u" <b>!%s</b> - <i>%s</i> - examples: %s" % (i, descr, examples[i].example)) except KeyError: cmndresult.append( u" <b>!%s</b> - <i>%s</i> - no examples" % (i, descr)) except AttributeError: pass counter += 1 break if cmndresult and phelp: res = [] for r in cmndresult: if bot.type in [ 'web', ]: res.append("%s<br>" % r) else: res.append(r) res.sort() what = what.upper() res.insert(0, "%s\n" % phelp.strip()) ievent.reply('HELP ON %s \n\n' % what, res, dot="\n") else: if perms: ievent.reply('no commands available for permissions: %s' % ", ".join(perms)) else: ievent.reply("can't find help on %s" % what)