Skip to content

Commit

Permalink
Fix single movie input
Browse files Browse the repository at this point in the history
  • Loading branch information
68cdrBxM8YdoJ committed Apr 19, 2020
1 parent 7be6857 commit 96cc434
Show file tree
Hide file tree
Showing 4 changed files with 66 additions and 45 deletions.
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -102,3 +102,10 @@ venv.bak/

# mypy
.mypy_cache/

# movie files
*.mp4

# success/failed folder
JAV_output/**/*
failed/*
3 changes: 3 additions & 0 deletions ADC_function.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@


def get_data_state(data: dict) -> bool: # 元数据获取失败检测
if "title" not in data or "number" not in data:
return False

if data["title"] is None or data["title"] == "" or data["title"] == "null":
return False

Expand Down
81 changes: 40 additions & 41 deletions AV_Data_Capture.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,19 +16,14 @@ def check_update(current_version):
print("[*]======================================================")


def argparse_function(switch):
def argparse_function() -> [str, str, bool]:
parser = argparse.ArgumentParser()
parser.add_argument("file", default='',nargs='?', help="Single Movie file path.")
parser.add_argument("file", default='', nargs='?', help="Single Movie file path.")
parser.add_argument("-c", "--config", default='config.ini', nargs='?', help="The config file Path.")
parser.add_argument("-a", "--auto-exit", dest='autoexit', action="store_true", help="Auto exit after program complete")
args = parser.parse_args()
if switch == 1:
if args.file == '':
return ''
elif switch == 2:
return args.config
elif switch == 3:
return args.autoexit

return args.file, args.config, args.autoexit

def movie_lists(root, escape_folder):
for folder in escape_folder:
Expand Down Expand Up @@ -86,10 +81,36 @@ def getNumber(filepath,absolute_path = False):
return re.search(r'(.+?)\.', filepath)[0]


def create_data_and_move(file_path: str, c: config.Config):
# Normalized number, eg: 111xxx-222.mp4 -> xxx-222.mp4
n_number = getNumber(file_path, absolute_path=True)

try:
print("[!]Making Data for [{}], the number is [{}]".format(file_path, n_number))
core_main(file_path, n_number, c)
print("[*]======================================================")
except Exception as err:
print("[-] [{}] ERROR:".format(file_path))
print('[-]', err)

if c.soft_link():
print("[-]Link {} to failed folder".format(file_path))
os.symlink(file_path, str(os.getcwd()) + "/" + conf.failed_folder() + "/")
else:
try:
print("[-]Move [{}] to failed folder".format(file_path))
shutil.move(file_path, str(os.getcwd()) + "/" + conf.failed_folder() + "/")
except Exception as err:
print('[!]', err)


if __name__ == '__main__':
version = '3.2'

config_file = argparse_function(2)
# Parse command line args
single_file_path, config_file, auto_exit = argparse_function()

# Read config.ini
conf = config.Config(path=config_file)

version_print = 'Version ' + version
Expand All @@ -104,52 +125,30 @@ def getNumber(filepath,absolute_path = False):
os.chdir(os.getcwd())
movie_list = movie_lists(".", re.split("[,,]", conf.escape_folder()))

#========== 野鸡番号拖动 ==========
number_argparse = argparse_function(1)
if not number_argparse == '':
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))
print("[*]======================================================")
# ========== 野鸡番号拖动 ==========
if not single_file_path == '':
create_data_and_move(single_file_path, conf)
CEF(conf.success_folder())
CEF(conf.failed_folder())
print("[+]All finished!!!")
input("[+][+]Press enter key exit, you can check the error messge before you exit.")
os._exit(0)
exit()
# ========== 野鸡番号拖动 ==========

count = 0
count_all = str(len(movie_list))
print('[+]Find', count_all, 'movies')
if conf.soft_link():
print('[!] --- Soft link mode is ENABLE! ----')
for i in movie_list: # 遍历电影列表 交给core处理
for movie_path in movie_list: # 遍历电影列表 交给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) + "]")
# core_main(i, getNumber(i))
# print("[*]======================================================")
try:
print("[!]Making Data for [" + i + "], the number is [" + getNumber(i) + "]")
core_main(i, getNumber(i), conf)
print("[*]======================================================")
except Exception as e: # 番号提取异常
print('[-]' + i + ' ERROR :')
print('[-]',e)
if conf.soft_link():
print('[-]Link', i, 'to failed folder')
os.symlink(i, str(os.getcwd()) + '/' + conf.failed_folder() + '/')
else:
try:
print('[-]Move ' + i + ' to failed folder')
shutil.move(i, str(os.getcwd()) + '/' + conf.failed_folder() + '/')
except Exception as e2:
print('[!]', e2)
continue
create_data_and_move(movie_path, conf)

CEF(conf.success_folder())
CEF(conf.failed_folder())
print("[+]All finished!!!")
if argparse_function(3) == True:
os._exit(0)
input("[+][+]Press enter key exit, you can check the error messge before you exit.")
if auto_exit:
exit(0)
input("[+][+]Press enter key exit, you can check the error message before you exit.")
20 changes: 16 additions & 4 deletions core.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,14 +52,14 @@ def get_data_from_json(file_number, filepath, conf: config.Config): # 从JSON
"javbus": javbus.main,
"mgstage": mgstage.main,
"jav321": jav321.main,
"xcity" : xcity.main,
"xcity": xcity.main,
}

# default fetch order list, from the begining to the end
# default fetch order list, from the beginning to the end
sources = conf.sources().split(',')

# if the input file name matches centain rules,
# move some web service to the begining of the list
# if the input file name matches certain rules,
# move some web service to the beginning of the list
if re.match(r"^\d{5,}", file_number) or (
"HEYZO" in file_number or "heyzo" in file_number or "Heyzo" in file_number
):
Expand All @@ -71,12 +71,19 @@ def get_data_from_json(file_number, filepath, conf: config.Config): # 从JSON
elif "fc2" in file_number or "FC2" in file_number:
sources.insert(0, sources.pop(sources.index("fc2")))

json_data = {}
for source in sources:
json_data = json.loads(func_mapping[source](file_number))
# if any service return a valid return, break
if get_data_state(json_data):
break

# Return if data not found in all sources
if not json_data:
print('[-]Movie Data not found!')
moveFailedFolder(filepath, conf.failed_folder())
return

# ================================================网站规则添加结束================================================

title = json_data['title']
Expand Down Expand Up @@ -424,6 +431,11 @@ def core_main(file_path, number_th, conf: config.Config):
filepath = file_path # 影片的路径
number = number_th
json_data = get_data_from_json(number, filepath, conf) # 定义番号

# Return if blank dict returned (data not found)
if not json_data:
return

if json_data["number"] != number:
# fix issue #119
# the root cause is we normalize the search id
Expand Down

0 comments on commit 96cc434

Please sign in to comment.