add checking dirs to cjeck_kontor.py
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 3s
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 3s
This commit is contained in:
@@ -4,10 +4,10 @@ Checks the database kontor
|
||||
|
||||
from logging import Logger
|
||||
from pathlib import Path
|
||||
import sys
|
||||
from typing import Any, Dict, List, Optional
|
||||
from argparse import ArgumentParser, ArgumentDefaultsHelpFormatter
|
||||
from urllib.parse import urlparse
|
||||
import click
|
||||
from simple_term_menu import TerminalMenu
|
||||
|
||||
from api import Server, get_api_config, get_logger
|
||||
@@ -97,13 +97,43 @@ 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]):
|
||||
"""
|
||||
Check if contents of directories match MediaFiles.
|
||||
"""
|
||||
if server is None:
|
||||
log.info("no server selected")
|
||||
return
|
||||
local_files = collect_files(media_dirs)
|
||||
data = server.request(log=log, table="media_file")
|
||||
for item in data:
|
||||
file_name = Path(item["cloud_link"]).name
|
||||
if file_name in local_files:
|
||||
log.debug("File %s found", file_name)
|
||||
local_files.remove(file_name)
|
||||
|
||||
|
||||
def collect_files(media_dirs: List[str]) -> List[str]:
|
||||
"""
|
||||
Collect file names from given directories.
|
||||
"""
|
||||
collected_files: List[str] = []
|
||||
for media_dir in media_dirs:
|
||||
file_dir = Path(media_dir)
|
||||
if file_dir.is_dir():
|
||||
for entry in file_dir.iterdir():
|
||||
if entry.is_file():
|
||||
collected_files.append(entry.name)
|
||||
return collected_files
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
logger = get_logger(args.verbose, args.config)
|
||||
logger.info("kontor.check_kontor started")
|
||||
APICONFIG = get_api_config(logger, args.config)
|
||||
first_server: Optional[Server] = APICONFIG.get_server(args.server)
|
||||
if not first_server:
|
||||
SystemExit(2)
|
||||
sys.exit(2)
|
||||
dirs: List[str] = args.add_dir
|
||||
if dirs is None:
|
||||
dirs = [args.dir]
|
||||
@@ -112,8 +142,8 @@ if __name__ == "__main__":
|
||||
logger.info(dirs)
|
||||
logger.info("kontor.check_kontor.check_duplicate_links")
|
||||
check_duplicate_links(logger, first_server, dirs)
|
||||
# logger.info("kontor.check_kontor.update_cloud_link_with_found_files")
|
||||
# update_cloud_link_with_found_files(data_dir, mariadb_conn, args.dry_run)
|
||||
logger.info("kontor.check_kontor.check_media_dirs")
|
||||
check_media_dirs(logger, first_server, dirs)
|
||||
# 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)))
|
||||
|
||||
Reference in New Issue
Block a user