示例#1
0
 def putBanner(self):
     """バナー.
     """
     # イベント.
     eventbanners = BackendApi.get_eventbanners(self,
                                                using=settings.DB_READONLY)
     self.html_param['eventbanners'] = [
         Objects.eventbanner(self, banner) for banner in eventbanners
     ]
示例#2
0
    def process(self):
        model_mgr = self.getModelMgr()
        args = self.getUrlArgs('/teaser/')
        eventbanner_id = args.getInt(0)

        eventbanner = None
        if eventbanner_id:
            eventbanner = BackendApi.get_eventbanner(
                model_mgr, eventbanner_id, using=settings.DB_READONLY)

        if eventbanner is None or not eventbanner.has_teaser:
            # 表示できない.
            if settings_sub.IS_DEV:
                raise CabaretError(u'指定したイベントバナーにはティザーの設定がされていません',
                                   CabaretError.Code.NOT_DATA)
            self.redirectToTop()
            return

        self.html_param['evenbanner'] = Objects.eventbanner(self, eventbanner)

        self.writeAppHtml('teaser_info')
示例#3
0
    def setDefaultParam(self):
        # クライアントに渡す値のデフォルトを定義.
        BaseHandler.setDefaultParam(self)

        self.html_param['is_tutorial'] = False

        # 定数.
        self.html_param['GREET_GACHA_PT'] = Defines.GREET_GACHA_PT
        self.html_param[
            'GREET_COUNT_MAX_PER_DAY'] = Defines.GREET_COUNT_MAX_PER_DAY

        # デフォルトで埋め込んでおくUrl.
        pagelist = (
            'top',
            'mypage',
            'scout',
            'areamap',
            'battle',
            'gacha',
            'deck',
            'deck_raid',
            'infomation',
            'playerlog',
            'friendlog',
            'composition',
            'evolution',
            'album',
            'memories',
            'friendlist',
            'shop',
            'greetlog',
            'apitest',
            'present',
            'itemlist',
            'treasurelist',
            'friendsearch',
            'happening',
            'raidloglist',
            'trade',
            'support_paymentlist',
            'help',
            'warnpage',
            'invite',
            'myframe',
            'getstatus',
            'transfer',
            'config',
            'cabaclubtop',
            'raidevent_top',
        )
        for pagename in pagelist:
            self.html_param['url_%s' % pagename] = self.makeAppLinkUrl(
                getattr(UrlMaker, pagename)(), add_frompage=False)

        for pagename in ('cardbox', 'sell'):
            url = getattr(UrlMaker, pagename)()
            self.html_param['url_%s' % pagename] = self.makeAppLinkUrl(
                OSAUtil.addQuery(url, Defines.URLQUERY_PAGE, 0),
                add_frompage=False)

        gachatypes = list(set(Defines.GachaConsumeType.GTYPE_NAMES.values()))
        urlbase = UrlMaker.gacha()
        for gachatype in gachatypes:
            self.html_param['url_gacha_%s' % gachatype] = self.makeAppLinkUrl(
                OSAUtil.addQuery(urlbase, Defines.URLQUERY_GTYPE, gachatype))

        self.html_param['url_gacha_ctype_ticket'] = self.makeAppLinkUrl(
            OSAUtil.addQuery(urlbase, Defines.URLQUERY_CTYPE,
                             Defines.GachaConsumeType.GachaTopTopic.TICKET))

        urlbase = UrlMaker.friendlist()
        # 申請中一覧.
        self.html_param['url_friendlist_send'] = self.makeAppLinkUrl(
            OSAUtil.addQuery(urlbase, Defines.URLQUERY_STATE,
                             Defines.FriendState.SEND),
            add_frompage=False)
        # 承認待ち一覧.
        self.html_param['url_friendlist_receive'] = self.makeAppLinkUrl(
            OSAUtil.addQuery(urlbase, Defines.URLQUERY_STATE,
                             Defines.FriendState.RECEIVE),
            add_frompage=False)

        if self.is_pc:
            self.html_param['url_community'] = Defines.URL_COMUNITY_PC
        else:
            self.html_param['url_community'] = Defines.URL_COMUNITY_SP

        if self.osa_util.session:
            self.html_param[
                'cookie'] = 'session=%s; path=/;' % self.osa_util.session

        self.html_param['gold_name'] = Defines.ItemType.NAMES[
            Defines.ItemType.GOLD]
        self.html_param['gold_unit'] = Defines.ItemType.UNIT[
            Defines.ItemType.GOLD]
        self.html_param['gachapt_name'] = Defines.ItemType.NAMES[
            Defines.ItemType.GACHA_PT]
        self.html_param['rareover_ticket_name'] = Defines.ItemType.NAMES[
            Defines.ItemType.RAREOVERTICKET]
        self.html_param['tryluck_ticket_name'] = Defines.ItemType.NAMES[
            Defines.ItemType.TRYLUCKTICKET]
        self.html_param['memories_ticket_name'] = Defines.ItemType.NAMES[
            Defines.ItemType.MEMORIESTICKET]
        self.html_param['gacha_ticket_name'] = Defines.ItemType.NAMES[
            Defines.ItemType.GACHATICKET]

        if settings_sub.IS_DEV:
            self.html_param['url_template_test'] = self.makeAppLinkUrl(
                '/template_test/sp/top/top.html')
            self.html_param['url_template_test_old'] = self.makeAppLinkUrl(
                '/template_test/sp_old/top/top.html')
            self.html_param['url_html5_test'] = self.makeAppLinkUrl(
                '/html5_test/')
            self.html_param['url_cookie_test'] = self.makeAppLinkUrl(
                '/cookie_test/')
            self.html_param['url_promotion_debug'] = self.makeAppLinkUrl(
                '/promotiondebug/%s/' % PromotionSettings.Apps.CSC)

        self.html_param['is_admin_access'] = self.osa_util.is_admin_access
        self.html_param['is_dbg_user'] = self.osa_util.is_dbg_user

        self.html_param['is_new_session'] = self.osa_util.is_new_session

        url = '/session_set'
        url = OSAUtil.addQuery(url, OSAUtil.KEY_VIEWER_ID,
                               self.osa_util.viewer_id)
        url = OSAUtil.addQuery(url, OSAUtil.KEY_OWNER_ID,
                               self.osa_util.viewer_id)
        self.html_param['url_session_set'] = self.url_cgi + url

        if self.request.method == 'POST':
            url_self = self.url_cgi + UrlMaker.top()
        else:
            url_self = self.request.url
            for k in self.request.body.keys():
                if k.find('auth') != -1:
                    continue
                elif k in (OSAUtil.KEY_VIEWER_ID, OSAUtil.KEY_OWNER_ID,
                           OSAUtil.KEY_APP_ID):
                    continue
                url_self = OSAUtil.addQuery(url_self, k, self.request.body[k])
        self.html_param['url_session_callback'] = url_self

        self.html_param['url_session_error'] = self.makeAppLinkUrl(
            UrlMaker.session_error())

        self.html_param['is_pc'] = self.is_pc
        self.html_param['is_ios'] = self.osa_util.useragent.is_ios()
        self.html_param['is_android'] = self.osa_util.useragent.is_android()
        self.html_param['os_version'] = self.osa_util.useragent.version or '0'

        self.html_param['is_ie'] = self.osa_util.useragent.browser in (
            BrowserType.INTERNETEXPROLER, BrowserType.INTERNETEXPROLER_11_OVER)
        self.html_param[
            'is_safari'] = self.osa_util.useragent.browser == BrowserType.SAFARI
        self.html_param[
            'is_firefox'] = self.osa_util.useragent.browser == BrowserType.FIREFOX
        self.html_param[
            'is_chrome'] = self.osa_util.useragent.browser == BrowserType.CHROME
        self.html_param['is_windows'] = self.osa_util.useragent.is_windows

        self.html_param['cur_session'] = self.osa_util.session or ''

        menu_banner = BackendApi.get_menu_eventbanner(
            self, using=settings.DB_READONLY)
        self.html_param['menu_banner'] = Objects.eventbanner(
            self, menu_banner) if menu_banner else None

        self.html_param['Defines'] = Defines
        self.html_param['ItemUtil'] = ItemUtil
示例#4
0
 def process(self):
     eventbanners = BackendApi.get_eventbanners(self, using=settings.DB_READONLY)
     self.json_result_param['eventbanners'] = [Objects.eventbanner(self, banner) for banner in eventbanners]
     self.writeAppJson()
示例#5
0
    def process(self):
        args = self.getUrlArgs('/bossresult/')
        try:
            # エリア.
            areaid = int(args.get(0, None))
            self.setAreaID(areaid)
            battlekey = urllib.unquote(args.get(1))[:32]
            if not battlekey:
                raise
        except:
            raise CabaretError(u'引数が想定外です', CabaretError.Code.ILLEGAL_ARGS)

        model_mgr = self.getModelMgr()
        v_player = self.getViewerPlayer()
        uid = v_player.id

        using = settings.DB_READONLY

        # 結果.
        bossbattle = BackendApi.get_bossresult(model_mgr,
                                               uid,
                                               areaid,
                                               using=using)
        if bossbattle is None:
            if settings_sub.IS_LOCAL:
                raise CabaretError(u'結果が見つかりませんでした',
                                   CabaretError.Code.ILLEGAL_ARGS)
            self.callFunctionByFromPage('redirectToScoutTop')
            return

        animdata = bossbattle.anim

        is_win = animdata.winFlag
        b_hp = animdata.bossHpPost

        # ボス情報.
        boss = self.getBossMaster()
        self.html_param['boss'] = self.makeBossObj(boss, b_hp)

        # デッキのカード.
        self.putDeckInfoParams()

        area = self.getAreaMaster()
        self.html_param['area'] = self.makeAreaObj(area, playdata=None)

        if is_win:
            # エリアクリア報酬情報.
            prizeidlist = self.callFunctionByFromPage('getAreaPrize')
            prizelist = BackendApi.get_prizelist(model_mgr,
                                                 prizeidlist,
                                                 using=using)
            self.html_param['prize'] = BackendApi.make_prizeinfo(self,
                                                                 prizelist,
                                                                 using=using)

            # 次のエリアの情報.
            self.callFunctionByFromPage('putNextAreaInfo')

            self.writeAppHtml('boss/bosswin')
        else:
            # イベントバナー.
            eventbanners = BackendApi.get_eventbanners(
                self, using=settings.DB_READONLY)
            if eventbanners:
                self.html_param['eventbanners'] = [
                    Objects.eventbanner(self, banner)
                    for banner in eventbanners
                ]

            # 強化合成素材選択のページ.
            deck = self.getDeck()
            url = UrlMaker.compositionmaterial(deck.leader)
            self.html_param['url_composition_material'] = self.makeAppLinkUrl(
                url)

            self.writeAppHtml('boss/bosslose')
示例#6
0
文件: top.py 项目: hitandaway100/caba
    def process(self):

        # プレイヤー情報.
        v_player = self.getViewerPlayer()
        self.html_param['player'] = Objects.player(self, v_player)

        # ハプニング情報.
        self.putHappeningInfo()

        self.setFromPage(Defines.FromPages.HAPPENING)

        model_mgr = self.getModelMgr()
        cur_eventmaster = BackendApi.get_current_raideventmaster(
            model_mgr, using=settings.DB_READONLY)

        # 実行Url.
        happeningset = self.getHappening()
        eventid = HappeningUtil.get_raideventid(
            happeningset.happening.event) if happeningset else 0
        if happeningset and happeningset.happening.is_missed(
        ) and happeningset.happening.state != Defines.HappeningState.MISS:
            # 失敗した.
            if cur_eventmaster and cur_eventmaster.id == eventid:
                url = UrlMaker.raidresultanim(happeningset.id)
            else:
                self.writeHappeningMissed(happeningset.id)
                url = UrlMaker.happening()
            self.appRedirect(self.makeAppLinkUrl(url))
            return
        elif happeningset and not happeningset.happening.is_end():

            if happeningset.happening.is_cleared():
                # クリア済み.
                if cur_eventmaster and cur_eventmaster.id == eventid:
                    # イベントレイド.
                    url = UrlMaker.raidresultanim(happeningset.id)
                else:
                    url = UrlMaker.raidend(happeningset.id)
                self.appRedirect(self.makeAppLinkUrl(url, add_frompage=False))
                return
            elif eventid:
                if cur_eventmaster.id == eventid:
                    url = UrlMaker.raidevent_battlepre()
                    self.appRedirect(
                        self.makeAppLinkUrl(url, add_frompage=False))
                    return
                else:
                    # これはデバッグ中だけ起きる想定. ステータスは...メンテでいいかなぁ.
                    raise CabaretError(u'イベントの終了処理が終わっていません',
                                       CabaretError.Code.MAINTENANCE)
            else:
                # 救援要請.
                func_raidhelp_callback = self.putRaidHelpList(do_execute=False)

                raidboss = self.getRaidBoss()
                if raidboss:
                    # ダメージ履歴.
                    func_put_attacklog = self.putRaidAttackLog(raidboss)
                    # お助け.
                    func_put_playerlist = self.putHelpFriend(raidboss)

                    if func_raidhelp_callback or func_put_attacklog or func_put_playerlist:
                        self.execute_api()
                        if func_raidhelp_callback:
                            func_raidhelp_callback()
                        if func_put_attacklog:
                            func_put_attacklog()
                        if func_put_playerlist:
                            func_put_playerlist()

                    BackendApi.put_bprecover_uselead_info(self)

                    deckcardlist = self.getDeckCardList()
                    self.putDeckParams(deckcardlist)

                    url = UrlMaker.raiddo(raidboss.id, v_player.req_confirmkey)
                    htmlname = 'happening/bossappear'

                    self.html_param['url_exec_strong'] = self.makeAppLinkUrl(
                        OSAUtil.addQuery(url, Defines.URLQUERY_STRONG, 1))

                    self.html_param['url_deck_raid'] = self.makeAppLinkUrl(
                        UrlMaker.deck_raid())

                else:
                    if func_raidhelp_callback:
                        self.execute_api()
                        func_raidhelp_callback()
                    url = UrlMaker.happeningdo(v_player.req_confirmkey)
                    htmlname = 'happening/happening'
                self.html_param['url_exec'] = self.makeAppLinkUrl(url)
                self.html_param[
                    'url_happeningcancel_yesno'] = self.makeAppLinkUrl(
                        UrlMaker.happeningcancel_yesno())
        else:
            if cur_eventmaster is not None:
                # イベント.
                eventbanners = BackendApi.get_eventbanners(
                    self, using=settings.DB_READONLY)
                self.html_param['eventbanners'] = [
                    Objects.eventbanner(self, banner)
                    for banner in eventbanners
                ]

            # 救援要請.
            self.putRaidHelpList()
            htmlname = 'happening/happening_none'

        self.html_param['url_trade'] = self.makeAppLinkUrl(UrlMaker.trade(),
                                                           add_frompage=True)

        self.html_param['is_event_open'] = cur_eventmaster is not None

        self.writeAppHtml(htmlname)