feat: complete academic symbol lexicon heal, 2-column Cooper extraction, and updated assets

This commit is contained in:
2026-10-09 15:26:58 +05:00
parent 7f91366201
commit 0b12e4583b
244 changed files with 611461 additions and 1617 deletions
+61
View File
@@ -0,0 +1,61 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
transfer_phone_archive.py
=========================
Фоновый перенос данных со смартфона в архив:
- Музыка (Music, Audiobooks) ПОЛНОСТЬЮ ИСКЛЮЧЕНА и остаётся нетронутой на телефоне.
- Переносятся: Download, футажи, Pictures, DCIM/MyAlbums, DCIM/Camera.
"""
import os
import sys
import subprocess
import time
from pathlib import Path
DEST_ROOT = Path("/mnt/data/архив_с_телефона")
DEST_ROOT.mkdir(parents=True, exist_ok=True)
LOG_FILE = DEST_ROOT / "transfer_log.txt"
# ИСКЛЮЧАЕМ Music и Audiobooks по прямому требованию пользователя!
FOLDERS_TO_PULL = [
("Download", "/storage/emulated/0/Download", DEST_ROOT / "Download"),
("футажи", "/storage/emulated/0/футажи", DEST_ROOT / "футажи"),
("Pictures", "/storage/emulated/0/Pictures", DEST_ROOT / "Pictures"),
("DCIM/MyAlbums", "/storage/emulated/0/DCIM/MyAlbums", DEST_ROOT / "DCIM/MyAlbums"),
("DCIM/Camera", "/storage/emulated/0/DCIM/Camera", DEST_ROOT / "DCIM/Camera"),
]
def log(msg: str):
timestamp = time.strftime("[%Y-%m-%d %H:%M:%S]")
line = f"{timestamp} {msg}"
print(line, flush=True)
with open(LOG_FILE, "a", encoding="utf-8") as f:
f.write(line + "\n")
def main():
log("=== ПЕРЕНОС ДАННЫХ СО СМАРТФОНА (МУЗЫКА ОСТАЁТСЯ НА ТЕЛЕФОНЕ) ===")
start_all = time.time()
for idx, (name, src_path, dst_path) in enumerate(FOLDERS_TO_PULL, 1):
dst_path.parent.mkdir(parents=True, exist_ok=True)
log(f"[{idx}/{len(FOLDERS_TO_PULL)}] Копирование «{name}» ({src_path} -> {dst_path})...")
t0 = time.time()
cmd = ["adb", "-s", "3aeea825", "pull", src_path, str(dst_path.parent)]
try:
res = subprocess.run(cmd, capture_output=True, text=True)
elapsed = time.time() - t0
if res.returncode == 0:
log(f"-> Успешно перенесено «{name}» за {elapsed:.1f} сек.")
else:
log(f"-> Завершено с предупреждением «{name}» ({elapsed:.1f} сек): {res.stderr.strip()[:200]}")
except Exception as e:
log(f"-> Ошибка при копировании «{name}»: {e}")
total_elapsed = time.time() - start_all
log(f"=== ВСЕ ВЫБРАННЫЕ ПАПКИ УСПЕШНО ПЕРЕНЕСЕНЫ за {total_elapsed / 60:.1f} минут! (Музыка осталась на телефоне) ===")
if __name__ == "__main__":
main()