def teddst1(self): s = Service(url) s.debug(s.server_loc) k = AnalyticApiKey(key, s) s.debug('exists: ' + unicode(k.exists())) r = ResponseData( k, { 'op': 'select', 'vn': 0, 'pv': 'rank', 'rb': (datetime.date.today() - datetime.timedelta(weeks=1)).strftime('%Y-%m-%d'), 're': datetime.date.today().strftime('%Y-%m-%d'), 'rk': 'overview' }) r.sync() s.debug('data object: ' + unicode(r.object)) s.debug('=============') for k in r.object: s.debug("\n\tkey: %s\n\tvalue:%s\n-------\n" % (unicode(k), unicode(r.object[k]))) if k == 'rows': for ro in r.object[k]: s.debug("\n\t\trow(%d): %s\n-------\n" % (len(ro), unicode(ro)))
def test1(): s = Service('http://localhost:3000') s.debug(s.server_loc) k = AnalyticApiKey('B63C4fZ0bQb6iu1EXYPMhsFLT_VqUhutPiu9fIwP', s) s.debug('exists: ' + unicode(k.exists())) r = ResponseData( k, { 'op': 'select', 'vn': 0, 'pv': 'rank', 'rb': (datetime.date.today() - datetime.timedelta(weeks=1)).strftime('%Y-%m-%d'), 're': datetime.date.today().strftime('%Y-%m-%d'), 'rk': 'overview' }) r.sync() s.debug('data object: ' + unicode(r.object)) s.debug('=============') for k in r.object: s.debug("\n\tkey: %s\n\tvalue:%s\n-------\n" % (unicode(k), unicode(r.object[k]))) if k == 'rows': for ro in r.object[k]: s.debug("\n\t\trow(%d): %s\n-------\n" % (len(ro), unicode(ro)))
def fetch_rescuetime(conf): now = datetime.now() targetdays = [(now - timedelta(days=i)).strftime('%Y-%m-%d') for i in reversed(range(0, 1+int(conf['day_span'])))] rescuetime_service = Service() key = AnalyticApiKey(conf['api_key'], rescuetime_service) # https://www.rescuetime.com/apidoc for i,_ in enumerate(targetdays[:-1]): args = { 'op': 'select', 'vn': 0, 'pv': 'interval', 'rb': targetdays[i], 're': targetdays[i+1], 'resolution_time': 'minute' } response = ResponseData(key, **args) response.sync() # Row headers: # Date # Time spent (seconds) # Number of people # Activity # Category # Productivity weight if response.object['rows'] is not None: return(imap(clean_row, response.object['rows'])) else: raise Exception("rescuetime returned None")
def get_current_productivity(): # get today's productivity scores from the service s = Service() key = AnalyticApiKey(apiKey, s) params = {'op': 'select', 'vn': 0, 'pv': 'interval', 'rs': 'hour', 'rb': (datetime.date.today() - datetime.timedelta(days = 1)).strftime('%Y-%m-%d'), 're': datetime.date.today().strftime('%Y-%m-%d'), 'rk': 'efficiency'} r = ResponseData(key, **params) r.sync() res = r.object['rows'] prod_graph = [] #Pull data for last 5 hours for i in range(6): rec_seconds = 0 rec_prod = 0 for ro in reversed(res): if ro[0] == (datetime.datetime.today() - datetime.timedelta(hours = i)).strftime('%Y-%m-%dT%H:00:00'): prod_graph.insert(0, ro[4]) if len(prod_graph) < i + 1: prod_graph.insert(0,50) mins = datetime.datetime.today().time().minute cur_prod = (60-mins) * prod_graph[4] + mins * prod_graph[5] cur_prod = cur_prod/60 prod_graph[5] = cur_prod return prod_graph
def test2(self): s = Service(url) s.debug(s.server_loc) k = AnalyticApiKey(key, s) s.debug('exists: ' + unicode(k.exists())) r = ResponseData(k) today = datetime.date.today() r.params(operation='select').params(perspective='interval') r.params( version=0, restrict_begin=(today - datetime.timedelta(weeks=1)).strftime('%Y-%m-%d'), restrict_end=today.strftime('%Y-%m-%d'), restrict_kind='productivity') r.params(resolution_time='hour') r.sync() s.debug('data object: ' + unicode(r.object)) s.debug('=============') for k in r.object: s.debug("\n\tkey: %s\n\tvalue:%s\n-------\n" % (unicode(k), unicode(r.object[k]))) if k == 'rows': for ro in r.object[k]: s.debug("\n\t\trow(%d): %s\n-------\n" % (len(ro), unicode(ro)))
def get_current_productivity(): # get today's productivity scores from the service s = Service() key = AnalyticApiKey('YOUR_API_KEY_HERE', s) params = {'op': 'select', 'vn': 0, 'pv': 'interval', 'rs': 'day', 'rb': datetime.date.today().strftime('%Y-%m-%d'), 're': (datetime.date.today() + datetime.timedelta(days = 1)).strftime('%Y-%m-%d'), 'rk': 'productivity'} r = ResponseData(key, **params) r.sync() # combine into a single value total_seconds = 0 productive_seconds = 0 for k in r.object: if k == 'rows': for ro in r.object[k]: seconds = ro[1] score = ro[3] total_seconds += seconds if score > 0: productive_seconds += seconds productivity = int(round(100 * float(productive_seconds) / float(total_seconds))) return min(productivity, 99)
def rescuetime(self, params): """docstring for rescuetime""" s = Service() s.debug(s.server_loc) k = AnalyticApiKey('B63mNzrDeMVC_tMEIo5gBxGyf0eYonYTTRFcfR8s', s) r = ResponseData(k, **params) try: r.sync() json = r.object except: json = None return json
def dump_to_db(setting): from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker engine = create_engine('mysql://{0}:{1}@{2}/{3}?charset=utf8&use_unicode=1' .format(setting['dbaccount'], setting['dbpasswd'], setting['dbserver'], setting['dbname'])) session = sessionmaker() session.configure(bind=engine) Base.metadata.create_all(engine) s = session() rescuetime_service = Service() key = AnalyticApiKey(setting['api_key'], rescuetime_service) conf = { 'op': 'select', 'vn': 0, 'pv': 'interval', 'rb': setting['rb'], 're': setting['re'] } response = ResponseData(key, **conf) response.sync() if response.object['rows'] is not None: for record in response.object['rows']: if len(record) != 6: return time = datetime.datetime.strptime(record[0], '%Y-%m-%dT%H:%M:%S') data = { 'user': setting['user'], 'time': time.strftime('%Y-%m-%d %H:%M:%S'), 'timeSpent': record[1], 'activity': ''.join(map(chr, map(ord, record[3]))), 'category': record[4], 'productivity': record[5] } entry = RescueTime(**data) s.add(entry) s.commit()
def teddst1(self): s = Service(url) s.debug(s.server_loc) k = AnalyticApiKey(key, s) s.debug('exists: ' + unicode(k.exists())) r = ResponseData(k, {'op': 'select', 'vn': 0, 'pv': 'rank', 'rb': (datetime.date.today() - datetime.timedelta(weeks = 1)).strftime('%Y-%m-%d'), 're': datetime.date.today().strftime('%Y-%m-%d'), 'rk': 'overview' }) r.sync() s.debug('data object: ' + unicode(r.object)) s.debug('=============') for k in r.object: s.debug("\n\tkey: %s\n\tvalue:%s\n-------\n" % (unicode(k), unicode(r.object[k]))) if k == 'rows': for ro in r.object[k]: s.debug("\n\t\trow(%d): %s\n-------\n" % (len(ro), unicode(ro)))
class Request(object): def __init__(self, key): self.service = Service(url) self.key = AnalyticApiKey(key, self.service) self.r = ResponseData(self.key) def params(self, **kwargs): for k, v in kwargs.items(): if isinstance(v, datetime.datetime) or isinstance( v, datetime.date): v = v.strftime('%Y-%m-%d') self.r.params(**{k: v}) return self def request(self, **kwargs): self.params(**kwargs) print 'Making request...\n' print self.r._parameters self.r.sync() return self.r.object
class Request(object): def __init__(self, key): self.service = Service(url) self.key = AnalyticApiKey(key, self.service) self.r = ResponseData(self.key) def params(self, **kwargs): for k,v in kwargs.items(): if isinstance(v, datetime.datetime) or isinstance(v, datetime.date): v = v.strftime('%Y-%m-%d') self.r.params(**{k:v}) return self def request(self, **kwargs): self.params(**kwargs) print 'Making request...\n' print self.r._parameters self.r.sync() return self.r.object
def test1(): s = Service('http://localhost:3000') s.debug(s.server_loc) k = AnalyticApiKey('B63C4fZ0bQb6iu1EXYPMhsFLT_VqUhutPiu9fIwP', s) s.debug('exists: ' + unicode(k.exists())) r = ResponseData(k, {'op': 'select', 'vn': 0, 'pv': 'rank', 'rb': (datetime.date.today() - datetime.timedelta(weeks = 1)).strftime('%Y-%m-%d'), 're': datetime.date.today().strftime('%Y-%m-%d'), 'rk': 'overview' }) r.sync() s.debug('data object: ' + unicode(r.object)) s.debug('=============') for k in r.object: s.debug("\n\tkey: %s\n\tvalue:%s\n-------\n" % (unicode(k), unicode(r.object[k]))) if k == 'rows': for ro in r.object[k]: s.debug("\n\t\trow(%d): %s\n-------\n" % (len(ro), unicode(ro)))
def test2(self): s = Service(url) s.debug(s.server_loc) k = AnalyticApiKey(key, s) s.debug('exists: ' + unicode(k.exists())) r = ResponseData(k) today = datetime.date.today() r.params(operation = 'select').params(perspective = 'interval') r.params(version = 0, restrict_begin = (today - datetime.timedelta(weeks = 1)).strftime('%Y-%m-%d'), restrict_end = today.strftime('%Y-%m-%d'), restrict_kind = 'productivity') r.params(resolution_time='hour') r.sync() s.debug('data object: ' + unicode(r.object)) s.debug('=============') for k in r.object: s.debug("\n\tkey: %s\n\tvalue:%s\n-------\n" % (unicode(k), unicode(r.object[k]))) if k == 'rows': for ro in r.object[k]: s.debug("\n\t\trow(%d): %s\n-------\n" % (len(ro), unicode(ro)))
def test2(): s = Service('http://localhost:3000') s.debug(s.server_loc) k = AnalyticApiKey('B63C4fZ0bQb6iu1EXYPMhsFLT_VqUhutPiu9fIwP', s) s.debug('exists: ' + unicode(k.exists())) r = ResponseData(k) today = datetime.date.today() r.params(operation='select').params(perspective='rank') r.params(version=0, restrict_begin=(today - datetime.timedelta(weeks=1)).strftime('%Y-%m-%d'), restrict_end=today.strftime('%Y-%m-%d'), restrict_kind='overview') r.sync() s.debug('data object: ' + unicode(r.object)) s.debug('=============') for k in r.object: s.debug("\n\tkey: %s\n\tvalue:%s\n-------\n" % (unicode(k), unicode(r.object[k]))) if k == 'rows': for ro in r.object[k]: s.debug("\n\t\trow(%d): %s\n-------\n" % (len(ro), unicode(ro)))
def test2(): s = Service('http://localhost:3000') s.debug(s.server_loc) k = AnalyticApiKey('B63C4fZ0bQb6iu1EXYPMhsFLT_VqUhutPiu9fIwP', s) s.debug('exists: ' + unicode(k.exists())) r = ResponseData(k) today = datetime.date.today() r.params(operation = 'select').params(perspective = 'rank') r.params(version = 0, restrict_begin = (today - datetime.timedelta(weeks = 1)).strftime('%Y-%m-%d'), restrict_end = today.strftime('%Y-%m-%d'), restrict_kind = 'overview') r.sync() s.debug('data object: ' + unicode(r.object)) s.debug('=============') for k in r.object: s.debug("\n\tkey: %s\n\tvalue:%s\n-------\n" % (unicode(k), unicode(r.object[k]))) if k == 'rows': for ro in r.object[k]: s.debug("\n\t\trow(%d): %s\n-------\n" % (len(ro), unicode(ro)))
def __init__(self, key): self.service = Service(url) self.key = AnalyticApiKey(key, self.service) self.r = ResponseData(self.key)