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)
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)