diff --git a/ADC_function.py b/ADC_function.py
index dca3148..a7dc831 100755
--- a/ADC_function.py
+++ b/ADC_function.py
@@ -7,6 +7,7 @@ import os
import re
import time
import sys
+from lxml import etree
config_file='config.ini'
config = ConfigParser()
@@ -58,6 +59,12 @@ else:
except:
print('[-]Config.ini read failed! Please use the offical file!')
+def getDataState(json_data): # 元数据获取失败检测
+ if json_data['title'] == '' or json_data['title'] == 'None' or json_data['title'] == 'null':
+ return 0
+ else:
+ return 1
+
def ReadMediaWarehouse():
return config['media']['media_warehouse']
@@ -69,6 +76,12 @@ def UpdateCheckSwitch():
return '0'
elif check == '':
return '0'
+
+def getXpathSingle(htmlcode,xpath):
+ html = etree.fromstring(htmlcode, etree.HTMLParser())
+ result1 = str(html.xpath(xpath)).strip(" ['']")
+ return result1
+
def get_html(url,cookies = None):#网页请求核心
try:
proxy = config['proxy']['proxy']
diff --git a/AV_Data_Capture.py b/AV_Data_Capture.py
index 7eccc3e..a0ad772 100755
--- a/AV_Data_Capture.py
+++ b/AV_Data_Capture.py
@@ -15,7 +15,7 @@ os.chdir(os.getcwd())
# ============global var===========
-version='1.5'
+version='1.7'
config = ConfigParser()
config.read(config_file, encoding='UTF-8')
@@ -35,7 +35,6 @@ def moveMovies():
movieFiles = movieFiles + [os.path.join(dirpath, f)
for dirpath, dirnames, files in os.walk(fromPath)
for f in fnmatch.filter(files, '*.' + fm)]
- print(movieFiles)
for movie in movieFiles:
print("Move file " + movie)
shutil.move(movie, os.path.curdir)
@@ -45,8 +44,8 @@ def UpdateCheck():
html = json.loads(str(html2))
if not version == html['version']:
- print('[*] * New update ' + html['version'] + ' *')
- print('[*] * Download *')
+ print('[*] * New update ' + html['version'] + ' *')
+ print('[*] * Download *')
print('[*] ' + html['download'])
print('[*]=====================================')
else:
diff --git a/core.py b/core.py
index 03e8b00..f0c83ed 100755
--- a/core.py
+++ b/core.py
@@ -16,9 +16,9 @@ import siro
import avsox
import javbus
import javdb
-
# =========website========
+
# 初始化全局变量
Config = ConfigParser()
Config.read(config_file, encoding='UTF-8')
@@ -89,13 +89,6 @@ def CreatFailedFolder():
os._exit(0)
-def getDataState(json_data): # 元数据获取失败检测
- if json_data['title'] == '' or json_data['title'] == 'None' or json_data['title'] == 'null':
- return 0
- else:
- return 1
-
-
def getDataFromJSON(file_number): # 从JSON返回元数据
global title
global studio
@@ -131,7 +124,7 @@ def getDataFromJSON(file_number): # 从JSON返回元数据
json_data = json.loads(siro.main(file_number))
if getDataState(json_data) == 0: # 如果元数据获取失败,请求番号至其他网站抓取
json_data = json.loads(javbus.main(file_number))
- elif getDataState(json_data) == 0: # 如果元数据获取失败,请求番号至其他网站抓取
+ if getDataState(json_data) == 0: # 如果元数据获取失败,请求番号至其他网站抓取
json_data = json.loads(javdb.main(file_number))
# ==
elif 'fc2' in file_number or 'FC2' in file_number:
@@ -308,16 +301,16 @@ def DownloadFileWithFilename(url, filename, path): # path = examle:photo , vide
def imageDownload(): # 封面是否下载成功,否则移动到failed
if option == 'emby':
- if DownloadFileWithFilename(cover, number + '.jpg', path) == 'failed':
+ if DownloadFileWithFilename(cover, number + c_word + '.jpg', path) == 'failed':
moveFailedFolder()
- DownloadFileWithFilename(cover, number + '.jpg', path)
+ DownloadFileWithFilename(cover, number + c_word + '.jpg', path)
if multi_part == 1:
- old_name = os.path.join(path, number + '.jpg')
- new_name = os.path.join(path, number + '.jpg')
+ old_name = os.path.join(path, number + c_word + '.jpg')
+ new_name = os.path.join(path, number + c_word + '.jpg')
os.rename(old_name, new_name)
- print('[+]Image Downloaded!', path + '/' + number + '.jpg')
+ print('[+]Image Downloaded!', path + '/' + number + c_word + '.jpg')
else:
- print('[+]Image Downloaded!', path + '/' + number + '.jpg')
+ print('[+]Image Downloaded!', path + '/' + number + c_word + '.jpg')
elif option == 'plex':
if DownloadFileWithFilename(cover, 'fanart.jpg', path) == 'failed':
moveFailedFolder()
@@ -393,9 +386,9 @@ def PrintFiles():
print(" " + outline + "", file=code)
print(" " + str(runtime).replace(" ", "") + "", file=code)
print(" " + director + "", file=code)
- print(" " + number + ".png", file=code)
- print(" " + number + ".png", file=code)
- print(" " + number + '.jpg' + "", file=code)
+ print(" " + number + c_word + ".png", file=code)
+ print(" " + number + c_word + ".png", file=code)
+ print(" " + number + c_word + '.jpg' + "", file=code)
try:
for key, value in actor_photo.items():
print(" ", file=code)
@@ -504,19 +497,19 @@ def cutImage():
elif option == 'emby':
if imagecut == 1:
try:
- img = Image.open(path + '/' + number + '.jpg')
+ img = Image.open(path + '/' + number + c_word + '.jpg')
imgSize = img.size
w = img.width
h = img.height
img2 = img.crop((w / 1.9, 0, w, h))
- img2.save(path + '/' + number + '.png')
+ img2.save(path + '/' + number + c_word + '.png')
except:
print('[-]Cover cut failed!')
elif imagecut == 0:
- img = Image.open(path + '/' + number + '.jpg')
+ img = Image.open(path + '/' + number + c_word + '.jpg')
w = img.width
h = img.height
- img.save(path + '/' + number + '.png')
+ img.save(path + '/' + number + c_word + '.png')
elif option == 'kodi':
if imagecut == 1:
try:
@@ -578,7 +571,7 @@ def copyRenameJpgToBackdrop():
shutil.copy(path + '/fanart.jpg', path + '/Backdrop.jpg')
shutil.copy(path + '/poster.png', path + '/thumb.png')
if option == 'emby':
- shutil.copy(path + '/' + number + '.jpg', path + '/Backdrop.jpg')
+ shutil.copy(path + '/' + number + c_word + '.jpg', path + '/Backdrop.jpg')
if option == 'kodi':
shutil.copy(path + '/' + number + c_word + '-fanart.jpg', path + '/Backdrop.jpg')
@@ -618,9 +611,9 @@ if __name__ == '__main__':
part = get_part(filepath)
if '-c.' in filepath or '-C.' in filepath or '中文' in filepath or '字幕' in filepath:
cn_sub = '1'
- c_word = '-C'
+ c_word = '-C' #中文字幕影片后缀
- if argparse_get_file()[1] == '': # 获取手动拉去影片获取的番号
+ if argparse_get_file()[1] == '': # 如果第二个运行参数为空,获取从第一个参数影片路径的番号
try:
number = str(re.findall(r'(.+?)\.', str(re.search('([^<>/\\\\|:""\\*\\?]+)\\.\\w+$', filepath).group()))).strip("['']").replace('_', '-')
print("[!]Making Data for [" + number + "]")
@@ -629,14 +622,14 @@ if __name__ == '__main__':
moveFailedFolder()
else:
number = argparse_get_file()[1]
- CreatFailedFolder()
+ CreatFailedFolder() # 创建输出失败目录
getDataFromJSON(number) # 定义番号
- debug_mode()
+ debug_mode() # 调试模式检测
creatFolder() # 创建文件夹
if program_mode == '1':
if multi_part == 1:
number += part # 这时number会被附加上CD1后缀
- smallCoverCheck()
+ smallCoverCheck() # 检查小封面
imageDownload() # creatFoder会返回番号路径
cutImage() # 裁剪图
copyRenameJpgToBackdrop()
diff --git a/javdb.py b/javdb.py
index 9deae67..c32cfeb 100755
--- a/javdb.py
+++ b/javdb.py
@@ -69,66 +69,54 @@ def getOutline(htmlcode):
return result
def main(number):
try:
- a = get_html('https://javdb.com/search?q=' + number + '&f=all')
+ a = get_html('https://javdb.com/search?q=' + number + '&f=all').replace(u'\xa0', u' ')
html = etree.fromstring(a, etree.HTMLParser()) # //table/tr[1]/td[1]/text()
result1 = str(html.xpath('//*[@id="videos"]/div/div/a/@href')).strip(" ['']")
- if result1 == '':
- a = get_html('https://javdb.com/search?q=' + number.replace('-', '_') + '&f=all')
- html = etree.fromstring(a, etree.HTMLParser()) # //table/tr[1]/td[1]/text()
- result1 = str(html.xpath('//*[@id="videos"]/div/div/a/@href')).strip(" ['']")
- b = get_html('https://javdb1.com' + result1)
- soup = BeautifulSoup(b, 'lxml')
- a = str(soup.find(attrs={'class': 'panel'}))
+ b = get_html('https://javdb.com' + result1).replace(u'\xa0', u' ')
dic = {
'actor': getActor(a),
'title': getTitle(b).replace("\\n", '').replace(' ', '').replace(getActor(a), '').replace(getNum(a),
'').replace(
'无码', '').replace('有码', '').lstrip(' '),
- 'studio': getStudio(a),
- 'outline': getOutline(a),
- 'runtime': getRuntime(a),
- 'director': getDirector(a),
- 'release': getRelease(a),
- 'number': getNum(a),
+ 'studio': getStudio(b),
+ 'outline': getOutline(b),
+ 'runtime': getRuntime(b),
+ 'director': getDirector(b),
+ 'release': getRelease(b),
+ 'number': getNum(b),
'cover': getCover(b),
'imagecut': 0,
- 'tag': getTag(a),
- 'label': getLabel(a),
- 'year': getYear(getRelease(a)), # str(re.search('\d{4}',getRelease(a)).group()),
+ 'tag': getTag(b),
+ 'label': getLabel(b),
+ 'year': getYear(getRelease(b)), # str(re.search('\d{4}',getRelease(a)).group()),
'actor_photo': '',
- 'website': 'https://javdb1.com' + result1,
+ 'website': 'https://javdb.com' + result1,
'source': 'javdb.py',
}
js = json.dumps(dic, ensure_ascii=False, sort_keys=True, indent=4, separators=(',', ':'), ) # .encode('UTF-8')
return js
except:
- a = get_html('https://javdb.com/search?q=' + number + '&f=all')
+ a = get_html('https://javdb.com/search?q=' + number + '&f=all').replace(u'\xa0', u' ')
html = etree.fromstring(a, etree.HTMLParser()) # //table/tr[1]/td[1]/text()
result1 = str(html.xpath('//*[@id="videos"]/div/div/a/@href')).strip(" ['']")
- if result1 == '' or result1 == 'null':
- a = get_html('https://javdb.com/search?q=' + number.replace('-', '_') + '&f=all')
- html = etree.fromstring(a, etree.HTMLParser()) # //table/tr[1]/td[1]/text()
- result1 = str(html.xpath('//*[@id="videos"]/div/div/a/@href')).strip(" ['']")
- b = get_html('https://javdb.com' + result1)
- soup = BeautifulSoup(b, 'lxml')
- a = str(soup.find(attrs={'class': 'panel'}))
+ b = get_html('https://javdb.com' + result1).replace(u'\xa0', u' ')
dic = {
- 'actor': getActor(a),
+ 'actor': getActor(b),
'title': getTitle(b).replace("\\n", '').replace(' ', '').replace(getActor(a), '').replace(
- getNum(a),
+ getNum(b),
'').replace(
'无码', '').replace('有码', '').lstrip(' '),
- 'studio': getStudio(a),
- 'outline': getOutline(a),
- 'runtime': getRuntime(a),
- 'director': getDirector(a),
- 'release': getRelease(a),
- 'number': getNum(a),
+ 'studio': getStudio(b),
+ 'outline': getOutline(b),
+ 'runtime': getRuntime(b),
+ 'director': getDirector(b),
+ 'release': getRelease(b),
+ 'number': getNum(b),
'cover': getCover(b),
'imagecut': 0,
- 'tag': getTag(a),
- 'label': getLabel(a),
- 'year': getYear(getRelease(a)), # str(re.search('\d{4}',getRelease(a)).group()),
+ 'tag': getTag(b),
+ 'label': getLabel(b),
+ 'year': getYear(getRelease(b)), # str(re.search('\d{4}',getRelease(a)).group()),
'actor_photo': '',
'website': 'https://javdb.com' + result1,
'source': 'javdb.py',
@@ -136,4 +124,4 @@ def main(number):
js = json.dumps(dic, ensure_ascii=False, sort_keys=True, indent=4,separators=(',', ':'), ) # .encode('UTF-8')
return js
-#print(main('061519-861'))
\ No newline at end of file
+#print(get_html('https://javdb1.com/v/WwZ0Q'))
\ No newline at end of file
diff --git a/update_check.json b/update_check.json
index b609e8b..80e87ba 100644
--- a/update_check.json
+++ b/update_check.json
@@ -1,5 +1,5 @@
{
- "version": "1.6",
- "version_show":"1.6",
+ "version": "1.7",
+ "version_show":"1.7",
"download": "https://github.com/yoshiko2/AV_Data_Capture/releases"
}