Ejemplo n.º 1
0
    def process(self):

        args = self.getUrlArgs('/lbtlanim/')
        mid = args.getInt(0)
        loginbonus = args.getInt(1)

        model_mgr = self.getModelMgr()
        now = OSAUtil.get_now()

        # プレイヤー情報.
        v_player = self.getViewerPlayer()
        if BackendApi.check_lead_loginbonustimelimited(model_mgr, v_player.id,
                                                       now):
            # まだ受け取っていない.
            if settings_sub.IS_LOCAL:
                raise CabaretError(u'まだ受け取っていない')
            url = self.makeAppLinkUrlRedirect(
                UrlMaker.loginbonustimelimiteddo())
            self.appRedirect(url)
            return

        logindata = BackendApi.get_logintimelimited_data(
            model_mgr, v_player.id, mid, using=settings.DB_READONLY)
        if logindata is None:
            url = self.makeAppLinkUrlRedirect(UrlMaker.mypage())
            self.appRedirect(url)
            return

        cur_day = logindata.days

        master = BackendApi.get_loginbonustimelimitedmaster(
            model_mgr, mid, using=settings.DB_READONLY)
        if master is None:
            url = self.makeAppLinkUrlRedirect(UrlMaker.mypage())
            self.appRedirect(url)
            return

        #取得したアイテム(名前,日数).
        cur_bonusmaster = BackendApi.get_loginbonustimelimiteddaysmaster(
            model_mgr, master.id, cur_day, using=settings.DB_READONLY)
        if not cur_bonusmaster:
            # 演出いらない.
            url = self.makeAppLinkUrlRedirect(UrlMaker.mypage())
            self.appRedirect(url)
            return

        str_midlist = self.request.get(Defines.URLQUERY_ID) or ''
        dataUrl = self.makeAppLinkUrlEffectParamGet(
            'loginbonustimelimited/%s/%s' % (mid, loginbonus))
        if str_midlist:
            dataUrl = OSAUtil.addQuery(dataUrl, Defines.URLQUERY_ID,
                                       str_midlist)

        self.appRedirectToEffect2('%s/effect2.html' % master.effectname,
                                  dataUrl)
Ejemplo n.º 2
0
    def process(self):
        model_mgr = self.getModelMgr()
        v_player = self.getViewerPlayer()
        uid = v_player.id

        args = self.getUrlArgs('/lbtlexplain/')
        mid = args.getInt(0)

        config = BackendApi.get_current_loginbonustimelimitedconfig(
            model_mgr, using=settings.DB_READONLY)

        master = None
        if not mid:
            data = config.getData()
            if data:
                mid = data['mid']
        if mid:
            master = BackendApi.get_loginbonustimelimitedmaster(
                model_mgr, mid, using=settings.DB_READONLY)

        datadict = dict(config.getDataList())
        config_data = datadict.get(mid)

        if master is None or config_data is None:
            self.appRedirect(self.makeAppLinkUrlRedirect(UrlMaker.mypage()))
            return

        now = OSAUtil.get_now()
        obj_longlogin = Objects.longloginbonus(config_data, 0, now)
        self.html_param['longloginbonus'] = obj_longlogin

        # 開催中か.
        is_open = obj_longlogin['is_open']
        if is_open:
            if BackendApi.check_lead_loginbonustimelimited(
                    model_mgr, uid, now):
                self.appRedirect(self.makeAppLinkUrlRedirect(
                    UrlMaker.mypage()))
                return

            # 現在のログイン日数.
            logindata = BackendApi.get_logintimelimited_data(
                model_mgr, uid, mid, using=settings.DB_READONLY)
            cur_day = logindata.days
            obj_longlogin['cur_day'] = cur_day

            table = BackendApi.get_loginbonustimelimiteddaysmaster_day_table_by_timelimitedmid(
                model_mgr, mid, using=settings.DB_READONLY)
            days = table.keys()
            days.sort()

            tmp_days = list(set(days + [cur_day]))
            tmp_days.sort()

            idx = tmp_days.index(cur_day)
            if not cur_day in days:
                idx -= 1

            # 直近の報酬.
            if 0 <= idx < len(days):
                daysmaster_id = table[days[idx]]
                daysmaster = BackendApi.get_loginbonustimelimiteddaysmaster_by_id(
                    model_mgr, daysmaster_id, using=settings.DB_READONLY)
                if daysmaster:
                    self.html_param[
                        'longloginbonus_daydata'] = Objects.longloginbonus_daydata(
                            daysmaster.day, self.getBonusItemList(daysmaster),
                            cur_day)

            # 次の報酬.
            idx += 1
            if 0 <= idx < len(days):
                daysmaster_id = table[days[idx]]
                daysmaster = BackendApi.get_loginbonustimelimiteddaysmaster_by_id(
                    model_mgr, daysmaster_id, using=settings.DB_READONLY)
                if daysmaster:
                    self.html_param[
                        'longloginbonus_daydata_next'] = Objects.longloginbonus_daydata(
                            daysmaster.day, self.getBonusItemList(daysmaster),
                            cur_day)

        self.writeAppHtml(master.htmlname)
Ejemplo n.º 3
0
    def process(self):
        self.setFromPage(None)
        
        model_mgr = self.getModelMgr()
        
        v_player = self.getViewerPlayer()
        if not BackendApi.check_loginbonus_received(v_player.getModel(PlayerLogin)):
            if not settings_sub.IS_BENCH:
                # ログインボーナスを受け取っていない.
                url = UrlMaker.loginbonus()
                self.appRedirect(self.makeAppLinkUrlRedirect(url))
                return
        elif BackendApi.check_lead_loginbonustimelimited(model_mgr, v_player.id):
            if not settings_sub.IS_BENCH:
                # ロングログインボーナスを受け取っていない.
                url = UrlMaker.loginbonustimelimiteddo()
                self.appRedirect(self.makeAppLinkUrlRedirect(url))
                return
        elif BackendApi.check_lead_loginbonus_sugoroku(model_mgr, v_player.id):
            if not settings_sub.IS_BENCH:
                # 双六ログインボーナスを受け取っていない.
                url = UrlMaker.loginbonussugorokudo()
                self.appRedirect(self.makeAppLinkUrlRedirect(url))
                return
        elif BackendApi.check_raidevent_lead_opening(model_mgr, v_player.id, using=settings.DB_READONLY):
            if not settings_sub.IS_BENCH and not (settings_sub.IS_LOCAL and self.request.get('_test')):
                # イベントOPを見ないといけない.
                url = UrlMaker.raidevent_opening()
                self.appRedirect(self.makeAppLinkUrlRedirect(url))
                return
        elif BackendApi.check_raidevent_lead_bigboss(model_mgr, v_player.id, using=settings.DB_READONLY):
            if not settings_sub.IS_BENCH and not (settings_sub.IS_LOCAL and self.request.get('_test')):
                # 大ボス演出を見ないといけない.
                url = UrlMaker.raidevent_bigboss()
                self.appRedirect(self.makeAppLinkUrlRedirect(url))
                return
        elif BackendApi.check_raidevent_lead_epilogue(model_mgr, v_player.id, using=settings.DB_READONLY):
            if not settings_sub.IS_BENCH and not (settings_sub.IS_LOCAL and self.request.get('_test')):
                # イベントEDを見ないといけない.
                url = UrlMaker.raidevent_epilogue()
                self.appRedirect(self.makeAppLinkUrlRedirect(url))
                return
        elif BackendApi.check_scoutevent_lead_opening(model_mgr, v_player.id, using=settings.DB_READONLY):
            if not settings_sub.IS_BENCH and not (settings_sub.IS_LOCAL and self.request.get('_test')):
                # イベントOPを見ないといけない.
                url = UrlMaker.scoutevent_opening()
                self.appRedirect(self.makeAppLinkUrlRedirect(url))
                return
        elif BackendApi.check_scoutevent_lead_epilogue(model_mgr, v_player.id, using=settings.DB_READONLY):
            if not settings_sub.IS_BENCH and not (settings_sub.IS_LOCAL and self.request.get('_test')):
                # イベントEDを見ないといけない.
                url = UrlMaker.scoutevent_epilogue()
                self.appRedirect(self.makeAppLinkUrlRedirect(url))
                return
        elif BackendApi.check_battleevent_lead_opening(model_mgr, v_player.id, using=settings.DB_READONLY):
            if not settings_sub.IS_BENCH and not (settings_sub.IS_LOCAL and self.request.get('_test')):
                # イベントOPを見ないといけない.
                url = UrlMaker.battleevent_opening()
                self.appRedirect(self.makeAppLinkUrlRedirect(url))
                return
        elif BackendApi.check_battleevent_lead_scenario(model_mgr, v_player.id, using=settings.DB_READONLY):
            if not settings_sub.IS_BENCH and not (settings_sub.IS_LOCAL and self.request.get('_test')):
                # 中押し演出を見ていない.
                url = UrlMaker.battleevent_scenario()
                self.appRedirect(self.makeAppLinkUrlRedirect(url))
                return False
        elif BackendApi.check_battleevent_lead_epilogue(model_mgr, v_player.id, using=settings.DB_READONLY):
            if not settings_sub.IS_BENCH and not (settings_sub.IS_LOCAL and self.request.get('_test')):
                # イベントエピローグを見ないといけない.
                url = UrlMaker.battleevent_epilogue()
                self.appRedirect(self.makeAppLinkUrlRedirect(url))
                return
        elif BackendApi.check_produceevent_lead_opening(model_mgr, v_player.id, using=settings.DB_READONLY):
            if not settings_sub.IS_BENCH and not (settings_sub.IS_LOCAL and self.request.get('_test')):
                # イベントOPを見ないといけない.
                url = UrlMaker.produceevent_opening()
                self.appRedirect(self.makeAppLinkUrlRedirect(url))
                return
        elif BackendApi.check_produceevent_lead_epilogue(model_mgr, v_player.id, using=settings.DB_READONLY):
            if not settings_sub.IS_BENCH and not (settings_sub.IS_LOCAL and self.request.get('_test')):
                # イベントEDを見ないといけない.
                url = UrlMaker.produceevent_epilogue()
                self.appRedirect(self.makeAppLinkUrlRedirect(url))
                return
        elif BackendApi.check_cabaclub_lead_resultanim(model_mgr, v_player.id, OSAUtil.get_now(), using=settings.DB_READONLY):
            if not settings_sub.IS_BENCH and not (settings_sub.IS_LOCAL and self.request.get('_test')):
                # 店舗結果演出へ.
                self.appRedirect(self.makeAppLinkUrlRedirect(UrlMaker.cabaclubresultanim(), add_frompage=False))
                return
        
        self.__news_num = 0
        
        self.checkPanelMission()
        if self.response.isEnd:
            return
        
        self.procRankingGacha()
        self.checkPresentEveryone()
        self.checkLevelUpBonus()
        self.putCardInfo()
        self.putFriendNum()
        self.putFriendRequestNum()
        self.putFreeGachaFlag()
        self.putPresentNum()
        self.putFriendLog()
        self.putFriendAcceptNum()
        self.putProduceInfo()
        self.putHappeningInfo()
        self.prepareRaidLog()
        self.putInfomations()
        self.putGreetLog()
        self.putBanner()
        self.putCabaClubInfo()
        self.putTitleInfo()
        self.putPlayerInfo()
        self.putRaidLog()
        
        self.checkPaymentRecord()
        
        self.tradeScoutGum()
        
        if self.is_active_dxp():
            self.check_offerwall(model_mgr, v_player)

        self.html_param['news_num'] = self.__news_num
        
        self.html_param['profile_tag'] = self.makeProfileTag(v_player.id)
        
        self.html_param['url_infospace'] = u'%s#infospace' % self.makeAppLinkUrl(UrlMaker.mypage())
        
        if self.is_active_dxp() and not self.is_pc:
            self.html_param['url_offerwall'] = DXPAPI(is_rel=self.is_rel).offerwall_url(self.app_id, v_player.dmmid)
            self.html_param['url_offerwallR18'] = DXPAPI(is_rel=self.is_rel,is_R18=True).offerwall_url(self.app_id, v_player.dmmid)
        print DXPAPI(is_rel=self.is_rel).offerwall_url(self.app_id, v_player.dmmid)
        print DXPAPI(is_rel=self.is_rel,is_R18=True).offerwall_url(self.app_id, v_player.dmmid)
        self.putPopupBanner()
        
        self.writeAppHtml('mypage')