コード例 #1
0
ファイル: handlers.py プロジェクト: setomits/imf-tweet
    def get(self, mode = ''):
        if mode == 'login':
            if 'allowed' in self.request.cookies and \
                    self.request.cookies['allowed'].count('_'):
                _twitter_id, _login_hash = \
                    self.request.cookies['allowed'].split('_', 1)
        
                user_info = UserInfo.all().filter('twitter_id =', _twitter_id).get()
                if user_info and _sha512(user_info.acc_key) == _login_hash:
                    self.session = Session()
                    self.session['twitter_id'] = _twitter_id
                    return self.redirect('/home')

            auth = _oauth_handler()
            auth_url = auth.get_authorization_url()
            memcache.set(auth.request_token.key,
                         auth.request_token.secret,
                         3600)
            return self.redirect(auth_url)

        elif mode == 'verify':
            auth = _oauth_handler()
            ver = self.request.get('oauth_verifier')
            req_key = self.request.get('oauth_token')
            req_sec = memcache.get(req_key)
            auth.set_request_token(req_key, req_sec)
            acc_token = auth.get_access_token(ver)

            api = tweepy.API(auth_handler = auth)
            me = api.me()

            if not UserInfo.all().filter('twitter_id =', str(me.id)).get():
                user_info = UserInfo(twitter_id = str(me.id),
                                     screen_name = me.screen_name,
                                     name = me.name,
                                     image = me.profile_image_url,
                                     acc_key = acc_token.key,
                                     acc_sec = acc_token.secret)
                user_info.put()

            self.session = Session()
            self.session.delete_item('twitter_id')
            self.session['twitter_id'] = str(me.id)

            c = SimpleCookie()
            c['allowed'] = '%d_%s' % (me.id, _sha512(acc_token.key))
            c['allowed']['path'] = '/auth'
            c['allowed']['expires'] = 86400 * 10
            self.response.headers.add_header('Set-Cookie', c.output(header = ''))

            return self.redirect('/home')

        elif mode == 'logout':
            user_info = _login_user(self)
            if user_info:
                self.session = Session()
                self.session.delete_item('twitter_id')

            return self.redirect('/')
コード例 #2
0
    def get(self, mode=''):
        if mode == 'login':
            if 'allowed' in self.request.cookies and \
                    self.request.cookies['allowed'].count('_'):
                _twitter_id, _login_hash = \
                    self.request.cookies['allowed'].split('_', 1)

                user_info = UserInfo.all().filter('twitter_id =',
                                                  _twitter_id).get()
                if user_info and _sha512(user_info.acc_key) == _login_hash:
                    self.session = Session()
                    self.session['twitter_id'] = _twitter_id
                    return self.redirect('/home')

            auth = _oauth_handler()
            auth_url = auth.get_authorization_url()
            memcache.set(auth.request_token.key, auth.request_token.secret,
                         3600)
            return self.redirect(auth_url)

        elif mode == 'verify':
            auth = _oauth_handler()
            ver = self.request.get('oauth_verifier')
            req_key = self.request.get('oauth_token')
            req_sec = memcache.get(req_key)
            auth.set_request_token(req_key, req_sec)
            acc_token = auth.get_access_token(ver)

            api = tweepy.API(auth_handler=auth)
            me = api.me()

            if not UserInfo.all().filter('twitter_id =', str(me.id)).get():
                user_info = UserInfo(twitter_id=str(me.id),
                                     screen_name=me.screen_name,
                                     name=me.name,
                                     image=me.profile_image_url,
                                     acc_key=acc_token.key,
                                     acc_sec=acc_token.secret)
                user_info.put()

            self.session = Session()
            self.session.delete_item('twitter_id')
            self.session['twitter_id'] = str(me.id)

            c = SimpleCookie()
            c['allowed'] = '%d_%s' % (me.id, _sha512(acc_token.key))
            c['allowed']['path'] = '/auth'
            c['allowed']['expires'] = 86400 * 10
            self.response.headers.add_header('Set-Cookie', c.output(header=''))

            return self.redirect('/home')

        elif mode == 'logout':
            user_info = _login_user(self)
            if user_info:
                self.session = Session()
                self.session.delete_item('twitter_id')

            return self.redirect('/')
コード例 #3
0
ファイル: userApi.py プロジェクト: proming/gaemarks
def checkIdAndEmail(userId, email):
  query = UserInfo.all()
  query.filter('userId = ', userId).filter('email = ', email)
  if query.count() == 0:
    return False;
  else:
    return True;
コード例 #4
0
ファイル: userApi.py プロジェクト: proming/gaemarks
def checkEmail(email):
  query = UserInfo.all()
  query.filter('email = ', email)
  if query.count() == 0:
    return False;
  else:
    return True;
コード例 #5
0
ファイル: userApi.py プロジェクト: proming/gaemarks
def checkUserId(userId):
  query = UserInfo.all()
  query.filter('userId = ', userId)
  if query.count() == 0:
    return False;
  else:
    return True;
コード例 #6
0
ファイル: userApi.py プロジェクト: proming/gaemarks
def authService(userId, passwd):
  query = UserInfo.all()
  query.filter('userId = ', userId).filter('passwd = ', passwd)
  if query.count() == 0:
    return False;
  else:
    return True;
コード例 #7
0
ファイル: handlers.py プロジェクト: neostoic/where-do-you-go
 def get(self):
   user = users.get_current_user()
   if user:
     code = self.request.get("code")
     if code:
       old_userinfos = UserInfo.all().filter('user ='******'ApplicationError: 5') >= 0:
           pass # if something bad happens on OAuth, then it currently just redirects to the signup page
                #TODO find a better way to handle this case, but it's not clear there is a simple way to do it without messing up a bunch of code
         else:
           raise err
       try:
         manage_foursquare_data.update_user_info(userinfo)
         manage_foursquare_data.fetch_and_store_checkins_next(userinfo, limit=50)
       except foursquare.FoursquareRemoteException, err:
         if str(err).find('403 Forbidden') >= 0:
           pass # if a user tries to sign up while my app is blocked, then it currently just redirects to the signup page
                #TODO find a better way to handle this case, but it's not clear there is a simple way to do it without messing up a bunch of code
         else:
           raise err
       except DownloadError:
         pass #TODO make this better, but I'd rather throw the user back to the main page to try again than show the user an error.
コード例 #8
0
ファイル: handlers.py プロジェクト: neostoic/where-do-you-go
 def get(self):
   user = users.get_current_user()
   if user:
     userinfo = UserInfo.all().filter('user ='******',' + str(userinfo.is_ready) + ',' + str(userinfo.checkin_count))
       return
   self.response.out.write('error')
コード例 #9
0
ファイル: handlers.py プロジェクト: ubilabs/where-do-you-go
 def get(self):
   user = users.get_current_user()
   if user:
     userinfo = UserInfo.all().filter('user ='******'-created')
     if userinfo:
         self.response.out.write(str(userinfo.is_ready) + ',' + str(userinfo.checkin_count))
         return
   self.response.out.write("")
コード例 #10
0
ファイル: handlers.py プロジェクト: ubilabs/where-do-you-go
 def get(self):
   user = users.get_current_user()
   if user:
     userinfo = UserInfo.all().filter('user ='******'-created').get()
     if userinfo:
         self.response.out.write(str(userinfo))
     template_data = { 'uservenues': constants.provider.get_user_data(user=user)}
     os_path = os.path.dirname(__file__)
     self.response.out.write(template.render(os.path.join(os_path, 'templates/uservenue_list.html'), template_data))
コード例 #11
0
 def get(self):
     user = users.get_current_user()
     if user:
         userinfo = UserInfo.all().filter('user ='******',' +
                 str(userinfo.is_ready) + ',' + str(userinfo.checkin_count))
             return
     self.response.out.write('error')
コード例 #12
0
def fetch_and_store_checkins_for_all():
  userinfos = UserInfo.all().order('last_updated').fetch(100)#.filter('is_authorized = ', True).
  for userinfo in userinfos:
    if userinfo.is_authorized:
      num_added = fetch_and_store_checkins(userinfo)
      logging.info("updating %d checkins for %s" % (num_added, userinfo.user) )
    else:
      logging.debug("did not update checkins for %s" % userinfo.user)
    userinfo.last_updated = datetime.now()
    userinfo.put()
コード例 #13
0
ファイル: handlers.py プロジェクト: mrfelcio/where-do-you-go
 def get(self):
   user = users.get_current_user()
   if user:
     userinfo = UserInfo.all().filter('user ='******'-created').get()
     if userinfo:
         self.response.out.write(str(userinfo))
     usevenues = constants.provider.get_user_data(user=user)
     if not uservenue.checkin_guid_list or len(uservenue.checkin_guid_list) is 0:
       uservenue.checkin_guid_list = [str(checkin_id) for checkin_id in uservenue.checkin_list]
       usevenue.put()
     template_data = { 'uservenues': usevenues}
     os_path = os.path.dirname(__file__)
     self.response.out.write(template.render(os.path.join(os_path, 'templates/uservenue_list.html'), template_data))
コード例 #14
0
ファイル: handlers.py プロジェクト: neostoic/where-do-you-go
 def get(self):
   welcome_data = {
     'user': '',
     'userinfo': '',
     'url': users.create_login_url(self.request.uri),
     'real_name': '',
     'photo_url': constants.default_photo,
     'is_ready': False
   }
   sidebar_data = {
     'color_scheme_dict': color_scheme.color_schemes,
     'color_scheme': constants.default_color,
   }
   map_data = {
     'citylat': constants.default_lat,
     'citylng': constants.default_lng,
     'zoom': constants.default_zoom,
     'width': constants.default_dimension,
     'height': constants.default_dimension,
     'domain': environ['HTTP_HOST'],
     'static_url': 'http://maps.google.com/maps/api/staticmap?center=40.738152838822934%2C-73.9822769165039&format=png&zoom=13&key=ABQIAAAAwA6oEsCLgzz6I150wm3ELBSujOi3smKLcjzph36ZE8UXngM_5BTs-xHblsuwK8V9g8bZ_PTfOWR1Fg&sensor=false&size=640x640',
     'mapimage_url': 'map/%s.png' % 'ag93aGVyZS1kby15b3UtZ29yEQsSCE1hcEltYWdlGNL0_wIM',
   }
   user = users.get_current_user()
   if user:
     welcome_data['user'] = user
     welcome_data['url'] = users.create_logout_url(self.request.uri)
     userinfo = UserInfo.all().filter('user ='******'userinfo'] = userinfo
       welcome_data['real_name'] = userinfo.real_name
       welcome_data['photo_url'] = userinfo.photo_url
       welcome_data['is_ready'] = userinfo.is_ready
       sidebar_data['color_scheme'] = userinfo.color_scheme
       map_data['citylat'] = userinfo.citylat
       map_data['citylng'] = userinfo.citylng
   os_path = os.path.dirname(__file__)
   self.response.out.write(template.render(os.path.join(os_path, 'templates/all_header.html'), {'key': constants.google_maps_apikey}))
   self.response.out.write(template.render(os.path.join(os_path, 'templates/private_welcome.html'), welcome_data))
   if user and userinfo:
     if userinfo.has_been_cleared:
       self.response.out.write(template.render(os.path.join(os_path, 'templates/information.html'), {'user': user, 'has_been_cleared': userinfo.has_been_cleared}))
     elif userinfo.is_authorized:
       self.response.out.write(template.render(os.path.join(os_path, 'templates/private_sidebar.html'), sidebar_data))
     else:
       self.response.out.write(template.render(os.path.join(os_path, 'templates/private_unauthorized.html'), None))
   else:
     self.response.out.write(template.render(os.path.join(os_path, 'templates/information.html'), {'user': user, 'has_been_cleared': False}))
   self.response.out.write(template.render(os.path.join(os_path, 'templates/private_map.html'), map_data))
   self.response.out.write(template.render(os.path.join(os_path, 'templates/all_footer.html'), None))
コード例 #15
0
ファイル: tile.py プロジェクト: ubilabs/where-do-you-go
  def __init__(self, user, lat_north, lng_west, range_lat, range_lng):
    userinfo = UserInfo.all().filter('user ='******'-created').get()
    if userinfo:
      self.level_max = userinfo.level_max
      self.color_scheme = color_scheme.color_schemes[userinfo.color_scheme]
    else:
      self.level_max = int(constants.level_const)
      self.color_scheme = color_scheme.color_schemes[constants.default_color]

    self.cache_levels = []
    for i in range(self.level_max - 1, -1, -1):
      self.cache_levels.append(int(((-(pow(float(i) - self.level_max, 2))/self.level_max) + self.level_max) / self.level_max * 255))

    if not constants.provider:
      constants.provider = provider.DBProvider()
    self.tile_img = self.plot_image(constants.provider.get_user_data(user, lat_north, lng_west, range_lat, range_lng))
コード例 #16
0
    def __init__(self):
        self.user = users.get_current_user()
        userinfo_query = UserInfo.all().filter('ownerid =',self.user)
        self.userinfo = userinfo_query.get()

        if self.userinfo is None:
            userinfo = UserInfo()
            userinfo.ownerid = self.user

        self.template_values = {
            'user' : self.user,
            'nickname' : self.user.nickname(),
            }

        key = ""
        template_path = ""
コード例 #17
0
ファイル: handlers.py プロジェクト: ubilabs/where-do-you-go
 def get(self):
   user = users.get_current_user()
   if user:
     auth_token = self.request.get("oauth_token")
     if auth_token:
       credentials = constants.get_client().get_credentials(auth_token)
       old_userinfos = UserInfo.all().filter('user ='******'token'], secret = credentials['secret'], is_ready=False, is_authorized=True, last_checkin=0, last_updated=datetime.now(), color_scheme='fire', level_max=int(constants.level_const), checkin_count=0, venue_count=0)
       fetch_foursquare_data.update_user_info(userinfo)
       fetch_foursquare_data.fetch_and_store_checkins(userinfo, limit=10)
       taskqueue.add(url='/fetch_foursquare_data/all_for_user/%s' % userinfo.key())#, queue_name='initial-checkin-fetching')
       self.redirect("/")
     else:
       self.redirect(constants.get_client().get_authorization_url())
   else:
     self.redirect(users.create_login_url(self.request.uri))
コード例 #18
0
def fetch_and_store_checkins_for_batch():
  userinfos = UserInfo.all().order('last_updated').filter('is_authorized = ', True).fetch(50)
  logging.info("performing batch update for up to %d users-------------------------------" % len(userinfos))
  num_users_completed = 0
  current_userinfo = None
  try:
    for userinfo in userinfos:
      current_userinfo = userinfo
      num_added, num_ignored, num_received = fetch_and_store_checkins(userinfo)
      if not (num_added + num_ignored) == num_received:
        logging.info("updating %d and ignoring %d of %d checkins for %s but they don't match - there are probably shouts or venues without a lat/lon!" % (num_added, num_ignored, num_received, userinfo.user))
      elif num_received > 0:
        logging.info("updating %d and ignoring %d of %d checkins for %s" % (num_added, num_ignored, num_received, userinfo.user))
      userinfo.last_updated = datetime.now() # redundant with the above but oh well
      userinfo.put()
      num_users_completed += 1
  except DeadlineExceededError:
    logging.info("exceeded deadline after %d users, unfinished user was %s" % (num_users_completed, current_userinfo.user))
コード例 #19
0
def clear_old_uservenues():
  num_cleared = 0
  cutoff = datetime.now() - timedelta(days=7)   
  userinfos = UserInfo.all().filter('has_been_cleared = ', False).filter('last_updated <', cutoff).fetch(200)
  try:
    for userinfo in userinfos:
      while True:
        uservenues = UserVenue.all(keys_only=True).filter('user =', userinfo.user).fetch(1000)
        if not uservenues: break
        db.delete(uservenues)
        num_cleared = num_cleared + len(uservenues)
      userinfo.has_been_cleared = True
      userinfo.checkin_count = 0
      userinfo.venue_count = 0
      userinfo.last_updated = datetime.now()
      userinfo.put()
    logging.info("finished after deleting at least %d UserVenues for %d UserInfos" % (num_cleared, len(userinfos)))
  except DeadlineExceededError:
    logging.info("exceeded deadline after deleting at least %d UserVenues for %d UserInfos" % (num_cleared, len(userinfos)))
コード例 #20
0
def clear_old_uservenues():
  num_cleared = 0
  cutoff = datetime.now() - timedelta(days=7)   
  userinfos = UserInfo.all().filter('has_been_cleared = ', False).filter('last_updated <', cutoff).fetch(200)
  try:
    for userinfo in userinfos:
      while True:
        uservenues = UserVenue.all(keys_only=True).filter('user =', userinfo.user).fetch(1000)
        if not uservenues: break
        db.delete(uservenues)
        num_cleared = num_cleared + len(uservenues)
      userinfo.has_been_cleared = True
      userinfo.checkin_count = 0
      userinfo.venue_count = 0
      userinfo.last_updated = datetime.now()
      userinfo.put()
    logging.info("finished after deleting at least %d UserVenues for %d UserInfos" % (num_cleared, len(userinfos)))
  except DeadlineExceededError:
    logging.info("exceeded deadline after deleting at least %d UserVenues for %d UserInfos" % (num_cleared, len(userinfos)))
コード例 #21
0
ファイル: handlers.py プロジェクト: ubilabs/where-do-you-go
 def get(self):
   welcome_data = {
     'user': '',
     'userinfo': '',
     'url': users.create_login_url(self.request.uri),
     'real_name': '',
     'photo_url': constants.default_photo,
     'is_ready': False
   }
   sidebar_data = {
     'color_scheme_dict': color_scheme.color_schemes,
     'color_scheme': constants.default_color,
   }
   map_data = {
     'citylat': constants.default_lat,
     'citylng': constants.default_lng,
     'zoom': constants.default_zoom,
     'width': constants.default_dimension,
     'height': constants.default_dimension,
   }
   user = users.get_current_user()
   if user:
     welcome_data['user'] = user
     welcome_data['url'] = users.create_logout_url(self.request.uri)
     userinfo = UserInfo.all().filter('user ='******'-created').get()
     if userinfo:
       fetch_foursquare_data.update_user_info(userinfo)
       welcome_data['userinfo'] = userinfo
       welcome_data['real_name'] = userinfo.real_name
       welcome_data['photo_url'] = userinfo.photo_url
       welcome_data['is_ready'] = userinfo.is_ready
       sidebar_data['color_scheme'] = userinfo.color_scheme
       map_data['citylat'] = userinfo.citylat
       map_data['citylng'] = userinfo.citylng
   os_path = os.path.dirname(__file__)
   self.response.out.write(template.render(os.path.join(os_path, 'templates/header.html'), {'key': constants.get_google_maps_apikey()}))
   self.response.out.write(template.render(os.path.join(os_path, 'templates/private_welcome.html'), welcome_data))
   if user and userinfo:
       self.response.out.write(template.render(os.path.join(os_path, 'templates/private_sidebar.html'), sidebar_data))
   else:
       self.response.out.write(template.render(os.path.join(os_path, 'templates/information.html'), None))
   self.response.out.write(template.render(os.path.join(os_path, 'templates/private_map.html'), map_data))
   self.response.out.write(template.render(os.path.join(os_path, 'templates/all_footer.html'), None))
コード例 #22
0
ファイル: handlers.py プロジェクト: mrfelcio/where-do-you-go
 def get(self):
   welcome_data = {
     'user': '',
     'userinfo': '',
     'url': users.create_login_url(self.request.uri),
     'real_name': '',
     'photo_url': constants.default_photo,
     'is_ready': False
   }
   sidebar_data = {
     'color_scheme_dict': color_scheme.color_schemes,
     'color_scheme': constants.default_color,
   }
   map_data = {
     'citylat': constants.default_lat,
     'citylng': constants.default_lng,
     'zoom': constants.default_zoom,
     'width': constants.default_dimension,
     'height': constants.default_dimension,
   }
   foursquare_is_happy = True
   user = users.get_current_user()
   if user:
     welcome_data['user'] = user
     welcome_data['url'] = users.create_logout_url(self.request.uri)
     userinfo = UserInfo.all().filter('user ='******'-created').get()
     if userinfo:
       if userinfo.is_authorized:
         try:
           fetch_foursquare_data.update_user_info(userinfo)
         except foursquare.FoursquareRemoteException, err:
           if str(err).find('403 Forbidden') >= 0:
             foursquare_is_happy = False
           else:
             raise err
       welcome_data['userinfo'] = userinfo
       welcome_data['real_name'] = userinfo.real_name
       welcome_data['photo_url'] = userinfo.photo_url
       welcome_data['is_ready'] = userinfo.is_ready
       sidebar_data['color_scheme'] = userinfo.color_scheme
       map_data['citylat'] = userinfo.citylat
       map_data['citylng'] = userinfo.citylng
コード例 #23
0
ファイル: tile.py プロジェクト: kawasaki2013/where-do-you-go
 def __init__(self, user, lat_north, lng_west, range_lat, range_lng):
   userinfo = UserInfo.all().filter('user ='******'t do any more math if we don't have any venues
     cur_canvas = self.color_scheme.canvas
     self.tile_img = PNGCanvas(SIZE, SIZE, bgcolor=cur_canvas[len(cur_canvas) - 1][0]) #NOTE the last index should be safe here, but for users with negative level_max's, self.cache_levels was an empty list and thus this was erroring
コード例 #24
0
def update_map_file(): # really there should be a flag in the user object to indicate the map needs updating, but for that to be reliable that needs to put with each new checkin, so these need to have the user as the parent so the transaction works, and that's just a nightmare.
  mapimages = MapImage.all().order('last_updated').fetch(10)
  for mapimage in mapimages:
    if not mapimage.update_count:
      mapimage.update_count = 0
      mapimage.put()
    userinfo = UserInfo.all().filter('user = '******'s no userinfo
      mapimage.put()
      logging.warning("No userinfo found for mapimage with user %s" % mapimage.user)
      continue
    try:
      if userinfo.last_updated > mapimage.last_updated or mapimage.update_count == 0:
        google_data = {
          'key': constants.get_google_maps_apikey(),
          'zoom': mapimage.zoom,
          'center': str(mapimage.centerlat) + "," + str(mapimage.centerlng),
          'size': str(mapimage.width) + "x" + str(mapimage.height),
          'sensor':'false',
          'format':'png',
        }
        img = update_map_image(mapimage.user, mapimage.zoom, mapimage.width, mapimage.height, mapimage.northlat, mapimage.westlng)
        mapimage.img = db.Blob(img)
        mapimage.last_updated = datetime.now()
        mapimage.static_url = "http://maps.google.com/maps/api/staticmap?" + urllib.urlencode(google_data)
        mapimage.update_count += 1
        mapimage.put()
        logging.info("Updated user map for %s" % mapimage.user)
        return # only update one map
      else: # so that we don't get stuck on the same maps forever
        mapimage.last_updated = datetime.now()
        mapimage.put()
        logging.debug("Did not need to update map for %s" % mapimage.user)
    except DeadlineExceededError, err:    
      logging.error("Ran out of time before updating a map! %s" % err)
      mapimage.last_updated = datetime.now() # put it at the end of the queue anyway, in case we always fail on this map for some reason
      mapimage.put()
コード例 #25
0
ファイル: handlers.py プロジェクト: mrfelcio/where-do-you-go
  def get(self):
    user = users.get_current_user()
    if user:
      oauth_token = self.request.get("oauth_token")

      def get_new_fs_and_credentials():
        oauth_token, oauth_secret = constants.get_oauth_strings()
        credentials = foursquare.OAuthCredentials(oauth_token, oauth_secret)
        fs = foursquare.Foursquare(credentials)
        return fs, credentials

      if oauth_token:
        old_userinfos = UserInfo.all().filter('user ='******'token =', oauth_token).get()
        
        try:
          user_token = fs.access_token(oauth.OAuthToken(apptoken.token, apptoken.secret))
          credentials.set_access_token(user_token)
          userinfo = UserInfo(user = user, token = credentials.access_token.key, secret = credentials.access_token.secret, is_ready=False, is_authorized=True, last_checkin=0, last_updated=datetime.now(), color_scheme='fire', level_max=int(constants.level_const), checkin_count=0, venue_count=0)
        except DownloadError, err:
          if str(err).find('ApplicationError: 5') >= 0:
            pass # if something bad happens on OAuth, then it currently just redirects to the signup page
                 #TODO find a better way to handle this case, but it's not clear there is a simple way to do it without messing up a bunch of code
          else:
            raise err
        try:
          fetch_foursquare_data.update_user_info(userinfo)
          fetch_foursquare_data.fetch_and_store_checkins(userinfo, limit=10)
          taskqueue.add(url='/fetch_foursquare_data/all_for_user/%s' % userinfo.key())
        except foursquare.FoursquareRemoteException, err:
          if str(err).find('403 Forbidden') >= 0:
            pass # if a user tries to sign up while my app is blocked, then it currently just redirects to the signup page
                 #TODO find a better way to handle this case, but it's not clear there is a simple way to do it without messing up a bunch of code
          else:
            raise err
        except DownloadError:
          pass #TODO make this better, but I'd rather throw the user back to the main page to try again than show the user an error.
コード例 #26
0
 def get(self):
     user = users.get_current_user()
     if user:
         code = self.request.get("code")
         if code:
             old_userinfos = UserInfo.all().filter('user ='******'ApplicationError: 5') >= 0:
                     pass  # if something bad happens on OAuth, then it currently just redirects to the signup page
                     #TODO find a better way to handle this case, but it's not clear there is a simple way to do it without messing up a bunch of code
                 else:
                     raise err
             try:
                 manage_foursquare_data.update_user_info(userinfo)
                 manage_foursquare_data.fetch_and_store_checkins_next(
                     userinfo, limit=50)
             except foursquare.FoursquareRemoteException, err:
                 if str(err).find('403 Forbidden') >= 0:
                     pass  # if a user tries to sign up while my app is blocked, then it currently just redirects to the signup page
                     #TODO find a better way to handle this case, but it's not clear there is a simple way to do it without messing up a bunch of code
                 else:
                     raise err
             except DownloadError:
                 pass  #TODO make this better, but I'd rather throw the user back to the main page to try again than show the user an error.
コード例 #27
0
 def get(self):
   welcome_data = {
     'user': '',
     'userinfo': '',
     'url': users.create_login_url(self.request.uri),
     'real_name': '',
     'photo_url': constants.default_photo,
   }
   sidebar_data = {
     'color_scheme_dict': color_scheme.color_schemes,
     'color_scheme': constants.default_color,
   }
   map_data = {
     'citylat': constants.default_lat,
     'citylng': constants.default_lng,
     'zoom': constants.default_zoom,
     'width': constants.default_dimension,
     'height': constants.default_dimension,
     'domain': environ['HTTP_HOST'],
     'static_url': 'http://maps.google.com/maps/api/staticmap?center=40.738152838822934%2C-73.9822769165039&format=png&zoom=13&key=AIzaSyAYBD8ThpvGz1biNHjH00lI-zuiNxdQLX4&sensor=false&size=640x640',
     'mapimage_url': 'map/%s.png' % 'ag93aGVyZS1kby15b3UtZ29yEQsSCE1hcEltYWdlGNL0_wIM',
   }
   user = users.get_current_user()
   if user:
     welcome_data['user'] = user
     welcome_data['url'] = users.create_logout_url(self.request.uri)
     userinfo = UserInfo.all().filter('user ='******'userinfo'] = userinfo
       welcome_data['real_name'] = userinfo.real_name
       welcome_data['photo_url'] = userinfo.photo_url
   os_path = os.path.dirname(__file__)
   self.response.out.write(template.render(os.path.join(os_path, 'templates/all_header.html'), {'key': constants.google_maps_apikey}))
   self.response.out.write(template.render(os.path.join(os_path, 'templates/private_welcome.html'), welcome_data))
   self.response.out.write(template.render(os.path.join(os_path, 'templates/information.html'), {'user': user}))
   self.response.out.write(template.render(os.path.join(os_path, 'templates/all_footer.html'), None))
コード例 #28
0
ファイル: delete_data.py プロジェクト: durbon/where-do-you-go
  #     db.delete(mapimages)
  #   while(UserVenue.all().count() > 0):
  #     uservenues = UserVenue.all().fetch(500)
  #     db.delete(uservenues)
  #   while(AuthToken.all().count() > 0):
  #     authtokens = AuthToken.all().fetch(500)
  #     db.delete(authtokens)
  #   while(UserInfo.all().count() > 0):
  #     userinfos = UserInfo.all().fetch(500)
  #     db.delete(userinfos)

  elif rest == 'user':
    user = users.get_current_user()
    if user:
      while(MapImage.all().filter('user ='******'user ='******'user = '******'user = '******'user ='******'user ='******'mapimage':
    user = users.get_current_user()
    if user:
      while(MapImage.all().filter('user ='******'user =', user).fetch(500)
        db.delete(mapimages)
コード例 #29
0

user = users.get_current_user()
if user:
  path = environ['PATH_INFO']
  try:
    assert path.count('/') == 4, "%d /'s" % path.count('/')
    foo, bar, level_offset_str, northwest, southeast = path.split('/')
    level_offset = int(level_offset_str)
    assert northwest.count(',') == 1, "%d ,'s" % northwest.count(',')
    northlat, westlng = northwest.split(',')
    assert southeast.count(',') == 1, "%d ,'s" % southeast.count(',')
    southlat, eastlng = southeast.split(',')

    if not constants.provider:
      constants.provider = provider.DBProvider()
    visible_uservenues = constants.provider.get_user_data(user, float(northlat), float(westlng), float(southlat) - float(northlat), float(eastlng) - float(westlng))

    visible_checkin_count = 0
    for venue in visible_uservenues:
      visible_checkin_count = visible_checkin_count + len(venue.checkin_list)
      
    userinfo = UserInfo.all().filter('user ='******'-created').get()
    level_offset = level_offset * 15
    logging.info("level_offset=%d  visible_checkin_count=%d  len(visible_uservenues)=%d" % (level_offset, visible_checkin_count, len(visible_uservenues)))
    userinfo.level_max = int(float(visible_checkin_count) / float(max(len(visible_uservenues), 1)) * (constants.level_const + level_offset))
    userinfo.put()
    
  except AssertionError, err:
    logging.error(err.args[0])
コード例 #30
0
    mapimage = convert_map_key(map_key)
    if mapimage:
      welcome_data = {
        'real_name': '',
        'photo_url': constants.default_photo,
      }
      sidebar_data = {
        'domain': environ['HTTP_HOST'],
        'public_url': 'public/%s.html' % mapimage.key(),
      }
      map_data = {
        'domain': environ['HTTP_HOST'],
        'static_url': update_api_key_in_static_url(mapimage.static_url),
        'mapimage_url': 'map/%s.png' % mapimage.key(),
      }
      userinfo = UserInfo.all().filter('user ='******'real_name'] = userinfo.real_name
        welcome_data['photo_url'] = userinfo.photo_url
      os_path = os.path.dirname(__file__)
      self.response.out.write(template.render(os.path.join(os_path, 'templates/all_header.html'), None))
      self.response.out.write(template.render(os.path.join(os_path, 'templates/public_welcome.html'), welcome_data))
      self.response.out.write(template.render(os.path.join(os_path, 'templates/public_sidebar.html'), sidebar_data))
      self.response.out.write(template.render(os.path.join(os_path, 'templates/public_map.html'), map_data))
      self.response.out.write(template.render(os.path.join(os_path, 'templates/all_footer.html'), None))
    else:
      self.redirect("/")

class StaticMapHtmlWriter(webapp.RequestHandler):
  def get(self):
    user = users.get_current_user()
コード例 #31
0
ファイル: userApi.py プロジェクト: proming/gaemarks
def getUserByChangeFlag(changeFlag):
  query = UserInfo.all()
  user = query.filter('changeFlag = ', changeFlag).get()
    
  return user
コード例 #32
0
    #     db.delete(mapimages)
    #   while(UserVenue.all().count() > 0):
    #     uservenues = UserVenue.all().fetch(500)
    #     db.delete(uservenues)
    #   while(AuthToken.all().count() > 0):
    #     authtokens = AuthToken.all().fetch(500)
    #     db.delete(authtokens)
    #   while(UserInfo.all().count() > 0):
    #     userinfos = UserInfo.all().fetch(500)
    #     db.delete(userinfos)

    elif rest == 'user':
        user = users.get_current_user()
        if user:
            while (MapImage.all().filter('user ='******'user ='******'user = '******'user = '******'user ='******'user ='******'mapimage':
        user = users.get_current_user()
        if user:
            while (MapImage.all().filter('user ='******'user =', user).fetch(500)
                db.delete(mapimages)
コード例 #33
0
ファイル: userApi.py プロジェクト: proming/gaemarks
def getUserByUserId(userId):
  query = UserInfo.all()
  user = query.filter('userId = ', userId).get()
    
  return user
コード例 #34
0
ファイル: handlers.py プロジェクト: setomits/imf-tweet
def _login_user(handler):
    handler.session = Session()
    twitter_id = handler.session.get('twitter_id')

    return UserInfo.all().filter('twitter_id =', twitter_id).get()
コード例 #35
0
from google.appengine.api import users
from os import environ
from models import UserInfo

user = users.get_current_user()
if user:
    path = environ['PATH_INFO']
    try:
        assert path.count('/') == 2, "%d /'s" % path.count('/')
        foo, bar, color_scheme = path.split('/')
        userinfo = UserInfo.all().filter('user =', user).get()
        userinfo.color_scheme = color_scheme
        userinfo.put()
    except AssertionError, err:
        logging.error(err.args[0])
        self.respondError(err)
コード例 #36
0
def _login_user(handler):
    handler.session = Session()
    twitter_id = handler.session.get('twitter_id')

    return UserInfo.all().filter('twitter_id =', twitter_id).get()
コード例 #37
0
 mapimage = convert_map_key(map_key)
 if mapimage:
     welcome_data = {
         'real_name': '',
         'photo_url': constants.default_photo,
     }
     sidebar_data = {
         'domain': environ['HTTP_HOST'],
         'public_url': 'public/%s.html' % mapimage.key(),
     }
     map_data = {
         'domain': environ['HTTP_HOST'],
         'static_url': mapimage.static_url,
         'mapimage_url': 'map/%s.png' % mapimage.key(),
     }
     userinfo = UserInfo.all().filter('user ='******'real_name'] = userinfo.real_name
         welcome_data['photo_url'] = userinfo.photo_url
         #welcome_data['checkin_count'] = userinfo.checkin_count
     os_path = os.path.dirname(__file__)
     self.response.out.write(
         template.render(
             os.path.join(os_path, 'templates/all_header.html'), None))
     self.response.out.write(
         template.render(
             os.path.join(os_path, 'templates/public_welcome.html'),
             welcome_data))
     self.response.out.write(
         template.render(
             os.path.join(os_path, 'templates/public_sidebar.html'),
コード例 #38
0
from google.appengine.api import users
from os import environ
from models import UserInfo

user = users.get_current_user()
if user:
  path = environ['PATH_INFO']
  try:
    assert path.count('/') == 2, "%d /'s" % path.count('/')
    foo, bar, color_scheme = path.split('/')
    userinfo = UserInfo.all().filter('user =', user).get()
    userinfo.color_scheme = color_scheme
    userinfo.put()
  except AssertionError, err:
    logging.error(err.args[0])
    self.respondError(err)
コード例 #39
0
 def get(self):
     welcome_data = {
         'user': '',
         'userinfo': '',
         'url': users.create_login_url(self.request.uri),
         'real_name': '',
         'photo_url': constants.default_photo,
         'is_ready': False
     }
     sidebar_data = {
         'color_scheme_dict': color_scheme.color_schemes,
         'color_scheme': constants.default_color,
     }
     map_data = {
         'citylat':
         constants.default_lat,
         'citylng':
         constants.default_lng,
         'zoom':
         constants.default_zoom,
         'width':
         constants.default_dimension,
         'height':
         constants.default_dimension,
         'domain':
         environ['HTTP_HOST'],
         'static_url':
         'http://maps.google.com/maps/api/staticmap?center=40.738152838822934%2C-73.9822769165039&format=png&zoom=13&key=ABQIAAAAwA6oEsCLgzz6I150wm3ELBSujOi3smKLcjzph36ZE8UXngM_5BTs-xHblsuwK8V9g8bZ_PTfOWR1Fg&sensor=false&size=640x640',
         'mapimage_url':
         'map/%s.png' % 'ag93aGVyZS1kby15b3UtZ29yEQsSCE1hcEltYWdlGNL0_wIM',
     }
     user = users.get_current_user()
     if user:
         welcome_data['user'] = user
         welcome_data['url'] = users.create_logout_url(self.request.uri)
         userinfo = UserInfo.all().filter('user ='******'userinfo'] = userinfo
             welcome_data['real_name'] = userinfo.real_name
             welcome_data['photo_url'] = userinfo.photo_url
             welcome_data['is_ready'] = userinfo.is_ready
             sidebar_data['color_scheme'] = userinfo.color_scheme
             map_data['citylat'] = userinfo.citylat
             map_data['citylng'] = userinfo.citylng
     os_path = os.path.dirname(__file__)
     self.response.out.write(
         template.render(os.path.join(os_path, 'templates/all_header.html'),
                         {'key': constants.google_maps_apikey}))
     self.response.out.write(
         template.render(
             os.path.join(os_path, 'templates/private_welcome.html'),
             welcome_data))
     if user and userinfo:
         if userinfo.has_been_cleared:
             self.response.out.write(
                 template.render(
                     os.path.join(os_path, 'templates/information.html'), {
                         'user': user,
                         'has_been_cleared': userinfo.has_been_cleared
                     }))
         elif userinfo.is_authorized:
             self.response.out.write(
                 template.render(
                     os.path.join(os_path,
                                  'templates/private_sidebar.html'),
                     sidebar_data))
         else:
             self.response.out.write(
                 template.render(
                     os.path.join(os_path,
                                  'templates/private_unauthorized.html'),
                     None))
     else:
         self.response.out.write(
             template.render(
                 os.path.join(os_path, 'templates/information.html'), {
                     'user': user,
                     'has_been_cleared': False
                 }))
     self.response.out.write(
         template.render(
             os.path.join(os_path, 'templates/private_map.html'), map_data))
     self.response.out.write(
         template.render(os.path.join(os_path, 'templates/all_footer.html'),
                         None))