def putBanner(self): """バナー. """ # イベント. eventbanners = BackendApi.get_eventbanners(self, using=settings.DB_READONLY) self.html_param['eventbanners'] = [ Objects.eventbanner(self, banner) for banner in eventbanners ]
def process(self): model_mgr = self.getModelMgr() args = self.getUrlArgs('/teaser/') eventbanner_id = args.getInt(0) eventbanner = None if eventbanner_id: eventbanner = BackendApi.get_eventbanner( model_mgr, eventbanner_id, using=settings.DB_READONLY) if eventbanner is None or not eventbanner.has_teaser: # 表示できない. if settings_sub.IS_DEV: raise CabaretError(u'指定したイベントバナーにはティザーの設定がされていません', CabaretError.Code.NOT_DATA) self.redirectToTop() return self.html_param['evenbanner'] = Objects.eventbanner(self, eventbanner) self.writeAppHtml('teaser_info')
def setDefaultParam(self): # クライアントに渡す値のデフォルトを定義. BaseHandler.setDefaultParam(self) self.html_param['is_tutorial'] = False # 定数. self.html_param['GREET_GACHA_PT'] = Defines.GREET_GACHA_PT self.html_param[ 'GREET_COUNT_MAX_PER_DAY'] = Defines.GREET_COUNT_MAX_PER_DAY # デフォルトで埋め込んでおくUrl. pagelist = ( 'top', 'mypage', 'scout', 'areamap', 'battle', 'gacha', 'deck', 'deck_raid', 'infomation', 'playerlog', 'friendlog', 'composition', 'evolution', 'album', 'memories', 'friendlist', 'shop', 'greetlog', 'apitest', 'present', 'itemlist', 'treasurelist', 'friendsearch', 'happening', 'raidloglist', 'trade', 'support_paymentlist', 'help', 'warnpage', 'invite', 'myframe', 'getstatus', 'transfer', 'config', 'cabaclubtop', 'raidevent_top', ) for pagename in pagelist: self.html_param['url_%s' % pagename] = self.makeAppLinkUrl( getattr(UrlMaker, pagename)(), add_frompage=False) for pagename in ('cardbox', 'sell'): url = getattr(UrlMaker, pagename)() self.html_param['url_%s' % pagename] = self.makeAppLinkUrl( OSAUtil.addQuery(url, Defines.URLQUERY_PAGE, 0), add_frompage=False) gachatypes = list(set(Defines.GachaConsumeType.GTYPE_NAMES.values())) urlbase = UrlMaker.gacha() for gachatype in gachatypes: self.html_param['url_gacha_%s' % gachatype] = self.makeAppLinkUrl( OSAUtil.addQuery(urlbase, Defines.URLQUERY_GTYPE, gachatype)) self.html_param['url_gacha_ctype_ticket'] = self.makeAppLinkUrl( OSAUtil.addQuery(urlbase, Defines.URLQUERY_CTYPE, Defines.GachaConsumeType.GachaTopTopic.TICKET)) urlbase = UrlMaker.friendlist() # 申請中一覧. self.html_param['url_friendlist_send'] = self.makeAppLinkUrl( OSAUtil.addQuery(urlbase, Defines.URLQUERY_STATE, Defines.FriendState.SEND), add_frompage=False) # 承認待ち一覧. self.html_param['url_friendlist_receive'] = self.makeAppLinkUrl( OSAUtil.addQuery(urlbase, Defines.URLQUERY_STATE, Defines.FriendState.RECEIVE), add_frompage=False) if self.is_pc: self.html_param['url_community'] = Defines.URL_COMUNITY_PC else: self.html_param['url_community'] = Defines.URL_COMUNITY_SP if self.osa_util.session: self.html_param[ 'cookie'] = 'session=%s; path=/;' % self.osa_util.session self.html_param['gold_name'] = Defines.ItemType.NAMES[ Defines.ItemType.GOLD] self.html_param['gold_unit'] = Defines.ItemType.UNIT[ Defines.ItemType.GOLD] self.html_param['gachapt_name'] = Defines.ItemType.NAMES[ Defines.ItemType.GACHA_PT] self.html_param['rareover_ticket_name'] = Defines.ItemType.NAMES[ Defines.ItemType.RAREOVERTICKET] self.html_param['tryluck_ticket_name'] = Defines.ItemType.NAMES[ Defines.ItemType.TRYLUCKTICKET] self.html_param['memories_ticket_name'] = Defines.ItemType.NAMES[ Defines.ItemType.MEMORIESTICKET] self.html_param['gacha_ticket_name'] = Defines.ItemType.NAMES[ Defines.ItemType.GACHATICKET] if settings_sub.IS_DEV: self.html_param['url_template_test'] = self.makeAppLinkUrl( '/template_test/sp/top/top.html') self.html_param['url_template_test_old'] = self.makeAppLinkUrl( '/template_test/sp_old/top/top.html') self.html_param['url_html5_test'] = self.makeAppLinkUrl( '/html5_test/') self.html_param['url_cookie_test'] = self.makeAppLinkUrl( '/cookie_test/') self.html_param['url_promotion_debug'] = self.makeAppLinkUrl( '/promotiondebug/%s/' % PromotionSettings.Apps.CSC) self.html_param['is_admin_access'] = self.osa_util.is_admin_access self.html_param['is_dbg_user'] = self.osa_util.is_dbg_user self.html_param['is_new_session'] = self.osa_util.is_new_session url = '/session_set' url = OSAUtil.addQuery(url, OSAUtil.KEY_VIEWER_ID, self.osa_util.viewer_id) url = OSAUtil.addQuery(url, OSAUtil.KEY_OWNER_ID, self.osa_util.viewer_id) self.html_param['url_session_set'] = self.url_cgi + url if self.request.method == 'POST': url_self = self.url_cgi + UrlMaker.top() else: url_self = self.request.url for k in self.request.body.keys(): if k.find('auth') != -1: continue elif k in (OSAUtil.KEY_VIEWER_ID, OSAUtil.KEY_OWNER_ID, OSAUtil.KEY_APP_ID): continue url_self = OSAUtil.addQuery(url_self, k, self.request.body[k]) self.html_param['url_session_callback'] = url_self self.html_param['url_session_error'] = self.makeAppLinkUrl( UrlMaker.session_error()) self.html_param['is_pc'] = self.is_pc self.html_param['is_ios'] = self.osa_util.useragent.is_ios() self.html_param['is_android'] = self.osa_util.useragent.is_android() self.html_param['os_version'] = self.osa_util.useragent.version or '0' self.html_param['is_ie'] = self.osa_util.useragent.browser in ( BrowserType.INTERNETEXPROLER, BrowserType.INTERNETEXPROLER_11_OVER) self.html_param[ 'is_safari'] = self.osa_util.useragent.browser == BrowserType.SAFARI self.html_param[ 'is_firefox'] = self.osa_util.useragent.browser == BrowserType.FIREFOX self.html_param[ 'is_chrome'] = self.osa_util.useragent.browser == BrowserType.CHROME self.html_param['is_windows'] = self.osa_util.useragent.is_windows self.html_param['cur_session'] = self.osa_util.session or '' menu_banner = BackendApi.get_menu_eventbanner( self, using=settings.DB_READONLY) self.html_param['menu_banner'] = Objects.eventbanner( self, menu_banner) if menu_banner else None self.html_param['Defines'] = Defines self.html_param['ItemUtil'] = ItemUtil
def process(self): eventbanners = BackendApi.get_eventbanners(self, using=settings.DB_READONLY) self.json_result_param['eventbanners'] = [Objects.eventbanner(self, banner) for banner in eventbanners] self.writeAppJson()
def process(self): args = self.getUrlArgs('/bossresult/') try: # エリア. areaid = int(args.get(0, None)) self.setAreaID(areaid) battlekey = urllib.unquote(args.get(1))[:32] if not battlekey: raise except: raise CabaretError(u'引数が想定外です', CabaretError.Code.ILLEGAL_ARGS) model_mgr = self.getModelMgr() v_player = self.getViewerPlayer() uid = v_player.id using = settings.DB_READONLY # 結果. bossbattle = BackendApi.get_bossresult(model_mgr, uid, areaid, using=using) if bossbattle is None: if settings_sub.IS_LOCAL: raise CabaretError(u'結果が見つかりませんでした', CabaretError.Code.ILLEGAL_ARGS) self.callFunctionByFromPage('redirectToScoutTop') return animdata = bossbattle.anim is_win = animdata.winFlag b_hp = animdata.bossHpPost # ボス情報. boss = self.getBossMaster() self.html_param['boss'] = self.makeBossObj(boss, b_hp) # デッキのカード. self.putDeckInfoParams() area = self.getAreaMaster() self.html_param['area'] = self.makeAreaObj(area, playdata=None) if is_win: # エリアクリア報酬情報. prizeidlist = self.callFunctionByFromPage('getAreaPrize') prizelist = BackendApi.get_prizelist(model_mgr, prizeidlist, using=using) self.html_param['prize'] = BackendApi.make_prizeinfo(self, prizelist, using=using) # 次のエリアの情報. self.callFunctionByFromPage('putNextAreaInfo') self.writeAppHtml('boss/bosswin') else: # イベントバナー. eventbanners = BackendApi.get_eventbanners( self, using=settings.DB_READONLY) if eventbanners: self.html_param['eventbanners'] = [ Objects.eventbanner(self, banner) for banner in eventbanners ] # 強化合成素材選択のページ. deck = self.getDeck() url = UrlMaker.compositionmaterial(deck.leader) self.html_param['url_composition_material'] = self.makeAppLinkUrl( url) self.writeAppHtml('boss/bosslose')
def process(self): # プレイヤー情報. v_player = self.getViewerPlayer() self.html_param['player'] = Objects.player(self, v_player) # ハプニング情報. self.putHappeningInfo() self.setFromPage(Defines.FromPages.HAPPENING) model_mgr = self.getModelMgr() cur_eventmaster = BackendApi.get_current_raideventmaster( model_mgr, using=settings.DB_READONLY) # 実行Url. happeningset = self.getHappening() eventid = HappeningUtil.get_raideventid( happeningset.happening.event) if happeningset else 0 if happeningset and happeningset.happening.is_missed( ) and happeningset.happening.state != Defines.HappeningState.MISS: # 失敗した. if cur_eventmaster and cur_eventmaster.id == eventid: url = UrlMaker.raidresultanim(happeningset.id) else: self.writeHappeningMissed(happeningset.id) url = UrlMaker.happening() self.appRedirect(self.makeAppLinkUrl(url)) return elif happeningset and not happeningset.happening.is_end(): if happeningset.happening.is_cleared(): # クリア済み. if cur_eventmaster and cur_eventmaster.id == eventid: # イベントレイド. url = UrlMaker.raidresultanim(happeningset.id) else: url = UrlMaker.raidend(happeningset.id) self.appRedirect(self.makeAppLinkUrl(url, add_frompage=False)) return elif eventid: if cur_eventmaster.id == eventid: url = UrlMaker.raidevent_battlepre() self.appRedirect( self.makeAppLinkUrl(url, add_frompage=False)) return else: # これはデバッグ中だけ起きる想定. ステータスは...メンテでいいかなぁ. raise CabaretError(u'イベントの終了処理が終わっていません', CabaretError.Code.MAINTENANCE) else: # 救援要請. func_raidhelp_callback = self.putRaidHelpList(do_execute=False) raidboss = self.getRaidBoss() if raidboss: # ダメージ履歴. func_put_attacklog = self.putRaidAttackLog(raidboss) # お助け. func_put_playerlist = self.putHelpFriend(raidboss) if func_raidhelp_callback or func_put_attacklog or func_put_playerlist: self.execute_api() if func_raidhelp_callback: func_raidhelp_callback() if func_put_attacklog: func_put_attacklog() if func_put_playerlist: func_put_playerlist() BackendApi.put_bprecover_uselead_info(self) deckcardlist = self.getDeckCardList() self.putDeckParams(deckcardlist) url = UrlMaker.raiddo(raidboss.id, v_player.req_confirmkey) htmlname = 'happening/bossappear' self.html_param['url_exec_strong'] = self.makeAppLinkUrl( OSAUtil.addQuery(url, Defines.URLQUERY_STRONG, 1)) self.html_param['url_deck_raid'] = self.makeAppLinkUrl( UrlMaker.deck_raid()) else: if func_raidhelp_callback: self.execute_api() func_raidhelp_callback() url = UrlMaker.happeningdo(v_player.req_confirmkey) htmlname = 'happening/happening' self.html_param['url_exec'] = self.makeAppLinkUrl(url) self.html_param[ 'url_happeningcancel_yesno'] = self.makeAppLinkUrl( UrlMaker.happeningcancel_yesno()) else: if cur_eventmaster is not None: # イベント. eventbanners = BackendApi.get_eventbanners( self, using=settings.DB_READONLY) self.html_param['eventbanners'] = [ Objects.eventbanner(self, banner) for banner in eventbanners ] # 救援要請. self.putRaidHelpList() htmlname = 'happening/happening_none' self.html_param['url_trade'] = self.makeAppLinkUrl(UrlMaker.trade(), add_frompage=True) self.html_param['is_event_open'] = cur_eventmaster is not None self.writeAppHtml(htmlname)