def printPage(self, page, params): self.sbuilder = site_builder.builder() return { 'index': self.printIndex, '': self.printIndex, 'login': self.sbuilder.parseLogin, 'logout': self.sbuilder.parseLogout, 'help': self.printHelp, 'help_ugc': self.printHelpApprove, 'help_auth': self.printHelpAuth, 'search': self.printSearchResults, 'all-players': self.printAllPlayers, 'all-guilds': self.printAllGuilds, 'ne': self.printFactionPage, 'ha': self.printFactionPage, 'ft': self.printFactionPage, #'test': self.printTest 'licenses': self.printLicensesHelp, 'thx': self.printThanks, 'invite': self.printInvitePage, 'credits': self.printCredits }
if event: return self._force('events', event_id, params) else: return self._load(inspect.stack()[0][3], event_id, params) def obj(self,obj_type, guid = 0,prefix = 0,suffix = 0): #page = str(obj_type)+'/'+str(guid)+'/'+str(prefix)+'/'+str(suffix) text = informer.getInfo(obj_type,guid,prefix,suffix) return text obj.exposed = True index.exposed = True default.exposed = True u.exposed = True a.exposed = True guilds.exposed = True events.exposed = True root = TweenkApp() if __name__ == '__main__': print '# ----------------------------------------- #' print '# Tweeria version:', tweenk_core.__version__, 'build:', tweenk_core.__build__ print '# ----------------------------------------- #' builder = site_builder.builder(tweenk_core, tweenk_balance) informer = informer.Informer() cherrypy.quickstart(TweenkApp(), config=tweenk_core.conf_name) else: cherrypy.tree.mount(TweenkApp(), config=tweenk_core.conf_name)
return self._force('events', event_id, params) else: return self._load(inspect.stack()[0][3], event_id, params) def obj(self, obj_type, guid=0, prefix=0, suffix=0): #page = str(obj_type)+'/'+str(guid)+'/'+str(prefix)+'/'+str(suffix) text = informer.getInfo(obj_type, guid, prefix, suffix) return text obj.exposed = True index.exposed = True default.exposed = True u.exposed = True a.exposed = True guilds.exposed = True events.exposed = True root = TweenkApp() if __name__ == '__main__': print '# ----------------------------------------- #' print '# Tweeria version:', tweenk_core.__version__, 'build:', tweenk_core.__build__ print '# ----------------------------------------- #' builder = site_builder.builder(tweenk_core, tweenk_balance) informer = informer.Informer() cherrypy.quickstart(TweenkApp(), config=tweenk_core.conf_name) else: cherrypy.tree.mount(TweenkApp(), config=tweenk_core.conf_name)
def __init__(self, preload = True): defaultClass.__init__(self) self.sbuilder = site_builder.builder() if preload: self.__initialize()
for variant in self.page_runners[page]: if len(args): page_name = args.pop(0) else: page_name = '__default__' return self.controller.controllers[variant['name']].printPage(page_name, args, params) return builder.throwWebError(params=params) def index(self, *args, **kwargs): return self.__load('index', list(args), kwargs) def default(self, page, *args, **kwargs): args = list(args) if not page in self.page_runners: args.insert(0, page) page = 'index' return self.__load(page, args, kwargs) index.exposed = True default.exposed = True if __name__ == '__main__': print WebApp.welcomeString() builder = site_builder.builder(core) cherrypy.quickstart(WebApp(), config=core.conf_name)
def printPage2(self, page, rules, methods, params={}): def runRule(rule): if isinstance(rule, dict): params.update(rule['params']) if rule['method']: return rule['method'](fields, params) else: methods(params) else: return rule(fields, params) def getNearestGuildEvent(fields): if 'login_guild' in fields and fields['login_guild']: event = self.model.events.getGuildEventsByID(fields['login_guild'], limit=1, fields={ 'target_name': 1, 'guild_side_name': 1, 'start_date': 1, '_id': 1, 'type': 1 }) if event: if event[0]['start_date'] < time.time(): event[0].update({'in_progress': 1}) event[0]['start_date'] = getRelativeDate(event[0]['start_date'] + fields['login_utc_offset']) fields.update({'nearest_guild_event': event[0]}) def getNearestFactionEvent(fields): if 'login_faction' in fields: event = self.model.events.getFactionEventsByID(fields['login_faction'], limit=1, fields={ 'sides': 1, 'sides_names': 1, 'start_date': 1, '_id': 1, 'type': 1 }) if event: event[0]['start_date'] = getRelativeDate(event[0]['start_date'] + fields['login_utc_offset']) fields.update({'nearest_faction_event': event[0]}) self.sbuilder = site_builder.builder() fields = {} try: isinstance(self.mongo, bool) except Exception: self.initialize() self.cur_player = self.sbuilder.playerLogged() if self.cur_player: fields.update(self.cur_player) params.update({'__page__': page, '__query__': cherrypy.request.query_string}) res = methods(params) if res and self.isAjax(): return res if isinstance(res, dict) and 'critical_error' in res: fields.update({'critical_error': res['critical_error']}) if 'errors' in params: fields.update({'errors': params['errors']}) if res and 'ok' in res: fields.update({'success': True}) # disabled из-за проблем с производительностью # getNearestGuildEvent(fields) # getNearestFactionEvent(fields) fields.update(self.paramsConvert(params)) if 'invites' in self.core.debug and self.core.debug['invites']: if self.cur_player: pass else: if page in ['registration', 'new']: pass else: return self.sbuilder.loadTemplate('invites/access.jinja2', {}) # если метод обработчика возвращает страницу, тогда выведем ее # не дожидаясь выполнения print page if isinstance(res, unicode) or isinstance(res, str): return res # print page for page_name in rules: if page_name == page: return runRule(rules[page_name]) if '__default__' in rules: return runRule(rules['__default__'])