14个版本
0.2.2 | 2021年8月1日 |
---|---|
0.2.1 | 2021年5月3日 |
0.2.0 | 2021年3月10日 |
0.1.12 | 2021年3月1日 |
0.1.3 | 2020年9月20日 |
#797 在 数据库接口
每月45 次下载
5MB
3.5K SLoC
cogsy
一个基于curses的、用Rust编写的命令行本地Discogs客户端
关于
Cogsy是一个基于curses的命令行应用程序,用于跟踪您的Discogs收藏。它查询Discogs API,并允许您在无需浏览器的情况下离线查看这些信息。它还添加了跟踪您的收听历史记录等附加功能,并以美观的方式显示给您。
对于不了解情况的人,Discogs 是一个网站/市场,音乐爱好者可以在其中收集和出售实体音乐媒介,如黑胶唱片和CD。
Cogsy已进入0.2.0版本!要查看新功能,请跳转到用法部分。
此应用的功能包括
- 使用用户的用户名和应用程序令牌查询Discogs数据库。(预计将进行OAuth集成,但不是优先事项。)
- 将数据存储在数据库中,并在应用程序启动时以TUI的形式显示。
- 记录用户的收听历史记录,并在需要时显示。
Cogsy的目标受众不可否认地并不大。它针对的是那些每天使用计算机终端的用户,并且也是拥有黑胶/CD收藏的音乐爱好者。话虽如此,如果您不属于上述人群,但此应用程序仍然吸引您,不妨试试!
注意:此应用程序无法更改用户的收藏或进行购买,并且没有计划支持此功能。所有这些都必须在Discogs本身完成。
要求
-
cargo
v1.46.0或更高版本(官方Rust构建工具和包管理器) -
rustc
v1.46.0或更高版本(官方Rust编译器) -
gcc
v10或更高版本(用于链接,rustc
不会自行进行链接) -
Discogs帐户(显然)
- 注意:您的Discogs收藏必须有一个名为“所有”的文件夹。如果没有它,将破坏Cogsy的许多功能。
必须预先安装以下C共享库
libsqlite3
或您发行版的等效库。openssl
(应该已经存在)ncurses
大多数安装错误源于链接器无法在您的系统上找到相应的.so
文件。寻找缺失的包并安装其dev
版本。这应该可以解决大多数错误。
您可以使用 rustup
工具链管理器安装所有内容,官方Rust 安装页面 提供了相关说明。
对于Linux用户,建议您从您的发行版仓库安装 rustup
。这对于Arch Linux用户尤其适用,因为Rust AUR软件包使用的是Arch包装的Rust版本。使用官方渠道安装的Cargo不会被 makepkg
检测到。
对于Arch Linux用户
pacman -S rustup
rustup default stable/nightly
阅读关于Rust的Arch Wiki文章以获取更多信息。
安装
macOS、Windows和Linux
Cogsy目前在Windows 10上由于依赖ncurses而损坏。目前正在修复此错误。Windows用户可以在Cygwin或WSL上运行它来绕过这个问题,但我还没有测试这种方法。
稳定的工具链可以编译Cogsy,但过去一些依赖项使用了仅限nightly的功能,导致在稳定版编译时出现错误。因此,我建议您默认使用nightly工具链。
要切换到nightly工具链,请运行
rustupdefault nightly
Cogsy可以从crates.io安装,这是官方的Rust软件包注册表
cargoinstall cogsy
此命令也可用于在新版本发布时更新Cogsy。您的数据应保持完好。
对于Arch Linux用户,Cogsy现在可在AUR上使用。
git clone https://aur.archlinux.org/cogsy.git
cd cogsy
makepkg -si
或者使用您喜欢的AUR辅助工具
paru-S cogsy
从源代码构建(请不要这样做,请使用cargo)
git clone https://github.com/cartoon-raccoon/cogsy
cd cogsy
make install
如果有人愿意为他们的发行版打包此应用,请让我知道,然后继续。
此应用已在Arch Linux、Void Linux、Pop!-OS和Fedora上进行测试。正在对macOS和Windows进行测试。
注意:Cogsy仍在开发中,并且仍被视为不稳定。它只有在所有三个目标操作系统上都运行良好时才会进入1.0.0版本。
设置
此应用需要一些设置:要访问Discogs API,它需要一个用户令牌。要获取此令牌,请转到您的Discogs账户设置 > 开发者 > 生成新令牌。将生成的字符串复制到您的剪贴板。
首次启动时,应用将询问您的用户凭据:您的用户名、您的令牌和您的时间区。要将令牌粘贴到终端,您可能需要使用Ctrl-Shift-V而不是Ctrl-V。输入这些信息后,应用将从Discogs获取您的信息并启动。
首次启动后,将创建一个config.toml文件,可在以下位置找到
Linux: /home/username/.config/cogsy/config.toml
MacOS: /Users/username/Library/Application Support/rs.cartoon-raccoon.cogsy/config.toml
Windows: C:\Users\username\AppData\Roaming\cartoon-raccoon\cogsy\config.toml
配置文件包含您在首次启动时输入的信息。
注意:Discogs API支持OAuth2,并且正在考虑为此应用集成OAuth2,但可能性不大,我认为使用此类框架不适合这种小型命令行应用的精神。您将不得不在可预见的未来使用您的用户令牌。
使用方法
从v0.2.0开始,Cogsy有很多新功能和修复,还有更多即将推出。由于功能列表变得非常长,现在它有了自己的手册页。
请参阅此处的文档。
贡献
请随意fork此仓库并发送pull request。整个项目目前是单个人工的,我将很高兴接受任何贡献。
问题和错误
- 当运行
update
时,应用会冻结- 这是正常行为。Cogsy使用阻塞API查询Discogs,这意味着在更新过程运行时,整个应用会被暂停。目前没有计划实现异步行为。
- 大型收藏可能会明显减慢应用的速度
- 显示数据的计算是懒加载的,即只有在命令调用时才会从数据库加载数据并进行处理。没有任何预先计算和缓存。目前正在实现这一功能。
如果有任何其他问题,请提出问题,我将尽力回复和修复。
未来功能
以下任何功能都不能保证实现。
- 添加一个
price
命令,允许用户设置他们为专辑支付的金额,并添加一个屏幕以显示他们花在音乐收藏上的增加金额,以sparkview图的形式展示。已编写解析命令的代码,现在只需实现即可。 - 从CSV文件读取用户收藏数据的功能(Discogs支持以CSV格式下载收藏数据)。这对拥有大型收藏的用户来说将非常有用。
- 在收听历史中显示专辑历史的功能(目前实现在专辑弹出窗口内部)。
- 替代更新算法。
- OAuth2集成(可能性不大)。
您可以在笔记部分查看完整的待办事项列表。
致谢
gyscos,为用户界面构建提供了Cursive库。感谢这个了不起的crate,以及你在Reddit上的帮助。
Cogsy受到了NerdyPepper的dijo的极大启发。是这个项目激发了我学习Rust的兴趣,这是我第一次构建的项目,不仅在Rust中,而且在任何编程语言中都是第一次。这个项目的整个存在都归功于他。谢谢您,先生。
依赖项
~36–50MB
~873K SLoC