135 lines
5.8 KiB
Python
135 lines
5.8 KiB
Python
import glob
|
|
import os
|
|
import time
|
|
import re
|
|
import sys
|
|
import ADC_function
|
|
import json
|
|
import shutil
|
|
|
|
version='0.11.2'
|
|
os.chdir(os.getcwd())
|
|
|
|
def UpdateCheck():
|
|
if ADC_function.UpdateCheckSwitch() == '1':
|
|
html2 = ADC_function.get_html('https://raw.githubusercontent.com/wenead99/AV_Data_Capture/master/update_check.json')
|
|
html = json.loads(str(html2))
|
|
|
|
if not version == html['version']:
|
|
print('[*] * New update ' + html['version'] + ' *')
|
|
print('[*] * Download *')
|
|
print('[*] ' + html['download'])
|
|
print('[*]=====================================')
|
|
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
|
|
def CreatFailedFolder():
|
|
if not os.path.exists('failed/'): # 新建failed文件夹
|
|
try:
|
|
os.makedirs('failed/')
|
|
except:
|
|
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
|
|
def CEF(path):
|
|
files = os.listdir(path) # 获取路径下的子文件(夹)列表
|
|
for file in files:
|
|
try: #试图删除空目录,非空目录删除会报错
|
|
os.removedirs(path + '/' + file) # 删除这个空文件夹
|
|
print('[+]Deleting empty folder',path + '/' + file)
|
|
except:
|
|
a=''
|
|
def rreplace(self, old, new, *max):
|
|
#从右开始替换文件名中内容,源字符串,将被替换的子字符串, 新字符串,用于替换old子字符串,可选字符串, 替换不超过 max 次
|
|
count = len(self)
|
|
if max and str(max[0]).isdigit():
|
|
count = max[0]
|
|
return new.join(self.rsplit(old, count))
|
|
def getNumber(filepath):
|
|
try: # 试图提取番号
|
|
# ====番号获取主程序====
|
|
try: # 普通提取番号 主要处理包含减号-的番号
|
|
filepath1 = filepath.replace("_", "-")
|
|
filepath1.strip('22-sht.me').strip('-HD').strip('-hd')
|
|
filename = str(re.sub("\[\d{4}-\d{1,2}-\d{1,2}\] - ", "", filepath1)) # 去除文件名中时间
|
|
file_number = re.search('\w+-\d+', filename).group()
|
|
return file_number
|
|
except: # 提取不含减号-的番号
|
|
try: # 提取东京热番号格式 n1087
|
|
filename1 = str(re.sub("h26\d", "", filepath)).strip('Tokyo-hot').strip('tokyo-hot')
|
|
filename0 = str(re.sub(".*?\.com-\d+", "", filename1)).strip('_')
|
|
if '-C.' in filepath or '-c.' in filepath:
|
|
cn_sub = '1'
|
|
file_number = str(re.search('n\d{4}', filename0).group(0))
|
|
return file_number
|
|
except: # 提取无减号番号
|
|
filename1 = str(re.sub("h26\d", "", filepath)) # 去除h264/265
|
|
filename0 = str(re.sub(".*?\.com-\d+", "", filename1))
|
|
file_number2 = str(re.match('\w+', filename0).group())
|
|
if '-C.' in filepath or '-c.' in filepath:
|
|
cn_sub = '1'
|
|
file_number = str(file_number2.replace(re.match("^[A-Za-z]+", file_number2).group(),
|
|
re.match("^[A-Za-z]+", file_number2).group() + '-'))
|
|
return file_number
|
|
# if not re.search('\w-', file_number).group() == 'None':
|
|
# file_number = re.search('\w+-\w+', filename).group()
|
|
# 上面是插入减号-到番号中
|
|
# ====番号获取主程序=结束===
|
|
except Exception as e: # 番号提取异常
|
|
print('[-]' + str(os.path.basename(filepath)) + ' Cannot catch the number :')
|
|
print('[-]' + str(os.path.basename(filepath)) + ' :', e)
|
|
print('[-]Move ' + os.path.basename(filepath) + ' to failed folder')
|
|
shutil.move(filepath, str(os.getcwd()) + '/' + 'failed/')
|
|
except IOError as e2:
|
|
print('[-]' + str(os.path.basename(filepath)) + ' Cannot catch the number :')
|
|
print('[-]' + str(os.path.basename(filepath)) + ' :', e2)
|
|
print('[-]Move ' + os.path.basename(filepath) + ' to failed folder')
|
|
shutil.move(filepath, str(os.getcwd()) + '/' + 'failed/')
|
|
|
|
if __name__ =='__main__':
|
|
print('[*]===========AV Data Capture===========')
|
|
print('[*] Version '+version)
|
|
print('[*]=====================================')
|
|
CreatFailedFolder()
|
|
UpdateCheck()
|
|
os.chdir(os.getcwd())
|
|
|
|
count = 0
|
|
count_all = str(len(movie_lists()))
|
|
for i in movie_lists(): #遍历电影列表 交给core处理
|
|
count = count + 1
|
|
percentage = str(count/int(count_all)*100)[:4]+'%'
|
|
print('[!] - '+percentage+' ['+str(count)+'/'+count_all+'] -')
|
|
print("[!]Making Data for [" + i + "],the number is [" + getNumber(i) + "]")
|
|
os.system('python core.py' + ' "' + i + '" --number "'+getNumber(i)+'"') #选择从py文件启动 (用于源码py)
|
|
#os.system('core.exe' + ' "' + i + '" --number "'+getNumber(i)+'"') #选择从exe文件启动(用于EXE版程序
|
|
#print()
|
|
print("[*]=====================================")
|
|
|
|
CEF('JAV_output')
|
|
print("[+]All finished!!!")
|
|
input("[+][+]Press enter key exit, you can check the error messge before you exit.\n[+][+]按回车键结束,你可以在结束之前查看和错误信息。")
|