Ejemplo n.º 1
0
def sync_lists():
    '''
    insert or update database
    :return data: list data, json, ref https://developer.wunderlist.com/documentation/endpoints/list
    '''
    data = get_lists()
    print data
    d = DBHelper.fetchall("select list_id from %s" % tb_lists)
    d2 = [o['id'] for o in data]
    _delete_list = [ddd['list_id'] for ddd in d if ddd['list_id'] not in d2]
    for dx in _delete_list:
        print 'now delete..'
        sql = "delete from %s where list_id = '%s'" % (tb_lists, dx)
        print sql
        DBHelper.delete(sql)
    for o in data:
        q = DBHelper.fetchall("select * from %s"
                              " where list_id = '%s'" % (tb_lists, o['id']))
        #updated_at = dateutil.parser.parse(o['updated_at']).date() # deprecated
        updated_at = datetime.now().date()
        created_at = dateutil.parser.parse(o['created_at']).date()
        if q:
            q = q[0]
            if str(q['updated_at']) == str(updated_at):
                print 'no update!'
            else:
                print '%s update now...' % o['title']
                update_sql = "update %s set title='%s', created_at = '%s', updated_at='%s', content='%s' where list_id='%s'" % (
                    tb_lists, o['title'], created_at, updated_at,
                    json.dumps(o), o['id'])
                DBHelper.update(update_sql)
        else:
            print 'insert now...'
            sql = '''insert into %s (title,created_at,updated_at,content,list_id) values('%s','%s','%s', '%s','%s')''' % (
                tb_lists, o['title'], created_at, updated_at, json.dumps(o),
                o['id'])
            print sql
            DBHelper.update(sql)
    print 'success sync lists'
    return data
Ejemplo n.º 2
0
def sync_tasks(data):
    '''
    insert or update database
    '''
    try:
        list_id = data[0]['list_id']
        d = DBHelper.fetchall(
            "select task_id from {0} where list_id = {1}".format(
                tb_tasks, list_id))
        d2 = [o['id'] for o in data]
        _delete_task = [
            ddd['task_id'] for ddd in d if ddd['task_id'] not in d2
        ]
        for dx in _delete_task:
            print 'now delete..'
            sql = "delete from %s where task_id = '%s'" % (tb_tasks, dx)
            print sql
            DBHelper.delete(sql)
    except IndexError, e:
        print 'index error ,msg:{}'.format(e)
        print 'data:{}'.format(data)
Ejemplo n.º 3
0
         "select task_id from {0} where list_id = {1}".format(
             tb_tasks, list_id))
     d2 = [o['id'] for o in data]
     _delete_task = [
         ddd['task_id'] for ddd in d if ddd['task_id'] not in d2
     ]
     for dx in _delete_task:
         print 'now delete..'
         sql = "delete from %s where task_id = '%s'" % (tb_tasks, dx)
         print sql
         DBHelper.delete(sql)
 except IndexError, e:
     print 'index error ,msg:{}'.format(e)
     print 'data:{}'.format(data)
 for o in data:
     q = DBHelper.fetchall("select * from %s"
                           " where task_id = '%s'" % (tb_tasks, o['id']))
     updated_at = datetime.now().date()
     created_at = dateutil.parser.parse(o['created_at']).date()
     if q:
         q = q[0]
         if str(q['updated_at']) == str(updated_at):
             print 'no update!'
         else:
             print '%s update now...' % o['title']
             update_sql = "update %s set title='%s', created_at='%s', updated_at='%s', content='%s', list_id='%s' where task_id='%s'" % (
                 tb_tasks, o['title'], created_at, updated_at,
                 json.dumps(o), o['list_id'], o['id'])
             DBHelper.update(update_sql)
     else:
         print 'insert now...'
         sql = ''