From ca1273ed8c150065bcd8c17d184132b37e7d3b31 Mon Sep 17 00:00:00 2001 From: Ovler Date: Tue, 29 Aug 2023 12:30:41 +0800 Subject: [PATCH 1/4] feat: Add `config` command to `biliarchiver.py` in `cli_tools` directory --- biliarchiver/cli_tools/biliarchiver.py | 2 ++ biliarchiver/cli_tools/conf_command.py | 24 ++++++++++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 biliarchiver/cli_tools/conf_command.py diff --git a/biliarchiver/cli_tools/biliarchiver.py b/biliarchiver/cli_tools/biliarchiver.py index a5b574b..869c898 100644 --- a/biliarchiver/cli_tools/biliarchiver.py +++ b/biliarchiver/cli_tools/biliarchiver.py @@ -3,6 +3,7 @@ from biliarchiver.i18n import _ from biliarchiver.cli_tools.up_command import up from biliarchiver.cli_tools.down_command import down from biliarchiver.cli_tools.get_command import get +from biliarchiver.cli_tools.conf_command import config from biliarchiver.version import BILI_ARCHIVER_VERSION @@ -58,6 +59,7 @@ def init(): biliarchiver.add_command(up) biliarchiver.add_command(down) biliarchiver.add_command(get) +biliarchiver.add_command(config) @biliarchiver.command(help=click.style(_("配置账号信息"), fg="cyan")) diff --git a/biliarchiver/cli_tools/conf_command.py b/biliarchiver/cli_tools/conf_command.py new file mode 100644 index 0000000..20f190b --- /dev/null +++ b/biliarchiver/cli_tools/conf_command.py @@ -0,0 +1,24 @@ +import click + +from dataclasses import dataclass +import os +import json +from pathlib import Path +from biliarchiver.i18n import _ +from biliarchiver.config import _Config + +@click.command(help=click.style(_("将传入参数写入配置文件"), fg="cyan")) +@click.option("--video_concurrency", "-v", type=click.INT, default=None, help=_("视频下载并发数")) +@click.option("--part_concurrency", "-p", type=click.INT, default=None, help=_("分P下载并发数")) +@click.option("--stream_retry", "-r", type=click.INT, default=None, help=_("流下载重试次数")) +@click.option("--storage_home_dir", "-s", type=click.STRING, default=None, help=_("存储目录")) +@click.option("--ia_key_file", "-i", type=click.STRING, default=None, help=_("IA key文件")) +@click.option("--cookies_file", "-c", type=click.STRING, default=None, help=_("cookies文件")) + +def config(**kwargs): + config = _Config() + for k, v in kwargs.items(): + if v is not None: + setattr(config, k, v) + config.save() + print(_("配置文件写入成功")) \ No newline at end of file From f6ef27aa311d5708f7aad8c2da28d8613014f96b Mon Sep 17 00:00:00 2001 From: Ovler Date: Tue, 29 Aug 2023 12:43:48 +0800 Subject: [PATCH 2/4] refactor: Remove unused imports --- biliarchiver/cli_tools/conf_command.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/biliarchiver/cli_tools/conf_command.py b/biliarchiver/cli_tools/conf_command.py index 20f190b..cfa66b8 100644 --- a/biliarchiver/cli_tools/conf_command.py +++ b/biliarchiver/cli_tools/conf_command.py @@ -1,9 +1,5 @@ import click - from dataclasses import dataclass -import os -import json -from pathlib import Path from biliarchiver.i18n import _ from biliarchiver.config import _Config From c848ff836b358e095887ab638bf4dc03c0bb21fa Mon Sep 17 00:00:00 2001 From: Ovler Date: Tue, 29 Aug 2023 12:44:34 +0800 Subject: [PATCH 3/4] feat: Add translations for conf command --- biliarchiver/locales/biliarchiver.pot | 32 +++++++++++++++++++ .../locales/en/LC_MESSAGES/biliarchiver.po | 32 +++++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/biliarchiver/locales/biliarchiver.pot b/biliarchiver/locales/biliarchiver.pot index 59d4e61..cb90c91 100644 --- a/biliarchiver/locales/biliarchiver.pot +++ b/biliarchiver/locales/biliarchiver.pot @@ -177,6 +177,38 @@ msgstr "" msgid "已废弃直接运行此命令,请改用 biliarchiver 命令" msgstr "" +#: biliarchiver/cli_tools/conf_command.py:6 +msgid "将传入参数写入配置文件" +msgstr "" + +#: biliarchiver/cli_tools/conf_command.py:7 +msgid "视频下载并发数" +msgstr "" + +#: biliarchiver/cli_tools/conf_command.py:8 +msgid "分P下载并发数" +msgstr "" + +#: biliarchiver/cli_tools/conf_command.py:9 +msgid "流下载重试次数" +msgstr "" + +#: biliarchiver/cli_tools/conf_command.py:10 +msgid "存储目录" +msgstr "" + +#: biliarchiver/cli_tools/conf_command.py:11 +msgid "IA key文件" +msgstr "" + +#: biliarchiver/cli_tools/conf_command.py:12 +msgid "cookies文件" +msgstr "" + +#: biliarchiver/cli_tools/conf_command.py:20 +msgid "配置文件写入成功" +msgstr "" + #: biliarchiver/cli_tools/down_command.py:6 msgid "从哔哩哔哩下载" msgstr "" diff --git a/biliarchiver/locales/en/LC_MESSAGES/biliarchiver.po b/biliarchiver/locales/en/LC_MESSAGES/biliarchiver.po index dc66034..ada1f69 100644 --- a/biliarchiver/locales/en/LC_MESSAGES/biliarchiver.po +++ b/biliarchiver/locales/en/LC_MESSAGES/biliarchiver.po @@ -172,6 +172,38 @@ msgstr "Not logged in, or SESSDATA invalid/expired. Your cookies seems to have e msgid "已废弃直接运行此命令,请改用 biliarchiver 命令" msgstr "This command is deprecated. Use `biliarchiver down` instead." +#: biliarchiver/cli_tools/conf_command.py:6 +msgid "将传入参数写入配置文件" +msgstr "Write the passed parameters to the configuration file" + +#: biliarchiver/cli_tools/conf_command.py:7 +msgid "视频下载并发数" +msgstr "Video download concurrency" + +#: biliarchiver/cli_tools/conf_command.py:8 +msgid "分P下载并发数" +msgstr "Part download concurrency" + +#: biliarchiver/cli_tools/conf_command.py:9 +msgid "流下载重试次数" +msgstr "Stream download retry count" + +#: biliarchiver/cli_tools/conf_command.py:10 +msgid "存储目录" +msgstr "Storage home directory" + +#: biliarchiver/cli_tools/conf_command.py:11 +msgid "IA key文件" +msgstr "IA key file" + +#: biliarchiver/cli_tools/conf_command.py:12 +msgid "cookies文件" +msgstr "Cookies file" + +#: biliarchiver/cli_tools/conf_command.py:20 +msgid "配置文件写入成功" +msgstr "Configuration file written successfully" + #: biliarchiver/cli_tools/down_command.py:6 msgid "从哔哩哔哩下载" msgstr "Download from BiliBili" From 086b1decb3587b31fd3bb32223145d611e1dc91d Mon Sep 17 00:00:00 2001 From: Ovler Date: Tue, 29 Aug 2023 14:11:05 +0800 Subject: [PATCH 4/4] chore: Refactor import statements to avoid ci fail & update CI --- .github/workflows/python-package.yaml | 1 + biliarchiver/cli_tools/conf_command.py | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/python-package.yaml b/.github/workflows/python-package.yaml index ce1265b..4e57a61 100644 --- a/.github/workflows/python-package.yaml +++ b/.github/workflows/python-package.yaml @@ -46,6 +46,7 @@ jobs: python -m biliarchiver.cli_tools.biliarchiver down --help python -m biliarchiver.cli_tools.biliarchiver get --help python -m biliarchiver.cli_tools.biliarchiver up --help + python -m biliarchiver.cli_tools.biliarchiver config --help # - name: Test with pytest # run: | # pytest diff --git a/biliarchiver/cli_tools/conf_command.py b/biliarchiver/cli_tools/conf_command.py index cfa66b8..3b5dcbe 100644 --- a/biliarchiver/cli_tools/conf_command.py +++ b/biliarchiver/cli_tools/conf_command.py @@ -1,7 +1,6 @@ import click from dataclasses import dataclass from biliarchiver.i18n import _ -from biliarchiver.config import _Config @click.command(help=click.style(_("将传入参数写入配置文件"), fg="cyan")) @click.option("--video_concurrency", "-v", type=click.INT, default=None, help=_("视频下载并发数")) @@ -12,6 +11,7 @@ from biliarchiver.config import _Config @click.option("--cookies_file", "-c", type=click.STRING, default=None, help=_("cookies文件")) def config(**kwargs): + from biliarchiver.config import _Config config = _Config() for k, v in kwargs.items(): if v is not None: