Example #1
0
def getUsers(request, api_url, oauth_token, oauth_token_secret):
    consumer = oauth.Consumer(settings.PLURK_APP_KEY, settings.PLURK_APP_SECRET)
    token = oauth.Token(oauth_token, oauth_token_secret)
    client = oauth.Client(consumer, token)
    params = { 'oauth_signature_method': 'HMAC-SHA1',
				   'oauth_nonce': oauth.generate_nonce(),
				   'oauth_timestamp': oauth.generate_timestamp(),
				   'oauth_token': oauth_token }
    req = oauth.Request.from_consumer_and_token(consumer=consumer, token=token,
				   http_method='GET', http_url=api_url, parameters=params)
    req.sign_request(oauth.SignatureMethod_HMAC_SHA1(), consumer, token)
    #response, content = client.request(api_url, method=method, headers=req.to_header())
    #content = dict(parse_qsl(content))
    response, content = client.request(api_url, method='GET', headers=req.to_header())
    #if response['status'] != '200':
     #  raise Exception(content)

    content = json.loads(content)
    content = content["user_info"]
    user = request.user
    if user.is_authenticated():
       try:
           dono = PlurkUser.objects.get(username=content["nick_name"])
           return HttpResponse("mohon maap akun sudah di daftarkan")
       except PlurkUser.DoesNotExist:
           plurk = PlurkUser(username=content["nick_name"].lower())
           plurk.user_id = str(content["id"])
           plurk.user = request.user
           plurk.oauth_token = oauth_token
           plurk.oauth_secret = oauth_token_secret
           plurk.save()
       return HttpResponseRedirect(_get_next(request)) 
    else:
      try:
          plurk_user = PlurkUser.objects.get(username=content["nick_name"])
          user = plurk_user.authenticate()
          login(request, user, 'plurk')
          return HttpResponseRedirect(_get_next(request))
                 
      except PlurkUser.DoesNotExist:
        username = content["nick_name"].lower()
        username =  re.sub(r'([^a-zA-Z0-9_-]*)', '', username)
        try:   
          User.objects.get(username=username)
          d = User.objects.only('username')
          while True:
            ran = random.randint(0, 1000)
            username = username+str(ran)
            if not username in d:
               break
        except User.DoesNotExist:
            pass

        user = User(username=username)
        if user.display_name is None:  
              user.display_name = content["full_name"]     

        user.display_name = username
        user.save()
        plurk = PlurkUser(username=content["nick_name"])
        plurk.user_id = str(content["id"])
        plurk.user = user
        plurk.oauth_token = oauth_token
        plurk.oauth_secret = oauth_token_secret
        plurk.save()
        user = plurk.authenticate()
        login(request, user, 'plurk')
        return HttpResponseRedirect(_get_next(request))