本文整理汇总了Python中myapp.ApiObject.ApiObject.get_cached_object_list方法的典型用法代码示例。如果您正苦于以下问题:Python ApiObject.get_cached_object_list方法的具体用法?Python ApiObject.get_cached_object_list怎么用?Python ApiObject.get_cached_object_list使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类myapp.ApiObject.ApiObject
的用法示例。
在下文中一共展示了ApiObject.get_cached_object_list方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: _get_related
# 需要导入模块: from myapp.ApiObject import ApiObject [as 别名]
# 或者: from myapp.ApiObject.ApiObject import get_cached_object_list [as 别名]
def _get_related(bbs,thread,is_iphone,is_tablet):
related_illust_cnt=6
try:
thread_query=ShowThread._get_related_query(bbs,thread)
thread_query.filter('create_date > ',thread.create_date)
thread_query.order('create_date')
thread_after=thread_query.fetch(limit=related_illust_cnt)
except:
thread_after=[]
try:
thread_query=ShowThread._get_related_query(bbs,thread)
thread_query.filter('create_date < ',thread.create_date)
thread_query.order('-create_date')
thread_before=thread_query.fetch(limit=related_illust_cnt*2-len(thread_after))
except:
thread_before=[]
all_threads=[]
if(thread_after):
thread_after.reverse()
for after in thread_after:
all_threads.append(after)
for before in thread_before:
all_threads.append(before)
if(not is_iphone and not is_tablet):
while(len(all_threads)>related_illust_cnt+1):
no=int(random.random()*len(all_threads))
all_threads.remove(all_threads[no])
all_threads_cached=ApiObject.get_cached_object_list(all_threads)
return all_threads_cached
示例2: user_get_home_timeline
# 需要导入模块: from myapp.ApiObject import ApiObject [as 别名]
# 或者: from myapp.ApiObject.ApiObject import get_cached_object_list [as 别名]
def user_get_home_timeline(req,user_id):
#そのユーザのフォローしているユーザのタイムライン
bookmark=ApiObject.get_bookmark_of_user_id(user_id)
if(bookmark==None):
return []
feed_key_list=ApiObject.offset_and_limit(req,bookmark.stack_feed_list)
feed_list=ApiObject.get_cached_object_list(feed_key_list)
dic=ApiObject.create_feed_object_list(req,feed_list,feed_key_list)
return dic
示例3: user_get_bbs_list
# 需要导入模块: from myapp.ApiObject import ApiObject [as 别名]
# 或者: from myapp.ApiObject.ApiObject import get_cached_object_list [as 别名]
def user_get_bbs_list(req,user_id):
query=db.Query(Bbs,keys_only=True)
query=query.filter("user_id =",user_id).order("-create_date")
bbs_key_list=query.fetch(limit=1000,offset=0)
dic=[]
bbs_list=ApiObject.get_cached_object_list(bbs_key_list)
for bbs in bbs_list:
if(bbs.del_flag):
continue
one_dic=ApiObject.create_bbs_object(req,bbs)
if(not one_dic):
continue
dic.append(one_dic)
return dic;
示例4: _bookmark_get_bbs_list_core
# 需要导入模块: from myapp.ApiObject import ApiObject [as 别名]
# 或者: from myapp.ApiObject.ApiObject import get_cached_object_list [as 别名]
def _bookmark_get_bbs_list_core(req,user_id,mute):
bookmark=ApiObject.get_bookmark_of_user_id(user_id)
if(bookmark==None):
return []
dic=[]
if(mute):
bbs_key_list=bookmark.get_mute_bbs_list()
else:
bbs_key_list=bookmark.bbs_key_list
bbs_list=ApiObject.get_cached_object_list(bbs_key_list)
for bbs in bbs_list:
one_dic=ApiObject.create_bbs_object(req,bbs)
if(one_dic):
dic.append(one_dic)
ApiBookmark.add_removed_bbs_to_dic(req,dic,bbs_key_list)
return dic
示例5: feed_get_bbs_list
# 需要导入模块: from myapp.ApiObject import ApiObject [as 别名]
# 或者: from myapp.ApiObject.ApiObject import get_cached_object_list [as 别名]
def feed_get_bbs_list(req,order,offset,limit):
#最大取得数
if(limit>100):
limit=100
#キャッシュが有効かどうか
cache_enable=0
if(offset==0):
cache_enable=1
#キャッシュ取得
cache_id=BbsConst.OBJECT_CACHE_HEADER+BbsConst.OBJECT_BBS_RANKING_HEADER
if(cache_enable):
data=memcache.get(cache_id)
else:
data=None
if(data and cache_enable):
dic=[]
for bbs in data:
dic.append(ApiObject.create_bbs_object(req,bbs))
return dic
#BBS一覧取得
rank=Ranking.get_by_key_name(BbsConst.THREAD_RANKING_KEY_NAME)
if(rank==None):
rank=Ranking.get_or_insert(BbsConst.THREAD_RANKING_KEY_NAME)
bbs_list=rank.get_bbs_rank(offset,limit)
#リスト作成
bbs_list=ApiObject.get_cached_object_list(bbs_list)
#キャッシュに乗せる
if(cache_enable):
memcache.set(cache_id,bbs_list,BbsConst.TOPPAGE_FEED_CACHE_TIME)
#オブジェクト作成
dic=[]
for bbs in bbs_list:
dic.append(ApiObject.create_bbs_object(req,bbs))
return dic
示例6: get
# 需要导入模块: from myapp.ApiObject import ApiObject [as 别名]
# 或者: from myapp.ApiObject.ApiObject import get_cached_object_list [as 别名]
def get(self,bbs_key,thread_key):
SetUtf8.set()
#ホストチェック
if SpamCheck.is_deny(self.request):
self.response.set_status(401)
return
#英語版かどうか
is_english=CssDesign.is_english(self)
#BBSを取得
bbs_key=MappingId.mapping(bbs_key)
bbs=ApiObject.get_cached_object(bbs_key)
if(bbs == None):
Alert.alert_msg_notfound(self)
return
#BBSが削除されていた場合
if(bbs.del_flag) :
if(is_english):
Alert.alert_msg_with_write(self,"This bbs was deleted.")
else:
Alert.alert_msg_with_write(self,"このBBSは削除されました。")
return
#ページ番号を取得
col_num = 10
page = 1
if self.request.get("page"):
page = int(self.request.get("page"))
if page < 1:
page=1
#メンテナンス画面
is_maintenance=0
if(MaintenanceCheck.is_appengine_maintenance()):
is_maintenance=1
#オーダー取得
order="update"
if(bbs.default_comment_order==1):
order="new"
if self.request.get("order"):
order=self.request.get("order")
#スレッド取得
thread=ShowThread.get_thread(bbs,thread_key)
if(thread == None):
Alert.alert_msg_notfound(self)
return
#コメント数を更新
if(bbs.page_comment_n):
col_num=bbs.page_comment_n
if(self.request.get("limit")):
col_num=int(self.request.get("limit"))
#コメントの一覧を取得
query=ShowThread.get_comment_query(thread,order)
entry_num = query.count()
if(entry_num==0):
com_list_ = []
else:
com_list_ = query.fetch(limit=col_num, offset=(page-1)*col_num)
#検索
search=""
if(self.request.get("search")):
search=self.request.get("search")
query=""+search+' thread_key:"'+str(thread.key())+'"'
com_list_=SearchThread.search(query,page,col_num,BbsConst.SEARCH_ENTRY_INDEX_NAME)
#実体への変換
com_list_=ApiObject.get_cached_object_list(com_list_)
#現在のスレッドへのURLを取得
host_url=MappingId.mapping_host_with_scheme(self.request)+"/"
#編集モードか
user = users.get_current_user()
edit_flag = 0
if(not OwnerCheck.check(bbs,user)):
edit_flag = 1
logined=0
if(user):
logined=1
owner=user
if(OwnerCheck.check(bbs,user)):
owner=None
admin_user=OwnerCheck.is_admin(user)
#ページリンクを作成
page_url_base = MappingId.get_usr_url(host_url,bbs)+thread_key+'.html?page='
page_list=ShowThread.create_page_list(page,entry_num,col_num)
#掲示板のデザインを取得
#.........这里部分代码省略.........
示例7: get
# 需要导入模块: from myapp.ApiObject import ApiObject [as 别名]
# 或者: from myapp.ApiObject.ApiObject import get_cached_object_list [as 别名]
#.........这里部分代码省略.........
#ログインユーザを取得
user = users.get_current_user()
logined=0
if(user):
logined=1
owner=user
if(OwnerCheck.check(bbs,user)):
owner=None
#サイドバーコメントを取得
side_comment=RecentCommentCache.get_entry(bbs)
side_thread=RecentCommentCache.get_thread(bbs)
#カテゴリ一覧を取得
category_list=None
if(bbs.category_list):
if(bbs.category_list!=""):
category_list=CategoryList.get_category_list(bbs) #bbs.category_list.split(",")
#ページデザインを取得
css_key=self.request.get("css_key")
design=CssDesign.get_design_object(self,bbs,host_url,0)
#サイドバー一覧を作成
sidebar_list=ShowBbs.get_sidebar(bbs,category_list,side_comment,side_thread)
#新規スレッドを作成できるか
can_create_thread=ShowBbs.get_can_create_thread(bbs,user,logined)
can_create_new_image=ShowBbs.get_can_create_new_image(bbs,owner)
#スレッドを全て取得
all_threads_cached=ApiObject.get_cached_object_list(all_threads)
#コメントフォームを表示するか
show_comment_form=1
if(bbs.comment_login_require and not(owner)):
show_comment_form=0
#フルコメントデバッグ
if(self.request.get("full_comment")):
bbs.enable_full_comment=1
#フルフラット表示をデフォルト化
if(bbs.bbs_mode==BbsConst.BBS_MODE_NO_IMAGE):
bbs.enable_full_flat=0
bbs.enable_full_comment=0
else:
bbs.enable_full_flat=1
#bbs.enable_full_comment=1 #デフォルト化を止める
#コメントを全て取得
#user_name=""
user_name=ShowEntry.get_user_name(user)
if(bbs.enable_full_comment):
admin_user=OwnerCheck.is_admin(user)
ShowEntry.render_comment_list(self,all_threads_cached,host_url,bbs,show_comment_form,logined,admin_user,user_name,user)
#デザインの編集ができるか
can_edit_design=False
is_admin=OwnerCheck.is_admin(user)
if(owner or (is_admin and bbs.bbs_mode==BbsConst.BBS_MODE_EVERYONE)):
can_edit_design=True
#infinite_scrollを使用するかどうか
示例8: _get_entry_core
# 需要导入模块: from myapp.ApiObject import ApiObject [as 别名]
# 或者: from myapp.ApiObject.ApiObject import get_cached_object_list [as 别名]
def _get_entry_core(bbs,display_n,key):
#コメントを取得
entry_query = db.Query(Entry,keys_only=True)
entry_query.order("-date");
entry_query.filter("del_flag =",BbsConst.ENTRY_EXIST)
entry_query.filter('bbs_key =', bbs)
entry_key_list=entry_query.fetch(display_n)
entry_list=ApiObject.get_cached_object_list(entry_key_list)
#コメントに紐付いたスレッドを取得
thread_key_list=[]
for entry in entry_list:
thread_key=Entry.thread_key.get_value_for_datastore(entry)
thread_key_list.append(thread_key)
thread_list=ApiObject.get_cached_object_hash(thread_key_list)
#コメントに紐付いたレスを取得
res_key_list=[]
res_to_entry={}
for entry in entry_list:
entry_key=entry.key()
res_n=len(entry.res_list)
for i in range(0,display_n):
no=res_n-1-i
if(no>=0):
res_key=entry.res_list[no]
res_to_entry[res_key]=entry
res_key_list.append(res_key)
res_list=ApiObject.get_cached_object_list(res_key_list)
#EntryとResでソートをかける
sort_list=[]
for entry in entry_list:
if(entry.create_date):
obj=(entry,entry.create_date,entry.editor)
sort_list.append(obj)
for res in res_list:
if(res.date):
obj=(res_to_entry[res.key()],res.date,res.editor)
sort_list.append(obj)
sort_list=sorted(sort_list, key=lambda temp: temp[1], reverse=True)
sort_list=sort_list[:display_n]
#出力する
entry_array=[]
for tp in sort_list:
#ソートした値を取得
entry=tp[0];
editor=tp[2];
#コメントのURLを計算するためにスレッドを取得
try:
thread_key=Entry.thread_key.get_value_for_datastore(entry)
except:
continue
thread=thread_list[thread_key]
if(not thread):
continue
thread_title=thread.title
#URLに使用するキーを決定
if(thread.short):
thread_short=thread.short
else:
thread_short=thread_key
#表示
mee={'short': str(bbs.short),
'bbs_key' : str(bbs.key()),
'thread_key':thread_short,
'entry_key': str(entry.key()),
'thread_title':thread_title,
'editor':editor,
'date':entry.date}
entry_array.append(mee)
memcache.add(key, entry_array, BbsConst.SIDEBAR_RECENT_ENTRY_CACHE_TIME)
return entry_array