26
26
from backend .base .helpers import (create_range , extract_year_from_date ,
27
27
filtered_iter )
28
28
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 )
30
31
from backend .implementations .root_folders import RootFolders
31
32
from backend .implementations .volumes import Issue , Volume
32
33
from backend .internals .db_models import FilesDB
@@ -502,9 +503,9 @@ def check_mock_filename(
502
503
id = 0 ,
503
504
volume_id = 0 ,
504
505
comicvine_id = 456 ,
505
- issue_number = "3 " ,
506
+ issue_number = "3b " ,
506
507
calculated_issue_number = create_range (
507
- process_issue_number ("3 " ) or 0.0
508
+ process_issue_number ("3b " ) or 0.0
508
509
)[0 ],
509
510
title = "" ,
510
511
date = "2023-03-04" ,
@@ -540,9 +541,9 @@ def check_mock_filename(
540
541
id = 0 ,
541
542
volume_id = 0 ,
542
543
comicvine_id = 456 ,
543
- issue_number = "4b " ,
544
+ issue_number = "8 " ,
544
545
calculated_issue_number = create_range (
545
- process_issue_number ("4b " ) or 0.0
546
+ process_issue_number ("8 " ) or 0.0
546
547
)[0 ],
547
548
title = "" ,
548
549
date = "2023-03-04" ,
@@ -567,11 +568,12 @@ def check_mock_filename(
567
568
for key , value in namings .items ():
568
569
filepath = join (vf_naming , value )
569
570
for volume_mock , issue_mock in naming_mocks [key ]:
570
- if key == 'special_version ' :
571
+ if key == 'file_naming_special_version ' :
571
572
formatting_data = _get_volume_naming_keys (volume_mock )
572
573
else :
573
574
formatting_data = _get_issue_naming_keys (
574
- volume_mock , issue_mock [0 ])
575
+ volume_mock , issue_mock [0 ]
576
+ )
575
577
576
578
name = filepath .format_map ({
577
579
k : v if v is not None else 'Unknown'
@@ -583,11 +585,32 @@ def check_mock_filename(
583
585
i .calculated_issue_number : extract_year_from_date (i .date )
584
586
for i in issue_mock
585
587
}
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
+ )
591
614
):
592
615
raise InvalidSettingValue (key , value )
593
616
return
0 commit comments