diff --git a/number_parser.py b/number_parser.py index 3155cee..28c6b2c 100755 --- a/number_parser.py +++ b/number_parser.py @@ -43,16 +43,9 @@ def get_number(debug,filepath: str) -> str: lower_check = filename.lower() if 'fc2' in lower_check: filename = lower_check.replace('ppv', '').replace('--', '-').replace('_', '-').upper() - file_number = re.search(r'\w+(-|_)\w+', filename, re.A).group() - if "tokyo" in lower_check and "hot" in lower_check: - file_number = re.search(r'(cz|gedo|k|n|red-|se)\d{2,4}', lower_check, re.A).group() - elif "carib" in lower_check: - file_number = str(re.search(r'\d{6}(-|_)\d{3}', lower_check, re.A).group()).replace('_', '-') - elif "1pon" in lower_check or "paco" in lower_check: - file_number = str(re.search(r'\d{6}(-|_)\d{3}', lower_check, re.A).group()).replace('-', '_') - elif "10mu" in lower_check: - file_number = str(re.search(r'\d{6}(-|_)\d{2}', lower_check, re.A).group()).replace('-', '_') - return file_number + if file_number := get_number_by_dict(lower_check): + return file_number + return str(re.search(r'\w+(-|_)\w+', filename, re.A).group()) else: # 提取不含减号-的番号,FANZA CID # 欧美番号匹配规则 oumei = re.search(r'[a-zA-Z]+\.\d{2}\.\d{2}\.\d{2}', filepath) @@ -77,16 +70,9 @@ def get_number(debug,filepath: str) -> str: lower_check = filename.lower() if 'fc2' in lower_check: filename = lower_check.replace('ppv', '').replace('--', '-').replace('_', '-').upper() - file_number = re.search(r'\w+(-|_)\w+', filename, re.A).group() - if "tokyo" in lower_check and "hot" in lower_check: - file_number = re.search(r'(cz|gedo|k|n|red-|se)\d{2,4}', lower_check, re.A).group() - elif "carib" in lower_check: - file_number = str(re.search(r'\d{6}(-|_)\d{3}', lower_check, re.A).group()).replace('_', '-') - elif "1pon" in lower_check or "paco" in lower_check: - file_number = str(re.search(r'\d{6}(-|_)\d{3}', lower_check, re.A).group()).replace('-', '_') - elif "10mu" in lower_check: - file_number = str(re.search(r'\d{6}(-|_)\d{2}', lower_check, re.A).group()).replace('-', '_') - return file_number + if file_number := get_number_by_dict(lower_check): + return file_number + return str(re.search(r'\w+(-|_)\w+', filename, re.A).group()) else: # 提取不含减号-的番号,FANZA CID # 欧美番号匹配规则 oumei = re.search(r'[a-zA-Z]+\.\d{2}\.\d{2}\.\d{2}', filepath) @@ -101,6 +87,19 @@ def get_number(debug,filepath: str) -> str: except: return re.search(r'(.+?)\.', filepath)[0] +G_TAKE_NUM_RULES = { + 'tokyo' : lambda x:str(re.search(r'(cz|gedo|k|n|red-|se)\d{2,4}', x, re.A).group()), + 'carib' : lambda x:str(re.search(r'\d{6}(-|_)\d{3}', x, re.A).group()).replace('_', '-'), + '1pon' : lambda x:str(re.search(r'\d{6}(-|_)\d{3}', x, re.A).group()).replace('-', '_'), + '10mu' : lambda x:str(re.search(r'\d{6}(-|_)\d{2}', lower_check, re.A).group()).replace('-', '_'), + 'x-art' : lambda x:str(re.search(r'x-art\.\d{2}\.\d{2}\.\d{2}', x, re.A).group()) + } + +def get_number_by_dict(lower_filename: str) -> str: + for k,v in G_TAKE_NUM_RULES.items(): + if k in lower_filename: + return v(lower_filename) + return None # if __name__ == "__main__": # import doctest