def run(self): try: self.__class__._current_downloads.append(self) logger.info(f"download: " + self.task_id) self.info = self.api.get_info(self.manga_id) self.chek_running() logger.debug("download: getting pages") self._pages_count, self._pages = self._get_pages() self.chek_running() logger.debug("download: downloading pages") self._download_pages() self.chek_running() logger.debug("download: merging pdf") self._merge_pages() self.chek_running() if self.OUT_FILE: self.set_status("finished", 1, self.OUT_FILE) else: self.set_status("finished", 1) logger.info(f"download: finished " + self.task_id) # self._remove() except ClosedThread: return
def stop_download(th_id): th = current_api.downloader.get_by_id(th_id) if th: th.stop() logger.info(f"threads: stopped thread {th_id}") else: logger.warning(f"threads: no matching thread for {th_id}")
def set_source(source): global current_api if source in api.sources: current_api = api.sources[source] logger.info("api: source set to " + source) else: logger.warn("api: failed to find source " + source)
def reveal_file(path): if path: logger.info(f"system: revealing file {path}") if platform.system() == "Windows": subprocess.Popen("explorer /select," + path, shell=True) elif platform.system() == "Darwin": subprocess.Popen(["open", path]) else: subprocess.Popen(["xdg-open", path])
def remove_from_favorites(manga): favorites = save.get("favorites") logger.info('save: removing from favorites"' + str(manga) + '"') for favorite in favorites: if manga["id"] == favorite["id"]: favorites.remove(manga) save.set({"favorites": favorites}) return True logger.error('save: failed to remove "' + manga["id"] + '" to favorites')
def download_group(chapters: list, manga: str, group: int): logger.info( f"threads: starting thread to download chapters {chapters} from {manga}" ) th = current_api.downloader( chapters=chapters, manga_id=manga, current_api=current_api, group=group, display=eel.diplay_inividual_chapter_progresion, ) th.start()
def run(self): try: self.__class__._current_downloads.append(self) from .. import OUT_PATH with youtube_dl.YoutubeDL(self.ydl_opts) as ydl: ydl.download(self.urls) logger.info(f"download: finished " + self.task_id) except ClosedThread: return
def __init__(self, dev=False): self.CONFIG_DIR = os.path.join(appdirs.user_data_dir(), "MangaFetch") self.CONFIG_MAIN_FILE = os.path.join(self.CONFIG_DIR, "save.json") self.indent = 4 if dev else 0 logger.info("Save: saving data in " + self.CONFIG_MAIN_FILE) self.data = {} if not os.path.exists(self.CONFIG_DIR): os.makedirs(self.CONFIG_DIR) if not os.path.exists(self.CONFIG_MAIN_FILE): with open(self.CONFIG_MAIN_FILE, "w"): pass
def add_to_favorites(manga): favorites = save.get("favorites") logger.info('save: adding to favorites"' + manga["id"] + '"') if current_api.is_id_valid(manga["id"]): if favorites: if manga not in favorites: favorites.append(manga) else: favorites = [ manga, ] save.set({"favorites": favorites}) return True else: logger.error('save: failed to add "' + manga["id"] + '" to favorites') return False
def _init_anime_list(cls): try: logger.info("api: downloading crunchyroll series list") uri = ( "https://www.crunchyroll.com/ajax/?req=RpcApiSearch_GetSearchCandidates" ) response_text = _get(uri) response_text = ( response_text.decode("UTF-8") .replace("/*-secure-\n", "") .replace("\n*/", "") ) cls.anime_list = json.loads(response_text) except Exception as e: logger.error("api: failed to get anime list for crunchyroll: " + repr(e)) logger.info("api: loading default from file (not up to date)") with open("api/crunchy.json", "r") as f: cls.anime_list = json.load(f)
# r = requests.get('https://heise.de') # r = requests.get('http://*****:*****@172.28.128.3:8080/me/configure') # r = requests.get( # 'http://*****:*****@172.28.128.3:8080/api/json?depth=2&pretty=true') # r = requests.get( # 'http://*****:*****@172.28.128.3:8080/me/api/json/?depth=2&pretty=true') # r = requests.get( # 'http://*****:*****@172.28.128.3:8080/me/api/json/?pretty=true') r = requests.get('http://*****:*****@172.28.128.3:8080/me/api/xml') # r = requests.get('http://*****:*****@172.28.128.3:8080/systemInfo') # ?tree=artifacts[*] # r = requests.get( # 'http://*****:*****@172.28.128.3:8080/me/api/json?tree=jenkins.security.ApiTokenProperty[*[*]]') logger.debug(r.text) logger.info(r.encoding) logger.info(r.status_code) logger.info(r.raise_for_status) logger.debug(r.text) logger.info(r.raw) print(type(r.raw)) json.loads(r.text) rDict = r.json() # for key, value in rDict.items(): # logger.info("kez => {} :: {}".format(key, value))
def get_favorites_id(): favorites = save.get("favorites") logger.info("save: loaded favorites ids") if favorites: favorites = [favorite["id"] for favorite in favorites] return favorites
def get_favorites(filter=""): favorites = save.get("favorites") logger.info("save: loaded favorites") if filter: favorites = [favorite for favorite in favorites if filter in favorite["id"]] return favorites
import myLog import time from myLog import logger myLog.setUniqueLogFile("helloProg") logger.info("program starting") print("hello") name = input("what is your name?\n") logger.debug(f"Name read: {name}") print(f"Hello {name}, my name is bot") logger.info("program done")
def get_info(id): logger.info('api: got info for manga "' + id + '"') return current_api.get_info(id)
def search(query="", page=1): logger.info('api: searched "' + query + '"') result, pages = current_api.search(query, page) return result, pages
import threading import os from typing import Type, List from data import MagicSave import pretty_errors import pdfManip import api import eel from myLog import logger import os, sys sys.path.insert(0, os.getcwd()) logger.info("main: starting app") save = MagicSave(dev=True) pretty_errors.configure( name="my_config", separator_character="₪", filename_display=pretty_errors.FILENAME_EXTENDED, line_number_first=True, display_link=True, lines_before=2, lines_after=2, line_color="═" + pretty_errors.RED + "❯ " + pretty_errors.default_config.line_color
def get_current_downloads(): logger.info("main: loaded downloads") return [e.status for e in current_api.downloader.get_all()]
def display_favorites(filter): favorites = save.get("favorites") logger.info("save: loaded favorites") eel.add_results(favorites)