예제 #1
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('/')
예제 #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
 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
 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
 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
 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')
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
 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
 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
  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
 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))
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))
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)))
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
 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
 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
 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
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
  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
  #     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
def _login_user(handler):
    handler.session = Session()
    twitter_id = handler.session.get('twitter_id')

    return UserInfo.all().filter('twitter_id =', twitter_id).get()
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))