typo transalte to translate,and some blank lines
This commit is contained in:
@@ -3,18 +3,21 @@ import json
|
|||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
import sys
|
import sys
|
||||||
|
import time
|
||||||
import shutil
|
import shutil
|
||||||
import typing
|
import typing
|
||||||
import urllib3
|
import urllib3
|
||||||
import signal
|
import signal
|
||||||
import platform
|
import platform
|
||||||
|
import multiprocessing
|
||||||
|
from datetime import datetime, timedelta
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
|
||||||
from opencc import OpenCC
|
from opencc import OpenCC
|
||||||
|
|
||||||
import ADC_function
|
|
||||||
import config
|
import config
|
||||||
from datetime import datetime, timedelta
|
|
||||||
import time
|
|
||||||
from pathlib import Path
|
|
||||||
from ADC_function import file_modification_days, get_html, parallel_download_files
|
from ADC_function import file_modification_days, get_html, parallel_download_files
|
||||||
from number_parser import get_number
|
from number_parser import get_number
|
||||||
from core import core_main, moveFailedFolder
|
from core import core_main, moveFailedFolder
|
||||||
@@ -581,7 +584,7 @@ def main():
|
|||||||
|
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
|
|
||||||
import multiprocessing
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
multiprocessing.freeze_support()
|
multiprocessing.freeze_support()
|
||||||
main()
|
main()
|
||||||
|
|||||||
@@ -235,8 +235,8 @@ def get_data_from_json(file_number, oCC): # 从JSON返回元数据
|
|||||||
json_data['studio'] = studio
|
json_data['studio'] = studio
|
||||||
json_data['director'] = director
|
json_data['director'] = director
|
||||||
|
|
||||||
if conf.is_transalte():
|
if conf.is_translate():
|
||||||
translate_values = conf.transalte_values().split(",")
|
translate_values = conf.translate_values().split(",")
|
||||||
for translate_value in translate_values:
|
for translate_value in translate_values:
|
||||||
if json_data[translate_value] == "":
|
if json_data[translate_value] == "":
|
||||||
continue
|
continue
|
||||||
@@ -248,12 +248,12 @@ def get_data_from_json(file_number, oCC): # 从JSON返回元数据
|
|||||||
continue
|
continue
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
if conf.get_transalte_engine() == "azure":
|
if conf.get_translate_engine() == "azure":
|
||||||
t = translate(
|
t = translate(
|
||||||
json_data[translate_value],
|
json_data[translate_value],
|
||||||
target_language="zh-Hans",
|
target_language="zh-Hans",
|
||||||
engine=conf.get_transalte_engine(),
|
engine=conf.get_translate_engine(),
|
||||||
key=conf.get_transalte_key(),
|
key=conf.get_translate_key(),
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
t = translate(json_data[translate_value])
|
t = translate(json_data[translate_value])
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ success_output_folder=JAV_output
|
|||||||
soft_link=0
|
soft_link=0
|
||||||
failed_move=1
|
failed_move=1
|
||||||
auto_exit=0
|
auto_exit=0
|
||||||
transalte_to_sc=0
|
translate_to_sc=0
|
||||||
multi_threading=0
|
multi_threading=0
|
||||||
;actor_gender value: female(♀) or male(♂) or both(♀ ♂) or all(♂ ♀ ⚧)
|
;actor_gender value: female(♀) or male(♂) or both(♀ ♂) or all(♂ ♀ ⚧)
|
||||||
actor_gender=female
|
actor_gender=female
|
||||||
@@ -51,7 +51,7 @@ folders=failed,JAV_output
|
|||||||
switch=0
|
switch=0
|
||||||
|
|
||||||
; 机器翻译
|
; 机器翻译
|
||||||
[transalte]
|
[translate]
|
||||||
switch=0
|
switch=0
|
||||||
;可选项 google-free,azure
|
;可选项 google-free,azure
|
||||||
engine=google-free
|
engine=google-free
|
||||||
|
|||||||
106
config.py
106
config.py
@@ -5,18 +5,17 @@ import configparser
|
|||||||
import time
|
import time
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
|
|
||||||
G_conf_override = {
|
G_conf_override = {
|
||||||
# index 0 save Config() first instance for quick access by using getInstance()
|
# index 0 save Config() first instance for quick access by using getInstance()
|
||||||
0 : None,
|
0: None,
|
||||||
# register override config items
|
# register override config items
|
||||||
"common:main_mode" : None,
|
"common:main_mode": None,
|
||||||
"common:source_folder" : None,
|
"common:source_folder": None,
|
||||||
"common:auto_exit" : None,
|
"common:auto_exit": None,
|
||||||
"common:nfo_skip_days" : None,
|
"common:nfo_skip_days": None,
|
||||||
"common:stop_counter" : None,
|
"common:stop_counter": None,
|
||||||
"common:ignore_failed_list" : None,
|
"common:ignore_failed_list": None,
|
||||||
"debug_mode:switch" : None
|
"debug_mode:switch": None
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -81,7 +80,7 @@ class Config:
|
|||||||
sys.exit(2)
|
sys.exit(2)
|
||||||
# 用户目录才确定具有写权限,因此选择 ~/mdc.ini 作为配置文件生成路径,而不是有可能并没有写权限的
|
# 用户目录才确定具有写权限,因此选择 ~/mdc.ini 作为配置文件生成路径,而不是有可能并没有写权限的
|
||||||
# 当前目录。目前版本也不再鼓励使用当前路径放置配置文件了,只是作为多配置文件的切换技巧保留。
|
# 当前目录。目前版本也不再鼓励使用当前路径放置配置文件了,只是作为多配置文件的切换技巧保留。
|
||||||
write_path = path_search_order[2] # Path.home() / "mdc.ini"
|
write_path = path_search_order[2] # Path.home() / "mdc.ini"
|
||||||
write_path.write_text(res_path.read_text(encoding='utf-8'), encoding='utf-8')
|
write_path.write_text(res_path.read_text(encoding='utf-8'), encoding='utf-8')
|
||||||
print("Config file '{}' created.".format(write_path.resolve()))
|
print("Config file '{}' created.".format(write_path.resolve()))
|
||||||
input("Press Enter key exit...")
|
input("Press Enter key exit...")
|
||||||
@@ -98,14 +97,18 @@ class Config:
|
|||||||
# print("[-]",e)
|
# print("[-]",e)
|
||||||
# sys.exit(3)
|
# sys.exit(3)
|
||||||
# #self.conf = self._default_config()
|
# #self.conf = self._default_config()
|
||||||
|
|
||||||
def getboolean_override(self, section, item) -> bool:
|
def getboolean_override(self, section, item) -> bool:
|
||||||
return self.conf.getboolean(section, item) if G_conf_override[f"{section}:{item}"] is None else bool(G_conf_override[f"{section}:{item}"])
|
return self.conf.getboolean(section, item) if G_conf_override[f"{section}:{item}"] is None else bool(
|
||||||
|
G_conf_override[f"{section}:{item}"])
|
||||||
|
|
||||||
def getint_override(self, section, item) -> int:
|
def getint_override(self, section, item) -> int:
|
||||||
return self.conf.getint(section, item) if G_conf_override[f"{section}:{item}"] is None else int(G_conf_override[f"{section}:{item}"])
|
return self.conf.getint(section, item) if G_conf_override[f"{section}:{item}"] is None else int(
|
||||||
|
G_conf_override[f"{section}:{item}"])
|
||||||
|
|
||||||
def get_override(self, section, item) -> str:
|
def get_override(self, section, item) -> str:
|
||||||
return self.conf.get(section, item) if G_conf_override[f"{section}:{item}"] is None else str(G_conf_override[f"{section}:{item}"])
|
return self.conf.get(section, item) if G_conf_override[f"{section}:{item}"] is None else str(
|
||||||
|
G_conf_override[f"{section}:{item}"])
|
||||||
|
|
||||||
def main_mode(self) -> int:
|
def main_mode(self) -> int:
|
||||||
try:
|
try:
|
||||||
@@ -127,34 +130,46 @@ class Config:
|
|||||||
|
|
||||||
def soft_link(self) -> bool:
|
def soft_link(self) -> bool:
|
||||||
return self.conf.getboolean("common", "soft_link")
|
return self.conf.getboolean("common", "soft_link")
|
||||||
|
|
||||||
def failed_move(self) -> bool:
|
def failed_move(self) -> bool:
|
||||||
return self.conf.getboolean("common", "failed_move")
|
return self.conf.getboolean("common", "failed_move")
|
||||||
|
|
||||||
def auto_exit(self) -> bool:
|
def auto_exit(self) -> bool:
|
||||||
return self.getboolean_override("common", "auto_exit")
|
return self.getboolean_override("common", "auto_exit")
|
||||||
def transalte_to_sc(self) -> bool:
|
|
||||||
return self.conf.getboolean("common", "transalte_to_sc")
|
def translate_to_sc(self) -> bool:
|
||||||
|
return self.conf.getboolean("common", "translate_to_sc")
|
||||||
|
|
||||||
def multi_threading(self) -> bool:
|
def multi_threading(self) -> bool:
|
||||||
return self.conf.getboolean("common", "multi_threading")
|
return self.conf.getboolean("common", "multi_threading")
|
||||||
|
|
||||||
def del_empty_folder(self) -> bool:
|
def del_empty_folder(self) -> bool:
|
||||||
return self.conf.getboolean("common", "del_empty_folder")
|
return self.conf.getboolean("common", "del_empty_folder")
|
||||||
|
|
||||||
def nfo_skip_days(self) -> int:
|
def nfo_skip_days(self) -> int:
|
||||||
try:
|
try:
|
||||||
return self.getint_override("common", "nfo_skip_days")
|
return self.getint_override("common", "nfo_skip_days")
|
||||||
except:
|
except:
|
||||||
return 30
|
return 30
|
||||||
|
|
||||||
def stop_counter(self) -> int:
|
def stop_counter(self) -> int:
|
||||||
try:
|
try:
|
||||||
return self.getint_override("common", "stop_counter")
|
return self.getint_override("common", "stop_counter")
|
||||||
except:
|
except:
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
def ignore_failed_list(self) -> bool:
|
def ignore_failed_list(self) -> bool:
|
||||||
return self.getboolean_override("common", "ignore_failed_list")
|
return self.getboolean_override("common", "ignore_failed_list")
|
||||||
|
|
||||||
def download_only_missing_images(self) -> bool:
|
def download_only_missing_images(self) -> bool:
|
||||||
return self.conf.getboolean("common", "download_only_missing_images")
|
return self.conf.getboolean("common", "download_only_missing_images")
|
||||||
|
|
||||||
def mapping_table_validity(self) -> int:
|
def mapping_table_validity(self) -> int:
|
||||||
return self.conf.getint("common", "mapping_table_validity")
|
return self.conf.getint("common", "mapping_table_validity")
|
||||||
def is_transalte(self) -> bool:
|
|
||||||
return self.conf.getboolean("transalte", "switch")
|
def is_translate(self) -> bool:
|
||||||
|
return self.conf.getboolean("translate", "switch")
|
||||||
|
|
||||||
def is_trailer(self) -> bool:
|
def is_trailer(self) -> bool:
|
||||||
return self.conf.getboolean("trailer", "switch")
|
return self.conf.getboolean("trailer", "switch")
|
||||||
|
|
||||||
@@ -190,18 +205,25 @@ class Config:
|
|||||||
return extrafanart_download
|
return extrafanart_download
|
||||||
except ValueError:
|
except ValueError:
|
||||||
self._exit("extrafanart_folder")
|
self._exit("extrafanart_folder")
|
||||||
def get_transalte_engine(self) -> str:
|
|
||||||
return self.conf.get("transalte","engine")
|
def get_translate_engine(self) -> str:
|
||||||
# def get_transalte_appId(self) ->str:
|
return self.conf.get("translate", "engine")
|
||||||
# return self.conf.get("transalte","appid")
|
|
||||||
def get_transalte_key(self) -> str:
|
# def get_translate_appId(self) ->str:
|
||||||
return self.conf.get("transalte","key")
|
# return self.conf.get("translate","appid")
|
||||||
def get_transalte_delay(self) -> int:
|
|
||||||
return self.conf.getint("transalte","delay")
|
def get_translate_key(self) -> str:
|
||||||
def transalte_values(self) -> str:
|
return self.conf.get("translate", "key")
|
||||||
return self.conf.get("transalte", "values")
|
|
||||||
|
def get_translate_delay(self) -> int:
|
||||||
|
return self.conf.getint("translate", "delay")
|
||||||
|
|
||||||
|
def translate_values(self) -> str:
|
||||||
|
return self.conf.get("translate", "values")
|
||||||
|
|
||||||
def get_translate_service_site(self) -> str:
|
def get_translate_service_site(self) -> str:
|
||||||
return self.conf.get("transalte", "service_site")
|
return self.conf.get("translate", "service_site")
|
||||||
|
|
||||||
def proxy(self):
|
def proxy(self):
|
||||||
try:
|
try:
|
||||||
sec = "proxy"
|
sec = "proxy"
|
||||||
@@ -284,21 +306,21 @@ class Config:
|
|||||||
def storyline_show(self) -> int:
|
def storyline_show(self) -> int:
|
||||||
try:
|
try:
|
||||||
v = self.conf.getint("storyline", "show_result")
|
v = self.conf.getint("storyline", "show_result")
|
||||||
return v if v in (0,1,2) else 2 if v > 2 else 0
|
return v if v in (0, 1, 2) else 2 if v > 2 else 0
|
||||||
except:
|
except:
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
def storyline_mode(self) -> int:
|
def storyline_mode(self) -> int:
|
||||||
try:
|
try:
|
||||||
v = self.conf.getint("storyline", "run_mode")
|
v = self.conf.getint("storyline", "run_mode")
|
||||||
return v if v in (0,1,2) else 2 if v > 2 else 0
|
return v if v in (0, 1, 2) else 2 if v > 2 else 0
|
||||||
except:
|
except:
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
def cc_convert_mode(self) -> int:
|
def cc_convert_mode(self) -> int:
|
||||||
try:
|
try:
|
||||||
v = self.conf.getint("cc_convert", "mode")
|
v = self.conf.getint("cc_convert", "mode")
|
||||||
return v if v in (0,1,2) else 2 if v > 2 else 0
|
return v if v in (0, 1, 2) else 2 if v > 2 else 0
|
||||||
except:
|
except:
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
@@ -320,7 +342,6 @@ class Config:
|
|||||||
except:
|
except:
|
||||||
return "hog"
|
return "hog"
|
||||||
|
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _exit(sec: str) -> None:
|
def _exit(sec: str) -> None:
|
||||||
print("[-] Read config error! Please check the {} section in config.ini", sec)
|
print("[-] Read config error! Please check the {} section in config.ini", sec)
|
||||||
@@ -340,7 +361,7 @@ class Config:
|
|||||||
conf.set(sec1, "soft_link", "0")
|
conf.set(sec1, "soft_link", "0")
|
||||||
conf.set(sec1, "failed_move", "1")
|
conf.set(sec1, "failed_move", "1")
|
||||||
conf.set(sec1, "auto_exit", "0")
|
conf.set(sec1, "auto_exit", "0")
|
||||||
conf.set(sec1, "transalte_to_sc", "1")
|
conf.set(sec1, "translate_to_sc", "1")
|
||||||
# actor_gender value: female or male or both or all(含人妖)
|
# actor_gender value: female or male or both or all(含人妖)
|
||||||
conf.set(sec1, "actor_gender", "female")
|
conf.set(sec1, "actor_gender", "female")
|
||||||
conf.set(sec1, "del_empty_folder", "1")
|
conf.set(sec1, "del_empty_folder", "1")
|
||||||
@@ -358,7 +379,6 @@ class Config:
|
|||||||
conf.set(sec2, "type", "socks5")
|
conf.set(sec2, "type", "socks5")
|
||||||
conf.set(sec2, "cacert_file", "")
|
conf.set(sec2, "cacert_file", "")
|
||||||
|
|
||||||
|
|
||||||
sec3 = "Name_Rule"
|
sec3 = "Name_Rule"
|
||||||
conf.add_section(sec3)
|
conf.add_section(sec3)
|
||||||
conf.set(sec3, "location_rule", "actor + '/' + number")
|
conf.set(sec3, "location_rule", "actor + '/' + number")
|
||||||
@@ -382,7 +402,7 @@ class Config:
|
|||||||
conf.add_section(sec7)
|
conf.add_section(sec7)
|
||||||
conf.set(sec7, "switch", "0")
|
conf.set(sec7, "switch", "0")
|
||||||
|
|
||||||
sec8 = "transalte"
|
sec8 = "translate"
|
||||||
conf.add_section(sec8)
|
conf.add_section(sec8)
|
||||||
conf.set(sec8, "switch", "0")
|
conf.set(sec8, "switch", "0")
|
||||||
conf.set(sec8, "engine", "google-free")
|
conf.set(sec8, "engine", "google-free")
|
||||||
@@ -402,8 +422,10 @@ class Config:
|
|||||||
|
|
||||||
sec11 = "media"
|
sec11 = "media"
|
||||||
conf.add_section(sec11)
|
conf.add_section(sec11)
|
||||||
conf.set(sec11, "media_type", ".mp4,.avi,.rmvb,.wmv,.mov,.mkv,.flv,.ts,.webm,.MP4,.AVI,.RMVB,.WMV,.MOV,.MKV,.FLV,.TS,.WEBM,iso,ISO")
|
conf.set(sec11, "media_type",
|
||||||
conf.set(sec11, "sub_type", ".smi,.srt,.idx,.sub,.sup,.psb,.ssa,.ass,.txt,.usf,.xss,.ssf,.rt,.lrc,.sbv,.vtt,.ttml")
|
".mp4,.avi,.rmvb,.wmv,.mov,.mkv,.flv,.ts,.webm,.MP4,.AVI,.RMVB,.WMV,.MOV,.MKV,.FLV,.TS,.WEBM,iso,ISO")
|
||||||
|
conf.set(sec11, "sub_type",
|
||||||
|
".smi,.srt,.idx,.sub,.sup,.psb,.ssa,.ass,.txt,.usf,.xss,.ssf,.rt,.lrc,.sbv,.vtt,.ttml")
|
||||||
|
|
||||||
sec12 = "watermark"
|
sec12 = "watermark"
|
||||||
conf.add_section(sec12)
|
conf.add_section(sec12)
|
||||||
@@ -464,7 +486,8 @@ class IniProxy():
|
|||||||
'''
|
'''
|
||||||
if self.address:
|
if self.address:
|
||||||
if self.proxytype in self.SUPPORT_PROXY_TYPE:
|
if self.proxytype in self.SUPPORT_PROXY_TYPE:
|
||||||
proxies = {"http": self.proxytype + "://" + self.address, "https": self.proxytype + "://" + self.address}
|
proxies = {"http": self.proxytype + "://" + self.address,
|
||||||
|
"https": self.proxytype + "://" + self.address}
|
||||||
else:
|
else:
|
||||||
proxies = {"http": "http://" + self.address, "https": "https://" + self.address}
|
proxies = {"http": "http://" + self.address, "https": "https://" + self.address}
|
||||||
else:
|
else:
|
||||||
@@ -477,13 +500,16 @@ if __name__ == "__main__":
|
|||||||
def evprint(evstr):
|
def evprint(evstr):
|
||||||
code = compile(evstr, "<string>", "eval")
|
code = compile(evstr, "<string>", "eval")
|
||||||
print('{}: "{}"'.format(evstr, eval(code)))
|
print('{}: "{}"'.format(evstr, eval(code)))
|
||||||
|
|
||||||
|
|
||||||
config = Config()
|
config = Config()
|
||||||
mfilter = {'conf', 'proxy', '_exit', '_default_config', 'getboolean_override', 'getint_override', 'get_override', 'ini_path'}
|
mfilter = {'conf', 'proxy', '_exit', '_default_config', 'getboolean_override', 'getint_override', 'get_override',
|
||||||
|
'ini_path'}
|
||||||
for _m in [m for m in dir(config) if not m.startswith('__') and m not in mfilter]:
|
for _m in [m for m in dir(config) if not m.startswith('__') and m not in mfilter]:
|
||||||
evprint(f'config.{_m}()')
|
evprint(f'config.{_m}()')
|
||||||
pfilter = {'proxies', 'SUPPORT_PROXY_TYPE'}
|
pfilter = {'proxies', 'SUPPORT_PROXY_TYPE'}
|
||||||
# test getInstance()
|
# test getInstance()
|
||||||
assert(getInstance() == config)
|
assert (getInstance() == config)
|
||||||
for _p in [p for p in dir(getInstance().proxy()) if not p.startswith('__') and p not in pfilter]:
|
for _p in [p for p in dir(getInstance().proxy()) if not p.startswith('__') and p not in pfilter]:
|
||||||
evprint(f'getInstance().proxy().{_p}')
|
evprint(f'getInstance().proxy().{_p}')
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user