def putEventTopic(self, mid, cur_topic='top'): """eventbase.htmlのトピック用のパラメータを埋め込む. """ self.html_param['cur_topic'] = cur_topic # イベントTopのURL. url = UrlMaker.battleevent_top(mid) self.html_param['url_battleevent_top'] = self.makeAppLinkUrl(url) # イベント説明のURL. url = UrlMaker.battleevent_explain(mid) self.html_param['url_battleevent_explain'] = self.makeAppLinkUrl(url) # ランキングのURL. url = UrlMaker.battleevent_ranking(mid) self.html_param['url_battleevent_ranking'] = self.makeAppLinkUrl(url) table = ( 'detail', 'prizes', 'nomination', 'faq', ) for k in table: self.html_param['url_explain_%s' % k] = self.makeAppLinkUrl(UrlMaker.battleevent_explain(mid, k)) # 贈り物. if BackendApi.get_battleeventpresent_master_by_eventdid(self.getModelMgr(), mid, using=settings.DB_READONLY): self.html_param['url_battleevent_present'] = self.makeAppLinkUrl(UrlMaker.battleevent_present()) # ガチャページ. url = OSAUtil.addQuery(UrlMaker.gacha(), Defines.URLQUERY_GTYPE, Defines.GachaConsumeType.GTYPE_NAMES[Defines.GachaConsumeType.OMAKE]) self.html_param['url_battleevent_gacha'] = self.makeAppLinkUrl(url)
def process(self): now = OSAUtil.get_now() model_mgr = self.getModelMgr() config = BackendApi.get_current_battleeventconfig(model_mgr, using=settings.DB_READONLY) cur_eventmaster = None if config.mid and config.starttime <= now < config.epilogue_endtime: cur_eventmaster = BackendApi.get_battleevent_master(model_mgr, config.mid, using=settings.DB_READONLY) if cur_eventmaster is None: self.appRedirect(self.makeAppLinkUrlRedirect(UrlMaker.mypage())) return elif config.starttime <= now < config.endtime: self.checkBattleEventUser(do_check_battle_open=False, do_check_regist=False) if self.response.isEnd: return v_player = self.getViewerPlayer() uid = v_player.id # 現在の贈り物情報を確認. presentdata = BackendApi.get_battleeventpresent_pointdata(model_mgr, uid, cur_eventmaster.id, using=settings.DB_DEFAULT) pre_data = presentdata.getPreData() if pre_data is None: # 受け取り情報がない. self.appRedirect(self.makeAppLinkUrlRedirect(UrlMaker.mypage())) return # 達成を一応確認. cur_data = presentdata.getData() presentmaster = BackendApi.get_battleeventpresent_master(model_mgr, cur_eventmaster.id, cur_data['number'], using=settings.DB_READONLY) if presentmaster.point <= presentdata.point: # 達成済みで受け取っていない. playerrequest = BackendApi.get_playerrequest(model_mgr, uid) url = UrlMaker.battleevent_presentreceive(playerrequest.req_confirmkey) self.appRedirect(self.makeAppLinkUrlRedirect(url)) return presentmaster = BackendApi.get_battleeventpresent_master(model_mgr, cur_eventmaster.id, pre_data['number'], using=settings.DB_READONLY) # 演出後のページ. url = OSAUtil.addQuery(UrlMaker.battleevent_present(), Defines.URLQUERY_FLAG, 1) params = { 'backUrl' : self.makeAppLinkUrl(url), 'logoPre' : self.url_static_img + 'event/btevent/%s/' % cur_eventmaster.codename, 'pre' : self.url_static_img, 'item' : presentmaster.thumb, } # 演出へリダイレクト. self.appRedirectToEffect('btevent/event_extra_alcohol/effect.html', params)
def process(self): now = OSAUtil.get_now() model_mgr = self.getModelMgr() config = BackendApi.get_current_battleeventconfig( model_mgr, using=settings.DB_READONLY) cur_eventmaster = None if config.mid and config.starttime <= now < config.epilogue_endtime: cur_eventmaster = BackendApi.get_battleevent_master( model_mgr, config.mid, using=settings.DB_READONLY) if cur_eventmaster is None: self.appRedirect(self.makeAppLinkUrlRedirect(UrlMaker.mypage())) return elif config.starttime <= now < config.endtime: self.checkBattleEventUser(do_check_battle_open=False, do_check_regist=False) if self.response.isEnd: return v_player = self.getViewerPlayer() uid = v_player.id # 現在の贈り物情報を確認. cur_number = None presentdata = BackendApi.get_battleeventpresent_pointdata( model_mgr, uid, cur_eventmaster.id, using=settings.DB_READONLY) if presentdata: cur_data = presentdata.getData() cur_number = cur_data['number'] self.html_param['cur_number'] = cur_number client = localcache.Client() key = 'battleeventpresent_contentlist:%s' % config.mid obj_contentlist = client.get(key) if obj_contentlist is None: presentmasterlist = BackendApi.get_battleeventpresent_master_by_eventdid( model_mgr, config.mid, using=settings.DB_READONLY).values() presentmasterlist.sort(key=lambda x: x.number) obj_contentlist = [] for presentmaster in presentmasterlist: tmp_dict = dict(presentmaster.contents) contentmasterlist = BackendApi.get_battleeventpresent_content_master_list( model_mgr, tmp_dict.keys(), using=settings.DB_READONLY) contentmasterlist.sort(key=lambda x: x.pri, reverse=True) prizeinfo_list = [] for contentmaster in contentmasterlist: prizelist = BackendApi.get_prizelist( model_mgr, contentmaster.prizes, using=settings.DB_READONLY) prizeinfo = BackendApi.make_prizeinfo( self, prizelist, using=settings.DB_READONLY) prizeinfo['name'] = contentmaster.name prizeinfo_list.append(prizeinfo) obj = Objects.battleevent_present_content( self, presentmaster, prizeinfo_list) obj_contentlist.append(obj) client.set(key, obj_contentlist) self.html_param['battleeventpresent_contentlist'] = obj_contentlist # 贈り物確認のリンク. url = UrlMaker.battleevent_present() self.html_param['url_battleevent_present'] = self.makeAppLinkUrl(url) # イベント情報. self.html_param['battleevent'] = Objects.battleevent( self, cur_eventmaster, now) # HTML書き出し. self.writeAppHtml( '%s/presentlist' % ('gcevent' if cur_eventmaster.is_goukon else 'btevent'))