Skip to content

Commit 780cd06

Browse files
committed
Added title and issue number checking on format update
When setting a format in the settings, we test the format out to see whether Kapowarr supports it. In this test, we now also check whether the titles and issue numbers match.
1 parent 177d575 commit 780cd06

File tree

1 file changed

+35
-12
lines changed

1 file changed

+35
-12
lines changed

backend/implementations/naming.py

+35-12
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@
2626
from backend.base.helpers import (create_range, extract_year_from_date,
2727
filtered_iter)
2828
from backend.base.logging import LOGGER
29-
from backend.implementations.matching import file_importing_filter
29+
from backend.implementations.matching import (_match_title,
30+
file_importing_filter)
3031
from backend.implementations.root_folders import RootFolders
3132
from backend.implementations.volumes import Issue, Volume
3233
from backend.internals.db_models import FilesDB
@@ -502,9 +503,9 @@ def check_mock_filename(
502503
id=0,
503504
volume_id=0,
504505
comicvine_id=456,
505-
issue_number="3",
506+
issue_number="3b",
506507
calculated_issue_number=create_range(
507-
process_issue_number("3") or 0.0
508+
process_issue_number("3b") or 0.0
508509
)[0],
509510
title="",
510511
date="2023-03-04",
@@ -540,9 +541,9 @@ def check_mock_filename(
540541
id=0,
541542
volume_id=0,
542543
comicvine_id=456,
543-
issue_number="4b",
544+
issue_number="8",
544545
calculated_issue_number=create_range(
545-
process_issue_number("4b") or 0.0
546+
process_issue_number("8") or 0.0
546547
)[0],
547548
title="",
548549
date="2023-03-04",
@@ -567,11 +568,12 @@ def check_mock_filename(
567568
for key, value in namings.items():
568569
filepath = join(vf_naming, value)
569570
for volume_mock, issue_mock in naming_mocks[key]:
570-
if key == 'special_version':
571+
if key == 'file_naming_special_version':
571572
formatting_data = _get_volume_naming_keys(volume_mock)
572573
else:
573574
formatting_data = _get_issue_naming_keys(
574-
volume_mock, issue_mock[0])
575+
volume_mock, issue_mock[0]
576+
)
575577

576578
name = filepath.format_map({
577579
k: v if v is not None else 'Unknown'
@@ -583,11 +585,32 @@ def check_mock_filename(
583585
i.calculated_issue_number: extract_year_from_date(i.date)
584586
for i in issue_mock
585587
}
586-
if not file_importing_filter(
587-
extract_filename_data(save_name),
588-
volume_mock,
589-
issue_mock,
590-
number_to_year
588+
efd = extract_filename_data(save_name)
589+
if not (
590+
file_importing_filter(
591+
efd,
592+
volume_mock,
593+
issue_mock,
594+
number_to_year
595+
)
596+
and _match_title(efd['series'], volume_mock.title)
597+
and (
598+
# Special version doesn't need issue matching
599+
key == 'file_naming_special_version'
600+
or (
601+
# Issue number must match
602+
key in (
603+
'file_naming', 'file_naming_empty',
604+
'file_naming_vai'
605+
)
606+
and efd["issue_number"] == issue_mock[0].calculated_issue_number
607+
)
608+
or (
609+
# VAI name has issue number labeled as volume number
610+
key == 'file_naming_vai'
611+
and efd["volume_number"] == issue_mock[0].calculated_issue_number
612+
)
613+
)
591614
):
592615
raise InvalidSettingValue(key, value)
593616
return

0 commit comments

Comments
 (0)