Skip to content
Snippets Groups Projects
Commit 4b496099 authored by Štěpán Farka's avatar Štěpán Farka Committed by jan.bednarik
Browse files

[ADD] support for stredocesky, nested folders

parent dde57255
Branches
No related tags found
2 merge requests!442Release,!432Feature/majak imports
......@@ -58,6 +58,7 @@ class ImgProcessor(InlineProcessor):
el.attrib["alt"] = m.group(1)
el.attrib["format"] = "left"
collection = get_collection()
# TODO FIX REPO_NAME
image_obj = get_or_create_image(
params["path"], m.group(2), collection=collection, repo_name=""
)
......@@ -198,8 +199,8 @@ def get_or_create_image(path, file_path, collection, repo_name) -> Image or None
except FileNotFoundError:
img_name = file_path.split("/")[-1]
img_assets_folder = repo_name.split(".")[0] # TODO make as form field
img_url = "https://a.pirati.cz/{}/img/posts/{}".format(
img_assets_folder, img_name
img_url = "https://a.pirati.cz/{}/img/{}".format(
img_assets_folder, file_path
)
img_path = os.path.join(path, img_name)
try:
......@@ -290,7 +291,58 @@ def perform_import(
articlepath = site_config.get("articlepath", "aktuality")
for fn in os.listdir(os.path.join(path, POSTS_DIR)):
fname = os.path.join(POSTS_DIR, fn)
if os.path.isdir(os.path.join(path, POSTS_DIR, fn)):
posts_sub_folder = os.path.join(path, POSTS_DIR, fn)
for sub_fn in os.listdir(posts_sub_folder):
file_path = os.path.join(posts_sub_folder, sub_fn)
success_counter = article_parser(
articlepath,
path,
sub_fn,
file_path,
article_parent_page,
title_suffix,
dry_run,
repo_name,
success_counter,
site,
)
else:
file_path = os.path.join(POSTS_DIR, fn)
success_counter = article_parser(
articlepath,
path,
fn,
file_path,
article_parent_page,
title_suffix,
dry_run,
repo_name,
success_counter,
site,
)
if success_counter:
base_msg = "Lze importovat" if dry_run else "Úspěšně naimportováno"
message_list.append(
{"level": SUCCESS, "text": "{} {} článků".format(base_msg, success_counter)}
)
return message_list
def article_parser(
articlepath: str,
path: str,
fn,
file_path,
article_parent_page,
title_suffix,
dry_run,
repo_name,
success_counter,
site,
):
match = re.match(r"(\d*)-(\d*)-(\d*)-(.*)\.(.*)", fn)
if match:
y = match.group(1)
......@@ -301,15 +353,14 @@ def perform_import(
if ext == "md":
article, success = import_post(
path, fname, article_parent_page, title_suffix, dry_run, repo_name
path, file_path, article_parent_page, title_suffix, dry_run, repo_name
)
if not success:
continue
return success_counter
if dry_run:
success_counter += 1
continue
return success_counter + 1
Redirect.objects.get_or_create(
site=site,
......@@ -329,11 +380,4 @@ def perform_import(
if dry_run:
message_list.append({"level": WARNING, "text": msg})
if success_counter:
base_msg = "Lze importovat" if dry_run else "Úspěšně naimportováno"
message_list.append(
{"level": SUCCESS, "text": "{} {} článků".format(base_msg, success_counter)}
)
return message_list
return success_counter
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment