Téléverser les fichiers vers "/"
This commit is contained in:
commit
7f964260e3
8
config_pyref.py
Normal file
8
config_pyref.py
Normal file
@ -0,0 +1,8 @@
|
||||
CONFIG = {
|
||||
'video_folder': r'C:\Users\Miste\Desktop\MKV',
|
||||
'nzb_folder': r'C:\Users\Miste\Desktop\NZB',
|
||||
'nfo_folder': r'C:\Users\Miste\Desktop\NFO',
|
||||
'api_key': 'A RETROUVER DANS VOTRE PROFIL',
|
||||
'mediainfo_path': r'C:\Path\To\MediaInfo.exe',
|
||||
'api_url': 'A NOUS DEMANDER SUR DISCORD'
|
||||
}
|
||||
103
pyref.py
Normal file
103
pyref.py
Normal file
@ -0,0 +1,103 @@
|
||||
import json
|
||||
import os
|
||||
import subprocess
|
||||
import requests
|
||||
import time
|
||||
from config_pyref import CONFIG
|
||||
|
||||
def get_mediainfo_json(mkv_file, mediainfo_path):
|
||||
try:
|
||||
command = [mediainfo_path, '--full', '--Output=JSON', mkv_file]
|
||||
result = subprocess.run(command, capture_output=True, text=True, check=True)
|
||||
return json.loads(result.stdout)
|
||||
except subprocess.CalledProcessError as e:
|
||||
print(f"Error executing MediaInfo for file {mkv_file}: {e}")
|
||||
return None
|
||||
except json.JSONDecodeError as e:
|
||||
print(f"Error decoding JSON output from MediaInfo for file {mkv_file}: {e}")
|
||||
return None
|
||||
|
||||
def save_json(data, output_path):
|
||||
try:
|
||||
with open(output_path, 'w', encoding='utf-8') as json_file:
|
||||
json.dump(data, json_file, ensure_ascii=False, indent=4)
|
||||
except IOError as e:
|
||||
print(f"Error saving JSON to {output_path}: {e}")
|
||||
|
||||
def send_json_to_form(json_file_path, nzb_file_path, rlsname, api_key, api_url):
|
||||
url = f"{api_url}?apikey={api_key.lower()}"
|
||||
try:
|
||||
files = {
|
||||
'generated_nfo_json': open(json_file_path, 'rb'),
|
||||
'nzb': open(nzb_file_path, 'rb') if nzb_file_path else None
|
||||
}
|
||||
data = {'rlsname': rlsname, 'upload': '1'}
|
||||
|
||||
response = requests.post(url, files=files, data=data)
|
||||
return response.text
|
||||
except requests.RequestException as e:
|
||||
print(f"Error sending data to the API: {e}")
|
||||
return None
|
||||
except IOError as e:
|
||||
print(f"Error opening files for upload: {e}")
|
||||
return None
|
||||
finally:
|
||||
for file in files.values():
|
||||
if file:
|
||||
file.close()
|
||||
|
||||
def find_mkv_recursive(video_folder, rlsname):
|
||||
for root, dirs, files in os.walk(video_folder):
|
||||
if f"{rlsname}.mkv" in files:
|
||||
return os.path.join(root, f"{rlsname}.mkv")
|
||||
return None
|
||||
|
||||
def process_nzb_files(video_folder, nfo_folder, nzb_folder, api_key, mediainfo_path, api_url):
|
||||
if not os.path.exists(nfo_folder):
|
||||
try:
|
||||
os.makedirs(nfo_folder)
|
||||
except OSError as e:
|
||||
print(f"Error creating directory {nfo_folder}: {e}")
|
||||
return
|
||||
|
||||
for nzb_file in os.listdir(nzb_folder):
|
||||
if nzb_file.endswith('.nzb'):
|
||||
nzb_file_path = os.path.join(nzb_folder, nzb_file)
|
||||
rlsname = os.path.splitext(nzb_file)[0]
|
||||
corresponding_mkv = find_mkv_recursive(video_folder, rlsname)
|
||||
|
||||
if corresponding_mkv:
|
||||
print(f'Processing NZB: {nzb_file_path} with corresponding MKV: {corresponding_mkv}')
|
||||
|
||||
metadata = get_mediainfo_json(corresponding_mkv, mediainfo_path)
|
||||
if metadata is None:
|
||||
continue
|
||||
|
||||
output_file_name = f"{rlsname}.json"
|
||||
output_path = os.path.join(nfo_folder, output_file_name)
|
||||
|
||||
save_json(metadata, output_path)
|
||||
print(f'Saved metadata to: {output_path}')
|
||||
|
||||
response = send_json_to_form(output_path, nzb_file_path, rlsname, api_key, api_url)
|
||||
if response:
|
||||
print(f'Response from the site: {response}')
|
||||
else:
|
||||
print(f"Failed to process NZB: {nzb_file_path}")
|
||||
else:
|
||||
print(f'No corresponding MKV file found for NZB: {nzb_file_path}')
|
||||
|
||||
time.sleep(10)
|
||||
|
||||
if __name__ == '__main__':
|
||||
try:
|
||||
process_nzb_files(
|
||||
CONFIG['video_folder'],
|
||||
CONFIG['nfo_folder'],
|
||||
CONFIG['nzb_folder'],
|
||||
CONFIG['api_key'],
|
||||
CONFIG['mediainfo_path'],
|
||||
CONFIG['api_url']
|
||||
)
|
||||
except Exception as e:
|
||||
print(f"An unexpected error occurred: {e}")
|
||||
Loading…
x
Reference in New Issue
Block a user