Add Mapping Table translate

This commit is contained in:
unknown
2021-11-06 22:49:58 +08:00
parent 41f4743149
commit af8d8e881e

View File

@@ -1,8 +1,12 @@
import json import json
import re import re
from multiprocessing.pool import ThreadPool from multiprocessing.pool import ThreadPool
import ADC_function
import config import config
from ADC_function import translate from ADC_function import translate
from lxml import etree
from pathlib import Path
# =========website======== # =========website========
from . import airav from . import airav
@@ -37,6 +41,9 @@ def get_data_from_json(file_number, oCC): # 从JSON返回元数据
iterate through all services and fetch the data iterate through all services and fetch the data
""" """
actor_mapping_data = etree.parse(str(Path.home() / '.local' / 'share' / 'avdc' / 'mapping_actor.xml'))
info_mapping_data = etree.parse(str(Path.home() / '.local' / 'share' / 'avdc' / 'mapping_info.xml'))
func_mapping = { func_mapping = {
"airav": airav.main, "airav": airav.main,
"avsox": avsox.main, "avsox": avsox.main,
@@ -292,12 +299,38 @@ def get_data_from_json(file_number, oCC): # 从JSON返回元数据
if oCC: if oCC:
cc_vars = conf.cc_convert_vars().split(",") cc_vars = conf.cc_convert_vars().split(",")
ccm = conf.cc_convert_mode()
for cc in cc_vars: for cc in cc_vars:
if cc == "actor": if cc == "actor":
json_data['actor_list'] = [oCC.convert(aa) for aa in json_data['actor_list']] try:
json_data['actor'] = oCC.convert(json_data['actor']) if ccm == 1:
json_data['actor_list'] = [actor_mapping_data.xpath('a[contains(@keyword, $name)]/@zh_cn', name=aa)[0] for aa in json_data['actor_list']]
json_data['actor'] = actor_mapping_data.xpath('a[contains(@keyword, $name)]/@zh_cn', name=json_data['actor'])[0]
elif ccm == 2:
json_data['actor_list'] = [actor_mapping_data.xpath('a[contains(@keyword, $name)]/@zh_tw', name=aa)[0] for aa in json_data['actor_list']]
json_data['actor'] = actor_mapping_data.xpath('a[contains(@keyword, $name)]/@zh_tw', name=json_data['actor'])[0]
# elif ccm == 3:
# json_data['actor_list'] = [actor_mapping_data.xpath('a[contains(@keyword, $name)]/@jp', name=aa)[0] for aa in json_data['actor_list']]
# json_data['actor'] = actor_mapping_data.xpath('a[contains(@keyword, $name)]/@jp', name=json_data['actor'])[0]
except:
json_data['actor_list'] = [oCC.convert(aa) for aa in json_data['actor_list']]
json_data['actor'] = oCC.convert(json_data['actor'])
elif cc == "tag": elif cc == "tag":
json_data[cc] = [oCC.convert(t) for t in json_data[cc]] try:
if ccm == 1:
json_data[cc] = [info_mapping_data.xpath('a[contains(@keyword, $name)]/@zh_cn', name=t)[0] for t in json_data[cc]]
json_data[cc] = ADC_function.delete_all_elements_in_list("删除", json_data[cc])
elif ccm == 2:
json_data[cc] = [info_mapping_data.xpath('a[contains(@keyword, $name)]/@zh_tw', name=t)[0] for t in json_data[cc]]
json_data[cc] = ADC_function.delete_all_elements_in_list("删除", json_data[cc])
# elif ccm == 3:
# json_data[cc] = [info_mapping_data.xpath('a[contains(@keyword, $name)]/@jp', name=t)[0] for t in json_data[cc]]
# #json_data[cc] = ADC_function.delete_list_all_elements("删除", json_data[cc])
except:
json_data[cc] = [oCC.convert(t) for t in json_data[cc]]
# elif cc == "studio":
# elif cc == "series":
# elif cc == "label":
else: else:
try: try:
json_data[cc] = oCC.convert(json_data[cc]) json_data[cc] = oCC.convert(json_data[cc])