add Python library diskcache
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 4s

This commit is contained in:
Thomas Peetz
2026-09-17 16:37:02 +02:00
parent 8a5bc7873a
commit c1d913e36b
4 changed files with 27 additions and 7 deletions
+8 -6
View File
@@ -9,6 +9,7 @@ from typing import Any, Dict, List, Optional
from argparse import ArgumentParser, ArgumentDefaultsHelpFormatter
from urllib.parse import urlparse
from simple_term_menu import TerminalMenu
from diskcache import Index
from api import Server, get_api_config
from log import get_logger
@@ -55,14 +56,14 @@ def remove_file(log: Logger, item_data: Dict[str, Any], media_dirs: List[str]):
log.info("File not found %s", media_file.absolute())
def check_duplicate_links(log: Logger, server: Optional[Server], media_dirs: List[str]):
def check_duplicate_links(log: Logger, server: Optional[Server], media_dirs: List[str], index: Index):
"""
Check if there are MediaFile URLs which only differ in hostname.
"""
if server is None:
log.info("no server selected")
return
data = server.request(log=log, table="media_file")
data = server.request(log=log, table="media_file", index=index)
mapping = create_item_id_mapping(log=log, data_list=data)
visited_link_path: Dict[str, str] = {}
duplicate_link_paths: Dict[str, List[str]] = {}
@@ -100,7 +101,7 @@ def check_duplicate_links(log: Logger, server: Optional[Server], media_dirs: Lis
print("selection canceled")
def check_media_dirs(log: Logger, server: Optional[Server], media_dirs: List[str]):
def check_media_dirs(log: Logger, server: Optional[Server], media_dirs: List[str], index: Index):
"""
Check if contents of directories match MediaFiles.
"""
@@ -108,7 +109,7 @@ def check_media_dirs(log: Logger, server: Optional[Server], media_dirs: List[str
log.info("no server selected")
return
local_files = collect_files(media_dirs)
data = server.request(log=log, table="media_file")
data = server.request(log=log, table="media_file", index=index)
for item in data:
file_name = Path(item["cloud_link"]).name
if file_name in local_files:
@@ -143,10 +144,11 @@ if __name__ == "__main__":
else:
dirs.insert(0, args.dir)
logger.info(dirs)
index = Index()
logger.info("kontor.check_kontor.check_duplicate_links")
check_duplicate_links(logger, first_server, dirs)
check_duplicate_links(logger, first_server, dirs, index)
logger.info("kontor.check_kontor.check_media_dirs")
check_media_dirs(logger, first_server, dirs)
check_media_dirs(logger, first_server, dirs, index)
# logger.info("kontor.check_kontor.get_ids_from_column_cloud_link")
# get_ids_from_column_cloud_link(link_list, mariadb_cursor)
# logger.info('found {} ids in column cloud_link'.format(len(link_list)))