def handlefbrequestcallback(request): fp = open( 'tmp.3.log', 'w' ) print >> fp, request request_str = ( request.GET.get('request') ) request_to = ( request.GET.get('to') ) #request_from = ( request.GET.get('from') ) request_id = ( request.GET.get('id') ) request_from = request.session['fb_id'] #if request_to: # request_to = int(request_to.encode('ascii')) #if request_from: # request_from = int(request_from.encode('ascii')) #if request_id: # request_id = int(request_id.encode('ascii')) print >> fp, "request id", request_id print >> fp, "request string", request_str print >> fp, "request to", request_to print >> fp, "request from", request_from print >> fp, "request fb id", request.session['fb_id'] try: m_to = Member.objects.get(fb_id=request_to) except: # need to make member m_to = Member(fb_id=request_to) try: m_from = Member.objects.get(fb_id=request_from) except: # need to make member m_from = Member(fb_id=request_from) # name is set gamename = "%s_%s_%s" % ( request_from, request_to, time.asctime(time.gmtime()) ) r = Room(name=gamename) r.fb_request_id = request_id r.save() g = Game(room=r) # game name and room name duplicated g.name = gamename g.save() p = Player(game=g,turn=0) p.member = m_from p.save() # TODO assumes two player game - generalize p = Player(game=g,turn=1) p.member = m_to p.save() #return HttpResponseRedirect('requestpage.html') return HttpResponseRedirect( reverse('lupalo.views.lupalo') ) # Redirect after POST
def loggedin(request,**kwargs): fp = open( 'tmp.2.log', 'w' ) try: request_ids = request.session['fbrequests'] print >> fp, request_ids print >> fp, "=====================================" except: pass print >> fp, request.method print >> fp, request.user.first_name print >> fp, request.user.last_name print >> fp, request.user.username print >> fp, request.user.id print >> fp, request.user if SOCIALAUTH_ON: print >> fp,'A',[ x for x in UserSocialAuth.objects.filter(user=request.user.id).all()] print >> fp,'B',[ x for x in UserSocialAuth.objects.all()] print >> fp,'C',[ x for x in UserSocialAuth.objects.filter(provider='facebook',user=request.user.id).order_by('-id')] instance = UserSocialAuth.objects.filter(provider='facebook',user=request.user.id).order_by('-id')[0] #instance = UserSocialAuth.objects.filter(provider='facebook').get(user=request.user.id).order_by('-id')[0] print >> fp, instance print >> fp, instance.tokens graph = facebook.GraphAPI(instance.tokens["access_token"]) try: profile = graph.get_object("me") except: logout(request) return HttpResponseRedirect( reverse('lupalo.views.lupalo') ) # Redirect after POST friends = graph.get_connections("me", "friends") print >> fp, profile print >> fp, profile['id'] fb_id = profile['id'] print >> fp, friends else: fb_id = ROBOT1 request.session['fb_id'] = fb_id print >> fp, "fb_id", fb_id #graph.put_object("me","apprequests",message="Lup",redirect_uri="http://www.lupalo.com/foo/login/facebook") #graph.put_object("me","apprequests",to="100004397774234",message="Lup",redirect_uri="http://www.lupalo.com/foo/login/facebook") # TODO check if member exists with the same fb id try: #m = Member.objects.get(user_name=request.user.id) m = Member.objects.get( fb_id=fp_id ) except Member.DoesNotExist: m = None if m == None: try: m = Member.objects.get( fb_id=request.session['fb_id'] ) m.user_name = profile['name'] m.fb_first_name = profile['first_name'] m.fb_last_name = profile['last_name'] m.save() except Member.DoesNotExist: m = None return HttpResponseRedirect( reverse('lupalo.views.lupalo') ) # Redirect after POST #return HttpResponseRedirect(reverse('lupalo.views.requestpage')) if True: #if request.method == 'POST': # If the form has been submitted... #form = ContactForm(request.POST) # A form bound to the POST data #print >> fp, "validating" #print >> fp, form.is_valid() #print >> fp, form.errors #if form.is_valid(): if True: #user = form.cleaned_data['user'] #user = request.user.id user = request.user.username t = time.gmtime() name = time.asctime(t) gamename = time.asctime(t) #gamename = form.cleaned_data['room'] #newgame = form.cleaned_data['newgame'] newgame = True print >> fp, "New Game", newgame if newgame == True: #Room.objects.all().delete() r = Room(name=name) r.save() Game.objects.all().delete() g = Game(name=name,room=r) g.save() r = Room(name=gamename) r.save() g = Game(name=name,room=r) g.save() else: r = Room(name=gamename) g = Game(name=name,room=r) m = Member.objects.get( fb_id=request.session['fb_id'] ) game = Game.objects.all() #g = game[0] request.session['game_id'] = g.id # TODO get room id from game #r = g.room # TODO get player id from room #players = Player.objects.get(game=g) try: players = get_list_or_404(Player, game=g) except: players = None if players: turn = len(players) else: turn = 0 p = Player(game=g,turn=turn) p.member = m p.save() print >> fp, "Player turn:", p.turn request.session['player_id'] = p.turn return HttpResponseRedirect( reverse('lupalo.views.lupalo') ) # Redirect after POST #return render(request, 'polls/login.html', { # 'form': form, #}) else: form = ContactForm() # An unbound form fp.close() #m = Member.objects.get(user_name=request.POST['username']) #request.session['member_id'] = m.id return render(request, 'foyer.html', { 'form': form, 'user':request.user.first_name })