Пример #1
0
def getInfoPost(id, related, cursor):
	id = int(id)

	query = '''select threadId, userEmail, parent, datePost, message, 
					isEdited, isDeleted, isSpam, isHighlighted, isApproved,
					forumShortName, likes, dislikes, likes - dislikes
				from Post
				where postId = %s limit 1 ;
			''' % (id) 

	cursor.execute(query)
	rowPost = cursor.fetchone()

	isEdited = True if rowPost[5] == 1 else False
	isDeleted = True if rowPost[6] == 1 else False
	isSpam = True if rowPost[7] == 1 else False
	isHighlighted = True if rowPost[8] == 1 else False
	isApproved = True if rowPost[9] == 1 else False

	userEmail = rowPost[1]
	threadId = rowPost[0]
	forumShortName = rowPost[10]

	d = { "date": datetime.strftime(rowPost[3], '%Y-%m-%d %H:%M:%S'),
			"dislikes": rowPost[12],
			"likes": rowPost[11],
			"points": rowPost[13],
	        "forum": forumShortName,
	        "id": id,
	        "isEdited": isEdited,
	        "isDeleted": isDeleted,
	        "isSpam": isSpam,
	        "isHighlighted": isHighlighted,
	        "isApproved": isApproved,
	        "message": rowPost[4],
	        "parent": rowPost[2],
	        "thread": threadId,
	        "user": userEmail
		}


	if 'user' in related:
		from views.User import getInfoUser
		d.update({'user': getInfoUser(userEmail, ['followers', 'following', 'subscriptions'], cursor)})	
		del getInfoUser
	
	if 'forum' in related:
		d.update({'forum': getInfoForum(forumShortName, [], cursor)})
	
	if 'thread' in related:
		d.update({'thread': getInfoThread(threadId, [], cursor)})	

	return d
Пример #2
0
def listThreadsForum(request):
	cursor = connection.cursor()

	#обязательные GET
	shortName = request.GET['forum']	

	#опциональные GET
	limit = request.GET.get('limit', None)
	orderDate = request.GET.get('order', 'desc')
	since = request.GET.get('since', None)
	related = request.GET.getlist('related', [])

	query = '''select threadId
				from Thread
				where forumShortName = '%s' ''' % (shortName) 

	if since is not None:
		query += " and date >= '%s' " % (since)

	query += " order by date %s " % (orderDate)

	if limit is not None:
		query += " limit %s " % (limit)
		
	try:
		#выдаст исключение, если такого  нет
		# getInfoForumTest(shortName, [], cursor);

		cursor.execute(query)
		rowsThread = cursor.fetchall()

		

		d = [];
		for row in rowsThread:
			from views.Thread import getInfoThread
			d.append(getInfoThread(row[0], related, cursor))
			del getInfoThread

		code = 0
		responseMessage = d
	except:
		code = 1
		responseMessage = "Forum not found"

	response = { "code": code, "response": responseMessage}
	return JsonResponse(response)