def get(self): self.response.headers['Content-type'] = 'text/plain' giver = hacker = Hacker.gql(""" WHERE username = :1 LIMIT 1 """, "p33").get() recipient = hacker = Hacker.gql(""" WHERE username = :1 LIMIT 1 """, "peevis").get() giver.givePoints(recipient, 50)
def get(self): self.response.headers['Content-Type'] = 'text/json' query = Hacker.gql("ORDER BY points DESC LIMIT 50"); self.response.out.write("["); first = True for result in query: if (first == False): self.response.out.write(","); self.response.out.write(result.asJSON()) first = False self.response.out.write("]");
def get(self): session = get_current_session() if not session.is_active(): self.forceTwitter(); return username = session.get("username") if not username: session.terminate() self.forceTwitter(); return; hacker = Hacker.gql(""" WHERE username = :1 LIMIT 1 """, username).get() if not hacker: logging.error("Had a username but no hacker:" + username) session.terminate() self.forceTwitter(); return template_values = { 'username' : username, 'url_picture': hacker.picture, 'name' : hacker.name, 'points' : hacker.points, 'pool' : hacker.pool, 'internets' : hacker.internets, 'easterEggs' : hacker.easterEggs, 'hacks' : hacker.hacks } self.response.headers['Content-Type'] = 'text/html' path = os.path.join(os.path.dirname(__file__), 'index.html') self.response.out.write(template.render(path, template_values))
def get(self): session = get_current_session() if session.is_active(): logger.info("Found a session") session.terminate() # the request_token from twitter request_token = self.request.get("oauth_token") request_token = urlunquote(request_token) # the OAuth verifier from twitter oauth_verifier = self.request.get("oauth_verifier") oauth_verifier = urlunquote(oauth_verifier) ss = SecretSquirrel() client = twitterauth.OAuthClient(ss.conKey, ss.conSec, ss.cbURL) auth_secret = memcache.get(client._get_memcache_auth_key(request_token)) if not auth_secret: result = twitterauth.AuthToken.gql(""" WHERE token = :1 LIMIT 1 """, request_token).get() if not result: logger.error("The auth token %s was not found in our db" % request_token) raise Exception, "Could not find Auth Token in database suck to be you" else: auth_secret = result.secret # now go back to twitter and exchange the request_token and oauth_verifier for an access_token and a token_secret response = client.make_request(client.access_url, token=request_token, secret=auth_secret, additional_params={"oauth_verifier": oauth_verifier}) result = client._extract_credentials(response) # Try to collect some information about this user from the service. user_info = client._lookup_user_info(result["token"], result["secret"]) if not user_info: return self.response.out.write("failed to get user_info") user_info.update(result) session = get_current_session() session['username'] = user_info['username'] username = user_info['username'] hacker = Hacker.gql(""" WHERE username = :1 LIMIT 1 """, username).get() if not hacker: logger.info("Making new hacker") hacker = Hacker() hacker.name = user_info["name"] hacker.token = user_info["token"] hacker.picture = user_info["picture"] hacker.secret = user_info["secret"] hacker.username = user_info["username"] hacker.points = 0 hacker.pool = 100 hacker.internets = 0 hacker.easterEggs = 0 hacker.hacks = 0 hacker.put() else: logger.info("Found me a hacker") #return self.response.out.write(user_info) return self.redirect("/")
def get(self): session = get_current_session() if not session.is_active(): self.forceTwitter(); return username = session.get("username") if not username: session.terminate() self.forceTwitter(); return; hacker = Hacker.gql(""" WHERE username = :1 LIMIT 1 """, username).get() if not hacker: logging.error("Had a username but no hacker:" + username) session.terminate() self.forceTwitter(); return self.response.headers['Content-Type'] = 'text/html' # logging.info("Calling out to twitter for ids") # https://api.twitter.com/1/friends/ids.json?cursor=-1&screen_name=twitterapi cursor = -1 ss = SecretSquirrel() client = twitterauth.OAuthClient(ss.conKey, ss.conSec, ss.cbURL) token = hacker.token secret = hacker.secret username = hacker.username ids = [] done = 0 while done == 0: idResponse = client.make_request("https://api.twitter.com/1/friends/ids.json", token=token, secret=secret, additional_params={"cursor": cursor, "screen_name": username}) status = idResponse.status_code # logging.info(status) if status != 200: return self.response.out.write("Return code wasn't 200 it was:" + str(status)) self.response.out.write(idResponse) data = json.loads(idResponse.content) # self.response.out.write(data) nextCursor = data['next_cursor'] if nextCursor == 0: done = 1; jIDS = data['ids'] if not jIDS: done = 1; continue else: ids.extend(jIDS) # self.response.out.write("Done with ids loop\n") # self.response.out.write("Found " + str(len(jIDS)) + " friend IDS\n") cursor = 0 lookupIDS = "" jidCount = len(jIDS) while cursor <= jidCount: li = 0 while li <= 99: try: tid = jIDS.pop() lookupIDS = lookupIDS + str(tid) + "," li = li + 1 cursor = cursor + 1 except: # logging.info("Stopped at " + str(li) + " count") li = 100 cursor = (jidCount + 1) # https://api.twitter.com/1/users/lookup.json?screen_name=twitterapi,twitter&include_entities=true fResponse = client.make_request("https://api.twitter.com/1/users/lookup.json", token=token, secret=secret, additional_params={"user_id": lookupIDS, "include_entities":"false"}, method="POST") status = fResponse.status_code if status != 200: return self.response.out.write("Return code wasn't 200 it was:" + str(status)) data = json.loads(fResponse.content) lookupIDS = "" for user in data: self.response.out.write("<p>") template_values = { 'id' : user['id'], 'pics' : user['profile_image_url_https'], 'pic' : user['profile_image_url'], 'screenName' : user['screen_name'], 'name' : user['name'], 'verified' : user['verified'], 'url' : user['url'], } path = os.path.join(os.path.dirname(__file__), 'user.html') self.response.out.write(template.render(path, template_values)) self.response.out.write("</p>") self.response.out.write("Done requesting friends info")