Update 11.6

This commit is contained in:
Yoshiko 2019-07-14 09:38:26 +08:00 committed by GitHub
parent 41051a915b
commit dd6445b2ba
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 226 additions and 106 deletions

View File

@ -1,15 +1,16 @@
import requests import requests
from configparser import RawConfigParser from configparser import ConfigParser
import os import os
import re import re
from retrying import retry
import time import time
import sys import sys
config = RawConfigParser() config_file='config.ini'
if os.path.exists('config.ini'): config = ConfigParser()
if os.path.exists(config_file):
try: try:
config.read('config.ini', encoding='UTF-8') config.read(config_file, encoding='UTF-8')
except: except:
print('[-]Config.ini read failed! Please use the offical file!') print('[-]Config.ini read failed! Please use the offical file!')
else: else:
@ -26,33 +27,54 @@ else:
print("", file=code) print("", file=code)
print("[update]",file=code) print("[update]",file=code)
print("update_check=1",file=code) print("update_check=1",file=code)
print("", file=code)
print("[media]", file=code)
print("media_warehouse=emby", file=code)
print("#emby or plex", file=code)
print("#plex only test!", file=code)
print("", file=code)
print("[directory_capture]", file=code)
print("switch=0", file=code)
print("directory=", file=code)
print("", file=code)
print("everyone switch:1=on, 0=off", file=code)
time.sleep(2) time.sleep(2)
print('[+]config.ini: created!') print('[+]config.ini: created!')
try: try:
config.read('config.ini', encoding='UTF-8') config.read(config_file, encoding='UTF-8')
except: except:
print('[-]Config.ini read failed! Please use the offical file!') print('[-]Config.ini read failed! Please use the offical file!')
def ReadMediaWarehouse():
return config['media']['media_warehouse']
def UpdateCheckSwitch(): def UpdateCheckSwitch():
check=str(config['update']['update_check']) check=str(config['update']['update_check'])
if check == '1': if check == '1':
return '1' return '1'
elif check == '0': elif check == '0':
return '0' return '0'
elif check == '':
return '0'
def get_html(url,cookies = None):#网页请求核心 def get_html(url,cookies = None):#网页请求核心
try:
proxy = config['proxy']['proxy']
timeout = int(config['proxy']['timeout'])
retry_count = int(config['proxy']['retry'])
except:
print('[-]Proxy config error! Please check the config.')
i = 0 i = 0
retry_count = int(config['proxy']['retry'])
while i < retry_count: while i < retry_count:
try: try:
if not str(config['proxy']['proxy']) == '': if not str(config['proxy']['proxy']) == '':
proxies = {"http": "http://" + str(config['proxy']['proxy']),"https": "https://" + str(config['proxy']['proxy'])} proxies = {"http": "http://" + proxy,"https": "https://" + proxy}
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3100.0 Safari/537.36'} headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3100.0 Safari/537.36'}
getweb = requests.get(str(url), headers=headers, timeout=int(config['proxy']['timeout']),proxies=proxies, cookies=cookies) getweb = requests.get(str(url), headers=headers, timeout=timeout,proxies=proxies, cookies=cookies)
getweb.encoding = 'utf-8' getweb.encoding = 'utf-8'
return getweb.text return getweb.text
else: else:
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36'} headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36'}
getweb = requests.get(str(url), headers=headers, timeout=int(config['proxy']['timeout']), cookies=cookies) getweb = requests.get(str(url), headers=headers, timeout=timeout, cookies=cookies)
getweb.encoding = 'utf-8' getweb.encoding = 'utf-8'
return getweb.text return getweb.text
except requests.exceptions.RequestException: except requests.exceptions.RequestException:
@ -67,5 +89,6 @@ def get_html(url,cookies = None):#网页请求核心
except requests.exceptions.ConnectTimeout: except requests.exceptions.ConnectTimeout:
i += 1 i += 1
print('[-]Connect retry '+str(i)+'/'+str(retry_count)) print('[-]Connect retry '+str(i)+'/'+str(retry_count))
print('[-]Connect Failed! Please check your Proxy or Network!')

View File

@ -3,16 +3,20 @@ import os
import time import time
import re import re
import sys import sys
import ADC_function from ADC_function import *
import json import json
import shutil import shutil
from configparser import ConfigParser
version='0.11.5' version='0.11.5'
os.chdir(os.getcwd()) os.chdir(os.getcwd())
config = ConfigParser()
config.read(config_file, encoding='UTF-8')
def UpdateCheck(): def UpdateCheck():
if ADC_function.UpdateCheckSwitch() == '1': if UpdateCheckSwitch() == '1':
html2 = ADC_function.get_html('https://raw.githubusercontent.com/wenead99/AV_Data_Capture/master/update_check.json') html2 = get_html('https://raw.githubusercontent.com/wenead99/AV_Data_Capture/master/update_check.json')
html = json.loads(str(html2)) html = json.loads(str(html2))
if not version == html['version']: if not version == html['version']:
@ -23,25 +27,29 @@ def UpdateCheck():
else: else:
print('[+]Update Check disabled!') print('[+]Update Check disabled!')
def movie_lists(): def movie_lists():
#MP4 if config['directory_capture']['switch'] == '0' or config['directory_capture']['switch'] == '':
a2 = glob.glob(r".\*.mp4") a2 = glob.glob(r".\*.mp4")
# AVI b2 = glob.glob(r".\*.avi")
b2 = glob.glob(r".\*.avi") c2 = glob.glob(r".\*.rmvb")
# RMVB d2 = glob.glob(r".\*.wmv")
c2 = glob.glob(r".\*.rmvb") e2 = glob.glob(r".\*.mov")
# WMV f2 = glob.glob(r".\*.mkv")
d2 = glob.glob(r".\*.wmv") g2 = glob.glob(r".\*.flv")
# MOV h2 = glob.glob(r".\*.ts")
e2 = glob.glob(r".\*.mov") total = a2 + b2 + c2 + d2 + e2 + f2 + g2 + h2
# MKV return total
f2 = glob.glob(r".\*.mkv") elif config['directory_capture']['switch'] == '1':
# FLV directory = config['directory_capture']['directory']
g2 = glob.glob(r".\*.flv") a2 = glob.glob(r".\\" + directory + "\*.mp4")
# TS b2 = glob.glob(r".\\" + directory + "\*.avi")
h2 = glob.glob(r".\*.ts") c2 = glob.glob(r".\\" + directory + "\*.rmvb")
d2 = glob.glob(r".\\" + directory + "\*.wmv")
total = a2+b2+c2+d2+e2+f2+g2+h2 e2 = glob.glob(r".\\" + directory + "\*.mov")
return total f2 = glob.glob(r".\\" + directory + "\*.mkv")
g2 = glob.glob(r".\\" + directory + "\*.flv")
h2 = glob.glob(r".\\" + directory + "\*.ts")
total = a2 + b2 + c2 + d2 + e2 + f2 + g2 + h2
return total
def CreatFailedFolder(): def CreatFailedFolder():
if not os.path.exists('failed/'): # 新建failed文件夹 if not os.path.exists('failed/'): # 新建failed文件夹
try: try:
@ -50,7 +58,6 @@ def CreatFailedFolder():
print("[-]failed!can not be make folder 'failed'\n[-](Please run as Administrator)") print("[-]failed!can not be make folder 'failed'\n[-](Please run as Administrator)")
os._exit(0) os._exit(0)
def lists_from_test(custom_nuber): #电影列表 def lists_from_test(custom_nuber): #电影列表
a=[] a=[]
a.append(custom_nuber) a.append(custom_nuber)
return a return a

236
core.py
View File

@ -36,6 +36,13 @@ actor_photo={}
naming_rule =''#eval(config['Name_Rule']['naming_rule']) naming_rule =''#eval(config['Name_Rule']['naming_rule'])
location_rule=''#eval(config['Name_Rule']['location_rule']) location_rule=''#eval(config['Name_Rule']['location_rule'])
Config = ConfigParser()
Config.read(config_file, encoding='UTF-8')
try:
option = ReadMediaWarehouse()
except:
print('[-]Config media_warehouse read failed!')
#=====================本地文件处理=========================== #=====================本地文件处理===========================
def moveFailedFolder(): def moveFailedFolder():
global filepath global filepath
@ -159,16 +166,17 @@ def creatFolder(): #创建文件夹
os.makedirs(path) os.makedirs(path)
#=====================资源下载部分=========================== #=====================资源下载部分===========================
def DownloadFileWithFilename(url,filename,path): #path = examle:photo , video.in the Project Folder! def DownloadFileWithFilename(url,filename,path): #path = examle:photo , video.in the Project Folder!
config = ConfigParser() try:
config.read('config.ini', encoding='UTF-8') proxy = Config['proxy']['proxy']
proxy = str(config['proxy']['proxy']) timeout = int(Config['proxy']['timeout'])
timeout = int(config['proxy']['timeout']) retry_count = int(Config['proxy']['retry'])
retry_count = int(config['proxy']['retry']) except:
print('[-]Proxy config error! Please check the config.')
i = 0 i = 0
while i < retry_count: while i < retry_count:
try: try:
if not str(config['proxy']['proxy']) == '': if not proxy == '':
if not os.path.exists(path): if not os.path.exists(path):
os.makedirs(path) os.makedirs(path)
headers = { headers = {
@ -204,13 +212,19 @@ def DownloadFileWithFilename(url,filename,path): #path = examle:photo , video.in
except requests.exceptions.ConnectTimeout: except requests.exceptions.ConnectTimeout:
i += 1 i += 1
print('[-]Image Download : Connect retry '+str(i)+'/'+str(retry_count)) print('[-]Image Download : Connect retry '+str(i)+'/'+str(retry_count))
print('[-]Connect Failed! Please check your Proxy or Network!')
moveFailedFolder() moveFailedFolder()
def imageDownload(filepath): #封面是否下载成功否则移动到failed def imageDownload(filepath): #封面是否下载成功否则移动到failed
global path if option == 'emby':
if DownloadFileWithFilename(cover,'fanart.jpg', path) == 'failed': if DownloadFileWithFilename(cover, number + '.jpg', path) == 'failed':
moveFailedFolder() moveFailedFolder()
DownloadFileWithFilename(cover, 'fanart.jpg', path) DownloadFileWithFilename(cover, number + '.jpg', path)
print('[+]Image Downloaded!', path +'/fanart.jpg') print('[+]Image Downloaded!', path + '/' + number + '.jpg')
elif option == 'plex':
if DownloadFileWithFilename(cover, 'fanart.jpg', path) == 'failed':
moveFailedFolder()
DownloadFileWithFilename(cover, 'fanart.jpg', path)
print('[+]Image Downloaded!', path + '/fanart.jpg')
def PrintFiles(filepath): def PrintFiles(filepath):
#global path #global path
global title global title
@ -219,52 +233,100 @@ def PrintFiles(filepath):
try: try:
if not os.path.exists(path): if not os.path.exists(path):
os.makedirs(path) os.makedirs(path)
with open(path + "/" + number + ".nfo", "wt", encoding='UTF-8') as code: if option == 'plex':
print("<movie>", file=code) with open(path + "/" + number + ".nfo", "wt", encoding='UTF-8') as code:
print(" <title>" + naming_rule + "</title>", file=code) print("<movie>", file=code)
print(" <set>", file=code) print(" <title>" + naming_rule + "</title>", file=code)
print(" </set>", file=code) print(" <set>", file=code)
print(" <studio>" + studio + "+</studio>", file=code) print(" </set>", file=code)
print(" <year>" + year + "</year>", file=code) print(" <studio>" + studio + "+</studio>", file=code)
print(" <outline>"+outline+"</outline>", file=code) print(" <year>" + year + "</year>", file=code)
print(" <plot>"+outline+"</plot>", file=code) print(" <outline>" + outline + "</outline>", file=code)
print(" <runtime>"+str(runtime).replace(" ","")+"</runtime>", file=code) print(" <plot>" + outline + "</plot>", file=code)
print(" <director>" + director + "</director>", file=code) print(" <runtime>" + str(runtime).replace(" ", "") + "</runtime>", file=code)
print(" <poster>poster.png</poster>", file=code) print(" <director>" + director + "</director>", file=code)
print(" <thumb>thumb.png</thumb>", file=code) print(" <poster>poster.png</poster>", file=code)
print(" <fanart>fanart.jpg</fanart>", file=code) print(" <thumb>thumb.png</thumb>", file=code)
try: print(" <fanart>fanart.jpg</fanart>", file=code)
for key, value in actor_photo.items(): try:
print(" <actor>", file=code) for key, value in actor_photo.items():
print(" <name>" + key + "</name>", file=code) print(" <actor>", file=code)
if not actor_photo == '': # or actor_photo == []: print(" <name>" + key + "</name>", file=code)
print(" <thumb>" + value + "</thumb>", file=code) if not actor_photo == '': # or actor_photo == []:
print(" </actor>", file=code) print(" <thumb>" + value + "</thumb>", file=code)
except: print(" </actor>", file=code)
aaaa='' except:
print(" <maker>" + studio + "</maker>", file=code) aaaa = ''
print(" <label>", file=code) print(" <maker>" + studio + "</maker>", file=code)
print(" </label>", file=code) print(" <label>", file=code)
if cn_sub == '1': print(" </label>", file=code)
print(" <tag>中文字幕</tag>", file=code) if cn_sub == '1':
try: print(" <tag>中文字幕</tag>", file=code)
for i in tag: try:
print(" <tag>" + i + "</tag>", file=code) for i in tag:
except: print(" <tag>" + i + "</tag>", file=code)
aaaaa='' except:
try: aaaaa = ''
for i in tag: try:
print(" <genre>" + i + "</genre>", file=code) for i in tag:
except: print(" <genre>" + i + "</genre>", file=code)
aaaaaaaa='' except:
if cn_sub == '1': aaaaaaaa = ''
print(" <genre>中文字幕</genre>", file=code) if cn_sub == '1':
print(" <num>" + number + "</num>", file=code) print(" <genre>中文字幕</genre>", file=code)
print(" <release>" + release + "</release>", file=code) print(" <num>" + number + "</num>", file=code)
print(" <cover>"+cover+"</cover>", file=code) print(" <release>" + release + "</release>", file=code)
print(" <website>" + website + "</website>", file=code) print(" <cover>" + cover + "</cover>", file=code)
print("</movie>", file=code) print(" <website>" + website + "</website>", file=code)
print("[+]Writeed! "+path + "/" + number + ".nfo") print("</movie>", file=code)
print("[+]Writeed! " + path + "/" + number + ".nfo")
elif option == 'emby':
with open(path + "/" + number + ".nfo", "wt", encoding='UTF-8') as code:
print("<movie>", file=code)
print(" <title>" + naming_rule + "</title>", file=code)
print(" <set>", file=code)
print(" </set>", file=code)
print(" <studio>" + studio + "+</studio>", file=code)
print(" <year>" + year + "</year>", file=code)
print(" <outline>" + outline + "</outline>", file=code)
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)
try:
for key, value in actor_photo.items():
print(" <actor>", file=code)
print(" <name>" + key + "</name>", file=code)
if not actor_photo == '': # or actor_photo == []:
print(" <thumb>" + value + "</thumb>", file=code)
print(" </actor>", file=code)
except:
aaaa = ''
print(" <maker>" + studio + "</maker>", file=code)
print(" <label>", file=code)
print(" </label>", file=code)
if cn_sub == '1':
print(" <tag>中文字幕</tag>", file=code)
try:
for i in tag:
print(" <tag>" + i + "</tag>", file=code)
except:
aaaaa = ''
try:
for i in tag:
print(" <genre>" + i + "</genre>", file=code)
except:
aaaaaaaa = ''
if cn_sub == '1':
print(" <genre>中文字幕</genre>", file=code)
print(" <num>" + number + "</num>", file=code)
print(" <release>" + release + "</release>", file=code)
print(" <cover>" + cover + "</cover>", file=code)
print(" <website>" + "https://www.javbus.com/" + number + "</website>", file=code)
print("</movie>", file=code)
print("[+]Writeed! " + path + "/" + number + ".nfo")
except IOError as e: except IOError as e:
print("[-]Write Failed!") print("[-]Write Failed!")
print(e) print(e)
@ -274,29 +336,57 @@ def PrintFiles(filepath):
print("[-]Write Failed!") print("[-]Write Failed!")
moveFailedFolder() moveFailedFolder()
def cutImage(): def cutImage():
if imagecut == 1: if option == 'plex':
try: if imagecut == 1:
try:
img = Image.open(path + '/fanart.jpg')
imgSize = img.size
w = img.width
h = img.height
img2 = img.crop((w / 1.9, 0, w, h))
img2.save(path + '/poster.png')
except:
print('[-]Cover cut failed!')
else:
img = Image.open(path + '/fanart.jpg') img = Image.open(path + '/fanart.jpg')
imgSize = img.size
w = img.width w = img.width
h = img.height h = img.height
img2 = img.crop((w / 1.9, 0, w, h)) img.save(path + '/poster.png')
img2.save(path + '/poster.png') elif option == 'emby':
except: if imagecut == 1:
print('[-]Cover cut failed!') try:
else: img = Image.open(path + '/' + number + '.jpg')
img = Image.open(path + '/fanart.jpg') imgSize = img.size
w = img.width w = img.width
h = img.height h = img.height
img.save(path + '/poster.png') img2 = img.crop((w / 1.9, 0, w, h))
img2.save(path + '/' + number + '.png')
except:
print('[-]Cover cut failed!')
else:
img = Image.open(path + '/' + number + '.jpg')
w = img.width
h = img.height
img.save(path + '/' + number + '.png')
def pasteFileToFolder(filepath, path): #文件路径,番号,后缀,要移动至的位置 def pasteFileToFolder(filepath, path): #文件路径,番号,后缀,要移动至的位置
global houzhui global houzhui
houzhui = str(re.search('[.](AVI|RMVB|WMV|MOV|MP4|MKV|FLV|TS|avi|rmvb|wmv|mov|mp4|mkv|flv|ts)$', filepath).group()) houzhui = str(re.search('[.](AVI|RMVB|WMV|MOV|MP4|MKV|FLV|TS|avi|rmvb|wmv|mov|mp4|mkv|flv|ts)$', filepath).group())
os.rename(filepath, number + houzhui) try:
shutil.move(number + houzhui, path) os.rename(filepath, number + houzhui)
except FileExistsError:
print('[-]File Exists! Please check your movie!')
print('[-]move to the root folder of the program.')
os._exit(0)
try:
shutil.move(number + houzhui, path)
except:
print('[-]File Exists! Please check your movie!')
print('[-]move to the root folder of the program.')
os._exit(0)
def renameJpgToBackdrop_copy(): def renameJpgToBackdrop_copy():
shutil.copy(path + '/fanart.jpg', path + '/Backdrop.jpg') if option == 'plex':
shutil.copy(path + '/poster.png', path + '/thumb.png') shutil.copy(path + '/fanart.jpg', path + '/Backdrop.jpg')
shutil.copy(path + '/poster.png', path + '/thumb.png')
if __name__ == '__main__': if __name__ == '__main__':
filepath=argparse_get_file()[0] #影片的路径 filepath=argparse_get_file()[0] #影片的路径