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):#网页请求核心
i = 0 try:
proxy = config['proxy']['proxy']
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
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,23 +27,27 @@ 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")
# RMVB
c2 = glob.glob(r".\*.rmvb") c2 = glob.glob(r".\*.rmvb")
# WMV
d2 = glob.glob(r".\*.wmv") d2 = glob.glob(r".\*.wmv")
# MOV
e2 = glob.glob(r".\*.mov") e2 = glob.glob(r".\*.mov")
# MKV
f2 = glob.glob(r".\*.mkv") f2 = glob.glob(r".\*.mkv")
# FLV
g2 = glob.glob(r".\*.flv") g2 = glob.glob(r".\*.flv")
# TS
h2 = glob.glob(r".\*.ts") h2 = glob.glob(r".\*.ts")
total = a2 + b2 + c2 + d2 + e2 + f2 + g2 + h2
return total
elif config['directory_capture']['switch'] == '1':
directory = config['directory_capture']['directory']
a2 = glob.glob(r".\\" + directory + "\*.mp4")
b2 = glob.glob(r".\\" + directory + "\*.avi")
c2 = glob.glob(r".\\" + directory + "\*.rmvb")
d2 = glob.glob(r".\\" + directory + "\*.wmv")
e2 = glob.glob(r".\\" + directory + "\*.mov")
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 total = a2 + b2 + c2 + d2 + e2 + f2 + g2 + h2
return total return total
def CreatFailedFolder(): def CreatFailedFolder():
@ -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

104
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,9 +212,15 @@ 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, number + '.jpg', path) == 'failed':
moveFailedFolder()
DownloadFileWithFilename(cover, number + '.jpg', path)
print('[+]Image Downloaded!', path + '/' + number + '.jpg')
elif option == 'plex':
if DownloadFileWithFilename(cover, 'fanart.jpg', path) == 'failed': if DownloadFileWithFilename(cover, 'fanart.jpg', path) == 'failed':
moveFailedFolder() moveFailedFolder()
DownloadFileWithFilename(cover, 'fanart.jpg', path) DownloadFileWithFilename(cover, 'fanart.jpg', path)
@ -219,6 +233,7 @@ def PrintFiles(filepath):
try: try:
if not os.path.exists(path): if not os.path.exists(path):
os.makedirs(path) os.makedirs(path)
if option == 'plex':
with open(path + "/" + number + ".nfo", "wt", encoding='UTF-8') as code: with open(path + "/" + number + ".nfo", "wt", encoding='UTF-8') as code:
print("<movie>", file=code) print("<movie>", file=code)
print(" <title>" + naming_rule + "</title>", file=code) print(" <title>" + naming_rule + "</title>", file=code)
@ -265,6 +280,53 @@ def PrintFiles(filepath):
print(" <website>" + website + "</website>", file=code) print(" <website>" + website + "</website>", file=code)
print("</movie>", file=code) print("</movie>", file=code)
print("[+]Writeed! " + path + "/" + number + ".nfo") 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,6 +336,7 @@ def PrintFiles(filepath):
print("[-]Write Failed!") print("[-]Write Failed!")
moveFailedFolder() moveFailedFolder()
def cutImage(): def cutImage():
if option == 'plex':
if imagecut == 1: if imagecut == 1:
try: try:
img = Image.open(path + '/fanart.jpg') img = Image.open(path + '/fanart.jpg')
@ -289,12 +352,39 @@ def cutImage():
w = img.width w = img.width
h = img.height h = img.height
img.save(path + '/poster.png') img.save(path + '/poster.png')
elif option == 'emby':
if imagecut == 1:
try:
img = Image.open(path + '/' + number + '.jpg')
imgSize = img.size
w = img.width
h = img.height
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())
try:
os.rename(filepath, number + houzhui) 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) 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():
if option == 'plex':
shutil.copy(path + '/fanart.jpg', path + '/Backdrop.jpg') shutil.copy(path + '/fanart.jpg', path + '/Backdrop.jpg')
shutil.copy(path + '/poster.png', path + '/thumb.png') shutil.copy(path + '/poster.png', path + '/thumb.png')