Skip to content

Commit

Permalink
Merge branch 'automation-updates'
Browse files Browse the repository at this point in the history
  • Loading branch information
Audionut committed Feb 10, 2025
2 parents 3bbed46 + 9a17d67 commit 4e4d749
Show file tree
Hide file tree
Showing 4 changed files with 56 additions and 24 deletions.
28 changes: 18 additions & 10 deletions src/trackermeta.py
Original file line number Diff line number Diff line change
Expand Up @@ -291,37 +291,45 @@ async def update_metadata_from_tracker(tracker_name, tracker_instance, meta, sea
# Use get_info_from_torrent_id function if ID is found in meta
imdb, tvdb_id, hdb_name, meta['ext_torrenthash'] = await tracker_instance.get_info_from_torrent_id(meta[tracker_key])

meta['tvdb_id'] = str(tvdb_id) if tvdb_id else meta.get('tvdb_id')
meta['hdb_name'] = hdb_name
found_match = True

# Skip user confirmation if searching by ID
console.print(f"[green]{tracker_name} data found: IMDb ID: {imdb}, TVDb ID: {meta['tvdb_id']}, HDB Name: {meta['hdb_name']}[/green]")
if imdb or tvdb_id:
meta['imdb'] = str(imdb).zfill(7) if imdb else None
meta['tvdb_id'] = str(tvdb_id) if tvdb_id else meta.get('tvdb_id')
meta['hdb_name'] = hdb_name
found_match = True
console.print(f"[green]{tracker_name} data found: IMDb ID: {imdb}, TVDb ID: {meta['tvdb_id']}, HDB Name: {meta['hdb_name']}[/green]")
else:
console.print(f"[yellow]{tracker_name} data not found for ID: {meta[tracker_key]}[/yellow]")
found_match = False
else:
console.print("[yellow]No ID found in meta for HDB, searching by file name[/yellow]")

# Use search_filename function if ID is not found in meta
imdb, tvdb_id, hdb_name, meta['ext_torrenthash'], tracker_id = await tracker_instance.search_filename(search_term, search_file_folder, meta)

meta['imdb'] = str(imdb).zfill(7) if imdb else None
meta['tvdb_id'] = str(tvdb_id) if tvdb_id else meta.get('tvdb_id')
meta['hdb_name'] = hdb_name
if tracker_id:
meta[tracker_key] = tracker_id
found_match = True

if found_match:
if imdb or tvdb_id or hdb_name:
if imdb or tvdb_id:
if not meta['unattended']:
console.print(f"[green]{tracker_name} data found: IMDb ID: {imdb}, TVDb ID: {meta['tvdb_id']}, HDB Name: {meta['hdb_name']}[/green]")
if await prompt_user_for_confirmation(f"Do you want to use the ID's found on {tracker_name}?"):
console.print(f"[green]{tracker_name} data retained.[/green]")
found_match = True
else:
console.print(f"[yellow]{tracker_name} data discarded.[/yellow]")
meta[tracker_key] = None
meta['tvdb_id'] = None
meta['imdb'] = None
meta['hdb_name'] = None
found_match = False
else:
found_match = False
console.print(f"[green]{tracker_name} data found: IMDb ID: {imdb}, TVDb ID: {meta['tvdb_id']}, HDB Name: {hdb_name}[/green]")
found_match = True
else:
found_match = False

return meta, found_match

Expand Down
22 changes: 17 additions & 5 deletions src/trackers/HUNO.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,10 @@ def __init__(self, config):

async def upload(self, meta, disctype):
common = COMMON(config=self.config)
huno_name = await self.get_name(meta)
if huno_name == "SKIPPED":
console.print("[bold red]Skipping upload to HUNO due to missing audio language")
return
await common.unit3d_edit_desc(meta, self.tracker, self.signature)
await common.edit_torrent(meta, self.tracker, self.source_flag)
cat_id = await self.get_cat_id(meta['category'])
Expand All @@ -51,7 +55,7 @@ async def upload(self, meta, disctype):
open_torrent = open(f"{meta['base_dir']}/tmp/{meta['uuid']}/[HUNO]{meta['clean_name']}.torrent", 'rb')
files = {'torrent': open_torrent}
data = {
'name': await self.get_name(meta),
'name': huno_name,
'description': desc,
'mediainfo': mi_dump,
'bdinfo': bd_dump,
Expand Down Expand Up @@ -120,9 +124,12 @@ def get_audio(self, meta):
languages = {track.get("language", "") for track in audio_tracks if "language" in track}

if len(languages) > 1:
cli_ui.info(f"Multiple audio languages detected: {', '.join(languages)}")
if cli_ui.ask_yes_no("Is this a dual audio release?", default=True):
language = "Dual"
if not meta['unattended'] or (meta['unattended'] and meta.get('unattended-confirm', False)):
cli_ui.info(f"Multiple audio languages detected: {', '.join(languages)}")
if cli_ui.ask_yes_no("Is this a dual audio release?", default=True):
language = "Dual"
else:
language = "SKIPPED"

elif languages:
language = languages
Expand Down Expand Up @@ -171,7 +178,10 @@ def get_audio(self, meta):
if language == "zxx":
language = "Silent"
elif not language:
language = cli_ui.ask_string('No audio language present, you must enter one:')
if not meta['unattended'] or (meta['unattended'] and meta.get('unattended-confirm', False)):
language = cli_ui.ask_string('No audio language present, you must enter one:')
else:
language = "SKIPPED"

return f'{codec} {channels} {language}'

Expand All @@ -191,6 +201,8 @@ async def get_name(self, meta):
year = meta.get('year', "")
resolution = meta.get('resolution', "")
audio = self.get_audio(meta)
if "SKIPPED" in audio:
return "SKIPPED"
service = meta.get('service', "")
season = meta.get('season', "")
episode = meta.get('episode', "")
Expand Down
5 changes: 4 additions & 1 deletion src/trackers/MTV.py
Original file line number Diff line number Diff line change
Expand Up @@ -420,7 +420,10 @@ async def validate_credentials(self, meta):
vcookie = await self.validate_cookies(meta, cookiefile)
if vcookie is not True:
console.print('[red]Failed to validate cookies. Please confirm that the site is up and your username and password is valid.')
recreate = cli_ui.ask_yes_no("Log in again and create new session?")
if not meta['unattended'] or (meta['unattended'] and meta.get('unattended-confirm', False)):
recreate = cli_ui.ask_yes_no("Log in again and create new session?")
else:
recreate = True
if recreate is True:
if os.path.exists(cookiefile):
os.remove(cookiefile)
Expand Down
25 changes: 17 additions & 8 deletions src/trackers/OE.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,9 @@ async def upload(self, meta, disctype):
common = COMMON(config=self.config)
await common.edit_torrent(meta, self.tracker, self.source_flag)
await self.edit_desc(meta, self.tracker, self.signature)
if "oe_no_language" in meta:
console.print("[red]No language detected in MEDIAINFO.txt[/red]")
return
cat_id = await self.get_cat_id(meta['category'])
if meta.get('type') == "DVDRIP":
meta['type'] = "ENCODE"
Expand Down Expand Up @@ -250,19 +253,25 @@ def process_languages(tracks):
if track.get('@type') == 'Audio':
language = track.get('Language')
if not language or language is None:
audio_lang = cli_ui.ask_string('No audio language present, you must enter one:')
if audio_lang:
audio_languages.append(audio_lang)
if not meta['unattended'] or (meta['unattended'] and meta.get('unattended-confirm', False)):
audio_lang = cli_ui.ask_string('No audio language present, you must enter one:')
if audio_lang:
audio_languages.append(audio_lang)
else:
audio_languages.append("")
else:
audio_languages.append("")
meta['oe_no_language'] = True
if track.get('@type') == 'Text':
language = track.get('Language')
if not language or language is None:
subtitle_lang = cli_ui.ask_string('No subtitle language present, you must enter one:')
if subtitle_lang:
subtitle_languages.append(subtitle_lang)
if not meta['unattended'] or (meta['unattended'] and meta.get('unattended-confirm', False)):
subtitle_lang = cli_ui.ask_string('No subtitle language present, you must enter one:')
if subtitle_lang:
subtitle_languages.append(subtitle_lang)
else:
subtitle_languages.append("")
else:
subtitle_languages.append("")
meta['oe_no_language'] = True

return audio_languages, subtitle_languages

Expand Down

0 comments on commit 4e4d749

Please sign in to comment.