Vorbereitung Release 0.2.0 #83

Merged
tpeetz merged 178 commits from develop/0.2.0 into main 2026-01-29 22:50:42 +00:00
Showing only changes of commit d63629ba5c - Show all commits
+46 -5
View File
@@ -2,15 +2,20 @@
download files with URLs from DB
"""
import os
import re
import subprocess
from argparse import ArgumentDefaultsHelpFormatter, ArgumentParser
from datetime import datetime
from enum import Enum, auto
from pathlib import Path
import sys
from typing import Any, Dict
from uuid import UUID
from platformdirs import PlatformDirs
import requests
import yaml
from config import get_logger
@@ -102,9 +107,9 @@ def is_file_downloaded(media_file: dict, dir: Path) -> FileStatus:
def update_status(item_id: UUID, file_info: dict):
update = requests.put(
f"http://127.0.0.1:8800/api/media/files/{item_id}", json=file_info
)
url: str = f"http://127.0.0.1:8800/api/media/files/{item_id}"
headers: Dict[str, str] = {"Authorization": f"Bearer {bearer_token}"}
update = requests.put(url, headers=headers, json=file_info)
log.info(f"update status: {update.status_code}")
log.info(f"update result: {update.json()}")
@@ -127,14 +132,50 @@ def rename_file(file_info: dict):
if __name__ == "__main__":
log = get_logger(args.verbose, args.config)
log.info("kontor.download started")
response = requests.get("http://127.0.0.1:8800/api/media/files?download=true")
api_data: Dict[str, Any] = {}
token: str | None = None
host: str | None = None
port: int = 0
dirs = PlatformDirs(args.config)
api_config = Path(dirs.user_config_dir, 'api.yaml')
with open(api_config, 'rt') as f:
api_data = yaml.safe_load(f.read())
if not api_data:
log.fatal("API configuration is missing")
sys.exit(1)
host = api_data["host"]
port = api_data["port"]
if not token:
log.info("Call login first")
login_url = f"http://{host}:{port}/login"
login_data = {}
login_data['user'] = api_data["user"]
login_data['pass'] = api_data["pass"]
response = requests.post(login_url, data=login_data)
status = response.status_code
log.info(f"Status: {status}")
if status != 200:
log.fatal("authentication failed")
sys.exit(0)
data = response.json()
token = data['token']
api_data['token'] = token
with open(api_config, 'w') as f:
yaml.dump(api_data, f)
else:
token = api_data['token']
url: str = f"http://{host}:8500/api/media/files?download=true"
headers: Dict[str, str] = {"Authorization": f"Bearer {token}"}
response = requests.get(url, headers=headers)
log.info(f"Status: {response.status_code}")
data = response.json()
entries_count = len(data)
log.info(f"data: {entries_count}")
mediafile_index = 1
log.debug(f"data: {len(data)}")
log.debug(f"data: {data}")
missing_actors = {}
if args.dry_run:
sys.exit(0)
if args.limit:
log.warning(f"check the first {args.limit} links")
for item in data: