silver-music-notifier 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +87 -0
- package/dist/cli/index.js +760 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/web/assets/index-DPovoyOV.css +1 -0
- package/dist/web/assets/index-xYrc5ayg.js +124 -0
- package/dist/web/index.html +13 -0
- package/package.json +99 -0
package/README.md
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# silver-music-notifier
|
|
2
|
+
|
|
3
|
+
Track a list of artists and get notified of their new music releases from
|
|
4
|
+
[MusicBrainz](https://musicbrainz.org). Drive it from the terminal, or launch a
|
|
5
|
+
local web UI (built with [silver-ui](https://silver-ui.com)).
|
|
6
|
+
|
|
7
|
+
## Install
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm install -g silver-music-notifier
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
This requires a working build toolchain for `better-sqlite3` (the native SQLite
|
|
14
|
+
driver), which is built automatically on install.
|
|
15
|
+
|
|
16
|
+
## Usage
|
|
17
|
+
|
|
18
|
+
### Web UI
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
silver-music-notifier web # starts on http://localhost:3001 and opens a browser
|
|
22
|
+
silver-music-notifier web --port 8080 --no-open
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
The UI has three views:
|
|
26
|
+
|
|
27
|
+
- **Releases** — a feed of every known release-group, newest first, with a
|
|
28
|
+
**Refresh** button and a "New" badge on releases discovered in the last refresh.
|
|
29
|
+
- **Artists** — search MusicBrainz and add/remove the artists you follow.
|
|
30
|
+
- **Settings** — choose notification methods and configure SMTP for email.
|
|
31
|
+
|
|
32
|
+
### CLI
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
silver-music-notifier add "Radiohead" # search MusicBrainz, pick a match
|
|
36
|
+
silver-music-notifier add "Boards of Canada" -y # add the top match, no prompt
|
|
37
|
+
silver-music-notifier add "X" --mbid <mbid> # add an exact MBID
|
|
38
|
+
silver-music-notifier list # list tracked artists
|
|
39
|
+
silver-music-notifier remove "Radiohead" # stop tracking (by name or MBID)
|
|
40
|
+
silver-music-notifier refresh # fetch releases + notify on new ones
|
|
41
|
+
silver-music-notifier releases --new --limit 20
|
|
42
|
+
silver-music-notifier config get # show settings
|
|
43
|
+
silver-music-notifier config set notify.desktop false
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Notifications
|
|
47
|
+
|
|
48
|
+
When `refresh` finds releases it has never seen before, it can notify you three ways:
|
|
49
|
+
|
|
50
|
+
- **In-page badges** — "New" badges in the web UI (always available).
|
|
51
|
+
- **Desktop** — a system notification (enabled by default).
|
|
52
|
+
- **Email** — an HTML summary, sent once SMTP is configured and the email toggle
|
|
53
|
+
is on. Configure it in the **Settings** view or via `config set smtp.*`.
|
|
54
|
+
|
|
55
|
+
`refresh` is manual — run it from the CLI, the web button, or your own scheduler
|
|
56
|
+
(cron, systemd timer, etc.).
|
|
57
|
+
|
|
58
|
+
## Data & configuration
|
|
59
|
+
|
|
60
|
+
State lives in a single SQLite file in your per-user data directory
|
|
61
|
+
(e.g. `~/.config/silver-music-notifier/data.db` on Linux). Override the location
|
|
62
|
+
with the `SMN_DATA_DIR` environment variable.
|
|
63
|
+
|
|
64
|
+
> **Note:** SMTP credentials (including the password) are stored in plaintext in
|
|
65
|
+
> that local SQLite file. This is a single-user local tool; treat the data
|
|
66
|
+
> directory accordingly.
|
|
67
|
+
|
|
68
|
+
Other environment variables:
|
|
69
|
+
|
|
70
|
+
- `SMN_DATA_DIR` — override the data directory.
|
|
71
|
+
- `SMN_DISABLE_DESKTOP=1` — suppress desktop notifications.
|
|
72
|
+
- `SMN_MB_CONTACT` — fallback MusicBrainz contact for the API User-Agent.
|
|
73
|
+
|
|
74
|
+
## Development
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
npm install
|
|
78
|
+
npm run dev # backend (tsx watch, :3001) + Vite dev server (:5173, proxies /api)
|
|
79
|
+
npm run build # bundle CLI/server (tsup) + build web (vite) into dist/
|
|
80
|
+
npm run typecheck
|
|
81
|
+
npm run lint # eslint
|
|
82
|
+
npm run lint:fix # eslint --fix
|
|
83
|
+
npm run format # prettier --write .
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
A Husky `pre-commit` hook runs `lint-staged` (eslint `--fix` then prettier on
|
|
87
|
+
staged files) followed by `typecheck`, so commits are auto-formatted and linted.
|