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] #影片的路径