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"
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)))
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)))
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()
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)
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)
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
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)
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]
## 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)
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> """)
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():
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")
## 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()
## 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: *")
""" 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
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)
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
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)
## 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: *")