Exemplo n.º 1
0
	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)
Exemplo n.º 2
0
	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("]");
Exemplo n.º 3
0
Arquivo: MainPage.py Projeto: pee/hpt
	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))
Exemplo n.º 4
0
	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("/")
Exemplo n.º 5
0
Arquivo: MyFriends.py Projeto: pee/hpt
	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")