Example #1
0
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))
Example #2
0
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))
Example #3
0
File: tasks.py Project: code2u/jsb
    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)
Example #4
0
File: wave.py Project: code2u/jsb
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))
Example #5
0
 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)
Example #6
0
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))
Example #7
0
File: core.py Project: code2u/jsb
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)
Example #8
0
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
Example #9
0
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
Example #10
0
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)