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 process(self): args = self.getUrlArgs('/profile/') owner_id = args.get(0, None) if owner_id is None or not str(owner_id).isdigit(): raise CabaretError(u'表示するユーザIDが指定されていません.') v_player = self.getViewerPlayer() owner_id = int(owner_id) if owner_id == v_player.id: url = UrlMaker.mypage() self.appRedirect(self.makeAppLinkUrlRedirect(url)) return clslist = [ PlayerTutorial, PlayerExp, PlayerGold, PlayerAp, PlayerDeck, PlayerFriend, PlayerGachaPt, PlayerLogin, PlayerComment, ] playerlist = BackendApi.get_players(self, [owner_id], clslist, using=settings.DB_READONLY) o_player = None if 0 < len(playerlist): o_player = playerlist[0] if o_player is None or not o_player.is_tutorialend(): raise CabaretError(u'このユーザIDは閲覧出来ません.') comments = self.readyProfileCommentRequest(o_player) self.putCardInfo(o_player) self.putFriendInfos(o_player) self.putBattleKOs(o_player) self.putRareLog(o_player) self.putGreetLog(o_player) persons = self.getDmmPlayerInfo(o_player) self.putIgnorelist(o_player) self.putPlayerInfo(o_player, persons.get(o_player.dmmid)) self.putProfileComment(o_player, comments) if self.getFromPageName() == Defines.FromPages.CABACLUB_STORE: args = self.getFromPageArgs() mid = int(args[0]) if args and str(args[0]).isdigit() else None self.html_param['frompage_url'] = self.makeAppLinkUrlRedirect(UrlMaker.cabaclubrank(mid), add_frompage=False) self.writeAppHtml('profile')
def process(self): args = self.getUrlArgs('/cabaclubrank/') current_eventid = args.getInt(0) ope = args.get(1) v_player = self.getViewerPlayer() model_mgr = self.getModelMgr() eventmaster = BackendApi.get_cabaclubrankeventmaster( model_mgr, current_eventid, using=settings.DB_READONLY) if eventmaster is None: url = self.makeAppLinkUrlRedirect(UrlMaker.cabaclubtop()) self.appRedirect(url) return self.html_param[ 'cabaclub_management_info'] = self.get_cabaclub_management_info( self.getModelMgr(), v_player.id, OSAUtil.get_now()) self.html_param['url_cabaclubrank'] = self.makeAppLinkUrl( UrlMaker.cabaclubrank(eventmaster.id)) self.html_param['url_explain_detail'] = self.makeAppLinkUrl( UrlMaker.cabaclubrank(eventmaster.id, 'detail')) self.html_param['url_explain_prizes'] = self.makeAppLinkUrl( UrlMaker.cabaclubrank(eventmaster.id, 'prizes')) self.html_param['eventmaster'] = eventmaster event_config = BackendApi.get_current_cabaclubrankeventconfig( model_mgr, using=settings.DB_READONLY) self.set_event_period(model_mgr, self.html_param, event_config) table = { 'detail': self.__proc_detail, 'prizes': self.__proc_prizes, } func = table.get(ope) if func: func(eventmaster) return page = int(self.request.get(Defines.URLQUERY_PAGE) or 0) is_view_myrank = int(self.request.get(Defines.URLQUERY_FLAG) or 0) == 1 has_next = False if not CabaClubRanking.exists(current_eventid): # if ranking data isn't present in Redis # fetch the ranking data from the database and store it into Redis BackendApi.backup_ranking_data_into_redis(current_eventid) if is_view_myrank: # fetch user rank data from Redis DB player_rank_list = CabaClubRanking.get_user_rank_page( current_eventid, v_player.id, Handler.CONTENT_NUM_PER_PAGE) else: offset = page * Handler.CONTENT_NUM_PER_PAGE # fetch all players' rank data from Redis DB player_rank_list = CabaClubRanking.get_rankings( current_eventid, offset, Handler.CONTENT_NUM_PER_PAGE, page) # base url urlbase = UrlMaker.cabaclubrank(current_eventid) if player_rank_list: self.setFromPage(Defines.FromPages.CABACLUB_STORE, current_eventid) uidlist = [x['uid'] for x in player_rank_list] playerlist = BackendApi.get_players(self, uidlist=uidlist, using=settings.DB_READONLY) obj_player_dict = dict([ (obj_player['id'], obj_player) for obj_player in self.getObjPlayerList(playerlist, uidlist) ]) for rank_info in player_rank_list: uid = rank_info['uid'] obj_player = obj_player_dict.get(uid) if obj_player: obj_player['is_me'] = uid == v_player.id rank_info.update(obj_player) if not is_view_myrank: number_of_players = CabaClubRanking.get_number_of_players( eventid=current_eventid) self.putPagenation(UrlMaker.cabaclubrank(current_eventid), page, number_of_players, Handler.CONTENT_NUM_PER_PAGE) if Handler.CONTENT_NUM_PER_PAGE == len(player_rank_list): has_next = True # Next page url if has_next: self.html_param['url_page_next'] = self.makeAppLinkUrl( OSAUtil.addQuery(urlbase, Defines.URLQUERY_PAGE, page + 1)) # Previous page url if 0 < page: self.html_param['url_page_prev'] = self.makeAppLinkUrl( OSAUtil.addQuery(urlbase, Defines.URLQUERY_PAGE, page - 1)) url_ranking = OSAUtil.addQuery(urlbase, Defines.URLQUERY_FLAG, "0") url_myrank = OSAUtil.addQuery(urlbase, Defines.URLQUERY_FLAG, "1") self.html_param['url_ranking'] = self.makeAppLinkUrl(url_ranking) self.html_param['url_myrank'] = self.makeAppLinkUrl(url_myrank) self.html_param['is_view_myrank'] = is_view_myrank self.html_param['player_rank_list'] = player_rank_list self.html_param[ 'cabaclub_management_info'] = self.get_cabaclub_management_info( self.getModelMgr(), v_player.id, OSAUtil.get_now()) self.writeAppHtml('cabaclub/rank')