Update 1.7
This commit is contained in:
parent
5e34602836
commit
7ccc718b4f
@ -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']
|
||||
|
@ -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:
|
||||
|
49
core.py
49
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(" <plot>" + outline + "</plot>", file=code)
|
||||
print(" <runtime>" + str(runtime).replace(" ", "") + "</runtime>", file=code)
|
||||
print(" <director>" + director + "</director>", file=code)
|
||||
print(" <poster>" + number + ".png</poster>", file=code)
|
||||
print(" <thumb>" + number + ".png</thumb>", file=code)
|
||||
print(" <fanart>" + number + '.jpg' + "</fanart>", file=code)
|
||||
print(" <poster>" + number + c_word + ".png</poster>", file=code)
|
||||
print(" <thumb>" + number + c_word + ".png</thumb>", file=code)
|
||||
print(" <fanart>" + number + c_word + '.jpg' + "</fanart>", file=code)
|
||||
try:
|
||||
for key, value in actor_photo.items():
|
||||
print(" <actor>", 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()
|
||||
|
64
javdb.py
64
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'))
|
||||
#print(get_html('https://javdb1.com/v/WwZ0Q'))
|
@ -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"
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user