Update 2.0
This commit is contained in:
		
							parent
							
								
									54db38511d
								
							
						
					
					
						commit
						b21d47c55c
					
				| @ -10,7 +10,8 @@ import sys | ||||
| from lxml import etree | ||||
| import sys | ||||
| import io | ||||
| sys.stdout = io.TextIOWrapper(sys.stdout.buffer, errors = 'replace', line_buffering = True) | ||||
| # sys.stdout = io.TextIOWrapper(sys.stdout.buffer, errors = 'replace', line_buffering = True) | ||||
| # sys.setdefaultencoding('utf-8') | ||||
| 
 | ||||
| config_file='config.ini' | ||||
| config = ConfigParser() | ||||
|  | ||||
| @ -5,7 +5,6 @@ import glob | ||||
| import os | ||||
| import time | ||||
| import re | ||||
| import sys | ||||
| from ADC_function import * | ||||
| import json | ||||
| import shutil | ||||
| @ -15,7 +14,7 @@ os.chdir(os.getcwd()) | ||||
| 
 | ||||
| # ============global var=========== | ||||
| 
 | ||||
| version='1.9' | ||||
| version='2.0' | ||||
| 
 | ||||
| config = ConfigParser() | ||||
| config.read(config_file, encoding='UTF-8') | ||||
| @ -44,10 +43,10 @@ def UpdateCheck(): | ||||
|         html = json.loads(str(html2)) | ||||
| 
 | ||||
|         if not version == html['version']: | ||||
|             print('[*]         * New update ' + html['version'] + ' *') | ||||
|             print('[*]            * Download *') | ||||
|             print('[*]                  * New update ' + html['version'] + ' *') | ||||
|             print('[*]                     ↓ Download ↓') | ||||
|             print('[*] ' + html['download']) | ||||
|             print('[*]=====================================') | ||||
|             print('[*]======================================================') | ||||
|     else: | ||||
|         print('[+]Update Check disabled!') | ||||
| def movie_lists(): | ||||
| @ -91,6 +90,8 @@ def getNumber(filepath): | ||||
|         filepath = filepath.replace("_", "-") | ||||
|         filepath.strip('22-sht.me').strip('-HD').strip('-hd') | ||||
|         filename = str(re.sub("\[\d{4}-\d{1,2}-\d{1,2}\] - ", "", filepath))  # 去除文件名中时间 | ||||
|         if 'FC2' or 'fc2' in filename: | ||||
|             filename=filename.replace('-PPV','').replace('PPV-','') | ||||
|         try: | ||||
|             file_number = re.search('\w+-\d+', filename).group() | ||||
|         except:  # 提取类似mkbd-s120番号 | ||||
| @ -126,9 +127,9 @@ def RunCore(): | ||||
|             os.system('python3 core.py' + '   "' + i + '" --number "' + getNumber(i) + '"')  # 从py文件启动(用于源码py) | ||||
| 
 | ||||
| if __name__ =='__main__': | ||||
|     print('[*]===========AV Data Capture===========') | ||||
|     print('[*]             Version '+version) | ||||
|     print('[*]=====================================') | ||||
|     print('[*]================== AV Data Capture ===================') | ||||
|     print('[*]                     Version '+version) | ||||
|     print('[*]======================================================') | ||||
|     CreatFailedFolder() | ||||
|     UpdateCheck() | ||||
|     moveMovies() | ||||
| @ -137,6 +138,8 @@ if __name__ =='__main__': | ||||
|     count = 0 | ||||
|     count_all = str(len(movie_lists())) | ||||
|     print('[+]Find',str(len(movie_lists())),'movies') | ||||
|     if config['common']['soft_link'] == '1': | ||||
|         print('[!] --- Soft link mode is ENABLE! ----') | ||||
|     for i in movie_lists(): #遍历电影列表 交给core处理 | ||||
|         count = count + 1 | ||||
|         percentage = str(count/int(count_all)*100)[:4]+'%' | ||||
| @ -144,14 +147,18 @@ if __name__ =='__main__': | ||||
|         try: | ||||
|             print("[!]Making Data for   [" + i + "], the number is [" + getNumber(i) + "]") | ||||
|             RunCore() | ||||
|             print("[*]=====================================") | ||||
|             print("[*]======================================================") | ||||
|         except:  # 番号提取异常 | ||||
|             print('[-]' + i + ' Cannot catch the number :') | ||||
|             print('[-]Move ' + i + ' to failed folder') | ||||
|             shutil.move(i, str(os.getcwd()) + '/' + 'failed/') | ||||
|             if config['common']['soft_link'] == '1': | ||||
|                 print('[-]Link',i,'to failed folder') | ||||
|                 os.symlink(i,str(os.getcwd()) + '/' + 'failed/') | ||||
|             else: | ||||
|                 print('[-]Move ' + i + ' to failed folder') | ||||
|                 shutil.move(i, str(os.getcwd()) + '/' + 'failed/') | ||||
|             continue | ||||
| 
 | ||||
|     CEF(exclude_directory_1) | ||||
|     CEF(exclude_directory_2) | ||||
|     print("[+]All finished!!!") | ||||
|     input("[+][+]Press enter key exit, you can check the error messge before you exit.\n[+][+]按回车键结束,你可以在结束之前查看和错误信息。") | ||||
|     input("[+][+]Press enter key exit, you can check the error messge before you exit.") | ||||
| @ -2,6 +2,7 @@ | ||||
| main_mode=1 | ||||
| failed_output_folder=failed | ||||
| success_output_folder=JAV_output | ||||
| soft_link=0 | ||||
| 
 | ||||
| [proxy] | ||||
| proxy=127.0.0.1:1081 | ||||
| @ -17,7 +18,7 @@ update_check=1 | ||||
| 
 | ||||
| [media] | ||||
| media_warehouse=emby | ||||
| #emby or plex or kodi | ||||
| #emby or plex or kodi ,emby=jellyfin | ||||
| 
 | ||||
| [escape] | ||||
| literals=\() | ||||
|  | ||||
							
								
								
									
										32
									
								
								core.py
									
									
									
									
									
								
							
							
						
						
									
										32
									
								
								core.py
									
									
									
									
									
								
							| @ -128,7 +128,7 @@ def getDataFromJSON(file_number):  # 从JSON返回元数据 | ||||
|             json_data = json.loads(javdb.main(file_number)) | ||||
|     # == | ||||
|     elif 'fc2' in file_number or 'FC2' in file_number: | ||||
|         json_data = json.loads(fc2fans_club.main(file_number)) | ||||
|         json_data = json.loads(fc2fans_club.main(file_number.replace('fc2-','').replace('fc2_','').replace('FC2-','').replace('fc2_',''))) | ||||
|     # == | ||||
|     elif 'HEYZO' in number or 'heyzo' in number or 'Heyzo' in number: | ||||
|         json_data = json.loads(avsox.main(file_number)) | ||||
| @ -537,7 +537,19 @@ 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()) | ||||
|     try: | ||||
|         os.rename(filepath, path + '/' + number + c_word + houzhui) | ||||
|         if config['common']['soft_link'] == '1':  #如果soft_link=1 使用软链接 | ||||
|             os.symlink(filepath, path + '/' + number + c_word + houzhui) | ||||
|         else: | ||||
|             os.rename(filepath, path + '/' + number + c_word + houzhui) | ||||
|         if os.path.exists(os.getcwd()+'/'+number + c_word + '.srt'): #字幕移动 | ||||
|             os.rename(os.getcwd()+'/'+number + c_word + '.srt', path + '/' + number + c_word + '.srt') | ||||
|             print('[+]Sub moved!') | ||||
|         elif os.path.exists(os.getcwd()+'/'+number + c_word + '.ssa'): | ||||
|             os.rename(os.getcwd()+'/'+number + c_word + '.ssa', path + '/' + number + c_word + '.ssa') | ||||
|             print('[+]Sub moved!') | ||||
|         elif os.path.exists(os.getcwd()+'/'+number + c_word + '.sub'): | ||||
|             os.rename(os.getcwd()+'/'+number + c_word + '.sub', path + '/' + number + c_word + '.sub') | ||||
|             print('[+]Sub moved!') | ||||
|     except FileExistsError: | ||||
|         print('[-]File Exists! Please check your movie!') | ||||
|         print('[-]move to the root folder of the program.') | ||||
| @ -555,7 +567,19 @@ def pasteFileToFolder_mode2(filepath, path):  # 文件路径,番号,后缀 | ||||
|     houzhui = str(re.search('[.](AVI|RMVB|WMV|MOV|MP4|MKV|FLV|TS|avi|rmvb|wmv|mov|mp4|mkv|flv|ts)$', filepath).group()) | ||||
|     path = success_folder + '/' + location_rule | ||||
|     try: | ||||
|         os.rename(filepath, path + '/' + number + part + c_word + houzhui) | ||||
|         if config['common']['soft_link'] == '1': | ||||
|             os.symlink(filepath, path + '/' + number + part + c_word + houzhui) | ||||
|         else: | ||||
|             os.rename(filepath, path + '/' + number + part + c_word + houzhui) | ||||
|         if os.path.exists(number+'.srt'): #字幕移动 | ||||
|             os.rename(number + part + c_word + '.srt', path + '/' + number + part + c_word + '.srt') | ||||
|             print('[+]Sub moved!') | ||||
|         elif os.path.exists(number + part + c_word+'.ass'): | ||||
|             os.rename(number + part + c_word + '.ass', path + '/' + number + part + c_word + '.ass') | ||||
|             print('[+]Sub moved!') | ||||
|         elif os.path.exists(number + part + c_word+'.sub'): | ||||
|             os.rename(number + part + c_word + '.sub', path + '/' + number + part + c_word + '.sub') | ||||
|             print('[+]Sub moved!') | ||||
|         print('[!]Success') | ||||
|     except FileExistsError: | ||||
|         print('[-]File Exists! Please check your movie!') | ||||
| @ -597,7 +621,7 @@ def debug_mode(): | ||||
|                     continue | ||||
|                 if i == 'actor_photo' or i == 'year': | ||||
|                     continue | ||||
|                 print('[+] -', i, ':', v) | ||||
|                 print('[+] -', i+str(9-len(i)*'-'), ':', v) | ||||
|             print('[+] ---Debug info---') | ||||
|     except: | ||||
|         aaa = '' | ||||
|  | ||||
| @ -4,43 +4,50 @@ import json | ||||
| import ADC_function | ||||
| 
 | ||||
| def getTitle(htmlcode): #获取厂商 | ||||
|     #print(htmlcode) | ||||
|     html = etree.fromstring(htmlcode,etree.HTMLParser()) | ||||
|     result = str(html.xpath('//*[@id="container"]/div[1]/div/article/section[1]/h2/text()')).strip(" ['']") | ||||
|     return result | ||||
|     result = str(html.xpath('/html/body/div[2]/div/div[1]/h3/text()')).strip(" ['']") | ||||
|     result2 = str(re.sub('\D{2}2-\d+','',result)).replace(' ','',1) | ||||
|     #print(result2) | ||||
|     return result2 | ||||
| def getActor(htmlcode): | ||||
|     try: | ||||
|         html = etree.fromstring(htmlcode, etree.HTMLParser()) | ||||
|         result = str(html.xpath('//*[@id="container"]/div[1]/div/article/section[1]/div/div[2]/dl/dd[5]/a/text()')).strip(" ['']") | ||||
|         result = str(html.xpath('/html/body/div[2]/div/div[1]/h5[5]/a/text()')).strip(" ['']") | ||||
|         return result | ||||
|     except: | ||||
|         return '' | ||||
| def getStudio(htmlcode): #获取厂商 | ||||
|     try: | ||||
|         html = etree.fromstring(htmlcode, etree.HTMLParser()) | ||||
|         result = str(html.xpath('//*[@id="container"]/div[1]/div/article/section[1]/div/div[2]/dl/dd[5]/a/text()')).strip(" ['']") | ||||
|         return result | ||||
|     except: | ||||
|         return '' | ||||
|     html = etree.fromstring(htmlcode,etree.HTMLParser()) | ||||
|     result = str(html.xpath('/html/body/div[2]/div/div[1]/h5[3]/a[1]/text()')).strip(" ['']") | ||||
|     return result | ||||
| def getNum(htmlcode):     #获取番号 | ||||
|     html = etree.fromstring(htmlcode, etree.HTMLParser()) | ||||
|     result = str(html.xpath('/html/body/div[5]/div[1]/div[2]/p[1]/span[2]/text()')).strip(" ['']") | ||||
|     #print(result) | ||||
|     return result | ||||
| def getRelease(htmlcode2): # | ||||
|     #a=ADC_function.get_html('http://adult.contents.fc2.com/article_search.php?id='+str(number).lstrip("FC2-").lstrip("fc2-").lstrip("fc2_").lstrip("fc2-")+'&utm_source=aff_php&utm_medium=source_code&utm_campaign=from_aff_php') | ||||
|     html=etree.fromstring(htmlcode2,etree.HTMLParser()) | ||||
|     result = str(html.xpath('//*[@id="container"]/div[1]/div/article/section[1]/div/div[2]/dl/dd[4]/text()')).strip(" ['']") | ||||
|     return result | ||||
| def getCover(htmlcode2): #获取厂商 # | ||||
| def getCover(htmlcode,number,htmlcode2): #获取厂商 # | ||||
|     #a = ADC_function.get_html('http://adult.contents.fc2.com/article_search.php?id=' + str(number).lstrip("FC2-").lstrip("fc2-").lstrip("fc2_").lstrip("fc2-") + '&utm_source=aff_php&utm_medium=source_code&utm_campaign=from_aff_php') | ||||
|     html = etree.fromstring(htmlcode2, etree.HTMLParser()) | ||||
|     result = str(html.xpath('//*[@id="container"]/div[1]/div/article/section[1]/div/div[1]/a/img/@src')).strip(" ['']") | ||||
|     if result == '': | ||||
|         html = etree.fromstring(htmlcode, etree.HTMLParser()) | ||||
|         result2 = str(html.xpath('//*[@id="slider"]/ul[1]/li[1]/img/@src')).strip(" ['']") | ||||
|         return 'https://fc2club.com' +  result2 | ||||
|     return 'http:' + result | ||||
| def getOutline(htmlcode2):     #获取番号 # | ||||
|     html = etree.fromstring(htmlcode2, etree.HTMLParser()) | ||||
|     result = str(html.xpath('//*[@id="container"]/div[1]/div/article/section[4]/p/text()')).strip(" ['']").replace("\\n",'',10000).replace("'",'',10000).replace(', ,','').strip('  ').replace('。,',',') | ||||
|     result = str(html.xpath('/html/body/div[1]/div[2]/div[2]/div[1]/div/article/section[4]/p/text()')).strip(" ['']").replace("\\n",'',10000).replace("'",'',10000).replace(', ,','').strip('  ').replace('。,',',') | ||||
|     return result | ||||
| def getTag(htmlcode):     #获取番号 | ||||
|     html = etree.fromstring(htmlcode, etree.HTMLParser()) | ||||
|     result = html.xpath('//*[@id="container"]/div[1]/div/article/section[6]/ul/li/a/text()') | ||||
|     return result | ||||
|     result = str(html.xpath('/html/body/div[2]/div/div[1]/h5[4]/a/text()')) | ||||
|     return result.strip(" ['']").replace("'",'').replace(' ','') | ||||
| def getYear(release): | ||||
|     try: | ||||
|         result = re.search('\d{4}',release).group() | ||||
| @ -49,25 +56,29 @@ def getYear(release): | ||||
|         return '' | ||||
| 
 | ||||
| def main(number): | ||||
|     number=number.replace('PPV','').replace('ppv','').strip('fc2_').strip('fc2-').strip('ppv-').strip('PPV-').strip('FC2_').strip('FC2-').strip('ppv-').strip('PPV-').replace('fc2ppv-','').replace('FC2PPV-','') | ||||
|     htmlcode2 = ADC_function.get_html('http://adult.contents.fc2.com/article_search.php?id='+str(number).lstrip("FC2-").lstrip("fc2-").lstrip("fc2_").lstrip("fc2-")+'') | ||||
|     #htmlcode = ADC_function.get_html('http://fc2fans.club/html/FC2-' + number + '.html') | ||||
|     htmlcode2 = ADC_function.get_html('http://adult.contents.fc2.com/article_search.php?id='+number+'&utm_source=aff_php&utm_medium=source_code&utm_campaign=from_aff_php') | ||||
|     htmlcode = ADC_function.get_html('https://fc2club.com//html/FC2-' + number + '.html') | ||||
|     actor = getActor(htmlcode) | ||||
|     if getActor(htmlcode) == '': | ||||
|         actor = 'FC2系列' | ||||
|     dic = { | ||||
|         'title':    getTitle(htmlcode2), | ||||
|         'studio':   getStudio(htmlcode2), | ||||
|         'year':     getYear(getRelease(htmlcode2)), | ||||
|         'title':    getTitle(htmlcode), | ||||
|         'studio':   getStudio(htmlcode), | ||||
|         'year': '',#str(re.search('\d{4}',getRelease(number)).group()), | ||||
|         'outline':  getOutline(htmlcode2), | ||||
|         'runtime':  getYear(getRelease(htmlcode2)), | ||||
|         'director': getStudio(htmlcode2), | ||||
|         'actor':    getStudio(htmlcode2), | ||||
|         'release':  getRelease(htmlcode2), | ||||
|         'runtime':  getYear(getRelease(htmlcode)), | ||||
|         'director': getStudio(htmlcode), | ||||
|         'actor':    actor, | ||||
|         'release':  getRelease(number), | ||||
|         'number':  'FC2-'+number, | ||||
|         'cover':    getCover(htmlcode2), | ||||
|         'cover':    getCover(htmlcode,number,htmlcode2), | ||||
|         'imagecut': 0, | ||||
|         'tag':      getTag(htmlcode2), | ||||
|         'tag':      getTag(htmlcode), | ||||
|         'actor_photo':'', | ||||
|         'website':  'http://adult.contents.fc2.com/article_search.php?id=' + number, | ||||
|         'source': 'fc2fans_club.py', | ||||
|         'website':  'https://fc2club.com//html/FC2-' + number + '.html', | ||||
|         'source':'https://fc2club.com//html/FC2-' + number + '.html', | ||||
|     } | ||||
|     js = json.dumps(dic, ensure_ascii=False, sort_keys=True, indent=4, separators=(',', ':'),)#.encode('UTF-8') | ||||
|     return js | ||||
|     return js | ||||
| 
 | ||||
| #print(main('1051725')) | ||||
|  | ||||
							
								
								
									
										2
									
								
								siro.py
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								siro.py
									
									
									
									
									
								
							| @ -101,3 +101,5 @@ def main(number2): | ||||
|     } | ||||
|     js = json.dumps(dic, ensure_ascii=False, sort_keys=True, indent=4, separators=(',', ':'), )  # .encode('UTF-8') | ||||
|     return js | ||||
| 
 | ||||
| #print(main('SIRO-3607')) | ||||
| @ -1,5 +1,5 @@ | ||||
| { | ||||
| 	"version": "1.9", | ||||
| 	"version_show":"1.9", | ||||
| 	"version": "2.0", | ||||
| 	"version_show":"2.0", | ||||
| 	"download": "https://github.com/yoshiko2/AV_Data_Capture/releases" | ||||
| } | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user