aboutsummaryrefslogtreecommitdiffstats
path: root/cmd
diff options
context:
space:
mode:
authoryingyu5658 <i@yingyu5658.me>2025-12-04 11:19:57 +0800
committeryingyu5658 <i@yingyu5658.me>2025-12-04 11:19:57 +0800
commitc52f41545df179b542f106d08e6dd013a70216e7 (patch)
treeda54d63c0ad311f77fd1ff7d3b3f53109ed99af7 /cmd
parent14a941b09749d63871016831b657f6de7a6337fc (diff)
downloadbvd-c52f41545df179b542f106d08e6dd013a70216e7.tar.gz
bvd-c52f41545df179b542f106d08e6dd013a70216e7.zip
refactor: 模块化重构并优化输出
- 将原本的 main.go 拆分为 命令 网络请求 下载三个单独职责的文件 - 优化输出, 添加用户友好的Emoji
Diffstat (limited to 'cmd')
-rw-r--r--cmd/bvd/main.go42
1 files changed, 42 insertions, 0 deletions
diff --git a/cmd/bvd/main.go b/cmd/bvd/main.go
new file mode 100644
index 0000000..3a537b4
--- /dev/null
+++ b/cmd/bvd/main.go
@@ -0,0 +1,42 @@
+package main
+
+import (
+ "fmt"
+ "log"
+ "os"
+
+ "bvd/internal/api"
+ downloader "bvd/internal/download"
+
+ "github.com/urfave/cli/v2"
+)
+
+func main() {
+ app := &cli.App{
+ Name: "bvd",
+ Usage: "快速、高效、易用的下载B站视频 CLI 工具",
+ Commands: []*cli.Command{
+ {
+ Name: "download",
+ Usage: "下载指定 BV 号的视频",
+ Action: func(c *cli.Context) error {
+ bvid := c.Args().First()
+ if bvid == "" {
+ return fmt.Errorf("请提供视频 BV 号")
+ }
+
+ biliAPI := api.NewBiliAPI()
+ downloader := downloader.NewDownloader()
+
+ return downloader.Start(bvid, biliAPI)
+ },
+ ArgsUsage: "<BVID> 欲下载视频的 BV 号",
+ },
+ },
+ Version: "1.0.1",
+ }
+
+ if err := app.Run(os.Args); err != nil {
+ log.Fatal(err)
+ }
+}