Ejemplo n.º 1
0
def relation_status(user_Id):
	sql = " ".join(['SELECT f1.status AS status1,f2.status AS status2 FROM follow f1,follow f2',
				'WHERE f1.user_id = f2.followed_user AND f1.followed_user = f2.user_id'
				"AND f1.user_id = '%s'"%user_Id])
	follow = yield from Follow.unionSelect(sql)
	print (follow)
	return follow
Ejemplo n.º 2
0
def followedUser(request,*,page=1):
	if request.__user__ is not None:
		user_Id = request.__user__.id
		# sql = " ".join(['SELECT u.*,f.followed_user FROM follow f ',
		# 				'LEFT JOIN users u ON f.followed_user = u.id',
		# 				"WHERE f.user_id ='%s'"%user_Id,
		# 				"and f.status=1"])
		# follows = yield from Follow.unionSelect(sql)

		# sql = " ".join(['SELECT f1.status AS status1,f2.status AS status2 FROM follow f1,follow f2',
		# 		'WHERE f1.user_id = f2.followed_user AND f1.followed_user = f2.user_id',
		# 		"AND f1.user_id = '%s'"%user_Id])
		# follow_relation  = yield from Follow.unionSelect(sql)

		page_index = get_page_index(page)
		num = yield from Follow.findNumber('count(id)',"user_id=? and status=?",[user_Id,1])
		page = Page(num,page_index)

		newFollows = []

		sql = " ".join(['SELECT u.*,f1.user_id,f1.followed_user,f1.status AS status1,f2.status AS status2 FROM follow f1',
				'LEFT JOIN follow f2 ON f1.user_id = f2.followed_user AND f1.followed_user = f2.user_id',
				'LEFT JOIN users u ON f1.followed_user = u.id',
				"WHERE f1.user_id = '%s'"%user_Id,
				'LIMIT %s,%s'%(page.offset, page.limit)])

		follows = yield from Follow.unionSelect(sql)
		
		for index,follow in enumerate(follows):
			
			newFollow = {}
			newFollow['index']= index
			newFollow['user_id'] = follow.id
			newFollow['user_name'] = follow.name
			newFollow['avatar_url'] = follow.avatar

			sql2 = " ".join(['SELECT u.* FROM users u WHERE id IN(SELECT t1.followed_user FROM',
					'(SELECT  user_Id,followed_user FROM follow',
					"WHERE user_id = '%s'"%user_Id,
					')AS t1 INNER JOIN'
					'(SELECT  user_Id,followed_user FROM follow',
					"WHERE user_id = '%s'"%follow.followed_user,
					')AS t2',
					'ON t1.followed_user = t2.followed_user) AND u.`status` = 1'])

			followInfos = yield from Follow.unionSelect(sql2)

			if(len(followInfos) >0):
				newFollow['cf_count'] = len(followInfos)
				newFollow['cf_info'] = followInfos[0].name
				newFollow['followed_user'] = followInfos[0].id
			else:
				newFollow['cf_count'] = 0
				newFollow['cf_info'] = ''
				newFollow['followed_user'] = '******'

			if follow.status1 == '1' and follow.status2 == '1':
				relation_status = 2
				is_followed = True
				is_following = True
			elif follow.status1 == '0' and follow.status2 == '1':
				relation_status = 1
				is_followed = False
				is_following = True
			elif follow.status1 == '1' and (follow.status2 == '0' or follow.status2 == None):
				relation_status = 1
				is_followed = True
				is_following = False
			else:
				relation_status = 0
				is_followed = False
				is_following = False

			newFollow['is_followed'] = is_followed
			newFollow['is_following'] = is_following
			newFollow['relation_status'] = relation_status

			newFollows.append(newFollow)

		return {
			'__template__': 'user/follow.html',
			'page':page,
			'follows': newFollows
		}
		#return dict(data=newFollows)
	else:
		return web.HTTPFound('/signin')