示例#1
0
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
示例#2
0
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 
    })