コード例 #1
0
 def redirectWithError(err_code):
     fromname = self.getFromPageName()
     url = UrlMaker.friendlist()
     url = OSAUtil.addQuery(url, Defines.URLQUERY_ERROR, err_code)
     if fromname == Defines.FromPages.FRIENDREQUEST:
         url = OSAUtil.addQuery(url, Defines.URLQUERY_STATE,
                                Defines.FriendState.SEND)
     elif fromname == Defines.FromPages.FRIENDRECEIVE:
         url = OSAUtil.addQuery(url, Defines.URLQUERY_STATE,
                                Defines.FriendState.RECEIVE)
     self.appRedirect(self.makeAppLinkUrlRedirect(url))
コード例 #2
0
 def putFriendRequestNum(self):
     """フレンド申請件数.
     """
     model_mgr = self.getModelMgr()
     v_player = self.getViewerPlayer()
     num = BackendApi.get_friendrequest_receive_num(v_player.id, model_mgr, using=settings.DB_READONLY)
     self.html_param['friendrequest_num'] = num
     if 0 < num:
         self.__news_num += 1
     url = OSAUtil.addQuery(UrlMaker.friendlist(), Defines.URLQUERY_STATE, Defines.FriendState.RECEIVE)
     self.html_param['url_friendrequest_receive'] = self.makeAppLinkUrl(url)
コード例 #3
0
    def procDo(self, v_player, args):
        """申請書き込み.
        """
        try:
            # 相手のID.
            strfidlist = self.request.get(Defines.URLQUERY_USERID)
            fidlist = list(set([int(fid) for fid in strfidlist.split(',')]))
            if Defines.FRIEND_PAGE_CONTENT_NUM < len(fidlist):
                # これは不正でしょう.
                raise CabaretError()
        except:
            raise CabaretError(u'送信できないプレイヤーです',
                               CabaretError.Code.ILLEGAL_ARGS)

        o_playerlist = BackendApi.get_players(self,
                                              fidlist, [PlayerFriend],
                                              using=settings.DB_READONLY)
        if len(o_playerlist) == 0:
            if settings_sub.IS_LOCAL:
                raise CabaretError(u'見つかりませんでした', CabaretError.Code.NOT_DATA)
            else:
                fromname = self.getFromPageName()
                url = UrlMaker.friendlist()
                url = OSAUtil.addQuery(url, Defines.URLQUERY_ERROR,
                                       CabaretError.Code.NOT_DATA)
                if fromname == Defines.FromPages.FRIENDREQUEST:
                    url = OSAUtil.addQuery(url, Defines.URLQUERY_STATE,
                                           Defines.FriendState.SEND)
                elif fromname == Defines.FromPages.FRIENDRECEIVE:
                    url = OSAUtil.addQuery(url, Defines.URLQUERY_STATE,
                                           Defines.FriendState.RECEIVE)
                self.appRedirect(self.makeAppLinkUrlRedirect(url))
                return

        try:
            db_util.run_in_transaction(Handler.tr_write, v_player,
                                       o_playerlist)
        except:
            BackendApi.delete_friendidlistset(v_player.id)
            raise

        # リダイレクト.
        url = UrlMaker.friendrequest_complete()
        url = OSAUtil.addQuery(
            url, Defines.URLQUERY_USERID,
            ','.join([str(o_player.id) for o_player in o_playerlist]))
        self.appRedirect(self.makeAppLinkUrlRedirect(url))
コード例 #4
0
ファイル: apphandler.py プロジェクト: hitandaway100/caba
    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
コード例 #5
0
ファイル: mission.py プロジェクト: hitandaway100/caba
 def _getJumpUrlSendFriendRequest(self, missionmaster):
     return UrlMaker.friendlist()
コード例 #6
0
ファイル: friendlist.py プロジェクト: hitandaway100/caba
    def process(self):

        page = 0
        try:
            # 仲間 or 申請中 or 承認待ち.
            state = int(
                self.request.get(Defines.URLQUERY_STATE)
                or Defines.FriendState.ACCEPT)
            if not Defines.FriendState.NAMES.has_key(state):
                raise
            # ページ.
            page = int(self.request.get(Defines.URLQUERY_PAGE) or 0)
            er_code = int(self.request.get(Defines.URLQUERY_ERROR) or 0)
        except:
            raise CabaretError(u'引数が想定外です', CabaretError.Code.ILLEGAL_ARGS)

        v_player = self.getViewerPlayer()
        model_mgr = self.getModelMgr()
        using = settings.DB_READONLY

        # プレイヤー情報.
        persons = BackendApi.get_dmmplayers(self, [v_player],
                                            using=settings.DB_READONLY,
                                            do_execute=False)

        self.putFriendNum()

        # プレイヤーリスト.
        offset = page * Defines.FRIEND_PAGE_CONTENT_NUM
        limit = Defines.BOX_PAGE_CONTENT_NUM + 1

        do_set_greet = False
        if state == Defines.FriendState.ACCEPT:
            playeridlist = BackendApi.get_friend_idlist(
                v_player.id, offset, limit, model_mgr, using)
            num_max = BackendApi.get_friend_num(v_player.id, model_mgr, using)
            htmlname = 'friend/friend'
            self.setFromPage(Defines.FromPages.FRIENDLIST)
            do_set_greet = True
        elif state == Defines.FriendState.SEND:
            playeridlist = BackendApi.get_friendrequest_send_idlist(
                v_player.id, offset, limit, model_mgr, using)
            num_max = BackendApi.get_friendrequest_send_num(
                v_player.id, model_mgr, using)
            htmlname = 'friend/requestlist'
            self.setFromPage(Defines.FromPages.FRIENDREQUEST)
        elif state == Defines.FriendState.RECEIVE:
            playeridlist = BackendApi.get_friendrequest_receive_idlist(
                v_player.id, offset, limit, model_mgr, using)
            num_max = BackendApi.get_friendrequest_receive_num(
                v_player.id, model_mgr, using)
            htmlname = 'friend/receivelist'
            self.setFromPage(Defines.FromPages.FRIENDRECEIVE)
        else:
            raise CabaretError(u'未実装です')

        playerlist = []
        has_next = False
        if playeridlist:
            if Defines.FRIEND_PAGE_CONTENT_NUM < len(playeridlist):
                has_next = True
                playeridlist = playeridlist[:Defines.FRIEND_PAGE_CONTENT_NUM]
            playerlist = self.getObjPlayerList(playeridlist,
                                               do_set_greet=do_set_greet)
        if not playerlist:
            self.execute_api()

        self.html_param['playerlist'] = playerlist

        #次のページのURL.
        urlbase = OSAUtil.addQuery(UrlMaker.friendlist(),
                                   Defines.URLQUERY_STATE, state)
        if has_next:
            self.html_param['url_page_next'] = self.makeAppLinkUrl(
                OSAUtil.addQuery(urlbase, Defines.URLQUERY_PAGE, page + 1))

        #前のページのURL.
        if 0 < page:
            self.html_param['url_page_prev'] = self.makeAppLinkUrl(
                OSAUtil.addQuery(urlbase, Defines.URLQUERY_PAGE, page - 1))

        self.html_param['cur_page'] = page + 1
        self.html_param['page_max'] = max(
            1,
            int((num_max + Defines.FRIEND_PAGE_CONTENT_NUM - 1) /
                Defines.FRIEND_PAGE_CONTENT_NUM))
        self.html_param['cur_topic'] = Defines.FriendState.TOPICS[state]

        # タブ切り替えURL.
        url = UrlMaker.friendlist()
        self.html_param['url_friendlist'] = self.makeAppLinkUrl(
            OSAUtil.addQuery(url, Defines.URLQUERY_STATE,
                             Defines.FriendState.ACCEPT))
        self.html_param['url_requestlist'] = self.makeAppLinkUrl(
            OSAUtil.addQuery(url, Defines.URLQUERY_STATE,
                             Defines.FriendState.SEND))
        self.html_param['url_receivelist'] = self.makeAppLinkUrl(
            OSAUtil.addQuery(url, Defines.URLQUERY_STATE,
                             Defines.FriendState.RECEIVE))

        self.html_param['player'] = Objects.player(self, v_player,
                                                   persons.get(v_player.dmmid))

        self.html_param[
            'error_overlimit'] = er_code == CabaretError.Code.OVER_LIMIT
        self.html_param['error_nodata'] = er_code == CabaretError.Code.NOT_DATA

        #仲間申請相手検索へのURL.
        url = UrlMaker.friendsearch()
        self.html_param['url_friendsearch'] = self.makeAppLinkUrl(url)

        #おまかせ申請へのURL
        url = UrlMaker.friendrequest_auto()
        self.html_param['url_friendrequest_auto'] = self.makeAppLinkUrl(url)

        self.writeAppHtml(htmlname)