Exemplo n.º 1
0
 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
Exemplo n.º 2
0
    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')
Exemplo n.º 3
0
 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
Exemplo n.º 4
0
 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