Добавлено логирование в файл

This commit is contained in:
VolandSZ
2026-03-15 20:40:33 +03:00
parent d735cc1932
commit 1d05d3881e

46
main.py
View File

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