Пример #1
0
    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
Пример #2
0
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}")
Пример #3
0
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)
Пример #4
0
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])
Пример #5
0
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')
Пример #6
0
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()
Пример #7
0
    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
Пример #8
0
    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
Пример #9
0
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
Пример #10
0
 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))
Пример #12
0
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
Пример #13
0
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
Пример #14
0
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")
Пример #15
0
def get_info(id):
    logger.info('api: got info for manga "' + id + '"')
    return current_api.get_info(id)
Пример #16
0
def search(query="", page=1):
    logger.info('api: searched "' + query + '"')
    result, pages = current_api.search(query, page)
    return result, pages
Пример #17
0
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
Пример #18
0
def get_current_downloads():
    logger.info("main: loaded downloads")
    return [e.status for e in current_api.downloader.get_all()]
Пример #19
0
def display_favorites(filter):
    favorites = save.get("favorites")
    logger.info("save: loaded favorites")
    eel.add_results(favorites)