Beispiel #1
0
def collect():
    key_file = open('keys.json')
    key_data = json.load(key_file)

    m = Moves(client_id=key_data["client_id"],
              client_secret=key_data["client_secret"],
              redirect_url=key_data["redirect_url"])

    for (i, user) in enumerate(get_moves_db().find()):
        if i != 0 and i % 10 == 0:
            logging.info("Finished 10 users, sleeping for two minutes...")
            sleep(2 * 60)
        access_token = user['access_token']
        if access_token == "Ignore_me":
            logging.info("Found entry to ignore for user %s" % user)
            continue
        logging.info("%s: Getting data for user %s with token %s" %
                     (datetime.now(), user['our_uuid'], user['access_token']))
        user_uuid = user['our_uuid']
        # logging.debug(user_uuid)
        profile = m.get_profile(token=access_token)
        # logging.debug(profile)
        tzStr = getTimezone(profile)
        tz = pytz.timezone(tzStr)

        # So the documentation both here:
        # http://www.enricozini.org/2009/debian/using-python-datetime/
        # and here:
        # http://pytz.sourceforge.net/
        # says that we should use utcnow() because now() is not reliable.
        # unfortunately, using utcnow() on my desktop, where the timezone is set, causes the localized time to be wrong
        # now() works
        # testing with now() on the server as well
        # now() didn't work on the server either
        # in fact, pytz localize() (i.e. tz.localize(datetime.now()) seems broken
        # fortunately, astimezone() seems to work, so we are using it here

        dateFormat = "%Y-%m-%d"
        # endPoint = "user/storyline/daily/%s?trackPoints=true" % ('20140303')
        endPoint_today = "user/storyline/daily/%s?trackPoints=true" % (
            datetime.now(pytz.utc).astimezone(tz).strftime(dateFormat))
        endPoint_yesterday = "user/storyline/daily/%s?trackPoints=true" % (
            (datetime.now(pytz.utc).astimezone(tz) -
             timedelta(1)).strftime(dateFormat))
        result_today = m.get(token=access_token, endpoint=endPoint_today)
        result_yesterday = m.get(token=access_token,
                                 endpoint=endPoint_yesterday)
        logging.debug("result_today.type = %s, result_yesterday = %s" %
                      (type(result_today), type(result_yesterday)))
        # logging.debug(json.dumps(result_yesterday))

        # result=result_today+result_yesterday
        processResult(user_uuid, result_today)
        processResult(user_uuid, result_yesterday)
def collect():
  key_file = open('keys.json')
  key_data = json.load(key_file)

  m = Moves(client_id = key_data["client_id"],
            client_secret = key_data["client_secret"],
            redirect_url = key_data["redirect_url"])

  for (i, user) in enumerate(get_moves_db().find()):
    if i != 0 and i % 10 == 0:
        logging.info("Finished 10 users, sleeping for two minutes...")
        sleep(2 * 60)
    access_token = user['access_token']
    if access_token == "Ignore_me":
      logging.info("Found entry to ignore for user %s" % user)
      continue
    logging.info("%s: Getting data for user %s with token %s" % (datetime.now(), user['our_uuid'], user['access_token']))
    user_uuid=user['our_uuid']
    # logging.debug(user_uuid)
    profile = m.get_profile(token = access_token)
    # logging.debug(profile)
    tzStr = getTimezone(profile)
    tz = pytz.timezone(tzStr)

    # So the documentation both here:
    # http://www.enricozini.org/2009/debian/using-python-datetime/
    # and here:
    # http://pytz.sourceforge.net/
    # says that we should use utcnow() because now() is not reliable.
    # unfortunately, using utcnow() on my desktop, where the timezone is set, causes the localized time to be wrong
    # now() works
    # testing with now() on the server as well
    # now() didn't work on the server either
    # in fact, pytz localize() (i.e. tz.localize(datetime.now()) seems broken
    # fortunately, astimezone() seems to work, so we are using it here

    dateFormat = "%Y-%m-%d"
    # endPoint = "user/storyline/daily/%s?trackPoints=true" % ('20140303')
    endPoint_today = "user/storyline/daily/%s?trackPoints=true" % (datetime.now(pytz.utc).astimezone(tz).strftime(dateFormat))
    endPoint_yesterday="user/storyline/daily/%s?trackPoints=true" % ((datetime.now(pytz.utc).astimezone(tz)-timedelta(1)).strftime(dateFormat))
    result_today = m.get(token=access_token, endpoint = endPoint_today)
    result_yesterday=m.get(token=access_token, endpoint = endPoint_yesterday)
    logging.debug("result_today.type = %s, result_yesterday = %s" % (type(result_today), type(result_yesterday)))
    # logging.debug(json.dumps(result_yesterday))

    # result=result_today+result_yesterday
    processResult(user_uuid, result_today)
    processResult(user_uuid, result_yesterday)
def movesCallback(code, state, our_uuid):
  logging.debug('code: '+ code + ' state: '+ state + 'user: '******'state = %s with length %d' % (state, len(state)))
  if (len(state) == 0):
    # This is from iOS, we use the custom redirect URL
    redirectUrl = ios_redirect_url
  else:
    # This is from android, so we use the HTTPS one
    redirectUrl = https_redirect_url

  m = Moves(client_id = client_id,
            client_secret = client_secret,
            redirect_url = redirectUrl)

  token = m.auth(request_token = code)
  logging.debug("token = %s" % token)

  moves_access_info = m.access_json
  logging.debug("Response from moves = %s" % moves_access_info)
  # We got a good response from moves.
  # Now we generate a uuid
  saveAccessToken(moves_access_info, our_uuid)
Beispiel #4
0
def movesCallback(code, state, our_uuid):
    logging.debug('code: ' + code + ' state: ' + state + 'user: '******'state = %s with length %d' % (state, len(state)))
    if (len(state) == 0):
        # This is from iOS, we use the custom redirect URL
        redirectUrl = ios_redirect_url
    else:
        # This is from android, so we use the HTTPS one
        redirectUrl = https_redirect_url

    m = Moves(client_id=client_id,
              client_secret=client_secret,
              redirect_url=redirectUrl)

    token = m.auth(request_token=code)
    logging.debug("token = %s" % token)

    moves_access_info = m.access_json
    logging.debug("Response from moves = %s" % moves_access_info)
    # We got a good response from moves.
    # Now we generate a uuid
    saveAccessToken(moves_access_info, our_uuid)