예제 #1
0
def get_limit_answers(q_id,start=0,end=0):
	answers = Answer.objects.filter(q_id=q_id)[start:end]
	data=[]
	if answers:
		for i in range(0,answers.count()):
			try:
				one={}
				sql = "select dig_status from answer_dig a where a.a_id=%d and a.user_id=%d"%(answers[i].id,answers[i].user_id)
				dig_data=execute_sql(sql)
				if dig_data:
					one['dig_status']=dig_data[0][0]

				sql = "select count(*) from answer_dig a where a.a_id=%d and dig_status=1 "%(answers[0].id)
				agree_count = execute_sql(sql)
				one['agree_count']=agree_count[0][0]


				sql = "select count(*) from answer_dig a where a.a_id=%d and dig_status=-1 "%(answers[0].id)
				oppose_count = execute_sql(sql)
				one['oppose_count']=oppose_count[0][0]

				sql = "select u.id,u.nickname,IFNULL(u.url,u.id),u.role from answer_dig a,user u where a.a_id=%d and dig_status=1 and a.user_id=u.id "%(answers[i].id)	
				dig_user = execute_sql(sql)
				if dig_user:
					one['dig_user']=dig_user
				one['answer']=answers[i]
				one['user'] = User.objects.filter(id=answers[i].user_id).values('id','nickname','role','head','url')[0]
				data.append(one)		
			except IndexError:
				pass

	return data
예제 #2
0
def get_certain_answer(id):
	answers = Answer.objects.filter(id=id)
	data={}
	if answers:
		try:
			one={}
			sql = "select dig_status from answer_dig a where a.a_id=%d and a.user_id=%d"%(answers[0].id,answers[0].user_id)
			dig_data=execute_sql(sql)
			if dig_data:
				one['dig_status']=dig_data[0][0]

			sql = "select count(*) from answer_dig a where a.a_id=%d and dig_status=1 "%(answers[0].id)
			agree_count = execute_sql(sql)
			one['agree_count']=agree_count[0][0]


			sql = "select count(*) from answer_dig a where a.a_id=%d and dig_status=-1 "%(answers[0].id)
			oppose_count = execute_sql(sql)
			one['oppose_count']=oppose_count[0][0]



			sql = "select u.id,u.nickname,IFNULL(u.url,u.id),u.role from answer_dig a,user u where a.a_id=%d and dig_status=1 and a.user_id=u.id "%(answers[0].id)	
			dig_user = execute_sql(sql)

			if dig_user:
				one['dig_user']=dig_user
			one['answer']=answers[0]
			one['user'] = User.objects.filter(id=answers[0].user_id).values('id','nickname','role','head','url')[0]
			data = one
		except IndexError, e:
			pass
예제 #3
0
def count_post(id):
	sql = "select count(*) from answer_dig a where a.a_id=%d and dig_status=1 "%(id)
	agree_count = execute_sql(sql)
	agree_count=agree_count[0][0]


	sql = "select count(*) from answer_dig a where a.a_id=%d and dig_status=-1 "%(id)
	oppose_count = execute_sql(sql)
	oppose_count=oppose_count[0][0]

	return str(agree_count),str(oppose_count)
예제 #4
0
def nofollow(request, id=None):
    u = request.session["user"]
    if id and id.isdigit():
        id = int(id)
        sql = "select * from follow where user_id=%d and follow_id=%d" % (id, u.id)
        result = execute_sql(sql)
        if result:
            sql = "update follow f set f.type = 0 where user_id=%d and follow_id=%d" % (id, u.id)
            execute_sql(sql, operation="update")
        else:
            sql = "insert into follow values(%d,%d,0)" % (id, u.id)
            execute_sql(sql, operation="insert")
        return HttpResponse()
    else:
        raise Http404()
예제 #5
0
def check_user_follow(user_id, follow_id):
    sql = "select * from follow where user_id=%d and follow_id=%d and type=1 " % (user_id, follow_id)
    result = execute_sql(sql)
    if result:
        return True
    else:
        return False
예제 #6
0
def get_i_college_question_count(user_id):
	us = UserSchool.objects.get(id=user_id)
	if us.college:
		sql=" select count(*) from user_school as us,question as a where us.college = "+str(us.college)+" and a.user_id = us.id"
		result = execute_sql(sql)
		if result:
			return result[0][0]
		else:
			return 0
예제 #7
0
def get_limit_answered_questions(user_id,start=None,end=None):
	if start>=0 and end>=start:
		sql = """
		select q.id,q.user_id,q.question,a.id,a.answer,a.create_time 
		from answer as a ,question as q 
		where a.user_id=%d and a.q_id=q.id 
		ORDER BY a.create_time desc limit %d,%d
		""" % (user_id,start,end)
		answered_questions = execute_sql(sql)

	return answered_questions
예제 #8
0
def get_user_follower(user_id):
    sql = "select follow_id from follow as f where f.user_id=%d and type=1" % (user_id)

    result = execute_sql(sql)
    data = []
    try:
        for follow_id in result:
            id = follow_id[0]
            user = User.objects.get(id=id)
            data.append(user)
        return data
    except Exception, e:
        return None
예제 #9
0
def post(user_id,a_id,action='agree'):
	try:
		a = Answer.objects.get(id=a_id)
		if action=='agree':
			if AnswerDig.objects.filter(user_id=user_id,a_id=a_id):
				sql = "update answer_dig a set a.dig_status=1 where a.a_id=%d and a.user_id=%d"%(a_id,user_id)
				execute_sql(sql,operation='update')
			else:
				sql = "insert into answer_dig(a_id,user_id,dig_status)values(%d,%d,%d)"%(a_id,user_id,1)
				execute_sql(sql,operation='insert')

		else:
			if AnswerDig.objects.filter(user_id=user_id,a_id=a_id):
				sql = "update answer_dig a set a.dig_status=-1 where a.a_id=%d and a.user_id=%d"%(a_id,user_id)
				execute_sql(sql,operation='update')
			else:
				sql = "insert into answer_dig(a_id,user_id,dig_status)values(%d,%d,%d)"%(a_id,user_id,-1)
				execute_sql(sql,operation='insert')

		return True
	except Exception, e:
		return False
예제 #10
0
def get_i_college_limit_questions(user_id,start,end):
	us = UserSchool.objects.get(id=user_id)
	data=[]
	if us.college:
		sql = "select a.id,a.user_id,a.question,a.create_time,a.answer_count,a.tag,a.subject from user_school us,question a where us.college="+str(us.college)+" and us.id = a.user_id order by create_time desc,answer_count desc limit "+str(start)+","+str(end)+""
		results=execute_sql(sql)
		for a in results:
			id,user_id,question,create_time,answer_count,tag,subject=a
			q={}
			q['id']=id
			q['user_id']=user_id
			q['topic']=question
			q['comment_count']=answer_count
			q['create_time']=create_time
			q['question']=question
			one={}
			one['s']=get_c_subjects(subject)
			one['t']=get_c_tags(tag)
			one['q']=q
			one['u']=User.objects.get(id=user_id)
			data.append(one)

	return data