Compare commits
No commits in common. "eb30bc11d945ff4a26257198e6f963fc1e7d301e" and "a102fecc2eaac2e37469f01d06af2ced34ac2cd6" have entirely different histories.
eb30bc11d9
...
a102fecc2e
@ -14,8 +14,13 @@
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="52900e09-9584-4b6c-95ff-fbd4ed5d8b2c" name="Changes" comment="Add interface package. Start adding auth stuff for refreshing tokens.">
|
||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Cargo.lock" beforeDir="false" afterPath="$PROJECT_DIR$/Cargo.lock" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Cargo.toml" beforeDir="false" afterPath="$PROJECT_DIR$/Cargo.toml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/daemon/update_playlists.rs" beforeDir="false" afterPath="$PROJECT_DIR$/src/daemon/update_playlists.rs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/etc/playlistd.toml" beforeDir="false" afterPath="$PROJECT_DIR$/etc/playlistd/playlistd.toml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/daemon/create_playlists.rs" beforeDir="false" afterPath="$PROJECT_DIR$/src/daemon/create_playlists.rs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/main.rs" beforeDir="false" afterPath="$PROJECT_DIR$/src/main.rs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/models.rs" beforeDir="false" afterPath="$PROJECT_DIR$/src/models.rs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/systemd/playlistd.service" beforeDir="false" afterPath="$PROJECT_DIR$/systemd/playlistd.service" afterDir="false" />
|
||||
</list>
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
@ -160,12 +165,7 @@
|
||||
<workItem from="1713385358427" duration="2705000" />
|
||||
<workItem from="1713465993328" duration="1750000" />
|
||||
<workItem from="1713469457285" duration="6588000" />
|
||||
<workItem from="1713609379678" duration="7216000" />
|
||||
<workItem from="1713639881551" duration="577000" />
|
||||
<workItem from="1716043707662" duration="542000" />
|
||||
<workItem from="1716046070333" duration="1484000" />
|
||||
<workItem from="1716640392358" duration="367000" />
|
||||
<workItem from="1716642009543" duration="1073000" />
|
||||
<workItem from="1713609379678" duration="6626000" />
|
||||
</task>
|
||||
<task id="LOCAL-00001" summary="Structure">
|
||||
<created>1692008860369</created>
|
||||
|
2
Cargo.lock
generated
2
Cargo.lock
generated
@ -1456,7 +1456,7 @@ checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
|
||||
|
||||
[[package]]
|
||||
name = "playlistd"
|
||||
version = "0.2.3"
|
||||
version = "0.2.2"
|
||||
dependencies = [
|
||||
"chrono",
|
||||
"config",
|
||||
|
@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "playlistd"
|
||||
version = "0.2.3"
|
||||
version = "0.2.2"
|
||||
edition = "2021"
|
||||
authors = ["Jude Southworth (judesouthworth@pm.me)"]
|
||||
license = "AGPL-3.0 only"
|
||||
|
19
README.md
19
README.md
@ -20,28 +20,19 @@ For deploying, these can be configured in `/etc/playlistd.toml`.
|
||||
|
||||
### Container build (Ubuntu 20.04)
|
||||
|
||||
`podman run --rm --network=host -v "$PWD":/mnt -w /mnt -e "DATABASE_URL=postgres://jude@127.0.0.1/playlistd" playlistd cargo deb`
|
||||
`podman run --rm --network=host -v "$PWD":/mnt -w /mnt -e "DATABASE_URL=postgres://jude@127.0.0.1/navidrome-playlists" playlistd cargo deb`
|
||||
|
||||
## How to use
|
||||
|
||||
Each of these will work best when your music library is well organised with Musicbrainz metadata.
|
||||
|
||||
### Tracked playlist
|
||||
|
||||
A tracked playlist is a single Subsonic playlist that tracks data from Listenbrainz. For example,
|
||||
a playlist that contains your top 15 songs from the past week.
|
||||
|
||||
These will work best when your music library is well organised with Musicbrainz metadata.
|
||||
|
||||
You can create a tracked playlist by inserting a row into the `tracked_playlist` table.
|
||||
|
||||
### Tracked playlist rule
|
||||
### Static playlist
|
||||
|
||||
A tracked playlist rule is a time-based instruction to create a new tracked playlist. For example,
|
||||
a playlist every year that contains your top songs.
|
||||
|
||||
You can create a tracked playlist rule by inserting a row into the `create_tracked_playlist` table.
|
||||
For a yearly top songs playlist, run the following:
|
||||
|
||||
```sql
|
||||
INSERT INTO create_tracked_playlist (id, name_template, playlist_size, tracking_user, tracking_type)
|
||||
VALUES (gen_random_uuid(), '%Y - Top 100', 100, 'jellywx', 'this_year');
|
||||
```
|
||||
TODO, not yet implemented
|
||||
|
@ -90,16 +90,6 @@ async fn update_playlist(
|
||||
})
|
||||
.cloned();
|
||||
|
||||
match filtered {
|
||||
Some(track) => {
|
||||
tracks.push(track.id);
|
||||
}
|
||||
None => {
|
||||
let filtered = search_results
|
||||
.iter()
|
||||
.find(|s| alpha_compare(&s.title, &recording.track_name))
|
||||
.cloned();
|
||||
|
||||
match filtered {
|
||||
Some(track) => {
|
||||
tracks.push(track.id);
|
||||
@ -112,8 +102,6 @@ async fn update_playlist(
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
let playlist = media_client
|
||||
.as_ref()
|
||||
|
Loading…
Reference in New Issue
Block a user