add missing endpoints
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 5s

This commit is contained in:
2026-05-17 19:52:00 +02:00
parent 1b58ec8e27
commit cd033f458d
17 changed files with 466 additions and 143 deletions
+17 -22
View File
@@ -2,7 +2,6 @@
download files with URLs from DB
"""
import os
import re
import subprocess
import sys
@@ -10,16 +9,17 @@ from argparse import ArgumentDefaultsHelpFormatter, ArgumentParser
from datetime import datetime
from enum import Enum, auto
from pathlib import Path
from typing import Any, Dict
from typing import Dict
from logging import Logger
from uuid import UUID
import requests
from config import get_api_config, get_logger
from api import Server, get_api_config, get_logger
parser = ArgumentParser(formatter_class=ArgumentDefaultsHelpFormatter)
parser.add_argument("--verbose", "-v", action="count", default=0)
parser.add_argument("--config", "-c", default="kontor-docker")
parser.add_argument("--config", "-c", default="kontor-api")
parser.add_argument("--dir", "-d", default="/data/media")
parser.add_argument("--limit", "-l", type=int, help="maximum number of links to check")
parser.add_argument("--tool", "-t", default="yt-dlp")
@@ -104,12 +104,8 @@ def is_file_downloaded(media_file: dict, dir: Path) -> FileStatus:
return FileStatus.UNKNOWN
def update_status(item_id: UUID, file_info: dict, api_data: Dict[str, Any]):
host = api_data["host"]
token = api_data["token"]
url: str = f"http://{host}:{port}/api/media/files/{item_id}"
headers: Dict[str, str] = {"Authorization": f"Bearer {token}"}
update = requests.put(url, headers=headers, json=file_info)
def update_status(item_id: UUID, file_info: dict, server: Server, log: Logger):
update = server.update(log, "media_file", item_id, file_info)
log.info(f"update status: {update.status_code}")
log.info(f"update result: {update.json()}")
@@ -132,15 +128,14 @@ def rename_file(file_info: dict):
if __name__ == "__main__":
log = get_logger(args.verbose, args.config)
log.info("kontor.download started")
api_data = get_api_config(log, args.config)
host = api_data["host"]
port = api_data["port"]
token = api_data["token"]
url: str = f"http://{host}:{port}/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()
apiConfig = get_api_config(log, args.config)
server: Server = apiConfig.server[0]
data = server.request(log=log, table="media_file", param="download=true")
# url: str = f"http://{host}:{port}/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
@@ -158,15 +153,15 @@ if __name__ == "__main__":
match download_status:
case FileStatus.DOWNLOADED:
rename_file(item)
update_status(file_id, item, api_data)
update_status(file_id, item, server=server, log=log)
case FileStatus.RENAMED:
log.info("update status")
update_status(file_id, item, api_data)
update_status(file_id, item, server=server, log=log)
case FileStatus.UNKNOWN:
download_file(link, item, args.dir)
rename_file(item)
log.info(f"{item}")
update_status(file_id, item, api_data)
update_status(file_id, item, server=server, log=log)
log.warning(f"processed {mediafile_index}/{entries_count}")
if args.limit and args.limit <= mediafile_index:
break