Пример #1
0
 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)))
Пример #2
0
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)))
Пример #3
0
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
Пример #5
0
    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)
Пример #7
0
    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
Пример #8
0
  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
Пример #9
0
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()
Пример #10
0
 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)))
Пример #11
0
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
Пример #12
0
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
Пример #13
0
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)))
Пример #14
0
    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)))
Пример #15
0
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)))
Пример #16
0
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)))
Пример #17
0
 def __init__(self, key):
     self.service = Service(url)
     self.key = AnalyticApiKey(key, self.service)
     self.r = ResponseData(self.key)
Пример #18
0
 def __init__(self, key):
     self.service = Service(url)
     self.key = AnalyticApiKey(key, self.service)
     self.r = ResponseData(self.key)