Example #1
0
def quizz(request):	
	if request.is_ajax() and request.method=='GET':
		try:
			user_id = request.GET['user_id']
		except KeyError:
			return HttpResponse(dumps({'status':'ERR', 'data':'No user id'}, cls=MyEncoder), mimetype='application/json')
		
		try:
			user_m=UserModel.objects.get(user_id=user_id)
		except UserModel.DoesNotExist:
			x=User(user_id)
			x.fetchUser()
			user_m=x.saveDB()
	
		user_m.quizzvotemodel_set.all().delete();
		ref_list=[[x.pin1,x.pin2,True] for x in list(MatchModel.objects.all()[:5])]
		s=random.sample(list(PinModel.objects.all()),10)
		rand_list=[[s[i],s[i+1],False] for i in range(0,len(s),2)]
		match_list=fun.shuffle(ref_list+rand_list);	
		res = {'status':'OK', 'data':{'match_list':match_list,}, }
		return HttpResponse(dumps(res, cls=MyEncoder), mimetype='application/json')
	else:
		try:
			user_id = request.GET['user_id']
		except KeyError:
			return render_to_response('map/quizzform.html', {'fb_info':FB_INFO})
		return render_to_response('map/quizz.html', {'fb_info':FB_INFO,'user_id':user_id})
Example #2
0
def get_score(request):
	if request.is_ajax() and request.method == 'POST':
		try:
			user_id = request.POST['user_id']
			
		except KeyError:
			return HttpResponse(dumps({'status':'ERR', 'data':'No user_id in post param'}, cls=MyEncoder), mimetype='application/json')
		
		if re.search('[^a-zA-Z0-9_]',user_id):
			return HttpResponse(dumps({'status':'ERR', 'data':'Wrong name, nobody have this name on pinterest'}, cls=MyEncoder), mimetype='application/json')
		
		try:
			user = UserModel.objects.get(user_id=user_id)
			d = datetime.datetime.now()
			stat = user.userstatmodel_set.get(date__year=d.year, date__month=d.month, date__day=d.day)
		except (UserModel.DoesNotExist,UserStatModel.DoesNotExist):
			u = User(user_id)
			try:
				u.fetchUser()
				u.fetchScoring()
				user = u.saveDB()
			except NotFound:
				return HttpResponse(dumps({'status':'ERR', 'data':'Wrong name, nobody have this name on pinterest'}, cls=MyEncoder), mimetype='application/json')

		info_open_graph = []
		try:
			fb_id = request.POST['fb_id']
			if fb_id == 'null':
				raise KeyError
			fb_u = SocialUserModel.objects.get_or_create(social_id=fb_id, net_name="facebook")[0]
			d=datetime.datetime.now()
			info_open_graph.append({'fb_id':fb_id, 'action':'rate', 'obj':'person', 'obj_url':'http://'+request.get_host()+'/score?user='******'&date='+str(d.day)+'_'+str(d.month)+'_'+str(d.year)})
		except KeyError:
			pass
		
		stat_hist=user.userstatmodel_set.all().order_by('date')
		
		
		followers_hist=[]
		following_hist=[]
		pin_hist=[]
		liked_hist=[]
		board_hist=[]
		score_hist=[]
		repin_hist=[]
		comment_hist=[]
		like_hist=[]

		for s in stat_hist:
			epoch=time.mktime(s.date.timetuple())*1000
			followers_hist.append([epoch, s.nb_followers])
			following_hist.append([epoch, s.nb_following])
			pin_hist.append([epoch, s.nb_pin])
			liked_hist.append([epoch, s.nb_liked])
			board_hist.append([epoch, s.nb_board])
			score_hist.append([epoch, s.score()])
			repin_hist.append([epoch, s.nb_repin])
			comment_hist.append([epoch, s.nb_comment])
			like_hist.append([epoch, s.nb_like])
			
		all_hist={'followers_hist':followers_hist,
					'following_hist':following_hist,
					'pin_hist':pin_hist,
					'liked_hist':liked_hist,
					'board_hist':board_hist,
					'score_hist':score_hist,
					'repin_hist':repin_hist,
					'comment_hist':comment_hist,
					'like_hist':like_hist,
		}
		res = {'status':'OK', 'data':{'user':user, 
									'all_hist':all_hist,
									'info_open_graph':info_open_graph }, }
		return HttpResponse(dumps(res, cls=MyEncoder), mimetype='application/json')