diff --git a/ADC_function.py b/ADC_function.py
index 0a3b4ed..1c679ed 100644
--- a/ADC_function.py
+++ b/ADC_function.py
@@ -2,6 +2,8 @@ import requests
 from configparser import RawConfigParser
 import os
 import re
+from retrying import retry
+import sys
 
 # content = open('proxy.ini').read()
 # content = re.sub(r"\xfe\xff","", content)
@@ -16,27 +18,52 @@ else:
     with open("proxy.ini", "wt", encoding='UTF-8') as code:
         print("[proxy]",file=code)
         print("proxy=127.0.0.1:1080",file=code)
-
+        print("timeout=10", file=code)
+        print("[Name_Rule]", file=code)
+        print("location_rule='JAV_output/'+actor+'/['+number+']-'+title",file=code)
+        print("naming_rule=number+'-'+title",file=code)
+        print("[update]",file=code)
+        print("update_check=1")
+def UpdateCheckSwitch():
+    check=str(config['update']['update_check'])
+    if check == '1':
+        return '1'
+    elif check == '0':
+        return '0'
 def get_html(url,cookies = None):#网页请求核心
-    if not str(config['proxy']['proxy']) == '':
-        proxies = {
-            "http" : "http://"  + str(config['proxy']['proxy']),
-            "https": "https://" + str(config['proxy']['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, proxies=proxies,cookies=cookies)
-        getweb.encoding = 'utf-8'
-        # print(getweb.text)
+    i = 0
+    retry_count = int(config['proxy']['retry'])
+    while i < retry_count:
         try:
-            return getweb.text
-        except:
-            print('[-]Connected failed!:Proxy error')
-    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,cookies=cookies)
-        getweb.encoding = 'utf-8'
-        try:
-            return getweb.text
-        except:
-             print("[-]Connect Failed.")
\ No newline at end of file
+            if not str(config['proxy']['proxy']) == '':
+                proxies = {
+                    "http": "http://" + str(config['proxy']['proxy']),
+                    "https": "https://" + str(config['proxy']['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.encoding = 'utf-8'
+                # print(getweb.text)
+                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.encoding = 'utf-8'
+                return getweb.text
+        except requests.exceptions.RequestException:
+            i += 1
+            print('[-]Connect retry '+str(i)+'/'+str(retry_count))
+        except requests.exceptions.ConnectionError:
+            i += 1
+            print('[-]Connect retry '+str(i)+'/'+str(retry_count))
+        except requests.exceptions.ProxyError:
+            i += 1
+            print('[-]Connect retry '+str(i)+'/'+str(retry_count))
+        except requests.exceptions.ConnectTimeout:
+            i += 1
+            print('[-]Connect retry '+str(i)+'/'+str(retry_count))
+
+
+
diff --git a/AV_Data_Capture.py b/AV_Data_Capture.py
index b1c2823..dd0127b 100644
--- a/AV_Data_Capture.py
+++ b/AV_Data_Capture.py
@@ -3,48 +3,57 @@ import os
 import time
 import re
 import sys
-from ADC_function import *
+import ADC_function
 import json
+import shutil
 
-version='0.10.6'
+version='0.11.1'
+os.chdir(os.getcwd())
 
 def UpdateCheck():
-    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']:
-        print('[*]        * New update '+html['version']+' *')
-        print('[*]             * Download *')
-        print('[*] '+html['download'])
-        print('[*]=====================================')
+    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(os.getcwd() + r"\*.mp4")
+    a2 = glob.glob(r".\*.mp4")
     # AVI
-    b2 = glob.glob(os.getcwd() + r"\*.avi")
+    b2 = glob.glob(r".\*.avi")
     # RMVB
-    c2 = glob.glob(os.getcwd() + r"\*.rmvb")
+    c2 = glob.glob(r".\*.rmvb")
     # WMV
-    d2 = glob.glob(os.getcwd() + r"\*.wmv")
+    d2 = glob.glob(r".\*.wmv")
     # MOV
-    e2 = glob.glob(os.getcwd() + r"\*.mov")
+    e2 = glob.glob(r".\*.mov")
     # MKV
-    f2 = glob.glob(os.getcwd() + r"\*.mkv")
+    f2 = glob.glob(r".\*.mkv")
     # FLV
-    g2 = glob.glob(os.getcwd() + r"\*.flv")
+    g2 = glob.glob(r".\*.flv")
     # TS
-    h2 = glob.glob(os.getcwd() + r"\*.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:
@@ -53,29 +62,74 @@ def CEF(path):
             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()
+            if '-C.' in filepath or '-c.' in filepath:
+                cn_sub = '1'
+            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处理
-        if '_' in i:
-            os.rename(re.search(r'[^\\/:*?"<>|\r\n]+$', i).group(), rreplace(re.search(r'[^\\/:*?"<>|\r\n]+$', i).group(), '_', '-', 1))
-            i = rreplace(re.search(r'[^\\/:*?"<>|\r\n]+$', i).group(), '_', '-', 1)
-        os.system('python core.py' + ' "' + i + '"') #选择从py文件启动  (用于源码py)
-        #os.system('core.exe' + ' "' + i + '"')      #选择从exe文件启动(用于EXE版程序)
+        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("[!]Cleaning empty folders")
     CEF('JAV_output')
     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.\n[+][+]按回车键结束,你可以在结束之前查看和错误信息。")
\ No newline at end of file
diff --git a/core.py b/core.py
index c187076..4e4971a 100644
--- a/core.py
+++ b/core.py
@@ -10,6 +10,8 @@ import fc2fans_club
 import siro
 from ADC_function import *
 from configparser import ConfigParser
+import argparse
+import javdb
 
 #初始化全局变量
 title=''
@@ -25,15 +27,19 @@ number=''
 cover=''
 imagecut=''
 tag=[]
+cn_sub=''
+path=''
+houzhui=''
 naming_rule  =''#eval(config['Name_Rule']['naming_rule'])
 location_rule=''#eval(config['Name_Rule']['location_rule'])
+
 #=====================本地文件处理===========================
 def argparse_get_file():
-    import argparse
     parser = argparse.ArgumentParser()
+    parser.add_argument("--number", help="Enter Number on here", default='')
     parser.add_argument("file", help="Write the file path on here")
     args = parser.parse_args()
-    return args.file
+    return (args.file, args.number)
 def CreatFailedFolder():
     if not os.path.exists('failed/'):  # 新建failed文件夹
         try:
@@ -41,7 +47,7 @@ def CreatFailedFolder():
         except:
             print("[-]failed!can not be make folder 'failed'\n[-](Please run as Administrator)")
             os._exit(0)
-def getNumberFromFilename(filepath):
+def getDataFromJSON(file_number): #从JSON返回元数据
     global title
     global studio
     global year
@@ -56,106 +62,72 @@ def getNumberFromFilename(filepath):
     global imagecut
     global tag
     global image_main
+    global cn_sub
 
     global naming_rule
     global location_rule
 
-#================================================获取文件番号================================================
-    try:    #试图提取番号
-    # ====番号获取主程序====
-        try:  # 普通提取番号 主要处理包含减号-的番号
-            filepath.strip('22-sht.me').strip('-HD').strip('-hd')
-            filename = str(re.sub("\[\d{4}-\d{1,2}-\d{1,2}\] - ", "", filepath))  # 去除文件名中文件名
-            file_number = re.search('\w+-\d+', filename).group()
-        except:  # 提取不含减号-的番号
-            try:  # 提取东京热番号格式 n1087
-                filename1 = str(re.sub("h26\d", "", filepath)).strip('Tokyo-hot').strip('tokyo-hot')
-                filename0 = str(re.sub(".*?\.com-\d+", "", filename1)).strip('_')
-                file_number = str(re.search('n\d{4}', filename0).group(0))
-            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())
-                file_number = str(file_number2.replace(re.match("^[A-Za-z]+", file_number2).group(),re.match("^[A-Za-z]+", file_number2).group() + '-'))
-                #if not re.search('\w-', file_number).group() == 'None':
-                    #file_number = re.search('\w+-\w+', filename).group()
-                #上面是插入减号-到番号中
-        print("[!]Making Data for   [" + filename + "],the number is [" + file_number + "]")
-    # ====番号获取主程序=结束===
-    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/')
-        os._exit(0)
-    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/')
-        os._exit(0)
-    try:
+    try:    # 添加 需要 正则表达式的规则
+        # =======================javdb.py=======================
+        if re.search('^\d{5,}', file_number).group() in file_number:
+            json_data = json.loads(javdb.main(file_number))
+        # ======================siro.py==========================
+        elif re.search('\d+\D+', file_number).group() in file_number:
+            json_data = json.loads(siro.main(file_number))
+    except:  # 添加 无需 正则表达式的规则
+        # ====================fc2fans_club.py====================
+        if 'fc2' in file_number:
+            json_data = json.loads(fc2fans_club.main(
+                file_number.strip('fc2_').strip('fc2-').strip('ppv-').strip('PPV-').strip('FC2_').strip('FC2-').strip('ppv-').strip('PPV-')))
+        elif 'FC2' in file_number:
+            json_data = json.loads(fc2fans_club.main(
+                file_number.strip('FC2_').strip('FC2-').strip('ppv-').strip('PPV-').strip('fc2_').strip('fc2-').strip('ppv-').strip('PPV-')))
+            # print(file_number.strip('FC2_').strip('FC2-').strip('ppv-').strip('PPV-'))
+        # =======================javbus.py=======================
+        else:
+            json_data = json.loads(javbus.main(file_number))
 
+    # ================================================网站规则添加结束================================================
 
+    title =      str(json_data['title'])
+    studio =         json_data['studio']
+    year =           json_data['year']
+    outline =        json_data['outline']
+    runtime =        json_data['runtime']
+    director =       json_data['director']
+    actor_list = str(json_data['actor']).strip("[ ]").replace("'", '').replace(" ", '').split(',')  # 字符串转列表
+    release =        json_data['release']
+    number =         json_data['number']
+    cover =          json_data['cover']
+    imagecut =       json_data['imagecut']
+    tag =        str(json_data['tag']).strip("[ ]").replace("'", '').replace(" ", '').split(',')  # 字符串转列表
+    actor =      str(actor_list).strip("[ ]").replace("'", '').replace(" ", '')
 
+    # ====================处理异常字符====================== #\/:*?"<>|
+    if '\\' in title:
+        title=title.replace('\\', ' ')
+    elif '/' in title:
+        title=title.replace('/', '')
+    elif ':' in title:
+        title=title.replace('/', '')
+    elif '*' in title:
+        title=title.replace('*', '')
+    elif '?' in title:
+        title=title.replace('?', '')
+    elif '"' in title:
+        title=title.replace('"', '')
+    elif '<' in title:
+        title=title.replace('<', '')
+    elif '>' in title:
+        title=title.replace('>', '')
+    elif '|' in title:
+        title=title.replace('|', '')
+    # ====================处理异常字符 END================== #\/:*?"<>|
 
-# ================================================网站规则添加开始================================================
+    naming_rule   = eval(config['Name_Rule']['naming_rule'])
+    location_rule = eval(config['Name_Rule']['location_rule'])
 
-        try:  #添加 需要 正则表达式的规则
-            #=======================javbus.py=======================
-            if re.search('^\d{5,}', file_number).group() in filename:
-                json_data = json.loads(javbus.main_uncensored(file_number))
-        except: #添加 无需 正则表达式的规则
-            # ====================fc2fans_club.py===================
-            if 'fc2' in filename:
-                json_data = json.loads(fc2fans_club.main(file_number.strip('fc2_').strip('fc2-').strip('ppv-').strip('PPV-').strip('FC2_').strip('FC2-').strip('ppv-').strip('PPV-')))
-            elif 'FC2' in filename:
-                json_data = json.loads(fc2fans_club.main(file_number.strip('FC2_').strip('FC2-').strip('ppv-').strip('PPV-').strip('fc2_').strip('fc2-').strip('ppv-').strip('PPV-')))
-                #print(file_number.strip('FC2_').strip('FC2-').strip('ppv-').strip('PPV-'))
-            #=======================javbus.py=======================
-            else:
-                json_data = json.loads(javbus.main(file_number))
-
-
-
-#================================================网站规则添加结束================================================
-
-
-
-
-        title      = json_data['title']
-        studio     = json_data['studio']
-        year       = json_data['year']
-        outline    = json_data['outline']
-        runtime    = json_data['runtime']
-        director   = json_data['director']
-        actor_list = str(json_data['actor']).strip("[ ]").replace("'",'').replace(" ",'').split(',') #字符串转列表
-        release    = json_data['release']
-        number     = json_data['number']
-        cover      = json_data['cover']
-        imagecut   = json_data['imagecut']
-        tag        = str(json_data['tag']).strip("[ ]").replace("'",'').replace(" ",'').split(',')   #字符串转列表
-        actor      = str(actor_list).strip("[ ]").replace("'",'').replace(" ",'')
-
-        #====================处理异常字符====================== #\/:*?"<>|
-        #if "\\" in title or "/" in title or ":" in title or "*" in title or "?" in title or '"' in title or '<' in title or ">" in title or "|" in title or len(title) > 200:
-        #    title = title.
-
-        naming_rule  = eval(config['Name_Rule']['naming_rule'])
-        location_rule =eval(config['Name_Rule']['location_rule'])
-    except IOError as e:
-        print('[-]'+str(e))
-        print('[-]Move ' + filename + ' to failed folder')
-        shutil.move(filepath, str(os.getcwd())+'/'+'failed/')
-        os._exit(0)
-
-    except Exception as e:
-        print('[-]'+str(e))
-        print('[-]Move ' + filename + ' to failed folder')
-        shutil.move(filepath, str(os.getcwd())+'/'+'failed/')
-        os._exit(0)
-path = '' #设置path为全局变量,后面移动文件要用
-def creatFolder():
+def creatFolder(): #创建文件夹
     global actor
     global path
     if len(actor) > 240:                    #新建成功输出文件夹
@@ -168,56 +140,62 @@ def creatFolder():
         try:
             os.makedirs(path)
         except:
-            path = location_rule.replace(actor,"'其他'")
+            path = location_rule.replace('/['+number+']-'+title,"/number")
+            #print(path)
             os.makedirs(path)
-
-
 #=====================资源下载部分===========================
 def DownloadFileWithFilename(url,filename,path): #path = examle:photo , video.in the Project Folder!
     config = ConfigParser()
     config.read('proxy.ini', encoding='UTF-8')
     proxy = str(config['proxy']['proxy'])
-    if not str(config['proxy']['proxy']) == '':
+    timeout = int(config['proxy']['timeout'])
+    retry_count = int(config['proxy']['retry'])
+    i = 0
+    while i < retry_count:
         try:
-            if not os.path.exists(path):
-                os.makedirs(path)
-            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'}
-            r = requests.get(url, headers=headers,proxies={"http": "http://" + str(proxy), "https": "https://" + str(proxy)})
-            with open(str(path) + "/" + filename, "wb") as code:
-                code.write(r.content)
-                # print(bytes(r),file=code)
-        except IOError as e:
-            print("[-]Movie not found in All website!")
-            print("[-]" + filename, e)
-            # print("[*]=====================================")
-            return "failed"
-        except Exception as e1:
-            print(e1)
-            print("[-]Download Failed2!")
-            time.sleep(3)
-            os._exit(0)
-    else:
-        try:
-            if not os.path.exists(path):
-                os.makedirs(path)
-            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'}
-            r = requests.get(url, headers=headers)
-            with open(str(path) + "/" + filename, "wb") as code:
-                code.write(r.content)
-                # print(bytes(r),file=code)
-        except IOError as e:
-            print("[-]Movie not found in All website!")
-            print("[-]" + filename, e)
-            # print("[*]=====================================")
-            return "failed"
-        except Exception as e1:
-            print(e1)
-            print("[-]Download Failed2!")
-            time.sleep(3)
-            os._exit(0)
-def PrintFiles(path,naming_rule):
+            if not str(config['proxy']['proxy']) == '':
+                if not os.path.exists(path):
+                    os.makedirs(path)
+                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'}
+                r = requests.get(url, headers=headers, timeout=timeout,proxies={"http": "http://" + str(proxy), "https": "https://" + str(proxy)})
+                with open(str(path) + "/" + filename, "wb") as code:
+                    code.write(r.content)
+                return
+                        # print(bytes(r),file=code)
+            else:
+                if not os.path.exists(path):
+                    os.makedirs(path)
+                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'}
+                r = requests.get(url, timeout=timeout, headers=headers)
+                with open(str(path) + "/" + filename, "wb") as code:
+                    code.write(r.content)
+                return
+                    # print(bytes(r),file=code)
+        except requests.exceptions.RequestException:
+            i += 1
+            print('[-]Image Download :  Connect retry '+str(i)+'/'+str(retry_count))
+        except requests.exceptions.ConnectionError:
+            i += 1
+            print('[-]Image Download :  Connect retry '+str(i)+'/'+str(retry_count))
+        except requests.exceptions.ProxyError:
+            i += 1
+            print('[-]Image Download :  Connect retry '+str(i)+'/'+str(retry_count))
+        except requests.exceptions.ConnectTimeout:
+            i += 1
+            print('[-]Image Download :  Connect retry '+str(i)+'/'+str(retry_count))
+def imageDownload(filepath): #封面是否下载成功,否则移动到failed
+    global path
+    if DownloadFileWithFilename(cover,naming_rule+'.jpg', path) == 'failed':
+        shutil.move(filepath, 'failed/')
+        os._exit(0)
+    DownloadFileWithFilename(cover, naming_rule+'.jpg', path)
+    print('[+]Image Downloaded!', path +'/'+naming_rule+'.jpg')
+def PrintFiles(filepath):
+    #global path
     global title
+    global cn_sub
     try:
         if not os.path.exists(path):
             os.makedirs(path)
@@ -245,6 +223,8 @@ def PrintFiles(path,naming_rule):
             print("  <maker>" + studio + "</maker>", file=code)
             print("  <label>", file=code)
             print("  </label>", file=code)
+            if cn_sub == '1':
+                print("  <tag>中文字幕</tag>", file=code)
             try:
                 for i in tag:
                     print("  <tag>" + i + "</tag>", file=code)
@@ -255,6 +235,8 @@ def PrintFiles(path,naming_rule):
                     print("  <genre>" + i + "</genre>", file=code)
             except:
                 aaaaaaaa=''
+            if cn_sub == '1':
+                print("  <genre>中文字幕</genre>", file=code)
             print("  <num>" + number + "</num>", file=code)
             print("  <release>" + release + "</release>", file=code)
             print("  <cover>"+cover+"</cover>", file=code)
@@ -264,42 +246,61 @@ def PrintFiles(path,naming_rule):
     except IOError as e:
         print("[-]Write Failed!")
         print(e)
+        shutil.move(filepath, str(os.getcwd()) + '/' + 'failed/')
+        os._exit(0)
     except Exception as e1:
         print(e1)
         print("[-]Write Failed!")
-def imageDownload(filepath): #封面是否下载成功,否则移动到failed
-    if DownloadFileWithFilename(cover,'Backdrop.jpg', path) == 'failed':
-        shutil.move(filepath, 'failed/')
+        shutil.move(filepath, str(os.getcwd()) + '/' + 'failed/')
         os._exit(0)
-    DownloadFileWithFilename(cover, 'Backdrop.jpg', path)
-    print('[+]Image Downloaded!', path +'/'+'Backdrop.jpg')
 def cutImage():
     if imagecut == 1:
         try:
-            img = Image.open(path + '/' + 'Backdrop' + '.jpg')
+            img = Image.open(path + '/' + naming_rule + '.jpg')
             imgSize = img.size
             w = img.width
             h = img.height
             img2 = img.crop((w / 1.9, 0, w, h))
-            img2.save(path + '/' + number + '.png')
+            img2.save(path + '/' + naming_rule + '.png')
         except:
             print('[-]Cover cut failed!')
     else:
-        img = Image.open(path + '/' + 'Backdrop' + '.jpg')
+        img = Image.open(path + '/' + naming_rule + '.jpg')
         w = img.width
         h = img.height
-        img.save(path + '/' + number + '.png')
+        img.save(path + '/' + naming_rule + '.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)
+    os.rename(filepath, naming_rule + houzhui)
+    shutil.move(naming_rule + houzhui, path)
+def renameJpgToBackdrop_copy():
+    shutil.copy(path+'/'+naming_rule + '.jpg', path+'/Backdrop.jpg')
 
 if __name__ == '__main__':
-    filepath=argparse_get_file() #影片的路径
-    CreatFailedFolder()
-    getNumberFromFilename(filepath) #定义番号
-    creatFolder() #创建文件夹
-    imageDownload(filepath) #creatFoder会返回番号路径
-    PrintFiles(path,naming_rule)#打印文件
-    cutImage() #裁剪图
-    pasteFileToFolder(filepath,path) #移动文件
+    filepath=argparse_get_file()[0] #影片的路径
+
+    if argparse_get_file()[1] == '':    #获取手动拉去影片获取的番号
+        try:
+            number = str(re.findall(r'(.+?)\.',str(re.search('([^<>/\\\\|:""\\*\\?]+)\\.\\w+$',filepath).group()))).strip("['']").replace('_','-')
+            print("[!]Making Data for   [" + number + "]")
+        except:
+            print("[-]failed!Please rename the filename again!")
+            shutil.move(filepath,'failed/')
+    else:
+        number = argparse_get_file()[1]
+
+    try:
+        CreatFailedFolder()
+        getDataFromJSON(number)  # 定义番号
+        creatFolder()  # 创建文件夹
+        imageDownload(filepath)  # creatFoder会返回番号路径
+        PrintFiles(filepath)  # 打印文件
+        cutImage()  # 裁剪图
+        pasteFileToFolder(filepath, path)  # 移动文件
+        renameJpgToBackdrop_copy()
+        #time.sleep(20)
+    except:
+        print('[-]Movie data capture failed!')
+        #time.sleep(20)
+        os._exit(0)
diff --git a/fc2fans_club.py b/fc2fans_club.py
index 39c0647..d966b49 100644
--- a/fc2fans_club.py
+++ b/fc2fans_club.py
@@ -17,7 +17,6 @@ def getActor(htmlcode):
         return result
     except:
         return ''
-
 def getStudio(htmlcode): #获取厂商
     html = etree.fromstring(htmlcode,etree.HTMLParser())
     result = str(html.xpath('/html/body/div[2]/div/div[1]/h5[3]/a[1]/text()')).strip(" ['']")
@@ -41,7 +40,6 @@ def getCover(htmlcode,number,htmlcode2): #获取厂商 #
         result2 = str(html.xpath('//*[@id="slider"]/ul[1]/li[1]/img/@src')).strip(" ['']")
         return 'http://fc2fans.club' +  result2
     return 'http:' + result
-
 def getOutline(htmlcode2,number):     #获取番号 #
     #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())
diff --git a/javbus.py b/javbus.py
index d452717..2f284f7 100644
--- a/javbus.py
+++ b/javbus.py
@@ -10,7 +10,7 @@ from PIL import Image#need install
 import time
 import json
 from ADC_function import *
-import siro
+import javdb
 
 def getTitle(htmlcode):  #获取标题
     doc = pq(htmlcode)
@@ -118,7 +118,7 @@ def main(number):
             return js2
         return js
     except:
-        a=siro.main(number)
+        a=javdb.main(number)
         return a
 
 def main_uncensored(number):
@@ -142,53 +142,7 @@ def main_uncensored(number):
     js = json.dumps(dic, ensure_ascii=False, sort_keys=True, indent=4, separators=(',', ':'), )  # .encode('UTF-8')
 
     if getYear(htmlcode) == '' or getYear(htmlcode) == 'null':
-        number2 = number.replace('-', '_')
-        htmlcode = get_html('https://www.javbus.com/' + number2)
-        dic2 = {
-            'title': str(re.sub('\w+-\d+-','',getTitle(htmlcode))).replace(getNum(htmlcode)+'-',''),
-            'studio': getStudio(htmlcode),
-            'year': getYear(htmlcode),
-            'outline': '',
-            'runtime': getRuntime(htmlcode),
-            'director': getDirector(htmlcode),
-            'actor': getActor(htmlcode),
-            'release': getRelease(htmlcode),
-            'number': getNum(htmlcode),
-            'cover': getCover(htmlcode),
-            'tag': getTag(htmlcode),
-            'label':getSerise(htmlcode),
-            'imagecut': 0,
-        }
-        js2 = json.dumps(dic2, ensure_ascii=False, sort_keys=True, indent=4, separators=(',', ':'), )  # .encode('UTF-8')
+        js2 = javdb.main(number)
         return js2
 
-    return js
-
-
-# def return1():
-#     json_data=json.loads(main('ipx-292'))
-#
-#     title = str(json_data['title'])
-#     studio = str(json_data['studio'])
-#     year = str(json_data['year'])
-#     outline = str(json_data['outline'])
-#     runtime = str(json_data['runtime'])
-#     director = str(json_data['director'])
-#     actor = str(json_data['actor'])
-#     release = str(json_data['release'])
-#     number = str(json_data['number'])
-#     cover = str(json_data['cover'])
-#     tag = str(json_data['tag'])
-#
-#     print(title)
-#     print(studio)
-#     print(year)
-#     print(outline)
-#     print(runtime)
-#     print(director)
-#     print(actor)
-#     print(release)
-#     print(number)
-#     print(cover)
-#     print(tag)
-# return1()
\ No newline at end of file
+    return js
\ No newline at end of file
diff --git a/javdb.py b/javdb.py
new file mode 100644
index 0000000..17023a3
--- /dev/null
+++ b/javdb.py
@@ -0,0 +1,133 @@
+import re
+from lxml import etree
+import json
+import requests
+from bs4 import BeautifulSoup
+from ADC_function import *
+
+def getTitle(a):
+    try:
+        html = etree.fromstring(a, etree.HTMLParser())
+        result = str(html.xpath('/html/body/section/div/h2/strong/text()')).strip(" ['']")
+        return re.sub('.*\] ','',result.replace('/', ',').replace('\\xa0','').replace(' : ',''))
+    except:
+        return re.sub('.*\] ','',result.replace('/', ',').replace('\\xa0',''))
+def getActor(a): #//*[@id="center_column"]/div[2]/div[1]/div/table/tbody/tr[1]/td/text()
+    html = etree.fromstring(a, etree.HTMLParser()) #//table/tr[1]/td[1]/text()
+    result1 = str(html.xpath('//strong[contains(text(),"演員")]/../following-sibling::span/text()')).strip(" ['']")
+    result2 = str(html.xpath('//strong[contains(text(),"演員")]/../following-sibling::span/a/text()')).strip(" ['']")
+    return str(result1 + result2).strip('+').replace(",\\xa0","").replace("'","").replace(' ','').replace(',,','').lstrip(',').replace(',',', ')
+def getStudio(a):
+    html = etree.fromstring(a, etree.HTMLParser()) #//table/tr[1]/td[1]/text()
+    result1 = str(html.xpath('//strong[contains(text(),"製作")]/../following-sibling::span/text()')).strip(" ['']")
+    result2 = str(html.xpath('//strong[contains(text(),"製作")]/../following-sibling::span/a/text()')).strip(" ['']")
+    return str(result1+result2).strip('+').replace("', '",'').replace('"','')
+def getRuntime(a):
+    html = etree.fromstring(a, etree.HTMLParser())  # //table/tr[1]/td[1]/text()
+    result1 = str(html.xpath('//strong[contains(text(),"時長")]/../following-sibling::span/text()')).strip(" ['']")
+    result2 = str(html.xpath('//strong[contains(text(),"時長")]/../following-sibling::span/a/text()')).strip(" ['']")
+    return str(result1 + result2).strip('+').rstrip('mi')
+def getLabel(a):
+    html = etree.fromstring(a, etree.HTMLParser())  # //table/tr[1]/td[1]/text()
+    result1 = str(html.xpath('//strong[contains(text(),"系列")]/../following-sibling::span/text()')).strip(" ['']")
+    result2 = str(html.xpath('//strong[contains(text(),"系列")]/../following-sibling::span/a/text()')).strip(" ['']")
+    return str(result1 + result2).strip('+').replace("', '",'').replace('"','')
+def getNum(a):
+    html = etree.fromstring(a, etree.HTMLParser())
+    result1 = str(html.xpath('//strong[contains(text(),"番號")]/../following-sibling::span/text()')).strip(" ['']")
+    result2 = str(html.xpath('//strong[contains(text(),"番號")]/../following-sibling::span/a/text()')).strip(" ['']")
+    return str(result1 + result2).strip('+')
+def getYear(getRelease):
+    try:
+        result = str(re.search('\d{4}',getRelease).group())
+        return result
+    except:
+        return getRelease
+def getRelease(a):
+    html = etree.fromstring(a, etree.HTMLParser())  # //table/tr[1]/td[1]/text()
+    result1 = str(html.xpath('//strong[contains(text(),"時間")]/../following-sibling::span/text()')).strip(" ['']")
+    result2 = str(html.xpath('//strong[contains(text(),"時間")]/../following-sibling::span/a/text()')).strip(" ['']")
+    return str(result1 + result2).strip('+')
+def getTag(a):
+    html = etree.fromstring(a, etree.HTMLParser())  # //table/tr[1]/td[1]/text()
+    result1 = str(html.xpath('//strong[contains(text(),"类别")]/../following-sibling::span/text()')).strip(" ['']")
+    result2 = str(html.xpath('//strong[contains(text(),"类别")]/../following-sibling::span/a/text()')).strip(" ['']")
+    return str(result1 + result2).strip('+').replace(",\\xa0","").replace("'","").replace(' ','').replace(',,','').lstrip(',')
+def getCover(htmlcode):
+    html = etree.fromstring(htmlcode, etree.HTMLParser())
+    result = str(html.xpath('/html/body/section/div/div[2]/div[1]/a/img/@src')).strip(" ['']")
+    return result
+def getDirector(a):
+    html = etree.fromstring(a, etree.HTMLParser())  # //table/tr[1]/td[1]/text()
+    result1 = str(html.xpath('//strong[contains(text(),"導演")]/../following-sibling::span/text()')).strip(" ['']")
+    result2 = str(html.xpath('//strong[contains(text(),"導演")]/../following-sibling::span/a/text()')).strip(" ['']")
+    return str(result1 + result2).strip('+').replace("', '",'').replace('"','')
+def getOutline(htmlcode):
+    html = etree.fromstring(htmlcode, etree.HTMLParser())
+    result = str(html.xpath('//*[@id="introduction"]/dd/p[1]/text()')).strip(" ['']")
+    return result
+def main(number):
+    try:
+        try:
+            a = get_html('https://javdb1.com/search?q=' + number + '&f=all')
+            html = etree.fromstring(a, etree.HTMLParser())  # //table/tr[1]/td[1]/text()
+        except:
+            a = get_html('https://javdb1.com/search?q=' + number.replace('-', '_') + '&f=all')
+            html = etree.fromstring(a, etree.HTMLParser())  # //table/tr[1]/td[1]/text()
+        result1 = str(html.xpath('//*[@id="videos"]/div/div/a/@href')).strip(" ['']")
+        b = get_html('https://javdb1.com' + result1)
+        soup = BeautifulSoup(b, 'lxml')
+
+        a = str(soup.find(attrs={'class': 'panel'}))
+        dic = {
+            'actor': getActor(a),
+            'title': getTitle(b).replace("\\n", '').replace('        ', '').replace(getActor(a), '').replace(getNum(a),
+                                                                                                             '').replace(
+                '无码', '').replace('有码', '').lstrip(' '),
+            'studio': getStudio(a),
+            'outline': getOutline(a),
+            'runtime': getRuntime(a),
+            'director': getDirector(a),
+            'release': getRelease(a),
+            'number': getNum(a),
+            'cover': getCover(b),
+            'imagecut': 0,
+            'tag': getTag(a),
+            'label': getLabel(a),
+            'year': getYear(getRelease(a)),  # str(re.search('\d{4}',getRelease(a)).group()),
+        }
+        js = json.dumps(dic, ensure_ascii=False, sort_keys=True, indent=4, separators=(',', ':'), )  # .encode('UTF-8')
+        return js
+    except:
+        try:
+            a = get_html('https://javdb.com/search?q=' + number + '&f=all')
+            html = etree.fromstring(a, etree.HTMLParser())  # //table/tr[1]/td[1]/text()
+        except:
+            a = get_html('https://javdb.com/search?q=' + number.replace('-', '_') + '&f=all')
+            html = etree.fromstring(a, etree.HTMLParser())  # //table/tr[1]/td[1]/text()
+        result1 = str(html.xpath('//*[@id="videos"]/div/div/a/@href')).strip(" ['']")
+        b = get_html('https://javdb.com' + result1)
+        soup = BeautifulSoup(b, 'lxml')
+
+        a = str(soup.find(attrs={'class': 'panel'}))
+        dic = {
+            'actor': getActor(a),
+            'title': getTitle(b).replace("\\n", '').replace('        ', '').replace(getActor(a), '').replace(getNum(a),
+                                                                                                             '').replace(
+                '无码', '').replace('有码', '').lstrip(' '),
+            'studio': getStudio(a),
+            'outline': getOutline(a),
+            'runtime': getRuntime(a),
+            'director': getDirector(a),
+            'release': getRelease(a),
+            'number': getNum(a),
+            'cover': getCover(b),
+            'imagecut': 0,
+            'tag': getTag(a),
+            'label': getLabel(a),
+            'year': getYear(getRelease(a)),  # str(re.search('\d{4}',getRelease(a)).group()),
+        }
+        js = json.dumps(dic, ensure_ascii=False, sort_keys=True, indent=4, separators=(',', ':'), )  # .encode('UTF-8')
+        return js
+
+#print(main('061519-861'))
\ No newline at end of file