Update 2.8.3

This commit is contained in:
yoshiko2
2020-03-24 10:53:58 +08:00
parent 645b30cf38
commit 2ebc74fd8d
4 changed files with 860 additions and 853 deletions

View File

@@ -1,162 +1,162 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
import glob import glob
import os import os
import time import time
import re import re
from ADC_function import * from ADC_function import *
from core import * from core import *
import json import json
import shutil import shutil
from configparser import ConfigParser from configparser import ConfigParser
import argparse import argparse
def UpdateCheck(version): def UpdateCheck(version):
if UpdateCheckSwitch() == '1': if UpdateCheckSwitch() == '1':
html2 = get_html('https://raw.githubusercontent.com/yoshiko2/AV_Data_Capture/master/update_check.json') html2 = get_html('https://raw.githubusercontent.com/yoshiko2/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']:
print('[*] * New update ' + html['version'] + ' *') print('[*] * New update ' + html['version'] + ' *')
print('[*] ↓ Download ↓') print('[*] ↓ Download ↓')
print('[*] ' + html['download']) print('[*] ' + html['download'])
print('[*]======================================================') print('[*]======================================================')
else: else:
print('[+]Update Check disabled!') print('[+]Update Check disabled!')
def argparse_get_file(): def argparse_get_file():
parser = argparse.ArgumentParser() parser = argparse.ArgumentParser()
parser.add_argument("file", default='',nargs='?', help="Write the file path on here") parser.add_argument("file", default='',nargs='?', help="Write the file path on here")
args = parser.parse_args() args = parser.parse_args()
if args.file == '': if args.file == '':
return '' return ''
else: else:
return args.file return args.file
def movie_lists(escape_folder): def movie_lists(escape_folder):
escape_folder = re.split('[,]', escape_folder) escape_folder = re.split('[,]', escape_folder)
total = [] total = []
file_type = ['.mp4', '.avi', '.rmvb', '.wmv', '.mov', '.mkv', '.flv', '.ts', '.webm', '.MP4', '.AVI', '.RMVB', '.WMV','.MOV', '.MKV', '.FLV', '.TS', '.WEBM', ] file_type = ['.mp4', '.avi', '.rmvb', '.wmv', '.mov', '.mkv', '.flv', '.ts', '.webm', '.MP4', '.AVI', '.RMVB', '.WMV','.MOV', '.MKV', '.FLV', '.TS', '.WEBM', ]
file_root = os.getcwd() file_root = os.getcwd()
for root, dirs, files in os.walk(file_root): for root, dirs, files in os.walk(file_root):
flag_escape = 0 flag_escape = 0
for folder in escape_folder: for folder in escape_folder:
if folder in root: if folder in root:
flag_escape = 1 flag_escape = 1
break break
if flag_escape == 1: if flag_escape == 1:
continue continue
for f in files: for f in files:
if os.path.splitext(f)[1] in file_type: if os.path.splitext(f)[1] in file_type:
path = os.path.join(root, f) path = os.path.join(root, f)
path = path.replace(file_root, '.') path = path.replace(file_root, '.')
total.append(path) total.append(path)
return total return total
def CreatFailedFolder(failed_folder): def CreatFailedFolder(failed_folder):
if not os.path.exists(failed_folder + '/'): # 新建failed文件夹 if not os.path.exists(failed_folder + '/'): # 新建failed文件夹
try: try:
os.makedirs(failed_folder + '/') os.makedirs(failed_folder + '/')
except: except:
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 CEF(path): def CEF(path):
try: try:
files = os.listdir(path) # 获取路径下的子文件(夹)列表 files = os.listdir(path) # 获取路径下的子文件(夹)列表
for file in files: for file in files:
os.removedirs(path + '/' + file) # 删除这个空文件夹 os.removedirs(path + '/' + file) # 删除这个空文件夹
print('[+]Deleting empty folder', path + '/' + file) print('[+]Deleting empty folder', path + '/' + file)
except: except:
a = '' a = ''
def getNumber(filepath,absolute_path = False): def getNumber(filepath,absolute_path = False):
if absolute_path == True: if absolute_path == True:
filepath=filepath.replace('\\','/') filepath=filepath.replace('\\','/')
file_number = str(re.findall(r'(.+?)\.', str(re.search('([^<>/\\\\|:""\\*\\?]+)\\.\\w+$', filepath).group()))).strip("['']").replace('_', '-') file_number = str(re.findall(r'(.+?)\.', str(re.search('([^<>/\\\\|:""\\*\\?]+)\\.\\w+$', filepath).group()))).strip("['']").replace('_', '-')
return file_number return file_number
if '-' in filepath or '_' in filepath: # 普通提取番号 主要处理包含减号-和_的番号 if '-' in filepath or '_' in filepath: # 普通提取番号 主要处理包含减号-和_的番号
filepath = filepath.replace("_", "-") filepath = filepath.replace("_", "-")
filepath.strip('22-sht.me').strip('-HD').strip('-hd') filepath.strip('22-sht.me').strip('-HD').strip('-hd')
filename = str(re.sub("\[\d{4}-\d{1,2}-\d{1,2}\] - ", "", filepath)) # 去除文件名中时间 filename = str(re.sub("\[\d{4}-\d{1,2}-\d{1,2}\] - ", "", filepath)) # 去除文件名中时间
if 'FC2' or 'fc2' in filename: if 'FC2' or 'fc2' in filename:
filename = filename.replace('-PPV', '').replace('PPV-', '').replace('FC2PPV-','FC2-').replace('FC2PPV_','FC2-') filename = filename.replace('-PPV', '').replace('PPV-', '').replace('FC2PPV-','FC2-').replace('FC2PPV_','FC2-')
file_number = re.search(r'\w+-\w+', filename, re.A).group() file_number = re.search(r'\w+-\w+', filename, re.A).group()
return file_number return file_number
else: # 提取不含减号-的番号FANZA CID else: # 提取不含减号-的番号FANZA CID
try: try:
return str(re.findall(r'(.+?)\.', str(re.search('([^<>/\\\\|:""\\*\\?]+)\\.\\w+$', filepath).group()))).strip("['']").replace('_', '-') return str(re.findall(r'(.+?)\.', str(re.search('([^<>/\\\\|:""\\*\\?]+)\\.\\w+$', filepath).group()))).strip("['']").replace('_', '-')
except: except:
return re.search(r'(.+?)\.', filepath)[0] return re.search(r'(.+?)\.', filepath)[0]
if __name__ == '__main__': if __name__ == '__main__':
version = '2.8.2' version = '2.8.2'
config_file = 'config.ini' config_file = 'config.ini'
config = ConfigParser() config = ConfigParser()
config.read(config_file, encoding='UTF-8') config.read(config_file, encoding='UTF-8')
success_folder = config['common']['success_output_folder'] success_folder = config['common']['success_output_folder']
failed_folder = config['common']['failed_output_folder'] # 失败输出目录 failed_folder = config['common']['failed_output_folder'] # 失败输出目录
escape_folder = config['escape']['folders'] # 多级目录刮削需要排除的目录 escape_folder = config['escape']['folders'] # 多级目录刮削需要排除的目录
print('[*]================== AV Data Capture ===================') print('[*]================== AV Data Capture ===================')
print('[*] Version ' + version) print('[*] Version ' + version)
print('[*]======================================================') print('[*]======================================================')
UpdateCheck(version) UpdateCheck(version)
CreatFailedFolder(failed_folder) CreatFailedFolder(failed_folder)
os.chdir(os.getcwd()) os.chdir(os.getcwd())
movie_list = movie_lists(escape_folder) movie_list = movie_lists(escape_folder)
#========== 野鸡番号拖动 ========== #========== 野鸡番号拖动 ==========
number_argparse=argparse_get_file() number_argparse=argparse_get_file()
if not number_argparse == '': if not number_argparse == '':
print("[!]Making Data for [" + number_argparse + "], the number is [" + getNumber(number_argparse,absolute_path = True) + "]") print("[!]Making Data for [" + number_argparse + "], the number is [" + getNumber(number_argparse,absolute_path = True) + "]")
core_main(number_argparse, getNumber(number_argparse,absolute_path = True)) core_main(number_argparse, getNumber(number_argparse,absolute_path = True))
print("[*]======================================================") print("[*]======================================================")
CEF(success_folder) CEF(success_folder)
CEF(failed_folder) CEF(failed_folder)
print("[+]All finished!!!") print("[+]All finished!!!")
input("[+][+]Press enter key exit, you can check the error messge before you exit.") input("[+][+]Press enter key exit, you can check the error messge before you exit.")
os._exit(0) os._exit(0)
# ========== 野鸡番号拖动 ========== # ========== 野鸡番号拖动 ==========
count = 0 count = 0
count_all = str(len(movie_list)) count_all = str(len(movie_list))
print('[+]Find', count_all, 'movies') print('[+]Find', count_all, 'movies')
if config['common']['soft_link'] == '1': if config['common']['soft_link'] == '1':
print('[!] --- Soft link mode is ENABLE! ----') print('[!] --- Soft link mode is ENABLE! ----')
for i in movie_list: # 遍历电影列表 交给core处理 for i in movie_list: # 遍历电影列表 交给core处理
count = count + 1 count = count + 1
percentage = str(count / int(count_all) * 100)[:4] + '%' percentage = str(count / int(count_all) * 100)[:4] + '%'
print('[!] - ' + percentage + ' [' + str(count) + '/' + count_all + '] -') print('[!] - ' + percentage + ' [' + str(count) + '/' + count_all + '] -')
# print("[!]Making Data for [" + i + "], the number is [" + getNumber(i) + "]") print("[!]Making Data for [" + i + "], the number is [" + getNumber(i) + "]")
# core_main(i, getNumber(i)) core_main(i, getNumber(i))
# print("[*]======================================================") print("[*]======================================================")
try: # try:
print("[!]Making Data for [" + i + "], the number is [" + getNumber(i) + "]") # print("[!]Making Data for [" + i + "], the number is [" + getNumber(i) + "]")
core_main(i, getNumber(i)) # core_main(i, getNumber(i))
print("[*]======================================================") # print("[*]======================================================")
except: # 番号提取异常 # except: # 番号提取异常
print('[-]' + i + ' Cannot catch the number :') # print('[-]' + i + ' Cannot catch the number :')
if config['common']['soft_link'] == '1': # if config['common']['soft_link'] == '1':
print('[-]Link', i, 'to failed folder') # print('[-]Link', i, 'to failed folder')
os.symlink(i, str(os.getcwd()) + '/' + failed_folder + '/') # os.symlink(i, str(os.getcwd()) + '/' + failed_folder + '/')
else: # else:
try: # try:
print('[-]Move ' + i + ' to failed folder') # print('[-]Move ' + i + ' to failed folder')
shutil.move(i, str(os.getcwd()) + '/' + failed_folder + '/') # shutil.move(i, str(os.getcwd()) + '/' + failed_folder + '/')
except FileExistsError: # except FileExistsError:
print('[!]File exists in failed!') # print('[!]File exists in failed!')
except: # except:
print('[+]skip') # print('[+]skip')
continue # continue
CEF(success_folder) CEF(success_folder)
CEF(failed_folder) CEF(failed_folder)
print("[+]All finished!!!") print("[+]All finished!!!")
input("[+][+]Press enter key exit, you can check the error messge before you exit.") input("[+][+]Press enter key exit, you can check the error messge before you exit.")

View File

@@ -21,8 +21,8 @@ media_warehouse=emby
#emby or plex or kodi ,emby=jellyfin #emby or plex or kodi ,emby=jellyfin
[escape] [escape]
literals=\() literals=\()/
folders=failed,JAV_output folders=failed,JAV_output
[debug_mode] [debug_mode]
switch=1 switch=0

1385
core.py

File diff suppressed because it is too large Load Diff

BIN
linux_make Executable file

Binary file not shown.