| | import os |
| | from huggingface_hub import HfApi |
| | from datetime import datetime |
| |
|
| | def backup(): |
| | token = os.environ.get('HF_TOKEN') |
| | if not token: |
| | print("❌ HF_TOKEN not found") |
| | return |
| |
|
| | api = HfApi() |
| | repo = os.environ.get('DATASET_NAME') |
| | |
| | print(f"🔄 [SYNC] Starting full backup at {datetime.now()}...") |
| | |
| | try: |
| | api.upload_folder( |
| | folder_path="/data", |
| | repo_id=repo, |
| | repo_type="dataset", |
| | path_in_repo=".", |
| | token=token, |
| | |
| | allow_patterns=[ |
| | "Movies/**", |
| | "Series/**", |
| | "strm/**", |
| | "last_id.txt", |
| | "last_serie.txt", |
| | "jellyfin/config/**", |
| | "jellyfin/data/**" |
| | ], |
| | ignore_patterns=[ |
| | "jellyfin/cache/**", |
| | "jellyfin/logs/**", |
| | "*.tmp" |
| | ], |
| | commit_message=f"Persistent backup: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}" |
| | ) |
| | print("✅ [SYNC] Backup completed successfully!") |
| | except Exception as e: |
| | print(f"⚠️ [SYNC] Error: {e}") |
| |
|
| | if __name__ == "__main__": |
| | backup() |