剧情简介:增加功能启用开关,因质量airavwiki取繁体简介

This commit is contained in:
lededev
2021-10-31 15:40:39 +08:00
parent 05a0838d86
commit cc0d89805a
4 changed files with 26 additions and 13 deletions

View File

@@ -314,4 +314,6 @@ def special_characters_replacement(text) -> str:
replace('|', 'ǀ'). # U+01C0 LATIN LETTER DENTAL CLICK @ Basic Multilingual Plane replace('|', 'ǀ'). # U+01C0 LATIN LETTER DENTAL CLICK @ Basic Multilingual Plane
replace('‘', ''). # U+02018 LEFT SINGLE QUOTATION MARK replace('‘', ''). # U+02018 LEFT SINGLE QUOTATION MARK
replace('’', ''). # U+02019 RIGHT SINGLE QUOTATION MARK replace('’', ''). # U+02019 RIGHT SINGLE QUOTATION MARK
replace('&', '')) replace('&', '').
replace('…','')
)

View File

@@ -27,6 +27,8 @@ class noThread(object):
def getStoryline(number, title, sites: list=None): def getStoryline(number, title, sites: list=None):
start_time = time.time() start_time = time.time()
conf = config.getInstance() conf = config.getInstance()
if not conf.is_storyline():
return ''
debug = conf.debug() or conf.storyline_show() == 2 debug = conf.debug() or conf.storyline_show() == 2
storyine_sites = conf.storyline_site().split(',') if sites is None else sites storyine_sites = conf.storyline_site().split(',') if sites is None else sites
if is_uncensored(number): if is_uncensored(number):
@@ -137,7 +139,7 @@ def getStoryline_airav(number, debug):
def getStoryline_airavwiki(number, debug): def getStoryline_airavwiki(number, debug):
try: try:
kwd = number[:6] if re.match(r'\d{6}[\-_]\d{2,3}', number) else number kwd = number[:6] if re.match(r'\d{6}[\-_]\d{2,3}', number) else number
url = f'https://www.airav.wiki/api/video/list?barcode=GZAP-055&lang=zh-TW&search={kwd}&lng=zh-CN' url = f'https://www.airav.wiki/api/video/list?lang=zh-TW&lng=zh-TW&search={kwd}'
result, browser = get_html_by_browser(url, return_type='browser') result, browser = get_html_by_browser(url, return_type='browser')
if not result.ok: if not result.ok:
raise ValueError(f"get_html_by_browser('{url}','{number}') failed") raise ValueError(f"get_html_by_browser('{url}','{number}') failed")
@@ -148,7 +150,7 @@ def getStoryline_airavwiki(number, debug):
for r in j["result"]: for r in j["result"]:
n = r['barcode'] n = r['barcode']
if re.search(number, n, re.I): if re.search(number, n, re.I):
link = f'/api/video/barcode/{n}?lng=zh-CN' link = f'/api/video/barcode/{n}?lng=zh-TW'
break break
if link is None: if link is None:
raise ValueError("number not found") raise ValueError("number not found")
@@ -163,6 +165,7 @@ def getStoryline_airavwiki(number, debug):
raise ValueError("detail page number not match, got ->[{detail_number}]") raise ValueError("detail page number not match, got ->[{detail_number}]")
desc = j["result"]['description'] desc = j["result"]['description']
return desc return desc
except Exception as e: except Exception as e:
if debug: if debug:
print(f"[-]MP def getStoryline_airavwiki Error: {e}, number [{number}].") print(f"[-]MP def getStoryline_airavwiki Error: {e}, number [{number}].")
@@ -196,11 +199,11 @@ def getStoryline_58avgo(number, debug):
result = browser.follow_link(link) result = browser.follow_link(link)
if not result.ok or 'playon.aspx' not in browser.url: if not result.ok or 'playon.aspx' not in browser.url:
raise ValueError("detail page not found") raise ValueError("detail page not found")
title = browser.page.select('head > title')[0].text.strip() title = browser.page.select_one('head > title').text.strip()
detail_number = str(re.findall('\[(.*?)]', title)[0]) detail_number = str(re.findall('\[(.*?)]', title)[0])
if not re.search(number, detail_number, re.I): if not re.search(number, detail_number, re.I):
raise ValueError("detail page number not match, got ->[{detail_number}]") raise ValueError("detail page number not match, got ->[{detail_number}]")
return browser.page.select('#ContentPlaceHolder1_Label2')[0].text.strip() return browser.page.select_one('#ContentPlaceHolder1_Label2').text.strip()
except Exception as e: except Exception as e:
if debug: if debug:
print(f"[-]MP getOutline_58avgo Error: {e}, number [{number}].") print(f"[-]MP getOutline_58avgo Error: {e}, number [{number}].")

View File

@@ -83,12 +83,13 @@ water=2
; 剧照 ; 剧照
[extrafanart] [extrafanart]
switch=0 switch=1
parallel_download=5 parallel_download=5
extrafanart_folder=extrafanart extrafanart_folder=extrafanart
; 剧情简介 ; 剧情简介
[storyline] [storyline]
switch=1
; website为javbus javdb avsox xcity carib时site censored_site uncensored_site 为获取剧情简介信息的 ; website为javbus javdb avsox xcity carib时site censored_site uncensored_site 为获取剧情简介信息的
; 可选数据源站点列表。列表内站点同时并发查询,取值优先级由冒号前的序号决定,从小到大,数字小的站点没数据才会采用后面站点获得的。 ; 可选数据源站点列表。列表内站点同时并发查询,取值优先级由冒号前的序号决定,从小到大,数字小的站点没数据才会采用后面站点获得的。
; 其中airavwiki airav avno1 58avgo是中文剧情简介区别是airav只能查有码avno1 airavwiki 有码无码都能查, ; 其中airavwiki airav avno1 58avgo是中文剧情简介区别是airav只能查有码avno1 airavwiki 有码无码都能查,

View File

@@ -246,23 +246,29 @@ class Config:
def debug(self) -> bool: def debug(self) -> bool:
return self.getboolean_override("debug_mode", "switch") return self.getboolean_override("debug_mode", "switch")
def is_storyline(self) -> bool:
try:
return self.conf.getboolean("storyline", "switch")
except:
return True
def storyline_site(self) -> str: def storyline_site(self) -> str:
try: try:
return self.conf.get("storyline", "site") return self.conf.get("storyline", "site")
except: except:
return "avno1" return "1:avno1,4:airavwiki"
def storyline_censored_site(self) -> str: def storyline_censored_site(self) -> str:
try: try:
return self.conf.get("storyline", "censored_site") return self.conf.get("storyline", "censored_site")
except: except:
return "airav,xcity,amazon" return "2:airav,5:xcity,6:amazon"
def storyline_uncensored_site(self) -> str: def storyline_uncensored_site(self) -> str:
try: try:
return self.conf.get("storyline", "uncensored_site") return self.conf.get("storyline", "uncensored_site")
except: except:
return "58avgo" return "3:58avgo"
def storyline_show(self) -> int: def storyline_show(self) -> int:
try: try:
@@ -374,9 +380,10 @@ class Config:
sec14 = "storyline" sec14 = "storyline"
conf.add_section(sec14) conf.add_section(sec14)
conf.set(sec14, "site", "avno1") conf.set(sec14, "switch", 1)
conf.set(sec14, "censored_site", "airav,xcity,amazon") conf.set(sec14, "site", "1:avno1,4:airavwiki")
conf.set(sec14, "uncensored_site", "58avgo") conf.set(sec14, "censored_site", "2:airav,5:xcity,6:amazon")
conf.set(sec14, "uncensored_site", "3:58avgo")
conf.set(sec14, "show_result", 0) conf.set(sec14, "show_result", 0)
conf.set(sec14, "run_mode", 1) conf.set(sec14, "run_mode", 1)