Skip to content

Commit 5580fa5

Browse files
committed
get-m3u: add episode selection interface
1 parent c8331ed commit 5580fa5

2 files changed

Lines changed: 33 additions & 2 deletions

File tree

AniLINK/AniLINK_Downloader/get-m3u.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -355,6 +355,37 @@ def main():
355355
if not links:
356356
console.print("[red]No links found in M3U file.[/red]")
357357
return
358+
359+
# Episode Selection
360+
table = Table(title="Available Episodes")
361+
table.add_column("No.", justify="right")
362+
table.add_column("Episode Name")
363+
if len(links) > 15:
364+
for i in range(7):
365+
table.add_row(str(i + 1), links[i]['name'])
366+
table.add_row("...", "...")
367+
for i in range(max(7, len(links) - 7), len(links)):
368+
table.add_row(str(i + 1), links[i]['name'])
369+
else:
370+
for i, link in enumerate(links):
371+
table.add_row(str(i + 1), link['name'])
372+
console.print(table)
373+
374+
selection = Prompt.ask(
375+
"Select episodes to download (e.g., 1,3,5-10 or 'all')",
376+
default="all"
377+
)
378+
if selection.lower() != 'all':
379+
try:
380+
selected_indices = parse_number_ranges(selection)
381+
links = [links[i-1] for i in selected_indices if 0 < i <= len(links)]
382+
except Exception as e:
383+
console.print(f"[red]Invalid selection: {e}[/red]")
384+
return
385+
386+
if not links:
387+
console.print("[red]No episodes selected.[/red]")
388+
return
358389

359390
folder = get_download_folder(default_folder)
360391

AniLINK/anilink-m3u8.lua

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -124,8 +124,8 @@ local function add_subtitles_parallel()
124124
local default_sub_id = nil
125125
for _, track in ipairs(tracks) do
126126
if track.type == "sub" then
127-
local name = (track.title or track.lang or ""):lower()
128-
if name:find("eng") or name:find("en") then
127+
local name = (track.lang or track.title or ""):lower()
128+
if name:find("english") or name:find("eng") or name:find("en") then
129129
eng_sub_id = track.id
130130
break
131131
elseif track.default then

0 commit comments

Comments
 (0)