diff --git a/biliarchiver/bili_archive_bvids.py b/biliarchiver/cli_tools/bili_archive_bvids.py similarity index 92% rename from biliarchiver/bili_archive_bvids.py rename to biliarchiver/cli_tools/bili_archive_bvids.py index 5d72c42..7bb23b2 100644 --- a/biliarchiver/bili_archive_bvids.py +++ b/biliarchiver/cli_tools/bili_archive_bvids.py @@ -2,6 +2,7 @@ import asyncio import os import argparse from pathlib import Path +import time from typing import Union from internetarchive import get_item @@ -112,7 +113,16 @@ def _main(): while len(asyncio.all_tasks(loop)) > 0: loop.run_until_complete(asyncio.sleep(1)) - +def update_cookies_from_browser(client: AsyncClient, browser: str): + try: + a = time.time() + import browser_cookie3 + f = getattr(browser_cookie3, browser.lower()) + print(f"trying to load cookies from {browser}: bilibili.com, may need auth") + client.cookies.update(f(domain_name="bilibili.com")) + print(f"load complete, consumed time: {time.time() - a} s") + except AttributeError: + raise AttributeError(f"Invalid Browser {browser}") def update_cookies_from_file(client: AsyncClient, cookies_path: Union[str, Path]): if isinstance(cookies_path, Path): diff --git a/biliarchiver/bili_get_bvids.py b/biliarchiver/cli_tools/bili_get_bvids.py similarity index 100% rename from biliarchiver/bili_get_bvids.py rename to biliarchiver/cli_tools/bili_get_bvids.py diff --git a/biliarchiver/bili_upload.py b/biliarchiver/cli_tools/bili_upload.py similarity index 100% rename from biliarchiver/bili_upload.py rename to biliarchiver/cli_tools/bili_upload.py diff --git a/biliarchiver/cli_tools/biliarchiver.py b/biliarchiver/cli_tools/biliarchiver.py new file mode 100644 index 0000000..9ac79eb --- /dev/null +++ b/biliarchiver/cli_tools/biliarchiver.py @@ -0,0 +1,15 @@ +import os + + +def main(): + _tools = os.listdir(os.path.dirname(__file__)) + available_tools = [] + for tool in _tools: + if tool.endswith('.py') and tool != '__init__.py' and tool != 'biliarchiver.py': + available_tools.append(tool[:-3]) + + print("biliarchiver 可用的命令行工具有: (-h 查看帮助)") + print("\n".join(available_tools)) + +if __name__ == '__main__': + main() \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index f43561c..d8ce275 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -13,9 +13,10 @@ internetarchive = "^3.5.0" danmakuc = "^0.3.6" [tool.poetry.scripts] -bili_archive_bvids = "biliarchiver:bili_archive_bvids.main" -bili_upload = "biliarchiver:bili_upload.main" -bili_get_bvids = "biliarchiver:bili_get_bvids.main" +bili_archive_bvids = "biliarchiver.cli_tools:bili_archive_bvids.main" +bili_upload = "biliarchiver.cli_tools:bili_upload.main" +bili_get_bvids = "biliarchiver.cli_tools:bili_get_bvids.main" +biliarchiver = "biliarchiver.cli_tools:biliarchiver.main" [build-system]