Добавлено логирование в файл
This commit is contained in:
46
main.py
46
main.py
@ -1,5 +1,6 @@
|
|||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
|
import sys
|
||||||
import time
|
import time
|
||||||
|
|
||||||
# from datetime import datetime
|
# from datetime import datetime
|
||||||
@ -71,6 +72,31 @@ class BackupManager:
|
|||||||
# self.backup_folder = backup_folder / datetime.now().strftime("%Y-%m-%d")
|
# self.backup_folder = backup_folder / datetime.now().strftime("%Y-%m-%d")
|
||||||
self.base_url = "https://www.1gb.ru/adm-alv5/"
|
self.base_url = "https://www.1gb.ru/adm-alv5/"
|
||||||
self.backup_url = f"{self.base_url}?u={account_id}#/c/b1"
|
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):
|
def start(self):
|
||||||
self.pw = sync_playwright().start()
|
self.pw = sync_playwright().start()
|
||||||
@ -80,6 +106,12 @@ class BackupManager:
|
|||||||
self._login()
|
self._login()
|
||||||
|
|
||||||
def stop(self):
|
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:
|
if self.browser:
|
||||||
self.browser.close()
|
self.browser.close()
|
||||||
if self.pw:
|
if self.pw:
|
||||||
@ -666,8 +698,6 @@ class BackupManager:
|
|||||||
self.page.wait_for_timeout(3000)
|
self.page.wait_for_timeout(3000)
|
||||||
self._refresh_backup_list()
|
self._refresh_backup_list()
|
||||||
|
|
||||||
# print("ПРОПУЩЕНО (удаление закомментировано)")
|
|
||||||
|
|
||||||
print("\n[OK] Готово")
|
print("\n[OK] Готово")
|
||||||
|
|
||||||
|
|
||||||
@ -675,10 +705,11 @@ class BackupManager:
|
|||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
mgr = BackupManager(
|
mgr = BackupManager(
|
||||||
username="rav",
|
username="minzdravmo",
|
||||||
password="KB3e8rbtQv",
|
password="KB3ZS7*sv6j4zYr@bPdeFWQN38rbtQv",
|
||||||
account_id="564622",
|
account_id="564622",
|
||||||
)
|
)
|
||||||
|
mgr.enable_output_log("F:/test_folder/MyReports/backup.log")
|
||||||
|
|
||||||
try:
|
try:
|
||||||
mgr.start()
|
mgr.start()
|
||||||
@ -698,9 +729,8 @@ if __name__ == "__main__":
|
|||||||
)
|
)
|
||||||
|
|
||||||
# 3. Показать, что удаляем и удалить
|
# 3. Показать, что удаляем и удалить
|
||||||
# mgr.print_deletion_plan(delete_count=1, year=2026)
|
mgr.print_deletion_plan(delete_count=1, year=2026)
|
||||||
|
mgr.delete_old_backups(delete_count=1, year=2026)
|
||||||
# mgr.delete_old_backups(delete_count=1, year=2026)
|
|
||||||
|
|
||||||
# Скачать только последний бэкап (без создания нового)
|
# Скачать только последний бэкап (без создания нового)
|
||||||
# mgr.download_latest(save_dir="./backups")
|
# mgr.download_latest(save_dir="./backups")
|
||||||
|
|||||||
Reference in New Issue
Block a user