From 7cd2a5c80d264b369a79ea83b0a325c8530abcfe Mon Sep 17 00:00:00 2001 From: Mark Cotton Date: Mon, 2 Oct 2023 21:13:15 -0500 Subject: [PATCH] Iterating through users, then looping through cameras, and finally through downloads --- download_worker.py | 85 ++++++++++++++++++++++++---------------------- 1 file changed, 45 insertions(+), 40 deletions(-) diff --git a/download_worker.py b/download_worker.py index c84467e..8403a91 100644 --- a/download_worker.py +++ b/download_worker.py @@ -101,62 +101,67 @@ if __name__ == '__main__': logging.info(f"EagleEyev3 version: {een.__version__}") + results = cur.execute('select email from user') - if een: - if een.refresh_token == None or een.refresh_token == '': - # if you get out of sync, pull the refresh_token from the db to get the loop started - result = cur.execute("select user.refresh_token from user where user.email = ?;", ("mcotton@mcottondesign.com",)) + list_of_users = [r[0] for r in results] + + for user_email in list_of_users: + + if een: + + result = cur.execute("select user.refresh_token from user where user.email = ?;", (user_email,)) for row in result: een.refresh_token = row[0] + else: - # een object and refresh_token appear to be good - pass - else: - logging.error('een object is None') + logging.error('een object is None') - een.login_tokens(code=None, cascade=True, refresh_token=een.refresh_token) + een.login_tokens(code=None, cascade=True, refresh_token=een.refresh_token) - result = cur.execute("select user.refresh_token, user.id from user where user.email = ?;", (een.current_user['email'],)) + if een and een.current_user and 'email' in een.current_user: - for row in result: - print(f"found user {een.current_user['email']}, updating refresh_token") - print(row) - print(een.refresh_token) - print(f"update user set refresh_token = {een.refresh_token} where id == {row[1]};") - cur.execute("update user set refresh_token = ? where id == ?;", (een.refresh_token, row[1])) - con.commit() + result = cur.execute("select user.refresh_token, user.id from user where user.email = ?;", (een.current_user['email'],)) + + for row in result: + print(f"found user {een.current_user['email']}, updating refresh_token") + print(row) + print(een.refresh_token) + print(f"update user set refresh_token = {een.refresh_token} where id == {row[1]};") + cur.execute("update user set refresh_token = ? where id == ?;", (een.refresh_token, row[1])) + con.commit() - een.get_list_of_cameras() + een.get_list_of_cameras() - # iterate through all the cameras this user has access to - for current_camera in een.cameras: + # iterate through all the cameras this user has access to + for current_camera in een.cameras: - sql = '''SELECT - download.id, - download.url, - camera.device_id, - download.start_timestamp, - download.end_timestamp, - download.status - FROM - camera - JOIN download ON download.camera_id = camera.id - JOIN USER ON camera.user_id = user.id - WHERE - download.status == ? - AND camera.device_id == ? - ORDER BY download.start_timestamp - LIMIT 10000;''' + sql = '''SELECT + download.id, + download.url, + camera.device_id, + download.start_timestamp, + download.end_timestamp, + download.status + FROM + camera + JOIN download ON download.camera_id = camera.id + JOIN USER ON camera.user_id = user.id + WHERE + download.status == ? + AND camera.device_id == ? + ORDER BY download.start_timestamp + LIMIT 10000;''' - results = cur.execute(sql, ('new', current_camera.id)) + results = cur.execute(sql, ('new', current_camera.id)) - # Here is where we send the list of files to be run in the multiprocessing pool - run([results, een, current_camera]) - + # Here is where we send the list of files to be run in the multiprocessing pool + run([results, een, current_camera]) + else: + logging.info(f"failed to login for {user_email}")