コード例 #1
0
ファイル: base.py プロジェクト: hitandaway100/caba
 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)
コード例 #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
     
     # 現在の贈り物情報を確認.
     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)
コード例 #3
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

        # 現在の贈り物情報を確認.
        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'))