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 logging import Logger
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
import sys
|
||||||
from typing import Any, Dict, List, Optional
|
from typing import Any, Dict, List, Optional
|
||||||
from argparse import ArgumentParser, ArgumentDefaultsHelpFormatter
|
from argparse import ArgumentParser, ArgumentDefaultsHelpFormatter
|
||||||
from urllib.parse import urlparse
|
from urllib.parse import urlparse
|
||||||
import click
|
|
||||||
from simple_term_menu import TerminalMenu
|
from simple_term_menu import TerminalMenu
|
||||||
|
|
||||||
from api import Server, get_api_config, get_logger
|
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")
|
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__":
|
if __name__ == "__main__":
|
||||||
logger = get_logger(args.verbose, args.config)
|
logger = get_logger(args.verbose, args.config)
|
||||||
logger.info("kontor.check_kontor started")
|
logger.info("kontor.check_kontor started")
|
||||||
APICONFIG = get_api_config(logger, args.config)
|
APICONFIG = get_api_config(logger, args.config)
|
||||||
first_server: Optional[Server] = APICONFIG.get_server(args.server)
|
first_server: Optional[Server] = APICONFIG.get_server(args.server)
|
||||||
if not first_server:
|
if not first_server:
|
||||||
SystemExit(2)
|
sys.exit(2)
|
||||||
dirs: List[str] = args.add_dir
|
dirs: List[str] = args.add_dir
|
||||||
if dirs is None:
|
if dirs is None:
|
||||||
dirs = [args.dir]
|
dirs = [args.dir]
|
||||||
@@ -112,8 +142,8 @@ if __name__ == "__main__":
|
|||||||
logger.info(dirs)
|
logger.info(dirs)
|
||||||
logger.info("kontor.check_kontor.check_duplicate_links")
|
logger.info("kontor.check_kontor.check_duplicate_links")
|
||||||
check_duplicate_links(logger, first_server, dirs)
|
check_duplicate_links(logger, first_server, dirs)
|
||||||
# logger.info("kontor.check_kontor.update_cloud_link_with_found_files")
|
logger.info("kontor.check_kontor.check_media_dirs")
|
||||||
# update_cloud_link_with_found_files(data_dir, mariadb_conn, args.dry_run)
|
check_media_dirs(logger, first_server, dirs)
|
||||||
# logger.info("kontor.check_kontor.get_ids_from_column_cloud_link")
|
# logger.info("kontor.check_kontor.get_ids_from_column_cloud_link")
|
||||||
# get_ids_from_column_cloud_link(link_list, mariadb_cursor)
|
# get_ids_from_column_cloud_link(link_list, mariadb_cursor)
|
||||||
# logger.info('found {} ids in column cloud_link'.format(len(link_list)))
|
# logger.info('found {} ids in column cloud_link'.format(len(link_list)))
|
||||||
|
|||||||
Reference in New Issue
Block a user