From e4007cdbc192c49c45ed03ddfa5b89183752a187 Mon Sep 17 00:00:00 2001 From: 0880 <0880@bokhary.ir> Date: Wed, 14 Jan 2026 08:10:04 +0000 Subject: [PATCH] Better handling --- main.py | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/main.py b/main.py index 027c7b9..8f585be 100644 --- a/main.py +++ b/main.py @@ -5,11 +5,11 @@ import aiohttp from aiohttp import ClientError folder_hyperlink_pat: re.Pattern = re.compile( - r"\\s*\", re.IGNORECASE + r"\\s*\", re.IGNORECASE ) movie_hyperlink_pat: re.Pattern = re.compile( - r"\\s*\", + r"\\s*\", re.IGNORECASE, ) @@ -37,14 +37,19 @@ def join_url(a: str, b: str) -> str: async def traverse(pool: list[str], url: str, verbose=False) -> None: page = await fetch(url) - folders = re.findall(folder_hyperlink_pat, page) - files = re.findall(movie_hyperlink_pat, page) + folders = folder_hyperlink_pat.findall(page) + files = movie_hyperlink_pat.findall(page) + for f in folders: + if f in url: + continue + if isinstance(f, tuple): + f = f[-1] if verbose: print(f" -> {join_url(url, f)}") await traverse(pool, join_url(url, f), verbose=verbose) for f in files: - file_name = f[0] + file_name = f[-2] if verbose: print(f"{join_url(url, file_name)} ({len(pool)})") pool.append(join_url(url, file_name)) @@ -78,11 +83,11 @@ async def main(): ) if not is_fancy: folder_hyperlink_pat = re.compile( - r"\", re.IGNORECASE + r"\", re.IGNORECASE ) movie_hyperlink_pat = re.compile( - r"\", + r"\", re.IGNORECASE, ) tasks.append(traverse(movies, url, is_verbose))