Exemplo n.º 1
0
 def handle_notice(self, ievent):
     """ handle notice event .. check for version request. """
     if ievent.txt and ievent.txt.find('VERSION') != -1:
         from jsb.version import getversion
         self.say(ievent.nick, getversion(), None, 'notice')
         return 1
     ievent.cbtype == "NOTICE"
Exemplo n.º 2
0
 def handle_notice(self, ievent):
     """ handle notice event .. check for version request. """
     if ievent.txt and ievent.txt.find('VERSION') != -1:
         from jsb.version import getversion
         self.say(ievent.nick, getversion(), None, 'notice')
         return 1
     ievent.cbtype == "NOTICE"
Exemplo n.º 3
0
 def options(self):
      if not getmainconfig().demo: self.response.set_status(404) ; return
      self.response.headers.add_header('Content-Type', 'application/x-www-form-urlencoded')
      self.response.headers.add_header("Server", getversion())
      self.response.headers.add_header("Public", "*")
      self.response.headers.add_header('Accept', '*')
      self.response.headers.add_header('Access-Control-Allow-Origin', self.request.headers['Origin'])
      self.response.out.write("Allow: *")
      self.response.out.write('Access-Control-Allow-Origin: *') 
      logging.warn("dispatch - options response send to %s - %s" % (self.request.remote_addr, str(self.request.headers)))
Exemplo n.º 4
0
 def options(self):
      self.response.headers.add_header('Content-Type', 'application/x-www-form-urlencoded')
      #self.response.headers.add_header("Cache-Control", "private")
      self.response.headers.add_header("Server", getversion())
      self.response.headers.add_header("Public", "*")
      self.response.headers.add_header('Accept', '*')
      self.response.headers.add_header('Access-Control-Allow-Origin', self.request.headers['Origin'])
      self.response.out.write("Allow: *")
      self.response.out.write('Access-Control-Allow-Origin: *') 
      logging.warn("dispatch - options response send to %s - %s" % (self.request.remote_addr, str(self.request.headers)))
Exemplo n.º 5
0
 def get(self):
     try:
         cont = self.request.get('continue')
         logging.info('openid - login form %s' % cont)
         urlstring = self.create_openid_url(cont)
         template_values = LazyDict({
             'cont': cont,
             'urlstring': urlstring,
             'appname': getversion()
         })
         try: host = socket.gethostname()
         except AttributeError:
             if os.environ.get('HTTP_HOST'): host = os.environ['HTTP_HOST']
             else: host = os.environ['SERVER_NAME']
         inputdict = {'version': getversion(), 'host': host, 'loginurl': urlstring}
         template_values.update(inputdict)
         temp = os.path.join(os.getcwd(), 'templates/login.html')
         outstr = template_values.render(temp)  
         self.response.out.write(outstr)
     except Exception, ex:
         handle_exception()
Exemplo n.º 6
0
Arquivo: web.py Projeto: code2u/jsb
def login(response, input={}):
    """ display start html so that bot output can follow. """
    try: host = socket.gethostname()
    except AttributeError:
         if os.environ.get('HTTP_HOST'): host = os.environ['HTTP_HOST']
         else: host = os.environ['SERVER_NAME']
    if 'localhost' in host:  url = 'http://%s/dispatch' % host
    else: url = 'https://%s/dispatch' % host
    template = LazyDict({'url': url, 'version': getversion(), 'host': host, 'color': getmainconfig().color or "#4b7cc6"})
    if input: template.update(input)
    temp = os.path.join(os.getcwd(), 'templates/login.html')
    outstr = template.render(temp)
    response.out.write(outstr)
Exemplo n.º 7
0
Arquivo: core.py Projeto: code2u/jsb
def handle_version(bot, ievent):
    """ no arguments - show bot's version. """
    from jsb.version import getversion
    version = getversion(bot.type.upper())
    try: 
        from mercurial import context, hg, node, repo, ui
        repository = hg.repository(ui.ui(), '.')
        ctx = context.changectx(repository)
        tip = str(ctx.rev())
    except: tip = None
    if tip: version2 = version + " HG " + tip
    else: version2 = version
    ievent.reply(version2)
Exemplo n.º 8
0
 def handle_ctcp(self, ievent):
     """ handle client to client request .. version and ping. """
     if ievent.txt.find('VERSION') != -1:
         from jsb.version import getversion
         self.ctcpreply(ievent.nick, 'VERSION %s' % getversion())
     if ievent.txt.find('PING') != -1:
         try:
             pingtime = ievent.txt.split()[1]
             pingtijsb = ievent.txt.split()[2]
             if pingtime:
                 self.ctcpreply(ievent.nick, 'PING ' + pingtime + ' ' + pingtijsb)
         except IndexError:
             pass
Exemplo n.º 9
0
 def handle_ctcp(self, ievent):
     """ handle client to client request .. version and ping. """
     if ievent.txt.find('VERSION') != -1:
         from jsb.version import getversion
         self.ctcpreply(ievent.nick, 'VERSION %s' % getversion())
     if ievent.txt.find('PING') != -1:
         try:
             pingtime = ievent.txt.split()[1]
             pingtijsb = ievent.txt.split()[2]
             if pingtime:
                 self.ctcpreply(ievent.nick,
                                'PING ' + pingtime + ' ' + pingtijsb)
         except IndexError:
             pass
Exemplo n.º 10
0
def handle_version(bot, ievent):
    """ no arguments - show bot's version. """
    from jsb.version import getversion
    version = getversion(bot.type.upper())
    cfg = getmainconfig()
    if cfg.dbenable: version += " " + cfg.dbtype.upper()
    if ievent.rest and ievent.rest == "repo":
        try:
            from mercurial import context, hg, node, repo, ui
            repository = hg.repository(ui.ui(), '.')
            ctx = context.changectx(repository)
            tip = str(ctx.rev())
        except:
            tip = None
        if tip: version2 = version + " HG " + tip
    else: version2 = version
    ievent.reply(version2)
Exemplo n.º 11
0
from waveapi.simplejson import loads

## basic imports

import wsgiref.handlers
import logging
import google

## vars

periodicals =  ['jsb.plugs.common.rss', 'jsb.plugs.core.botevent']
mountpoints = ['rss', 'botevent']

##

logging.info(getversion('TASK'))

for plugin in periodicals:
    plugs.reload(plugin)


class TaskHandler(webapp.RequestHandler):

    """ the bots task handler. """

    def get(self):
        try:
            """ this is where the task gets dispatched. """
            path = self.request.path
            if path.endswith('/'):
                path = path[:-1]
Exemplo n.º 12
0
## google imports

import webapp2

## basic imports

import sys
import time
import types
import logging
import os

## greet

logging.warn(getversion('REDIRECT'))

## classes

class DocsHandler(webapp2.RequestHandler):

    def get(self, url=None):
        try:
            if not url.endswith(".html"):
                if not url.endswith('/'):
                    url += u"/index.html"
                else:
                    url += u"index.html"
            splitted = url.split(os.sep)
            splitted.insert(2, 'html')
            goto = os.sep.join(splitted)
Exemplo n.º 13
0
from google.appengine.ext.webapp.util import run_wsgi_app
from google.appengine.api import users as gusers
from google.appengine.ext import db
from google.appengine.ext.webapp import xmpp_handlers

## basic imports

import wsgiref.handlers
import sys
import time
import types
import logging

## boot

logging.info(getversion('GAE XMPP'))

boot()

## defines

bot = XMPPBot()

## functions

def xmppbox(response):
    response.out.write("""
          <form action="/_ah/xmpp/message/chat/" method="post">
            <div><b>enter command:</b> <input type="commit" name="body">
          </form>
          """)
Exemplo n.º 14
0
from jsb.version import getversion

## google imports

import webapp2

## basic imports

import sys
import time
import types
import logging

## greet

logging.warn(getversion("WARMUP"))

## classes


class WarmupHandler(webapp2.RequestHandler):
    def get(self, url=None):
        logging.warn("warmup")

    post = get


application = webapp2.WSGIApplication([webapp2.Route(r"<url:.*>", WarmupHandler)], debug=True)


def main():
Exemplo n.º 15
0
from webapp2 import RequestHandler, Route, WSGIApplication
from google.appengine.api import channel

## basic imports

import sys
import time
import types
import os
import logging
import google
import urllib

## init

logging.info(getversion('GAE WEB'))

## classes

class HomePageHandler(RequestHandler):

    """ the bots web command dispatcher. """


    def options(self):
        self.response.headers.add_header("Allow: *")
        
    def get(self):
        """ show basic page. """

        logging.warn("web_handler - in")
Exemplo n.º 16
0
## jsb imports

from jsb.version import getversion
from jsb.lib.errors import NoSuchCommand
from jsb.lib.boot import boot

## gaelib imports

from jsb.drivers.gae.wave.bot import WaveBot

## basic imports

import logging
import os

## defines

logging.info(getversion('GAE WAVE'))
boot()

# the bot

bot = WaveBot(domain="googlewave.com")

def main():
    bot.run()

if __name__ == "__main__":
    main()
Exemplo n.º 17
0
## google imports

from webapp2 import RequestHandler, Route, WSGIApplication
from google.appengine.api import users as gusers

## basic imports

import sys
import time
import types
import os
import logging
import google

logging.warn(getversion('GAE DISPATCH'))

bot = WebBot(botname="gae-web")

class Dispatch_Handler(RequestHandler):

    """ the bots remote command dispatcher. """

    def options(self):
         self.response.headers.add_header('Content-Type', 'application/x-www-form-urlencoded')
         #self.response.headers.add_header("Cache-Control", "private")
         self.response.headers.add_header("Server", getversion())
         self.response.headers.add_header("Public", "*")
         self.response.headers.add_header('Accept', '*')
         self.response.headers.add_header('Access-Control-Allow-Origin', self.request.headers['Origin'])
         self.response.out.write("Allow: *")
Exemplo n.º 18
0
Arquivo: config.py Projeto: code2u/jsb
""" gozerbot config compat. """

## jsb imports

from jsb.lib.datadir import datadir
from jsb.version import getversion

## basic imports

import os
import pickle
import subprocess

# version string

ver = getversion()

## diffdict function

def diffdict(dictfrom, dictto):
    """ check for differences between two dicts """
    temp = {}
    for i in dictto.iteritems():
        if dictfrom.has_key(i[0]):
            if dictfrom[i[0]] != i[1]:
                temp.setdefault(i[0], i[1])
        else:
            temp.setdefault(i[0], i[1])
    return temp

## Config Class
Exemplo n.º 19
0
def useragent():
    """ provide useragent string """
    from jsb.version import getversion
    (name, version) = getversion().split()[0:2]
    return 'Mozilla/5.0 (X11; Linux x86_64); %s %s; http://jsonbot.org)' % (name, version)
Exemplo n.º 20
0
from google.appengine.api import urlfetch
from google.appengine.api import xmpp
from google.appengine.ext import db
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.response.set_status(400) ; return
Exemplo n.º 21
0
Arquivo: bot.py Projeto: code2u/jsb
 def OnSelfAdded(self, event, wavelet):
     """ invoked when the robot has been added. """
     logging.warn('wave - joined "%s" (%s) wave' % (wavelet._wave_id, wavelet._title))
     wevent = WaveEvent()
     wevent.parse(self, event, wavelet)
     logging.debug("wave - owner is %s" % wevent.chan.data.owner)
     wevent.chan.data.json_data = wavelet.serialize()
     wevent.chan.save()
     wevent.reply("Welcome to %s (see !help) or http://jsonbot.appspot.com/docs/html/index.html" % getversion())
     callbacks.check(self, wevent)
Exemplo n.º 22
0
## google imports

from webapp2 import RequestHandler, Route, WSGIApplication
from google.appengine.api import users as gusers

## basic imports

import sys
import time
import types
import os
import logging
import google

logging.warn(getversion('GAE DEMO'))

bot = WebBot(botname="gae-web")

class Demo_Handler(RequestHandler):

    """ the bots remote command dispatcher. """

    def options(self):
         if not getmainconfig().demo: self.response.set_status(404) ; return
         self.response.headers.add_header('Content-Type', 'application/x-www-form-urlencoded')
         self.response.headers.add_header("Server", getversion())
         self.response.headers.add_header("Public", "*")
         self.response.headers.add_header('Accept', '*')
         self.response.headers.add_header('Access-Control-Allow-Origin', self.request.headers['Origin'])
         self.response.out.write("Allow: *")