diff --git a/ADC_function.py b/ADC_function.py
index 859afc9..6360574 100644
--- a/ADC_function.py
+++ b/ADC_function.py
@@ -1,15 +1,16 @@
import requests
-from configparser import RawConfigParser
+from configparser import ConfigParser
import os
import re
-from retrying import retry
import time
import sys
-config = RawConfigParser()
-if os.path.exists('config.ini'):
+config_file='config.ini'
+config = ConfigParser()
+
+if os.path.exists(config_file):
try:
- config.read('config.ini', encoding='UTF-8')
+ config.read(config_file, encoding='UTF-8')
except:
print('[-]Config.ini read failed! Please use the offical file!')
else:
@@ -26,33 +27,54 @@ else:
print("", file=code)
print("[update]",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)
print('[+]config.ini: created!')
try:
- config.read('config.ini', encoding='UTF-8')
+ config.read(config_file, encoding='UTF-8')
except:
print('[-]Config.ini read failed! Please use the offical file!')
+def ReadMediaWarehouse():
+ return config['media']['media_warehouse']
+
def UpdateCheckSwitch():
check=str(config['update']['update_check'])
if check == '1':
return '1'
elif check == '0':
return '0'
+ elif check == '':
+ return '0'
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
- retry_count = int(config['proxy']['retry'])
while i < retry_count:
try:
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'}
- 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'
return getweb.text
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'}
- 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'
return getweb.text
except requests.exceptions.RequestException:
@@ -67,5 +89,6 @@ def get_html(url,cookies = None):#网页请求核心
except requests.exceptions.ConnectTimeout:
i += 1
print('[-]Connect retry '+str(i)+'/'+str(retry_count))
+ print('[-]Connect Failed! Please check your Proxy or Network!')
diff --git a/AV_Data_Capture.py b/AV_Data_Capture.py
index f24c9a9..1ca07cb 100644
--- a/AV_Data_Capture.py
+++ b/AV_Data_Capture.py
@@ -3,16 +3,20 @@ import os
import time
import re
import sys
-import ADC_function
+from ADC_function import *
import json
import shutil
+from configparser import ConfigParser
version='0.11.5'
os.chdir(os.getcwd())
+config = ConfigParser()
+config.read(config_file, encoding='UTF-8')
+
def UpdateCheck():
- if ADC_function.UpdateCheckSwitch() == '1':
- html2 = ADC_function.get_html('https://raw.githubusercontent.com/wenead99/AV_Data_Capture/master/update_check.json')
+ if UpdateCheckSwitch() == '1':
+ html2 = get_html('https://raw.githubusercontent.com/wenead99/AV_Data_Capture/master/update_check.json')
html = json.loads(str(html2))
if not version == html['version']:
@@ -23,25 +27,29 @@ def UpdateCheck():
else:
print('[+]Update Check disabled!')
def movie_lists():
- #MP4
- a2 = glob.glob(r".\*.mp4")
- # AVI
- b2 = glob.glob(r".\*.avi")
- # RMVB
- c2 = glob.glob(r".\*.rmvb")
- # WMV
- d2 = glob.glob(r".\*.wmv")
- # MOV
- e2 = glob.glob(r".\*.mov")
- # MKV
- f2 = glob.glob(r".\*.mkv")
- # FLV
- g2 = glob.glob(r".\*.flv")
- # TS
- h2 = glob.glob(r".\*.ts")
-
- total = a2+b2+c2+d2+e2+f2+g2+h2
- return total
+ if config['directory_capture']['switch'] == '0' or config['directory_capture']['switch'] == '':
+ a2 = glob.glob(r".\*.mp4")
+ b2 = glob.glob(r".\*.avi")
+ c2 = glob.glob(r".\*.rmvb")
+ d2 = glob.glob(r".\*.wmv")
+ e2 = glob.glob(r".\*.mov")
+ f2 = glob.glob(r".\*.mkv")
+ g2 = glob.glob(r".\*.flv")
+ 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
+ return total
def CreatFailedFolder():
if not os.path.exists('failed/'): # 新建failed文件夹
try:
@@ -50,7 +58,6 @@ def CreatFailedFolder():
print("[-]failed!can not be make folder 'failed'\n[-](Please run as Administrator)")
os._exit(0)
def lists_from_test(custom_nuber): #电影列表
-
a=[]
a.append(custom_nuber)
return a
diff --git a/core.py b/core.py
index 30622b6..98b63d9 100644
--- a/core.py
+++ b/core.py
@@ -36,6 +36,13 @@ actor_photo={}
naming_rule =''#eval(config['Name_Rule']['naming_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():
global filepath
@@ -159,16 +166,17 @@ def creatFolder(): #创建文件夹
os.makedirs(path)
#=====================资源下载部分===========================
def DownloadFileWithFilename(url,filename,path): #path = examle:photo , video.in the Project Folder!
- config = ConfigParser()
- config.read('config.ini', encoding='UTF-8')
- proxy = str(config['proxy']['proxy'])
- timeout = int(config['proxy']['timeout'])
- retry_count = int(config['proxy']['retry'])
+ 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
while i < retry_count:
try:
- if not str(config['proxy']['proxy']) == '':
+ if not proxy == '':
if not os.path.exists(path):
os.makedirs(path)
headers = {
@@ -204,13 +212,19 @@ def DownloadFileWithFilename(url,filename,path): #path = examle:photo , video.in
except requests.exceptions.ConnectTimeout:
i += 1
print('[-]Image Download : Connect retry '+str(i)+'/'+str(retry_count))
+ print('[-]Connect Failed! Please check your Proxy or Network!')
moveFailedFolder()
def imageDownload(filepath): #封面是否下载成功,否则移动到failed
- global path
- if DownloadFileWithFilename(cover,'fanart.jpg', path) == 'failed':
- moveFailedFolder()
- DownloadFileWithFilename(cover, 'fanart.jpg', path)
- print('[+]Image Downloaded!', path +'/fanart.jpg')
+ 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':
+ moveFailedFolder()
+ DownloadFileWithFilename(cover, 'fanart.jpg', path)
+ print('[+]Image Downloaded!', path + '/fanart.jpg')
def PrintFiles(filepath):
#global path
global title
@@ -219,52 +233,100 @@ def PrintFiles(filepath):
try:
if not os.path.exists(path):
os.makedirs(path)
- with open(path + "/" + number + ".nfo", "wt", encoding='UTF-8') as code:
- print("", file=code)
- print(" " + naming_rule + "", file=code)
- print(" ", file=code)
- print(" ", file=code)
- print(" " + studio + "+", file=code)
- print(" " + year + "", file=code)
- print(" "+outline+"", file=code)
- print(" "+outline+"", file=code)
- print(" "+str(runtime).replace(" ","")+"", file=code)
- print(" " + director + "", file=code)
- print(" poster.png", file=code)
- print(" thumb.png", file=code)
- print(" fanart.jpg", file=code)
- try:
- for key, value in actor_photo.items():
- print(" ", file=code)
- print(" " + key + "", file=code)
- if not actor_photo == '': # or actor_photo == []:
- print(" " + value + "", file=code)
- print(" ", file=code)
- except:
- aaaa=''
- print(" " + studio + "", file=code)
- print(" ", file=code)
- if cn_sub == '1':
- print(" 中文字幕", file=code)
- try:
- for i in tag:
- print(" " + i + "", file=code)
- except:
- aaaaa=''
- try:
- for i in tag:
- print(" " + i + "", file=code)
- except:
- aaaaaaaa=''
- if cn_sub == '1':
- print(" 中文字幕", file=code)
- print(" " + number + "", file=code)
- print(" " + release + "", file=code)
- print(" "+cover+"", file=code)
- print(" " + website + "", file=code)
- print("", file=code)
- print("[+]Writeed! "+path + "/" + number + ".nfo")
+ if option == 'plex':
+ with open(path + "/" + number + ".nfo", "wt", encoding='UTF-8') as code:
+ print("", file=code)
+ print(" " + naming_rule + "", file=code)
+ print(" ", file=code)
+ print(" ", file=code)
+ print(" " + studio + "+", file=code)
+ print(" " + year + "", file=code)
+ print(" " + outline + "", file=code)
+ print(" " + outline + "", file=code)
+ print(" " + str(runtime).replace(" ", "") + "", file=code)
+ print(" " + director + "", file=code)
+ print(" poster.png", file=code)
+ print(" thumb.png", file=code)
+ print(" fanart.jpg", file=code)
+ try:
+ for key, value in actor_photo.items():
+ print(" ", file=code)
+ print(" " + key + "", file=code)
+ if not actor_photo == '': # or actor_photo == []:
+ print(" " + value + "", file=code)
+ print(" ", file=code)
+ except:
+ aaaa = ''
+ print(" " + studio + "", file=code)
+ print(" ", file=code)
+ if cn_sub == '1':
+ print(" 中文字幕", file=code)
+ try:
+ for i in tag:
+ print(" " + i + "", file=code)
+ except:
+ aaaaa = ''
+ try:
+ for i in tag:
+ print(" " + i + "", file=code)
+ except:
+ aaaaaaaa = ''
+ if cn_sub == '1':
+ print(" 中文字幕", file=code)
+ print(" " + number + "", file=code)
+ print(" " + release + "", file=code)
+ print(" " + cover + "", file=code)
+ print(" " + website + "", file=code)
+ print("", file=code)
+ print("[+]Writeed! " + path + "/" + number + ".nfo")
+ elif option == 'emby':
+ with open(path + "/" + number + ".nfo", "wt", encoding='UTF-8') as code:
+ print("", file=code)
+ print(" " + naming_rule + "", file=code)
+ print(" ", file=code)
+ print(" ", file=code)
+ print(" " + studio + "+", file=code)
+ print(" " + year + "", file=code)
+ print(" " + outline + "", file=code)
+ 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)
+ try:
+ for key, value in actor_photo.items():
+ print(" ", file=code)
+ print(" " + key + "", file=code)
+ if not actor_photo == '': # or actor_photo == []:
+ print(" " + value + "", file=code)
+ print(" ", file=code)
+ except:
+ aaaa = ''
+ print(" " + studio + "", file=code)
+ print(" ", file=code)
+ if cn_sub == '1':
+ print(" 中文字幕", file=code)
+ try:
+ for i in tag:
+ print(" " + i + "", file=code)
+ except:
+ aaaaa = ''
+ try:
+ for i in tag:
+ print(" " + i + "", file=code)
+ except:
+ aaaaaaaa = ''
+ if cn_sub == '1':
+ print(" 中文字幕", file=code)
+ print(" " + number + "", file=code)
+ print(" " + release + "", file=code)
+ print(" " + cover + "", file=code)
+ print(" " + "https://www.javbus.com/" + number + "", file=code)
+ print("", file=code)
+ print("[+]Writeed! " + path + "/" + number + ".nfo")
except IOError as e:
print("[-]Write Failed!")
print(e)
@@ -274,29 +336,57 @@ def PrintFiles(filepath):
print("[-]Write Failed!")
moveFailedFolder()
def cutImage():
- if imagecut == 1:
- try:
+ if option == 'plex':
+ 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')
- 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')
- w = img.width
- 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): #文件路径,番号,后缀,要移动至的位置
global houzhui
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)
- shutil.move(number + houzhui, path)
+ try:
+ 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():
- shutil.copy(path + '/fanart.jpg', path + '/Backdrop.jpg')
- shutil.copy(path + '/poster.png', path + '/thumb.png')
+ if option == 'plex':
+ shutil.copy(path + '/fanart.jpg', path + '/Backdrop.jpg')
+ shutil.copy(path + '/poster.png', path + '/thumb.png')
if __name__ == '__main__':
filepath=argparse_get_file()[0] #影片的路径