diff --git a/main.py b/main.py index 74a32fc..070a5e0 100644 --- a/main.py +++ b/main.py @@ -1,5 +1,6 @@ -import os +import os import re +import sys import time # from datetime import datetime @@ -71,6 +72,31 @@ class BackupManager: # self.backup_folder = backup_folder / datetime.now().strftime("%Y-%m-%d") self.base_url = "https://www.1gb.ru/adm-alv5/" self.backup_url = f"{self.base_url}?u={account_id}#/c/b1" + self._stdout_original = None + self._log_file = None + + def enable_output_log(self, log_path: str = "backup.log"): + """Duplicate all stdout to a log file.""" + if self._stdout_original is None: + self._stdout_original = sys.stdout + + if self._log_file is None: + self._log_file = open(log_path, "a", encoding="utf-8", buffering=1) + + class _Tee: + def __init__(self, *streams): + self._streams = streams + + def write(self, data): + for s in self._streams: + s.write(data) + return len(data) + + def flush(self): + for s in self._streams: + s.flush() + + sys.stdout = _Tee(self._stdout_original, self._log_file) def start(self): self.pw = sync_playwright().start() @@ -80,6 +106,12 @@ class BackupManager: self._login() def stop(self): + if self._stdout_original is not None: + sys.stdout = self._stdout_original + self._stdout_original = None + if self._log_file is not None: + self._log_file.close() + self._log_file = None if self.browser: self.browser.close() if self.pw: @@ -666,8 +698,6 @@ class BackupManager: self.page.wait_for_timeout(3000) self._refresh_backup_list() - # print("ПРОПУЩЕНО (удаление закомментировано)") - print("\n[OK] Готово") @@ -675,10 +705,11 @@ class BackupManager: if __name__ == "__main__": mgr = BackupManager( - username="rav", - password="KB3e8rbtQv", + username="minzdravmo", + password="KB3ZS7*sv6j4zYr@bPdeFWQN38rbtQv", account_id="564622", ) + mgr.enable_output_log("F:/test_folder/MyReports/backup.log") try: mgr.start() @@ -698,9 +729,8 @@ if __name__ == "__main__": ) # 3. Показать, что удаляем и удалить - # mgr.print_deletion_plan(delete_count=1, year=2026) - - # mgr.delete_old_backups(delete_count=1, year=2026) + mgr.print_deletion_plan(delete_count=1, year=2026) + mgr.delete_old_backups(delete_count=1, year=2026) # Скачать только последний бэкап (без создания нового) # mgr.download_latest(save_dir="./backups")