From a7735ac3662f3918b3a0d03f331103ef8263204a Mon Sep 17 00:00:00 2001 From: EstrellaXD Date: Sat, 21 Jan 2023 19:09:35 +0800 Subject: [PATCH] 2.6.0 - refactor - add config.ini for later update --- .dockerignore | 4 +- .gitignore | 19 ++-- Dockerfile | 2 +- {src => autobangumi}/__init__.py | 0 {src => autobangumi}/ab_decorator/__init__.py | 5 - {src => autobangumi}/api.py | 0 {src => autobangumi}/app.py | 0 autobangumi/conf/__init__.py | 11 +++ {src => autobangumi}/conf/conf.py | 2 +- {src => autobangumi}/conf/const.py | 94 +++++++++++++++++++ {src => autobangumi}/conf/log.py | 2 +- {src => autobangumi}/conf/logging.conf | 0 {src => autobangumi}/conf/parse.py | 0 autobangumi/conf/setting.py | 46 +++++++++ {src => autobangumi}/core/__init__.py | 0 {src => autobangumi}/core/api_func.py | 0 {src => autobangumi}/core/download_client.py | 22 +++-- {src => autobangumi}/core/download_fliter.py | 0 {src => autobangumi}/core/eps_complete.py | 6 +- {src => autobangumi}/core/renamer.py | 6 +- {src => autobangumi}/core/repath.py | 0 {src => autobangumi}/core/rss_analyser.py | 0 {src => autobangumi}/downloader/__init__.py | 0 .../downloader/aria2_downloader.py | 0 {src => autobangumi}/downloader/exceptions.py | 0 .../downloader/qb_downloader.py | 23 ++--- .../downloader/tr_downloader.py | 0 {src => autobangumi}/getWebUI.sh | 0 autobangumi/network/__init__.py | 6 ++ {src => autobangumi}/network/notification.py | 2 +- .../network/request_url.py | 22 ++--- {src => autobangumi}/parser/__init__.py | 0 .../parser/analyser/__init__.py | 0 .../parser/analyser/bgm_parser.py | 13 +-- .../parser/analyser/raw_parser.py | 0 .../parser/analyser/rename_parser.py | 0 .../parser/analyser/tmdb_parser.py | 0 {src => autobangumi}/parser/fuzz_match.py | 0 {src => autobangumi}/parser/title_parser.py | 0 {src => autobangumi}/run.sh | 0 {src => autobangumi}/setID.sh | 0 {src => autobangumi}/tests/test_raw_parser.py | 0 {src => autobangumi}/utils/__init__.py | 0 {src => autobangumi}/utils/json_config.py | 0 mian.py | 9 ++ requirements.txt | 10 +- src/__main__.py | 5 - src/conf/__init__.py | 13 --- src/network/__init__.py | 50 ---------- 49 files changed, 222 insertions(+), 150 deletions(-) rename {src => autobangumi}/__init__.py (100%) rename {src => autobangumi}/ab_decorator/__init__.py (94%) rename {src => autobangumi}/api.py (100%) rename {src => autobangumi}/app.py (100%) create mode 100644 autobangumi/conf/__init__.py rename {src => autobangumi}/conf/conf.py (96%) rename {src => autobangumi}/conf/const.py (58%) rename {src => autobangumi}/conf/log.py (93%) rename {src => autobangumi}/conf/logging.conf (100%) rename {src => autobangumi}/conf/parse.py (100%) create mode 100644 autobangumi/conf/setting.py rename {src => autobangumi}/core/__init__.py (100%) rename {src => autobangumi}/core/api_func.py (100%) rename {src => autobangumi}/core/download_client.py (90%) rename {src => autobangumi}/core/download_fliter.py (100%) rename {src => autobangumi}/core/eps_complete.py (95%) rename {src => autobangumi}/core/renamer.py (96%) rename {src => autobangumi}/core/repath.py (100%) rename {src => autobangumi}/core/rss_analyser.py (100%) rename {src => autobangumi}/downloader/__init__.py (100%) rename {src => autobangumi}/downloader/aria2_downloader.py (100%) rename {src => autobangumi}/downloader/exceptions.py (100%) rename {src => autobangumi}/downloader/qb_downloader.py (78%) rename {src => autobangumi}/downloader/tr_downloader.py (100%) rename {src => autobangumi}/getWebUI.sh (100%) create mode 100644 autobangumi/network/__init__.py rename {src => autobangumi}/network/notification.py (90%) rename src/network/request.py => autobangumi/network/request_url.py (69%) rename {src => autobangumi}/parser/__init__.py (100%) rename {src => autobangumi}/parser/analyser/__init__.py (100%) rename {src => autobangumi}/parser/analyser/bgm_parser.py (65%) rename {src => autobangumi}/parser/analyser/raw_parser.py (100%) rename {src => autobangumi}/parser/analyser/rename_parser.py (100%) rename {src => autobangumi}/parser/analyser/tmdb_parser.py (100%) rename {src => autobangumi}/parser/fuzz_match.py (100%) rename {src => autobangumi}/parser/title_parser.py (100%) rename {src => autobangumi}/run.sh (100%) rename {src => autobangumi}/setID.sh (100%) rename {src => autobangumi}/tests/test_raw_parser.py (100%) rename {src => autobangumi}/utils/__init__.py (100%) rename {src => autobangumi}/utils/json_config.py (100%) create mode 100644 mian.py delete mode 100644 src/__main__.py delete mode 100644 src/conf/__init__.py delete mode 100644 src/network/__init__.py diff --git a/.dockerignore b/.dockerignore index a850b673..f87e815d 100644 --- a/.dockerignore +++ b/.dockerignore @@ -19,8 +19,8 @@ coverage.xml .pytest_cache .hypothesis -src/tests -src/conf/const_dev.py +autobangumi/tests +autobangumi/conf/const_dev.py config/bangumi.json/config/bangumi.json /docs /.github diff --git a/.gitignore b/.gitignore index 2554eeaf..7231d124 100644 --- a/.gitignore +++ b/.gitignore @@ -162,14 +162,19 @@ cython_debug/ #.idea/ # Custom -/src/conf/const_dev.py +/autobangumi/conf/const_dev.py /config -/src/tester.py -/src/config +/autobangumi/tester.py +/autobangumi/config -/src/parser/analyser/tmdb_parser.py +/autobangumi/parser/analyser/tmdb_parser.py -/src/run_debug.sh -/src/debug_run.sh -/src/__version__.py +/autobangumi/run_debug.sh +/autobangumi/debug_run.sh +/autobangumi/__version__.py /data/ + +/autobangumi/conf/config_dev.ini + +test.* +.run \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index c8f73bb5..163b7aca 100644 --- a/Dockerfile +++ b/Dockerfile @@ -17,7 +17,7 @@ ENV TZ=Asia/Shanghai \ WORKDIR /src COPY --from=build --chmod=777 /install /usr/local -COPY --chmod=755 ./src /src +COPY --chmod=755 autobangumi /src RUN apk add --no-cache \ curl \ diff --git a/src/__init__.py b/autobangumi/__init__.py similarity index 100% rename from src/__init__.py rename to autobangumi/__init__.py diff --git a/src/ab_decorator/__init__.py b/autobangumi/ab_decorator/__init__.py similarity index 94% rename from src/ab_decorator/__init__.py rename to autobangumi/ab_decorator/__init__.py index c6738b3a..d504865e 100644 --- a/src/ab_decorator/__init__.py +++ b/autobangumi/ab_decorator/__init__.py @@ -1,11 +1,6 @@ import logging import time -import requests - -from conf import settings - - logger = logging.getLogger(__name__) diff --git a/src/api.py b/autobangumi/api.py similarity index 100% rename from src/api.py rename to autobangumi/api.py diff --git a/src/app.py b/autobangumi/app.py similarity index 100% rename from src/app.py rename to autobangumi/app.py diff --git a/autobangumi/conf/__init__.py b/autobangumi/conf/__init__.py new file mode 100644 index 00000000..bf7ffd30 --- /dev/null +++ b/autobangumi/conf/__init__.py @@ -0,0 +1,11 @@ +from .setting import settings +from .parse import parse +from .log import setup_logger + + + + + + + + diff --git a/src/conf/conf.py b/autobangumi/conf/conf.py similarity index 96% rename from src/conf/conf.py rename to autobangumi/conf/conf.py index 35b6dd75..312267c5 100644 --- a/src/conf/conf.py +++ b/autobangumi/conf/conf.py @@ -1,5 +1,5 @@ import os -from conf import const +from autobangumi.conf import const class Settings(dict): diff --git a/src/conf/const.py b/autobangumi/conf/const.py similarity index 58% rename from src/conf/const.py rename to autobangumi/conf/const.py index 4e13adef..d3b19be9 100644 --- a/src/conf/const.py +++ b/autobangumi/conf/const.py @@ -58,6 +58,100 @@ ENV_TO_ATTR = { "AB_REFRESH_RSS": ("refresh_rss", lambda e: e.lower() in ("true", "1", "t")), } +DOWNLOADER_DEFAULT = { + "Host": "localhost:8080", + "Username": "admin", + "Password": "adminadmin", + "DownloadPath": "/downloads/Bangumi/", + "Filter": r"720|\d+-\d+/", +} + +DOWNLOADER_ENV ={ + "AB_DOWNLOADER_HOST": "Host", + "AB_DOWNLOADER_USERNAME": "Username", + "AB_DOWNLOADER_PASSWORD": "Password", + "AB_DOWNLOAD_PATH": "DownloadPath", + "AB_NOT_CONTAIN": "Filter" +} + +DEFAULT_ENV = { + "AB_INTERVAL_TIME": "SleepTime", + "AB_RENAME_FREQ": "RenameFreq", + "AB_RSS_COLLECTOR": "EnableParser", + "AB_RENAME": "EnableRenamer", + "AB_EP_COMPLETE": "SeasonCollect", +} + +DEFAULT_DEFAULT = { + "SleepTime": 7200, + "RenameFreq": 20, + "EnableParser": True, + "EnableRenamer": True, + "SeasonCollect": False, +} + + +PARSER_ENV = { + "AB_RSS": "URL", + "AB_NOT_CONTAIN": "Filter", + "AB_LANGUAGE": "Language", +} + +PARSER_DEFAULT = { + "URL": "", + "Filter": r"720|\d+-\d+/", + "Language": "zh", +} + +TMDB_ENV = { + "AB_ENABLE_TMDB": "EnableTMDB", + "AB_LANGUAGE": "Language", +} + +TMDB_DEFAULT = { + "EnableTMDB": False, + "Language": "zh", +} + + +RENAME_ENV = { + "AB_METHOD": "RenameMethod", +} + +RENAME_DEFAULT = { + "RenameMethod": "pn", +} + +NETWORK_ENV = { + "AB_WEBUI_PORT": "WebUIPort", + "AB_HTTP_PROXY": "HTTPProxy", + "AB_SOCKS": "Socks", +} + +NETWORK_DEFAULT = { + "WebUIPort": 7892, + "HTTPProxy": "", + "Socks": "", +} + +ENV_DICT = { + "DEFAULT": DEFAULT_ENV, + "DOWNLOADER": DOWNLOADER_ENV, + "PARSER": PARSER_ENV, + "TMDB": TMDB_ENV, + "RENAME": RENAME_ENV, + "NETWORK": NETWORK_ENV, +} + +DEFAULT_DICT = { + "DEFAULT": DEFAULT_DEFAULT, + "DOWNLOADER": DOWNLOADER_DEFAULT, + "PARSER": PARSER_DEFAULT, + "TMDB": TMDB_DEFAULT, + "RENAME": RENAME_DEFAULT, + "NETWORK": NETWORK_DEFAULT, +} + class BCOLORS: @staticmethod diff --git a/src/conf/log.py b/autobangumi/conf/log.py similarity index 93% rename from src/conf/log.py rename to autobangumi/conf/log.py index face367d..e9007961 100644 --- a/src/conf/log.py +++ b/autobangumi/conf/log.py @@ -1,5 +1,5 @@ import logging -from conf import settings +from autobangumi.conf import settings def setup_logger(): diff --git a/src/conf/logging.conf b/autobangumi/conf/logging.conf similarity index 100% rename from src/conf/logging.conf rename to autobangumi/conf/logging.conf diff --git a/src/conf/parse.py b/autobangumi/conf/parse.py similarity index 100% rename from src/conf/parse.py rename to autobangumi/conf/parse.py diff --git a/autobangumi/conf/setting.py b/autobangumi/conf/setting.py new file mode 100644 index 00000000..65b452e2 --- /dev/null +++ b/autobangumi/conf/setting.py @@ -0,0 +1,46 @@ +from pydantic import BaseSettings +from configparser import ConfigParser +import os + +from .const import ENV_DICT, DEFAULT_DICT + +config = ConfigParser() + + +def get_attr_from_env(env_dict: dict, default_dict: dict): + """Transforms env-strings to python.""" + conf = { + attr if isinstance(attr, str) else attr[0]: os.environ[env] + for env, attr in env_dict.items() + if env in os.environ + } + for key, value in default_dict.items(): + if key not in conf: + conf[key] = value + return conf + + +def init_config(): + for section, env_dict in ENV_DICT.items(): + config[section] = get_attr_from_env(env_dict, DEFAULT_DICT[section]) + with open("config/config.ini", "w") as f: + config.write(f) + + +if os.path.isfile("config/config_dev.ini"): + config.read("config/config_dev.ini") +elif os.path.isfile("config/config.ini"): + config.read("config/config.ini") +else: + init_config() + + +class Setting(BaseSettings): + DEFAULT = config["DEFAULT"] + DOWNLOADER = config["DOWNLOADER"] + PARSER = config["PARSER"] + RENAME = config["RENAME"] + NETWORK = config["NETWORK"] + + +settings = Setting() diff --git a/src/core/__init__.py b/autobangumi/core/__init__.py similarity index 100% rename from src/core/__init__.py rename to autobangumi/core/__init__.py diff --git a/src/core/api_func.py b/autobangumi/core/api_func.py similarity index 100% rename from src/core/api_func.py rename to autobangumi/core/api_func.py diff --git a/src/core/download_client.py b/autobangumi/core/download_client.py similarity index 90% rename from src/core/download_client.py rename to autobangumi/core/download_client.py index 78f2616d..837535e8 100644 --- a/src/core/download_client.py +++ b/autobangumi/core/download_client.py @@ -2,14 +2,18 @@ import re import logging import os -from downloader import getClient -from downloader.exceptions import ConflictError +from autobangumi.downloader import getClient +from autobangumi.downloader.exceptions import ConflictError -from conf import settings +from autobangumi.conf import settings logger = logging.getLogger(__name__) +DOWNLOADER = settings.DOWNLOADER +DEBUG = settings.DEBUG + + class DownloadClient: def __init__(self): self.client = getClient() @@ -22,16 +26,16 @@ class DownloadClient: "rss_refresh_interval": 30, } self.client.prefs_init(prefs=prefs) - if settings.download_path == "": + if DOWNLOADER["DownloadPath"] == "": prefs = self.client.get_app_prefs() - settings.download_path = os.path.join(prefs["save_path"], "Bangumi") + DOWNLOADER["DownloadPath"] = os.path.join(prefs["save_path"], "Bangumi") def set_rule(self, info: dict, rss_link): official_name, raw_name, season, group = info["official_title"], info["title_raw"], info["season"], info["group"] rule = { "enable": True, "mustContain": raw_name, - "mustNotContain": settings.not_contain, + "mustNotContain": DOWNLOADER["Filter"], "useRegex": True, "episodeFilter": "", "smartFilter": False, @@ -39,11 +43,11 @@ class DownloadClient: "affectedFeeds": [rss_link], "ignoreDays": 0, "lastMatch": "", - "addPaused": settings.dev_debug, + "addPaused": DEBUG["Enable"], "assignedCategory": "Bangumi", "savePath": str( os.path.join( - settings.download_path, + DOWNLOADER["Path"], re.sub(settings.rule_name_re, " ", official_name).strip(), f"Season {season}", ) @@ -130,8 +134,6 @@ class DownloadClient: if __name__ == "__main__": - from conf.const_dev import DEV_SETTINGS - settings.init(DEV_SETTINGS) put = DownloadClient() put.rss_feed() diff --git a/src/core/download_fliter.py b/autobangumi/core/download_fliter.py similarity index 100% rename from src/core/download_fliter.py rename to autobangumi/core/download_fliter.py diff --git a/src/core/eps_complete.py b/autobangumi/core/eps_complete.py similarity index 95% rename from src/core/eps_complete.py rename to autobangumi/core/eps_complete.py index 57ed119b..df0d1ac4 100644 --- a/src/core/eps_complete.py +++ b/autobangumi/core/eps_complete.py @@ -2,9 +2,9 @@ import os.path import re import logging -from conf import settings -from network import RequestContent -from core import DownloadClient +from autobangumi.conf import settings +from autobangumi.network import RequestContent +from .download_client import DownloadClient logger = logging.getLogger(__name__) SEARCH_KEY = ["group", "title_raw", "season_raw", "subtitle", "source", "dpi"] diff --git a/src/core/renamer.py b/autobangumi/core/renamer.py similarity index 96% rename from src/core/renamer.py rename to autobangumi/core/renamer.py index 9606254e..c3cce906 100644 --- a/src/core/renamer.py +++ b/autobangumi/core/renamer.py @@ -4,10 +4,10 @@ import re import os.path from pathlib import PurePath, PureWindowsPath +from .download_client import DownloadClient -from conf import settings -from core import DownloadClient -from parser import TitleParser +from autobangumi.conf import settings +from autobangumi.parser import TitleParser logger = logging.getLogger(__name__) diff --git a/src/core/repath.py b/autobangumi/core/repath.py similarity index 100% rename from src/core/repath.py rename to autobangumi/core/repath.py diff --git a/src/core/rss_analyser.py b/autobangumi/core/rss_analyser.py similarity index 100% rename from src/core/rss_analyser.py rename to autobangumi/core/rss_analyser.py diff --git a/src/downloader/__init__.py b/autobangumi/downloader/__init__.py similarity index 100% rename from src/downloader/__init__.py rename to autobangumi/downloader/__init__.py diff --git a/src/downloader/aria2_downloader.py b/autobangumi/downloader/aria2_downloader.py similarity index 100% rename from src/downloader/aria2_downloader.py rename to autobangumi/downloader/aria2_downloader.py diff --git a/src/downloader/exceptions.py b/autobangumi/downloader/exceptions.py similarity index 100% rename from src/downloader/exceptions.py rename to autobangumi/downloader/exceptions.py diff --git a/src/downloader/qb_downloader.py b/autobangumi/downloader/qb_downloader.py similarity index 78% rename from src/downloader/qb_downloader.py rename to autobangumi/downloader/qb_downloader.py index 139e7cf9..72ea53d4 100644 --- a/src/downloader/qb_downloader.py +++ b/autobangumi/downloader/qb_downloader.py @@ -4,10 +4,10 @@ import time from qbittorrentapi import Client, LoginFailed from qbittorrentapi.exceptions import Conflict409Error -from conf import settings -from ab_decorator import qb_connect_failed_wait +from autobangumi.conf import settings +from autobangumi.ab_decorator import qb_connect_failed_wait -from downloader.exceptions import ConflictError +from .exceptions import ConflictError logger = logging.getLogger(__name__) @@ -26,9 +26,9 @@ class QbDownloader: break except LoginFailed: logger.debug( - f"Can't login qBittorrent Server {host} by {username}, retry in {settings.connect_retry_interval}" + f"Can't login qBittorrent Server {host} by {username}, retry in {5} seconds." ) - time.sleep(settings.connect_retry_interval) + time.sleep(5) @qb_connect_failed_wait def prefs_init(self, prefs): @@ -44,7 +44,7 @@ class QbDownloader: def torrents_add(self, urls, save_path, category): return self._client.torrents_add( - is_paused=settings.dev_debug, + is_paused=settings.DEBUG["enable"], urls=urls, save_path=save_path, category=category, @@ -92,14 +92,3 @@ class QbDownloader: def get_torrent_path(self, hash): return self._client.torrents_info(hashes=hash)[0].save_path - - -if __name__ == "__main__": - try: - from conf.const_dev import DEV_SETTINGS - except ModuleNotFoundError: - logger.debug("Please copy `const_dev.py` to `const_dev.py` to use custom settings") - settings.init(DEV_SETTINGS) - client = QbDownloader(settings.host_ip, settings.user_name, settings.password) - path = client.get_torrent_path("39adad0d0c82ebb3971810a7592e03138b7345d2") - print(path) diff --git a/src/downloader/tr_downloader.py b/autobangumi/downloader/tr_downloader.py similarity index 100% rename from src/downloader/tr_downloader.py rename to autobangumi/downloader/tr_downloader.py diff --git a/src/getWebUI.sh b/autobangumi/getWebUI.sh similarity index 100% rename from src/getWebUI.sh rename to autobangumi/getWebUI.sh diff --git a/autobangumi/network/__init__.py b/autobangumi/network/__init__.py new file mode 100644 index 00000000..269d54ac --- /dev/null +++ b/autobangumi/network/__init__.py @@ -0,0 +1,6 @@ +from .request_contents import RequestContent +from .notification import PostNotification + + + + diff --git a/src/network/notification.py b/autobangumi/network/notification.py similarity index 90% rename from src/network/notification.py rename to autobangumi/network/notification.py index eaedd690..e8248c4d 100644 --- a/src/network/notification.py +++ b/autobangumi/network/notification.py @@ -1,6 +1,6 @@ import requests -from conf import settings +from autobangumi.conf import settings class PostNotification: diff --git a/src/network/request.py b/autobangumi/network/request_url.py similarity index 69% rename from src/network/request.py rename to autobangumi/network/request_url.py index f15b82d9..85f1d01b 100644 --- a/src/network/request.py +++ b/autobangumi/network/request_url.py @@ -7,7 +7,7 @@ import logging from bs4 import BeautifulSoup -from conf import settings +from autobangumi.conf import settings logger = logging.getLogger(__name__) @@ -15,13 +15,13 @@ logger = logging.getLogger(__name__) class RequestURL: def __init__(self): self.session = requests.session() - if settings.http_proxy is not None: + if settings.NETWORK["HTTP"] is not None: self.session.proxies = { - "https": settings.http_proxy, - "http": settings.http_proxy, + "https": settings.NETWORK["HTTP"], + "http": settings.NETWORK["HTTP"], } - elif settings.socks is not None: - socks_info = settings.socks.split(",") + elif settings.NETWORK["Socks"] is not None: + socks_info = settings.NETWORK["Socks"].split(",") socks.set_default_proxy(socks.SOCKS5, addr=socks_info[0], port=int(socks_info[1]), rdns=True, username=socks_info[2], password=socks_info[3]) socket.socket = socks.socksocket @@ -40,7 +40,7 @@ class RequestURL: logger.debug(f"URL: {url}") logger.debug(e) logger.warning("ERROR with Connection.Please check DNS/Connection settings") - time.sleep(settings.connect_retry_interval) + time.sleep(5) times += 1 def get_content(self, url, content="xml"): @@ -53,11 +53,3 @@ class RequestURL: self.session.close() -if __name__ == "__main__": - a = RequestURL() - socks.set_default_proxy(socks.SOCKS5, "192.168.30.2", 19990, True, username="abc", password="abc") - socket.socket = socks.socksocket - b = a.get_url('https://www.themoviedb.org').text - print(b) - - diff --git a/src/parser/__init__.py b/autobangumi/parser/__init__.py similarity index 100% rename from src/parser/__init__.py rename to autobangumi/parser/__init__.py diff --git a/src/parser/analyser/__init__.py b/autobangumi/parser/analyser/__init__.py similarity index 100% rename from src/parser/analyser/__init__.py rename to autobangumi/parser/analyser/__init__.py diff --git a/src/parser/analyser/bgm_parser.py b/autobangumi/parser/analyser/bgm_parser.py similarity index 65% rename from src/parser/analyser/bgm_parser.py rename to autobangumi/parser/analyser/bgm_parser.py index 6d876760..2cc41a18 100644 --- a/src/parser/analyser/bgm_parser.py +++ b/autobangumi/parser/analyser/bgm_parser.py @@ -1,8 +1,4 @@ -import re -import time - -from network import RequestContent -from conf import settings +from autobangumi.network import RequestContent class BgmAPI: @@ -18,9 +14,4 @@ class BgmAPI: contents = self._request.get_json(url)["list"] if contents.__len__() == 0: return None - return contents[0]["name"], contents[0]["name_cn"] - - -if __name__ == '__main__': - BGM = BgmAPI() - print(BGM.search("辉夜大小姐")) \ No newline at end of file + return contents[0]["name"], contents[0]["name_cn"] \ No newline at end of file diff --git a/src/parser/analyser/raw_parser.py b/autobangumi/parser/analyser/raw_parser.py similarity index 100% rename from src/parser/analyser/raw_parser.py rename to autobangumi/parser/analyser/raw_parser.py diff --git a/src/parser/analyser/rename_parser.py b/autobangumi/parser/analyser/rename_parser.py similarity index 100% rename from src/parser/analyser/rename_parser.py rename to autobangumi/parser/analyser/rename_parser.py diff --git a/src/parser/analyser/tmdb_parser.py b/autobangumi/parser/analyser/tmdb_parser.py similarity index 100% rename from src/parser/analyser/tmdb_parser.py rename to autobangumi/parser/analyser/tmdb_parser.py diff --git a/src/parser/fuzz_match.py b/autobangumi/parser/fuzz_match.py similarity index 100% rename from src/parser/fuzz_match.py rename to autobangumi/parser/fuzz_match.py diff --git a/src/parser/title_parser.py b/autobangumi/parser/title_parser.py similarity index 100% rename from src/parser/title_parser.py rename to autobangumi/parser/title_parser.py diff --git a/src/run.sh b/autobangumi/run.sh similarity index 100% rename from src/run.sh rename to autobangumi/run.sh diff --git a/src/setID.sh b/autobangumi/setID.sh similarity index 100% rename from src/setID.sh rename to autobangumi/setID.sh diff --git a/src/tests/test_raw_parser.py b/autobangumi/tests/test_raw_parser.py similarity index 100% rename from src/tests/test_raw_parser.py rename to autobangumi/tests/test_raw_parser.py diff --git a/src/utils/__init__.py b/autobangumi/utils/__init__.py similarity index 100% rename from src/utils/__init__.py rename to autobangumi/utils/__init__.py diff --git a/src/utils/json_config.py b/autobangumi/utils/json_config.py similarity index 100% rename from src/utils/json_config.py rename to autobangumi/utils/json_config.py diff --git a/mian.py b/mian.py new file mode 100644 index 00000000..2cfa0ff6 --- /dev/null +++ b/mian.py @@ -0,0 +1,9 @@ +from autobangumi.conf.setting import setting + + +def main(): + pass + + +if __name__ == "__main__": + print(setting.DOWNLOADER["HOST"]) \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index 32e0d7ff..9b52b29d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,14 +1,14 @@ anyio beautifulsoup4 lxml -certifi==2022.6.15 +certifi charset-normalizer -click==8.1.3 +click fastapi -h11==0.13.0 -idna==3.3 +h11 +idna pydantic==1.9.1 -PySocks==1.7.1 +PySocks qbittorrent-api requests six==1.16.0 diff --git a/src/__main__.py b/src/__main__.py deleted file mode 100644 index 9fc0e50c..00000000 --- a/src/__main__.py +++ /dev/null @@ -1,5 +0,0 @@ -import app - - -if __name__ == "__main__": - app.run() \ No newline at end of file diff --git a/src/conf/__init__.py b/src/conf/__init__.py deleted file mode 100644 index 90226d02..00000000 --- a/src/conf/__init__.py +++ /dev/null @@ -1,13 +0,0 @@ -from .conf import settings, Settings -from .const import BCOLORS -# from .const_dev import DEV_SETTINGS -from .parse import parse -from .log import setup_logger - - - - - - - - diff --git a/src/network/__init__.py b/src/network/__init__.py deleted file mode 100644 index be49175c..00000000 --- a/src/network/__init__.py +++ /dev/null @@ -1,50 +0,0 @@ -import re -from dataclasses import dataclass - -from network.request import RequestURL -from network.notification import PostNotification -from conf import settings - - -@dataclass -class TorrentInfo: - name: str - torrent_link: str - - -class RequestContent: - def __init__(self): - self._req = RequestURL() - - # Mikanani RSS - def get_torrents(self, _url: str) -> [TorrentInfo]: - soup = self._req.get_content(_url) - torrent_titles = [item.title.string for item in soup.find_all("item")] - torrent_urls = [item.get("url") for item in soup.find_all("enclosure")] - torrents = [] - for _title, torrent_url in zip(torrent_titles, torrent_urls): - if re.search(settings.not_contain, _title) is None: - torrents.append(TorrentInfo(_title, torrent_url)) - return torrents - - def get_torrent(self, _url) -> TorrentInfo: - soup = self._req.get_content(_url) - item = soup.find("item") - enclosure = item.find("enclosure") - return TorrentInfo(item.title.string, enclosure["url"]) - - # API JSON - def get_json(self, _url) -> dict: - return self._req.get_content(_url, content="json") - - def close_session(self): - self._req.close() - - -if __name__ == "__main__": - r = RequestContent() - rss_url = "https://mikanani.me/RSS/Bangumi?bangumiId=2739&subgroupid=203" - titles = r.get_torrents(rss_url) - print(settings.not_contain) - for title in titles: - print(title.name, title.torrent_link)