def main(): # determine if this is the dev server or not if BaseHandler.on_dev_server(): logging.getLogger().setLevel(logging.DEBUG) else: logging.getLogger().setLevel(logging.WARN) application = webapp.WSGIApplication( [ ('/avatar/.*', AvatarHandler), ('/site/([^/]*).*', SiteHandler), ('/.*', IndexHandler), ], debug=BaseHandler.on_dev_server() # only debug on dev server ) util.run_wsgi_app(application)
def main(): # determine if this is the dev server or not if BaseHandler.on_dev_server(): logging.getLogger().setLevel(logging.DEBUG) else: logging.getLogger().setLevel(logging.WARN) application = webapp.WSGIApplication( [ ( '/avatar/.*', AvatarHandler ), ( '/site/([^/]*).*', SiteHandler ), ( '/.*', IndexHandler ), ], debug = BaseHandler.on_dev_server() # only debug on dev server ) util.run_wsgi_app(application)
def __init__(self, sock, server): asynchat.async_chat.__init__(self, sock=sock, map=server.sock_map) self.set_terminator('\n') self.prompt = '' self.recipients = {} self.username = '' self.server = server self.buffer = [] self.handler = BaseHandler(self)
def main(): # uvloop を用いてのasyncio高速化 loop = uvloop.new_event_loop() asyncio.set_event_loop(loop) app = web.Application(loop=loop) # templates直下をjinjaでファイル読み込み aiohttp_jinja2.setup(app, loader=jinja2.FileSystemLoader('templates/')) if debug: aiohttp_autoreload.start() handler = BaseHandler() app.add_routes( [web.get('/', handler.index), web.get('/answer', handler.post)]) app.router.add_static('/statics/', path='statics', name='static') web.run_app(app)
def render(self,template_name,**context): tpl = '%s/%s'%(self.settings.get('theme_name'),template_name) return BaseHandler.render(self,tpl,**context)
def __init__(self, log_publisher): BaseHandler.__init__(self) self._log_publisher = log_publisher
def write(self, msg): #print msg rsp = packet.RspPacket() rsp.ParseFromString(msg) result = self.print_obj(rsp) BaseHandler.write(self, result)
class MainHandler(asynchat.async_chat): def __init__(self, sock, server): asynchat.async_chat.__init__(self, sock=sock, map=server.sock_map) self.set_terminator('\n') self.prompt = '' self.recipients = {} self.username = '' self.server = server self.buffer = [] self.handler = BaseHandler(self) def collect_incoming_data(self, data): self.buffer.append(data) def get_handler(self, request): if re.match(r'^\\auth$', request): # handle auth return AuthHandler(me=self, server=self.server), '' elif re.match(r'^\\reg$', request): return RegHandler(me=self, server=self.server), '' elif re.match(r'^\\chatwith', request): # handle chat if self.username: request = request.replace('\chatwith', '') recipients_names = request.split(' ') self.prompt = '[%s@%s]>' % (self.username, self.addr[0]) for name in recipients_names: if name: if name in server.users_map.iterkeys(): self.recipients[name] = server.users_map[name] else: self.push(name + " is offline!\n") if self.recipients: return ChatHandler(me=self, recipients=self.recipients), 'Connected.' else: self.push("You need to authorize...\n") elif re.match(r'^\\online$', request): names = '' if server.users_map: for name in server.users_map.keys(): names += name + ', ' self.push("Now online: " + names + "\n") return self.handler, '' elif re.match(r'^\\help$', request): self.push("There are some commands for manage this messenger:\n") self.push("Type \\reg for registration \n") self.push("\\auth for authorize \n") self.push("\\online to check which users online\n") self.push("\\chatwith username1 [username2] [... \n") self.push("\n") return self.handler, '' else: return self.handler, request def found_terminator(self): request = ''.join(self.buffer) self.handler, msg = self.get_handler(request) self.handler.handle(msg) self.buffer = [] def handle_close(self): if self.username in self.server.users_map.keys(): del self.server.users_map[self.username] self.buffer.append("Disconected.\n") self.found_terminator() print '%s:%s disconected' % self.addr self.close()
def render(self, template_name, **context): tpl = '%s/%s' % (self.settings.get('theme_name'), template_name) return BaseHandler.render(self, tpl, **context)