Compare commits
6 Commits
d6d1831198
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| 2ea277deff | |||
| 1ed1cb9194 | |||
| 0ae1356f2d | |||
| f5c6f7fe5d | |||
| 173397b0a3 | |||
| 074a8e904e |
@@ -1,4 +1,4 @@
|
||||
# movies - مجموعه آٰرشیو های مرتب شده فیلم
|
||||
# movies - مجموعه آرشیو های مرتب شده فیلم
|
||||
|
||||
بهتر است برای جستجو در آرشیو ها از قابلیت `find in page` مرورگر خود استفاده کنید.
|
||||
## آرشیو های موجود فعلی:
|
||||
@@ -15,10 +15,12 @@
|
||||
|
||||
- Links:
|
||||
- **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)
|
||||
|
||||
## استخراج کننده لینک
|
||||
|
||||
لینک های آرشیو های بالا با استفاده از یک اسکریپت جستجو و لینک های آن ها استخراج شده است. در صورت تمایل میتوانید از اسکریپت مذکور روی هر آرشیو مشابهی استفاده کنید
|
||||
لینک های آرشیو های بالا با استفاده از یک اسکریپت جستجو و لینک های آن ها استخراج شده است. در صورت تمایل میتوانید از اسکریپت مذکور روی هر آرشیو مشابهی استفاده کنید.
|
||||
|
||||
### آموزش نصب پیش نیاز ها و استفاده از اسکریپت:
|
||||
|
||||
|
||||
@@ -1,46 +1,115 @@
|
||||
from glob import glob
|
||||
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)
|
||||
splitted_path = parsed.path.split("/")
|
||||
first_letter = splitted_path[2]
|
||||
|
||||
first_letter_list = links_dict.get(first_letter)
|
||||
if not first_letter_list:
|
||||
links_dict[first_letter] = list()
|
||||
first_letter_list = series_links_dict.get(first_letter)
|
||||
if not 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}"
|
||||
|
||||
if not url in links_dict[first_letter]:
|
||||
links_dict[first_letter].append(url)
|
||||
if not url in series_links_dict[first_letter]:
|
||||
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
|
||||
for file in glob("data/*.saymyname.website-series.txt"):
|
||||
with open(file, "r") as fp:
|
||||
links = fp.readlines()
|
||||
|
||||
|
||||
for link in links:
|
||||
if "saymyname" in link:
|
||||
parse_saymyname(link)
|
||||
process_series(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"
|
||||
text += "مرتب شده بر اساس حروف الفبا.\n\n"
|
||||
text += "جهت جستجو از قابلیت `find in page` مرورگر خود استفاده کنید.\n\n"
|
||||
text += "---\n"
|
||||
for k, v in links_dict.items():
|
||||
print(f"{k}: {len(v)}")
|
||||
|
||||
series_text = "# آرشیو الماسمووی (فقط سریال) \n\n\n"
|
||||
series_text += "مرتب شده بر اساس حروف الفبا.\n\n"
|
||||
series_text += "جهت جستجو از قابلیت `find in page` مرورگر خود استفاده کنید.\n\n"
|
||||
series_text += "---\n"
|
||||
for k, v in series_links_dict.items():
|
||||
for link in v:
|
||||
parsed_link = urlparse(link)
|
||||
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
10993
data/dl1.ehsansub.sbs-all.txt
Normal file
File diff suppressed because it is too large
Load Diff
4936
data/dl2.ehsansub.sbs-all.txt
Normal file
4936
data/dl2.ehsansub.sbs-all.txt
Normal file
File diff suppressed because it is too large
Load Diff
8
main.py
8
main.py
@@ -5,11 +5,11 @@ import aiohttp
|
||||
from aiohttp import ClientError
|
||||
|
||||
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(
|
||||
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,
|
||||
)
|
||||
|
||||
@@ -83,11 +83,11 @@ async def main():
|
||||
)
|
||||
if not is_fancy:
|
||||
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(
|
||||
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,
|
||||
)
|
||||
tasks.append(traverse(movies, url, is_verbose))
|
||||
|
||||
14484
view/almasmovie/all.md
Normal file
14484
view/almasmovie/all.md
Normal file
File diff suppressed because it is too large
Load Diff
13180
view/almasmovie/movies.md
Normal file
13180
view/almasmovie/movies.md
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user