Compare commits

...

6 Commits

Author SHA1 Message Date
2ea277deff Include . (dot) in regex pattern for directories 2026-01-16 21:04:57 +00:00
1ed1cb9194 Add all links for almas movie 2026-01-15 09:02:18 +03:30
0ae1356f2d Update indexer and movies.md 2026-01-15 08:43:20 +03:30
f5c6f7fe5d Update README.md 2026-01-15 08:42:29 +03:30
173397b0a3 Add indexing for movies 2026-01-15 08:41:20 +03:30
074a8e904e Add files for EhsanFilm 2026-01-14 16:29:09 +03:30
7 changed files with 43691 additions and 27 deletions

View File

@@ -1,4 +1,4 @@
# movies - مجموعه آٰرشیو های مرتب شده فیلم # movies - مجموعه آرشیو های مرتب شده فیلم
بهتر است برای جستجو در آرشیو ها از قابلیت `find in page` مرورگر خود استفاده کنید. بهتر است برای جستجو در آرشیو ها از قابلیت `find in page` مرورگر خود استفاده کنید.
## آرشیو های موجود فعلی: ## آرشیو های موجود فعلی:
@@ -15,10 +15,12 @@
- Links: - Links:
- **Series**: [Open](http://chai.bokhary.ir/logique/movies/src/branch/master/view/almasmovie/series.md) - **Series**: [Open](http://chai.bokhary.ir/logique/movies/src/branch/master/view/almasmovie/series.md)
- **Movies**: [Open](http://chai.bokhary.ir/logique/movies/src/branch/master/view/almasmovie/movies.md)
- **All Links**: [Open](http://chai.bokhary.ir/logique/movies/src/branch/master/view/almasmovie/all.md)
## استخراج کننده لینک ## استخراج کننده لینک
لینک های آرشیو های بالا با استفاده از یک اسکریپت جستجو و لینک های آن ها استخراج شده است. در صورت تمایل می‌توانید از اسکریپت مذکور روی هر آرشیو مشابهی استفاده کنید لینک های آرشیو های بالا با استفاده از یک اسکریپت جستجو و لینک های آن ها استخراج شده است. در صورت تمایل می‌توانید از اسکریپت مذکور روی هر آرشیو مشابهی استفاده کنید.
### آموزش نصب پیش نیاز ها و استفاده از اسکریپت: ### آموزش نصب پیش نیاز ها و استفاده از اسکریپت:

View File

@@ -1,46 +1,115 @@
from glob import glob from glob import glob
from urllib.parse import urlparse from urllib.parse import urlparse
from pathlib import Path
series_links_dict = {}
movies_links_dict = {}
all_links = []
links_dict = {} folder = Path("view/almasmovie")
def parse_saymyname(link: str): def process_series(link: str):
parsed = urlparse(link) parsed = urlparse(link)
splitted_path = parsed.path.split("/") splitted_path = parsed.path.split("/")
first_letter = splitted_path[2] first_letter = splitted_path[2]
first_letter_list = links_dict.get(first_letter) first_letter_list = series_links_dict.get(first_letter)
if not first_letter_list: if not first_letter_list:
links_dict[first_letter] = list() series_links_dict[first_letter] = list()
joined_path = '/'.join(splitted_path[:4]) joined_path = "/".join(splitted_path[:4])
url = f"{parsed.scheme}://{parsed.hostname}{joined_path}" url = f"{parsed.scheme}://{parsed.hostname}{joined_path}"
if not url in links_dict[first_letter]: if not url in series_links_dict[first_letter]:
links_dict[first_letter].append(url) series_links_dict[first_letter].append(url)
def process_movies(link: str):
parsed = urlparse(link)
splitted_path = parsed.path.split("/")
folder_name = splitted_path[-2]
if not movies_links_dict.get(folder_name):
year = splitted_path[-3]
name = splitted_path[-1].replace("_", " ").replace(".", " ")
joined_path = "/".join(splitted_path[: len(splitted_path) - 1])
movies_links_dict[folder_name] = (
name,
f"{parsed.scheme}://{parsed.hostname}{joined_path}",
year,
folder_name,
)
# Iterating series # Iterating series
for file in glob("data/*.saymyname.website-series.txt"): for file in glob("data/*.saymyname.website-series.txt"):
with open(file, "r") as fp: with open(file, "r") as fp:
links = fp.readlines() links = fp.readlines()
for link in links: for link in links:
if "saymyname" in link: process_series(link)
parse_saymyname(link)
for file in glob("data/*.saymyname.website-movies.txt"):
with open(file, "r") as fp:
links = fp.readlines()
for link in links:
process_movies(link)
text = "# آرشیو الماس‌مووی (فقط سریال) \n\n\n" series_text = "# آرشیو الماس‌مووی (فقط سریال) \n\n\n"
text += "مرتب شده بر اساس حروف الفبا.\n\n" series_text += "مرتب شده بر اساس حروف الفبا.\n\n"
text += "جهت جستجو از قابلیت `find in page` مرورگر خود استفاده کنید.\n\n" series_text += "جهت جستجو از قابلیت `find in page` مرورگر خود استفاده کنید.\n\n"
text += "---\n" series_text += "---\n"
for k, v in links_dict.items(): for k, v in series_links_dict.items():
print(f"{k}: {len(v)}")
for link in v: for link in v:
parsed_link = urlparse(link) parsed_link = urlparse(link)
name = parsed_link.path.split("/")[-1] name = parsed_link.path.split("/")[-1]
text += f"- **{k}**: [{name}]({link.replace(' ', '%20')})\n\n" line = f"- **{k}**: [{name}]({link.replace(' ', '%20')})\n\n"
all_links.append((name, line))
series_text += line
with open("view/almasmovie/series.md", "w") as fp:
fp.write(text)
with open(folder / "series.md", "w") as fp:
fp.write(series_text)
movies_text = "# آرشیو الماس‌مووی (فقط فیلم) \n\n\n"
movies_text += "مرتب شده بر اساس حروف الفبا.\n\n"
movies_text += "جهت جستجو از قابلیت `find in page` مرورگر خود استفاده کنید.\n\n"
movies_text += "---\n"
for v in sorted(movies_links_dict.values(), key=lambda x: x[0]):
name = v[0]
first_letter = "0-9" if name[0].isnumeric() else name[0]
url = v[1].replace(" ", "%20")
year = v[2]
line = f"- **{first_letter}**: [{name}]({url})"
if year.isnumeric() and int(year) < 3000:
line += f" ({year})"
line += "\n\n"
all_links.append((name, line))
movies_text += line
with open(folder / "movies.md", "w") as fp:
fp.write(movies_text)
all_links.sort(key=lambda x: x[0])
all_text = "# آرشیو الماس‌مووی \n\n\n"
all_text += "مرتب شده بر اساس حروف الفبا.\n\n"
all_text += "جهت جستجو از قابلیت `find in page` مرورگر خود استفاده کنید.\n\n"
all_text += "---\n"
for v in all_links:
all_text += v[1]
with open(folder / "all.md", "w") as fp:
fp.write(all_text)

10993
data/dl1.ehsansub.sbs-all.txt Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -5,11 +5,11 @@ import aiohttp
from aiohttp import ClientError from aiohttp import ClientError
folder_hyperlink_pat: re.Pattern = re.compile( folder_hyperlink_pat: re.Pattern = re.compile(
r"\<a href=\"(\/?[a-zA-Z0-9_ \[\]-]+\/)+\"\>\s*\<code\>", re.IGNORECASE r"\<a href=\"(\/?[a-zA-Z0-9_ \[\].-]+\/)+\"\>\s*\<code\>", re.IGNORECASE
) )
movie_hyperlink_pat: re.Pattern = re.compile( movie_hyperlink_pat: re.Pattern = re.compile(
r"\<a href=\"(\/?[a-zA-Z0-9_ \[\]-]+\/)*([a-zA-Z0-9_. -]+\.?(mp4|mkv|avi|mov|wmv|webm))\"\>\s*\<code\>", r"\<a href=\"(\/?[a-zA-Z0-9_ \[\].-]+\/)*([a-zA-Z0-9_. -]+\.?(mp4|mkv|avi|mov|wmv|webm))\"\>\s*\<code\>",
re.IGNORECASE, re.IGNORECASE,
) )
@@ -83,11 +83,11 @@ async def main():
) )
if not is_fancy: if not is_fancy:
folder_hyperlink_pat = re.compile( folder_hyperlink_pat = re.compile(
r"\<a href=\"(\/?[a-zA-Z0-9_ \[\]-]+\/)+\"\>", re.IGNORECASE r"\<a href=\"(\/?[a-zA-Z0-9_ \[\].-]+\/)+\"\>", re.IGNORECASE
) )
movie_hyperlink_pat = re.compile( movie_hyperlink_pat = re.compile(
r"\<a href=\"(\/?[a-zA-Z0-9_ \[\]-]+\/)*([a-zA-Z0-9_. -]+\.?(mp4|mkv|avi|mov|wmv|webm))\"\>", r"\<a href=\"(\/?[a-zA-Z0-9_ \[\].-]+\/)*([a-zA-Z0-9_. -]+\.?(mp4|mkv|avi|mov|wmv|webm))\"\>",
re.IGNORECASE, re.IGNORECASE,
) )
tasks.append(traverse(movies, url, is_verbose)) tasks.append(traverse(movies, url, is_verbose))

14484
view/almasmovie/all.md Normal file

File diff suppressed because it is too large Load Diff

13180
view/almasmovie/movies.md Normal file

File diff suppressed because it is too large Load Diff