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))
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)
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))
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
def _getJumpUrlSendFriendRequest(self, missionmaster): return UrlMaker.friendlist()
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)