11#!/usr/bin/env python3
22# -*- coding: utf-8 -*-
3-
43import re
54import os
65import json
76from configparser import ConfigParser
8- import requests
9- from lxml import etree
10- from Getter import avsox , javbus , javdb , fc2fans_club , mgstage , dmm
7+ from Getter import avsox , javbus , javdb , fc2fans_club , mgstage , dmm , jav321
118
129
1310# ========================================================================获取config
@@ -22,6 +19,35 @@ def get_config():
2219 return config
2320
2421
22+ # ========================================================================是否为无码
23+ def is_uncensored (number ):
24+ if re .match ('^\d{4,}' , number ) or re .match ('n\d{4}' , number ) or 'HEYZO' in number .upper ():
25+ return True
26+ config = get_config ()
27+ prefix_list = str (config ['uncensored' ]['uncensored_prefix' ]).split ('|' )
28+ for pre in prefix_list :
29+ if pre .upper () in number .upper ():
30+ return True
31+ return False
32+
33+
34+ # ========================================================================元数据获取失败检测
35+ def getDataState (json_data ):
36+ if json_data ['title' ] == '' or json_data ['title' ] == 'None' or json_data ['title' ] == 'null' :
37+ return 0
38+ else :
39+ return 1
40+
41+
42+ # ========================================================================去掉异常字符
43+ def escapePath (path , Config ): # Remove escape literals
44+ escapeLiterals = Config ['escape' ]['literals' ]
45+ backslash = '\\ '
46+ for literal in escapeLiterals :
47+ path = path .replace (backslash + literal , '' )
48+ return path
49+
50+
2551# ========================================================================获取视频列表
2652def movie_lists (escape_folder , movie_type , movie_path ):
2753 if escape_folder != '' :
@@ -99,31 +125,27 @@ def getNumber(filepath, escape_string):
99125 return os .path .splitext (filepath .split ('/' )[- 1 ])[0 ]
100126
101127
102- # ========================================================================去掉异常字符
103- def escapePath (path , Config ): # Remove escape literals
104- escapeLiterals = Config ['escape' ]['literals' ]
105- backslash = '\\ '
106- for literal in escapeLiterals :
107- path = path .replace (backslash + literal , '' )
108- return path
109-
110-
111128# ========================================================================根据番号获取数据
112129def getDataFromJSON (file_number , config , mode ): # 从JSON返回元数据
113130 # ================================================网站规则添加开始================================================
131+ isuncensored = is_uncensored (file_number )
114132 json_data = {}
115133 if mode == 1 : # 从全部网站刮削
116- # =======================================================================无码抓取:111111-111,n1111,HEYZO-1111
117- if re . match ( '^\d{4,}' , file_number ) or re . match ( 'n\d{4}' , file_number ) or 'HEYZO' in file_number . upper () :
134+ # =======================================================================无码抓取:111111-111,n1111,HEYZO-1111,SMD-115
135+ if isuncensored :
118136 json_data = json .loads (javbus .main_uncensored (file_number ))
119137 if getDataState (json_data ) == 0 :
120- json_data = json .loads (javdb .main (file_number ))
138+ json_data = json .loads (javdb .main (file_number , True ))
139+ if getDataState (json_data ) == 0 and 'HEYZO' in file_number .upper ():
140+ json_data = json .loads (jav321 .main (file_number , True ))
121141 if getDataState (json_data ) == 0 :
122142 json_data = json .loads (avsox .main (file_number ))
123143 # =======================================================================259LUXU-1111
124144 elif re .match ('\d+[a-zA-Z]+-\d+' , file_number ) or 'SIRO' in file_number .upper ():
125145 json_data = json .loads (mgstage .main (file_number ))
126146 file_number = re .search ('[a-zA-Z]+-\d+' , file_number ).group ()
147+ if getDataState (json_data ) == 0 :
148+ json_data = json .loads (jav321 .main (file_number ))
127149 if getDataState (json_data ) == 0 :
128150 json_data = json .loads (javdb .main (file_number ))
129151 if getDataState (json_data ) == 0 :
@@ -144,6 +166,8 @@ def getDataFromJSON(file_number, config, mode): # 从JSON返回元数据
144166 # =======================================================================MIDE-139
145167 else :
146168 json_data = json .loads (javbus .main (file_number ))
169+ if getDataState (json_data ) == 0 :
170+ json_data = json .loads (jav321 .main (file_number ))
147171 if getDataState (json_data ) == 0 :
148172 json_data = json .loads (javdb .main (file_number ))
149173 if getDataState (json_data ) == 0 :
@@ -159,20 +183,22 @@ def getDataFromJSON(file_number, config, mode): # 从JSON返回元数据
159183 elif mode == 3 : # 仅从fc2club
160184 json_data = json .loads (fc2fans_club .main (file_number ))
161185 elif mode == 4 : # 仅从javbus
162- if re . match ( '^\d{5,}' , file_number ) or re . match ( 'n\d{4}' , file_number ) or 'HEYZO' in file_number . upper () :
186+ if isuncensored :
163187 json_data = json .loads (javbus .main_uncensored (file_number ))
164188 elif re .search ('\D+.\d{2}.\d{2}.\d{2}' , file_number ):
165189 json_data = json .loads (javbus .main_us (file_number ))
166190 else :
167191 json_data = json .loads (javbus .main (file_number ))
168- elif mode == 5 : # 仅从javdb
192+ elif mode == 5 : # 仅从jav321
193+ json_data = json .loads (jav321 .main (file_number , isuncensored ))
194+ elif mode == 6 : # 仅从javdb
169195 if re .search ('\D+.\d{2}.\d{2}.\d{2}' , file_number ):
170196 json_data = json .loads (javdb .main_us (file_number ))
171197 else :
172- json_data = json .loads (javdb .main (file_number ))
173- elif mode == 6 : # 仅从avsox
198+ json_data = json .loads (javdb .main (file_number , isuncensored ))
199+ elif mode == 7 : # 仅从avsox
174200 json_data = json .loads (avsox .main (file_number ))
175- elif mode == 7 : # 仅从dmm
201+ elif mode == 8 : # 仅从dmm
176202 json_data = json .loads (dmm .main (file_number ))
177203
178204 # ================================================网站规则添加结束================================================
@@ -273,8 +299,9 @@ def save_config(json_config):
273299 print ("success_output_folder = " + json_config ['success_output_folder' ], file = code )
274300 print ("failed_file_move = " + str (json_config ['failed_file_move' ]), file = code )
275301 print ("soft_link = " + str (json_config ['soft_link' ]), file = code )
302+ print ("show_poster = " + str (json_config ['show_poster' ]), file = code )
276303 print ("website = " + json_config ['website' ], file = code )
277- print ("# all or mgstage or fc2club or javbus or javdb or avsox or dmm" , file = code )
304+ print ("# all or mgstage or fc2club or javbus or jav321 or javdb or avsox or dmm" , file = code )
278305 print ("" , file = code )
279306 print ("[proxy]" , file = code )
280307 print ("proxy = " + json_config ['proxy' ], file = code )
@@ -296,8 +323,6 @@ def save_config(json_config):
296323 print ("media_type = " + json_config ['media_type' ], file = code )
297324 print ("sub_type = " + json_config ['sub_type' ], file = code )
298325 print ("media_path = " + json_config ['media_path' ], file = code )
299- print ("media_warehouse = " + json_config ['media_warehouse' ], file = code )
300- print ("# emby or plex or kodi ,emby = jellyfin" , file = code )
301326 print ("" , file = code )
302327 print ("[escape]" , file = code )
303328 print ("literals = " + json_config ['literals' ], file = code )
@@ -310,12 +335,20 @@ def save_config(json_config):
310335 print ("[emby]" , file = code )
311336 print ("emby_url = " + json_config ['emby_url' ], file = code )
312337 print ("api_key = " + json_config ['api_key' ], file = code )
313- code .close ()
314-
338+ print ("" , file = code )
339+ print ("[mark]" , file = code )
340+ print ("poster_mark = " + str (json_config ['poster_mark' ]), file = code )
341+ print ("thumb_mark = " + str (json_config ['thumb_mark' ]), file = code )
342+ print ("mark_size = " + str (json_config ['mark_size' ]), file = code )
343+ print ("mark_type = " + json_config ['mark_type' ], file = code )
344+ print ("mark_pos = " + json_config ['mark_pos' ], file = code )
345+ print ("# mark_size : range 1-5" , file = code )
346+ print ("# mark_type : sub, leak, uncensored" , file = code )
347+ print ("# mark_pos : bottom_right or bottom_left or top_right or top_left" , file = code )
348+ print ("" , file = code )
349+ print ("[uncensored]" , file = code )
350+ print ("uncensored_prefix = " + str (json_config ['uncensored_prefix' ]), file = code )
351+ print ("uncensored_poster = " + str (json_config ['uncensored_poster' ]), file = code )
352+ print ("# 0 : official, 1 : cut" , file = code )
315353
316- # ========================================================================元数据获取失败检测
317- def getDataState (json_data ):
318- if json_data ['title' ] == '' or json_data ['title' ] == 'None' or json_data ['title' ] == 'null' :
319- return 0
320- else :
321- return 1
354+ code .close ()
0 commit comments