def putHelpFriend(self, raidboss): """助けを借りるフレンド. """ model_mgr = self.getModelMgr() v_player = self.getViewerPlayer() params = {} func_put_playerlist = None if self.request.get(Defines.URLQUERY_REM) == '1': # フレンドを外す. BackendApi.cancel_raidhelpcard(v_player.id, raidboss.id) else: helpleader = self.getSelectedFriendCard(raidboss.id) if helpleader: func_put_playerlist = self.putPlayerListByLeaderList(raidboss.id, [helpleader]) friend_callopentime = BackendApi.get_raid_callfriend_opentime(v_player.id) if friend_callopentime: params['friend_call_opentime'] = Objects.timelimit(friend_callopentime) else: friend_num = BackendApi.get_friend_num(v_player.id, model_mgr, using=settings.DB_READONLY) if 0 < friend_num: url = UrlMaker.raidfriendselect(raidboss.id) params['url_friendselect'] = self.makeAppLinkUrl(url) # フレンドを外すリンク. url = self.request.url.replace(self.url_cgi, '') url = OSAUtil.addQuery(url, Defines.URLQUERY_REM, 1) params['url_helpfriend_cancel'] = self.makeAppLinkUrl(url) self.html_param.update(**params) return func_put_playerlist
def process(self): # 現在時刻. now = OSAUtil.get_now() # 各店舗の更新. self.updateStore(now) # ModelRequestMgr. model_mgr = self.getModelMgr() # ユーザ情報. v_player = self.getViewerPlayer() uid = v_player.id if BackendApi.check_cabaclub_lead_resultanim( model_mgr, uid, now, using=settings.DB_READONLY): # 結果演出へ. self.setFromPage(Defines.FromPages.CABACLUB_STORE) self.appRedirect( self.makeAppLinkUrlRedirect(UrlMaker.cabaclubresultanim())) return # 経営情報. scoredata = BackendApi.get_cabaretclub_scoreplayerdata( model_mgr, uid, using=settings.DB_READONLY) scoredata_weekly = BackendApi.get_cabaretclub_scoreplayerdata_weekly( model_mgr, uid, now, using=settings.DB_READONLY) obj_cabaclub_management_info = Objects.cabaclub_management_info( self, scoredata, scoredata_weekly) # 店舗のイベント発生情報. BackendApi.put_cabaretclub_eventinfo(self, uid, now, using=settings.DB_READONLY) # 次の集計時間. section_endtime = BackendApi.to_cabaretclub_section_endtime(now) # 開催中または最新の開催したイベントの開催情報 event_config = BackendApi.get_current_cabaclubrankeventconfig( model_mgr, using=settings.DB_READONLY) if BackendApi.is_cabaclubrankevent_open(model_mgr): # 経営イベントのランキングURL cabaclub_event_ranking_url = UrlMaker.cabaclubrank( event_config.mid) else: cabaclub_event_ranking_url = UrlMaker.cabaclubrank( event_config.previous_mid) self.set_event_period(model_mgr, self.html_param, event_config) if self.html_param['is_event_open']: self.html_param[ 'eventmaster'] = BackendApi.get_cabaclubrankeventmaster( model_mgr, event_config.mid, using=settings.DB_READONLY) # HTML書き込み. self.html_param.update( cabaclub_management_info=obj_cabaclub_management_info, url_store=self.makeAppLinkUrl(UrlMaker.cabaclubstore()), url_title=self.makeAppLinkUrl(UrlMaker.titletop()), url_current_week_rank=self.makeAppLinkUrl( cabaclub_event_ranking_url), section_timelimit=Objects.timelimit(section_endtime, now), ) self.writeAppHtml('cabaclub/top')
def cb(): now = OSAUtil.get_now() obj_raidlist = [] for raidhelp in raidhelplist: if happeningraidset_dict.has_key(raidhelp.raidid): happeningraidset = happeningraidset_dict[raidhelp.raidid] happeningset = happeningraidset.happening raidboss = happeningraidset.raidboss if happeningset.happening.event: eventraidmaster = BackendApi.get_eventraidmaster_by_modeleventvalue(model_mgr, happeningset.happening.event, raidboss.master.id, using=settings.DB_READONLY) raidboss.setEventRaidMaster(eventraidmaster) o_person = None o_player = o_playerdict.get(raidhelp.fromid) if o_player: o_person = persons.get(o_player.dmmid) obj_raid = Objects.raid(self, raidboss, o_person, leaders.get(raidhelp.fromid)) obj_raid['timelimit'] = Objects.timelimit(happeningset.happening.etime, now) obj_raidlist.append(obj_raid) self.html_param['raidhelplist'] = obj_raidlist
def putHappeningInfo(self): """ハプニングとレイドの発生チェック. """ model_mgr = self.getModelMgr() cur_eventmaster = BackendApi.get_current_raideventmaster(model_mgr, using=settings.DB_READONLY) v_player = self.getViewerPlayer() # 自分の. cur_happeningset = BackendApi.get_current_happening(model_mgr, v_player.id, using=settings.DB_READONLY) if cur_happeningset and not cur_happeningset.happening.is_end(): is_event = cur_eventmaster and cur_eventmaster.id == HappeningUtil.get_raideventid(cur_happeningset.happening.event) happeninginfo = None timellimit = None if cur_happeningset.happening.is_cleared(): # クリア済み. happeninginfo = 'cleared' if is_event: url = UrlMaker.raidresultanim(cur_happeningset.happening.id) else: url = UrlMaker.raidend(cur_happeningset.happening.id) self.__news_num += 1 elif cur_happeningset.happening.is_boss_appeared(): # レイド発生中. happeninginfo = 'bossappeared' if is_event: url = UrlMaker.raidevent_battlepre() else: url = UrlMaker.happening() timellimit = Objects.timelimit(cur_happeningset.happening.etime, OSAUtil.get_now()) else: # ハプニング中. happeninginfo = 'open' url = UrlMaker.happening() timellimit = Objects.timelimit(cur_happeningset.happening.happening.etime, OSAUtil.get_now()) self.html_param['happeninginfo'] = { 'info' : happeninginfo, 'timelimit' : timellimit, 'url' : self.makeAppLinkUrl(url), 'is_event' : is_event, } # 救援. helpnum = BackendApi.get_raidhelp_num(model_mgr, v_player.id, using=settings.DB_READONLY, nummax=Defines.RAIDHELP_LIST_MAXLENGTH) if cur_eventmaster: url = None if 0 < helpnum: raidhelpidlist = BackendApi.get_raidhelpidlist(model_mgr, v_player.id, limit=min(5, helpnum), offset=0, using=settings.DB_READONLY) if raidhelpidlist: raidhelplist = BackendApi.get_raidhelplist(model_mgr, raidhelpidlist, using=settings.DB_READONLY) helpnum = len(raidhelplist) if helpnum == 1: url = UrlMaker.raidhelpdetail(raidhelplist[0].raidid) else: helpnum = 0 if url is None: url = OSAUtil.addQuery(UrlMaker.raidevent_helplist(), Defines.URLQUERY_FLAG, '_mypage') is_event_opened = True else: url = UrlMaker.happening() is_event_opened = False self.html_param['raidhelpnuminfo'] = { 'num' : helpnum, 'url' : self.makeAppLinkUrl(url), } self.html_param['is_event_opened'] = is_event_opened # 救援成功通知. if BackendApi.get_raidlog_notification_num(v_player.id): # 救援成功したらしい. self.html_param['raidhelp_notification'] = True self.__news_num += 1