From b0063175acc61ea09bb1e6db62263bc18908de78 Mon Sep 17 00:00:00 2001 From: dec05eba Date: Sat, 21 Aug 2021 14:36:01 +0200 Subject: Remove dead site: mangawindow --- plugins/mangawindow.py | 129 ------------------------------------------------- 1 file changed, 129 deletions(-) delete mode 100755 plugins/mangawindow.py (limited to 'plugins/mangawindow.py') diff --git a/plugins/mangawindow.py b/plugins/mangawindow.py deleted file mode 100755 index 2ff950e..0000000 --- a/plugins/mangawindow.py +++ /dev/null @@ -1,129 +0,0 @@ -#!/usr/bin/env python3 - -import os -import time -import sys -import requests -import json -import re - -from lxml import etree - -def usage(): - print("mangawindow.py command") - print("commands:") - print(" download") - print(" list") - exit(1) - -def usage_list(): - print("mangawindow.py list ") - exit(1) - -def usage_download(): - print("mangawindow.py download ") - print("examples:") - print(" mangawindow.py download \"https://mangawindow.net/chapter/1430298\" /home/adam/Manga/MangaName") - print("") - print("Note: The manga directory has to exist.") - exit(1) - -if len(sys.argv) < 2: - usage() - -def download_file(url, save_path): - with requests.get(url, stream=True) as response: - if not response.ok: - return False - with open(save_path, "wb") as file: - for chunk in response.iter_content(chunk_size=8192): - if chunk: - file.write(chunk) - return True - -def list_chapters(url, chapter_list_input): - response = requests.get(url) - if response.status_code != 200: - print("Failed to list chapters, server responded with status code %d" % response.status_code) - exit(2) - - seen_titles = set() - for item in chapter_list_input: - title = item.get("title") - if title and len(title) > 0: - seen_titles.add(title.lower().replace(" ", "").replace("/", "_")) - - seen_urls = set() - for item in chapter_list_input: - chapter_url = item.get("url") - if chapter_url and len(chapter_url) > 0: - seen_urls.add(chapter_url) - - tree = etree.HTML(response.text) - chapters = [] - for element in tree.xpath("//a[@class='chapt']"): - title = element.findtext('b') - if title is None: - print("Failed to get title for chapter") - exit(2) - title = title.strip().replace("/", "_") - url = "https://mangawindow.net" + element.attrib.get("href").strip() - if title.lower().replace(" ", "") in seen_titles or url in seen_urls: - break - chapters.append({ "name": title, "url": url }) - print(json.dumps(chapters)) - -def download_chapter(url, download_dir): - response = requests.get(url) - if response.status_code != 200: - print("Failed to list chapter images, server responded with status code %d" % response.status_code) - exit(2) - - in_progress_filepath = os.path.join(download_dir, ".in_progress") - with open(in_progress_filepath, "w") as file: - file.write(url) - - img_number = 1 - image_urls = re.findall(r'mangawindow\.net/images[^"]+', response.text) - for image_url in image_urls: - image_url = "https://z-img-04." + image_url - ext = image_url[image_url.rfind("."):] - image_name = str(img_number) + ext - image_path = os.path.join(download_dir, image_name) - print("Downloading {} to {}".format(image_url, image_path)) - if not download_file(image_url, image_path): - print("Failed to download image: %s" % image_url) - os.remove(in_progress_filepath) - exit(2) - img_number += 1 - - if img_number == 1: - print("Failed to find images for chapter") - os.remove(in_progress_filepath) - exit(2) - - with open(os.path.join(download_dir, ".finished"), "w") as file: - file.write("1") - - os.remove(in_progress_filepath) - -command = sys.argv[1] -if command == "list": - if len(sys.argv) < 3: - usage_list() - - url = sys.argv[2] - chapter_list_input = sys.stdin.read() - if len(chapter_list_input) == 0: - chapter_list_input = [] - else: - chapter_list_input = json.loads(chapter_list_input) - list_chapters(url, chapter_list_input) -elif command == "download": - if len(sys.argv) < 4: - usage_download() - url = sys.argv[2] - download_dir = sys.argv[3] - download_chapter(url, download_dir) -else: - usage() -- cgit v1.2.3