updated code to use less logins to database

This commit is contained in:
simplypower-bbj
2022-12-18 20:51:29 +01:00
parent c402a1d65a
commit 8427f6802e
+15 -6
View File
@@ -8,7 +8,6 @@ from tqdm import tqdm
import logging
from database import Data_table
from database import insert_translated
from clean_data import clean_content
from setup_logging import setup_logging
@@ -27,8 +26,7 @@ def translate(text, target_lang='en'):
return ''
return text_trans
def get_untranslated():
with Data_table() as dt:
def get_untranslated(dt):
query = (
f'SELECT * FROM {dt._name} '
'WHERE content_en IS NULL '
@@ -43,11 +41,22 @@ def get_untranslated():
}
return val_dict
def insert_translated(dt, val_dict):
assert 'id' in val_dict.keys()
assert 'content_en' in val_dict.keys()
query = (
f'UPDATE {dt._name} '
' SET content_en = (%(content_en)s) '
'WHERE id = (%(id)s) '
)
dt.execute(query, val_dict)
def continously_translate():
with Data_table() as dt:
logging.info('began translating')
while True:
try:
val_dict = get_untranslated()
val_dict = get_untranslated(dt)
except Exception as e:
logging.warning(f'error when getting untranslated content from database: {e}')
continue
@@ -67,12 +76,12 @@ def continously_translate():
# upload to database
val_dict['content_en'] = content_en
try:
insert_translated(val_dict)
insert_translated(dt, val_dict)
except Exception as e:
logging.warning(f'error when sending translated content to database: {e}')
continue
logging.info('translated content')
logging.info('no more untranslated content located')
logging.warning('stopped translating')
if __name__ == '__main__':
load_dotenv()