예제 #1
0
 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)
예제 #2
0
    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

        view_result = self.request.get(Defines.URLQUERY_FLAG) == '1'

        # 現在の贈り物情報を確認.
        presentdata = BackendApi.get_battleeventpresent_pointdata(
            model_mgr,
            uid,
            cur_eventmaster.id,
            using=(settings.DB_DEFAULT
                   if view_result else settings.DB_READONLY))
        if presentdata is None:
            raise CabaretError(u'このイベントでは閲覧できません')

        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

        # 結果表示フラグ.
        if view_result and presentdata.precontent:
            contentmaster = BackendApi.get_battleeventpresent_content_master(
                model_mgr, presentdata.precontent, using=settings.DB_READONLY)
            prizelist = BackendApi.get_prizelist(model_mgr,
                                                 contentmaster.prizes,
                                                 using=settings.DB_READONLY)
            self.html_param['prize'] = BackendApi.make_prizeinfo(
                self, prizelist, using=settings.DB_READONLY)

        # 現在の贈り物情報.
        self.html_param['battleeventpresent'] = Objects.battleevent_present(
            self, presentmaster, presentdata)

        # イベント情報.
        self.html_param['battleevent'] = Objects.battleevent(
            self, cur_eventmaster, now)

        # 対戦相手一覧のリンク.
        url = UrlMaker.battleevent_opplist()
        self.html_param['url_battleevent_opplist'] = self.makeAppLinkUrl(url)

        # 報酬一覧のリンク.
        url = UrlMaker.battleevent_presentlist()
        self.html_param['url_battleevent_presentlist'] = self.makeAppLinkUrl(
            url)

        # HTML書き出し.
        self.writeAppHtml(
            '%s/present' %
            ('gcevent' if cur_eventmaster.is_goukon else 'btevent'))