返回首页
最新
管理本地音乐库曾经意味着需要同时使用多个应用程序:一个 Soulseek 客户端用于查找音乐,MusicBrainz Picard 用于标签处理,一个文件管理器用于整理文件夹,最后还有一个音乐播放器。每当有新专辑发布,就需要在不同窗口之间切换,等待应用程序重新扫描,并希望所有内容都能放在正确的位置。
我开发了 Waves,将整个工作流程整合到一个以键盘驱动的终端应用中。
工作流程:
- 按下 "f d" 直接从播放器搜索 Soulseek
- 从 MusicBrainz 的结果中选择一个发行版,下载匹配的文件
- 自动导入,自动标签处理,获取专辑封面,并进行 Picard 兼容的重命名
- 音乐文件进入你的库,随时可以播放
无需切换窗口,无需等待库重新扫描,无需手动整理文件。
但它不仅仅是一个优秀的音乐播放器:
- 使用米勒列导航(艺术家 > 专辑 > 曲目),支持 vim 快捷键
- 无间断播放,支持 MP3/FLAC/Opus/M4A
- 收音机模式:当你的播放队列结束时,使用 Last.fm 的相似艺术家继续从你的库中播放
- 支持 Last.fm 的 scrobbling,带离线队列
- 支持 MPRIS 实现 Linux 桌面集成
- 支持文件夹的播放列表、收藏夹、带撤销/重做的队列
- 全文搜索功能(SQLite FTS5)
- 状态持久化:队列、位置等在重启后依然保持
使用 Go、Bubble Tea 和 SQLite 构建。Soulseek 集成需要运行 slskd 实例([https://github.com/slskd/slskd](https://github.com/slskd/slskd))。
```
go install github.com/llehouerou/waves@latest
# 或在 Arch 上
yay -S waves-bin
# 或使用 Nix
nix run github:llehouerou/waves
```
进入后按 "?" 查看快捷键绑定。欢迎随时询问架构相关问题或提出功能请求。
我开发这个工具是因为大多数图像放大器在处理人脸时效果不佳——它们会模糊皮肤并丢失面部细节。Crystal Upscaler 专注于肖像,在进行4倍放大时能够保留自然的皮肤纹理和身份特征。该工具可以在浏览器中使用,免费试用。非常期待来自HN社区的反馈!
作者在此。我制作了这个小型的 TUI 程序,用于管理 Linux 桌面上的默认应用程序。<p>也许你们中的一些人会觉得它有用。<p>欢迎随时提问。
嗨,HN,
我是 Nikhil([https://nikhilp.online](https://nikhilp.online))。过去几年我一直在构建项目,决定开发 ShillGuard,因为在尝试在 Reddit 和 Facebook 等平台分享这些项目时,我总是遇到障碍。
我会花几周时间构建一个东西,写好帖子,却被 Reddit 的自动审核系统立即删除,或者在 Gmail 中被标记为垃圾邮件,而我却不知道原因。
ShillGuard 是一个 Chrome 扩展,它实时分析你的草稿文本,针对你发布/发送的具体上下文进行优化。
它的工作原理如下:
这个扩展不仅仅检查语法或语气,而是注入一个内容脚本(使用 Plasmo 构建),在你点击提交之前抓取 DOM 并获取上下文元数据。
在 Reddit 上:当你在文本编辑器中输入时,它会从 URL 中获取子版块名称,并并行获取特定的 rules.json 和 about.json 端点。它还会检查你当前账户的统计数据(Karma/账户年龄),与社区的典型阈值进行对比,以预测你是否会被自动审核系统过滤。我计划添加一些最近流行帖子的示例,以提供理想情况下内容“应该”是什么样的良好示例。
在 Facebook 上:它会抓取群组的元数据和隐私设置,以警告你如果你的帖子(例如,包含外部链接)违反了特定的群组规范。
在 Gmail 上:它分析你的主题行和正文中的垃圾邮件触发词,并检查“附件”的不一致性(例如,提到“附件”但忘记附加文件)。我最享受构建这个功能,因为有很多方法可以让它生成高质量的电子邮件!目前,我正在整合一个黑名单和垃圾邮件检查,使用外部 API 来帮助突出显示你的账户是否被电子邮件提供商隐藏。
技术栈:
- 框架:Plasmo(用于浏览器扩展运行时)
- 前端:React + Tailwind CSS
- 智能:Google Gemini Flash(通过新的 Google Gen AI SDK)
- 架构:严格遵循本地优先 / 自带密钥(Bring Your Own Key)。
我决定采用自带密钥模型进行 AI 分析。你的 API 密钥存储在 chrome.storage.local 中,分析请求直接从你的浏览器发送到 Google。这使得扩展更加注重隐私,避免我充当你数据的中介。
目前这是一个付费扩展(提供终身优惠),但我真的想解决独立开发者在平台审核中遇到的“黑箱”困扰。
这是我第一次开发 Chrome 扩展,所以我很想听听大家的反馈,看看 Plasmo 是否是最佳框架,或者有什么额外功能的建议!