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