def whitelisted( email ): sheetUrlFormat = 'http://spreadsheets.google.com/feeds/list/%s/public/values?alt=json&sq=%s' whitelist = private.config['whitelist'] if not whitelist['enabled']: return True query = quote( 'emailaddress="%s"' % email ) url = sheetUrlFormat %( whitelist['sheet'], query ) try: response = urlfetch.fetch( method = 'GET', url = url ) if response.status_code != 200: return False rows = json_decode( response.content )['feed']['entry'] row = rows[0] except: return False testuser = row['gsx$testuser']['$t'] #stableuser = row['gsx$stableuser']['$t'] if testuser != '': return True #if stableuser != '': # return True return 'pending' # email is in whitelist table but not approved
def _on_twitter_request(self, callback, response): if not response: logging.warning('Could not get Twitter request token.') return callback(None) elif response.status_code < 200 or response.status_code >= 300: logging.warning('Invalid Twitter response (%d): %s', response.status_code, response.content) return callback(None) return callback(json_decode(response.content))
def _on_friendfeed_request(self, callback, response): if not response: logging.warning('Could not get a FriendFeed response.') return callback(None) elif response.status_code < 200 or response.status_code >= 300: logging.warning('Invalid FriendFeed response (%d): %s', response.status_code, response.content) return callback(None) return callback(json_decode(response.content))
def clip( self, image ): key = db.Key( current_handler.session['current_place'] ) if key is None: return image place = db.get( key ) if place is None: return image if place.owner != current_handler.auth.user.auth_id: return image g = json_decode( place.geojson ) coords = g['features'][0]['geometry']['coordinates'] return self.image( 'ClipToMultiPolygon', image, coords )
def get_authenticated_user(self, callback): """Fetches the authenticated Facebook user. The authenticated user includes the special Facebook attributes 'session_key' and 'facebook_uid' in addition to the standard user attributes like 'name'. """ session = json_decode(self.request.args.get('session')) return self.facebook_request( method='facebook.users.getInfo', callback=functools.partial( self._on_get_user_info, callback, session), session_key=session['session_key'], uids=session['uid'], fields='uid,first_name,last_name,name,locale,pic_square,' \ 'profile_url,username')
def _parse_response(self, callback, response): if not response: logging.warning('Missing Facebook response.') return callback(None) elif response.status_code < 200 or response.status_code >= 300: logging.warning('HTTP error from Facebook (%d): %s', response.status_code, response.content) return callback(None) try: json = json_decode(response.content) except: logging.warning('Invalid JSON from Facebook: %r', response.content) return callback(None) if isinstance(json, dict) and json.get('error_code'): logging.warning('Facebook error: %d: %r', json['error_code'], json.get('error_msg')) return callback(None) return callback(json)
def _http( self, method, url, params=None ): logging.info( 'EarthEngine %s:\n%s', url, params ) try: response = urlfetch.fetch( method = method, url = self.url + url, payload = params, deadline = 10 ) if response.status_code == 200: json = json_decode( response.content ) else: json = { 'error': { 'type':'http', 'code': response.status_code } } except urlfetch.DeadlineExceededError: json = { 'error': { 'type':'DeadlineExceededError' } } except urlfetch.DownloadError: json = { 'error': { 'type':'DownloadError' } } except urlfetch.ResponseTooLargeError: json = { 'error': { 'type':'ResponseTooLargeError' } } except: json = { 'error': { 'type':'Other' } } finally: return json
def test_json_decode(self): self.assertEqual(json_decode('"<script>alert(\\"hello\\")<\\/script>"'), '<script>alert("hello")</script>')
def make_value_from_datastore(self, value): """Decodes the value from JSON.""" if value is not None: return json_decode(value)
def test_json_decode(self): self.assertEqual( json_decode('"<script>alert(\\"hello\\")<\\/script>"'), '<script>alert("hello")</script>')