예제 #1
0
	def update_recent_tag(tag,cnt,api):
		#最近のタグを取得
		recent_tag=RecentTag.get_or_insert(BbsConst.RECENT_TAG_KEY_NAME)
		
		#タグに対応するスレッドの数を更新
		#if(not recent_tag.tag_list):
		#	recent_tag.tag_list=[]
		#if(not recent_tag.score_list):
		#	recent_tag.score_list=[]
		#try:
		#	search_index=recent_tag.tag_list.index(tag)
		#except:
		#	search_index=-1

		#if(search_index!=-1):
		#	recent_tag.tag_list.pop(search_index)
		#	if(len(recent_tag.score_list)>search_index):
		#		recent_tag.score_list.pop(search_index)

		#if(cnt>0):
		#	recent_tag.tag_list.insert(0,tag)
		#	recent_tag.score_list.insert(0,str(cnt))
		
		#cnt=len(recent_tag.tag_list)
		#if(cnt>=100):
		#	recent_tag.tag_list.pop(cnt-1)
		#	recent_tag.score_list.pop(cnt-1)

		#recent_tag.put()

		#最近のタグリストの構築
		tag_list=SearchTag.get_recent_tag_core(recent_tag,api)
		return tag_list
예제 #2
0
파일: Ranking.py 프로젝트: abars/illustbook
	def get_tag_list(self,analytics):
		start_date=str(datetime.date.today()+datetime.timedelta(days=-7))
		end_date=str(datetime.date.today())
		result=analytics.get("tag","",start_date,end_date)
		if(len(result)<=0):	#Treat GA error
			return

		recent_tag=RecentTag.get_or_insert(BbsConst.RECENT_TAG_KEY_NAME)
		recent_tag.tag_list=[]
		recent_tag.score_list=[]
		
		rank={}
		for one in result:
			url=one["ga:pagePath"]
			data=url.split("=")
			count=int(one["ga:pageviews"])
			query=data[1]
			if(rank.has_key(query)):
				rank[query]=rank[query]+count
			else:
				rank[query]=count

		for k, v in sorted(rank.items(), key=lambda x:x[1], reverse=True):
			query=k
			search_found=SearchThread.get_count(query)
			recent_tag.tag_list.append(query)
			recent_tag.score_list.append(str(search_found))

		recent_tag.put()
		memcache.delete(BbsConst.RECENT_TAG_CACHE_HEADER)
예제 #3
0
	def get_recent_tag(api):
		data=memcache.get(BbsConst.RECENT_TAG_CACHE_HEADER)
		if(not data):
			recent_tag=None
			try:
				recent_tag=RecentTag.get_by_key_name(BbsConst.RECENT_TAG_KEY_NAME)
			except:
				recent_tag=None
			if(recent_tag==None):
				return None
			return SearchTag.get_recent_tag_core(recent_tag,api)
		return data