450 lines
17 KiB
Org Mode
450 lines
17 KiB
Org Mode
#+title: TODOs
|
||
|
||
A fun way to keep track of things in the project to fix or improve.
|
||
|
||
* Version 1.0.0
|
||
** TODO What to do with Youtube videos from LastFM and web-scrobbler :bug:source:lastfm:
|
||
** TODO Add a user profile page with ability to change settings :profiles:improvement:
|
||
** DONE [#C] Consider a purge command for duplicated and stuck in-progress scrobbles :utililty:improvement:
|
||
CLOSED: [2023-04-06 Thu 14:09]
|
||
** DONE Add a "stop_timestamp" so we don't rely on content length :improvement:scrobbling:
|
||
CLOSED: [2023-04-02 Sun 23:58]
|
||
|
||
Essentially, we currently have the timestamp as when the content began
|
||
scrobbling and then calculate the finish time from the length of the content.
|
||
This works pretty well because we know how long most things are.
|
||
|
||
But in some cases, sports events or long podcasts, we may start mid-way through
|
||
an event or finish halfway through but still want to mark it as done. In these
|
||
cases, knowing the finish time could be useful, especially when interfacing with
|
||
other scrobblers which may have different definitions of when a scrobble
|
||
finishes or started.
|
||
** DONE Fix bug with Various Artist albums being labeled with first artist as album artist :scrobbling:bug:music:
|
||
CLOSED: [2023-03-27 Mon 20:18]
|
||
:LOGBOOK:
|
||
CLOCK: [2023-03-26 Sun 22:01]--[2023-03-27 Mon 01:07] => 3:06
|
||
:END:
|
||
** DONE Fix bug with weekly aggregator being blank on Sundays :aggregators:music:bug:
|
||
CLOSED: [2023-03-26 Sun 13:52]
|
||
** DONE Fix KoReader scrobbling to use pages rather than time of last read :scrobbling:books:improvement:
|
||
CLOSED: [2023-03-26 Sun 13:51]
|
||
:LOGBOOK:
|
||
CLOCK: [2023-03-26 Sun 13:11]--[2023-03-26 Sun 13:51] => 0:40
|
||
:END:
|
||
** DONE [#A] Add django-storage to store files on S3 :settings:improvement:
|
||
CLOSED: [2023-03-24 Fri 14:46]
|
||
:LOGBOOK:
|
||
CLOCK: [2023-03-24 Fri 10:47]--[2023-03-24 Fri 14:46] => 3:59
|
||
CLOCK: [2023-03-24 Fri 10:36]--[2023-03-24 Fri 10:40] => 0:04
|
||
:END:
|
||
** DONE Fix vrobbler settings not using booleans :settings:bug:
|
||
CLOSED: [2023-03-24 Fri 10:45]
|
||
:LOGBOOK:
|
||
CLOCK: [2023-03-24 Fri 10:40]--[2023-03-24 Fri 10:46] => 0:06
|
||
:END:
|
||
** DONE Update weekly live chart to be 7-day continuous rather than weekly :views:bug:
|
||
CLOSED: [2023-03-24 Fri 00:31]
|
||
The live view will be blank every Monday, no reason to tie it to a day of the
|
||
week. It should be "the last 7 days"
|
||
** DONE [#B] Implement a detail view for TV shows :improvement:views:
|
||
CLOSED: [2023-03-22 Wed 17:05]
|
||
** DONE [#B] Implement a detail view for Movies :improvement:views:
|
||
CLOSED: [2023-03-22 Wed 17:05]
|
||
** DONE Add "service provider" to TV Series, and use that for source when available :bug:scrobbling:
|
||
CLOSED: [2023-03-22 Wed 17:04]
|
||
** DONE Add view for long-play content (books, video games) to restart them :views:improvement:
|
||
CLOSED: [2023-03-22 Wed 17:01]
|
||
** DONE Add live chart view like Maloja :improvement:views:
|
||
CLOSED: [2023-03-07 Tue 11:13]
|
||
** DONE [#C] Figure out how to add to web-scrobbler :improvement:scrobbling:
|
||
CLOSED: [2023-03-22 Wed 17:06]
|
||
|
||
An example:
|
||
https://github.com/web-scrobbler/web-scrobbler/blob/master/src/core/background/scrobbler/maloja-scrobbler.js
|
||
|
||
This is actually going to be moot because we can import from LastFM, and
|
||
web-scrobbler integrates well with LastFM. The only thing to think through here
|
||
now is what to do with all the garbage web-scrobbler sometimes pushes to LastFM
|
||
from Youtube (all videos get pushed, sigh).
|
||
|
||
* Version 0.11.4
|
||
** DONE Add rudimentary video game scrobbling :improvement:content:videogames:
|
||
CLOSED: [2023-03-07 Tue 11:11]
|
||
** DONE Add ability to scrobble from KOReader statistics files :improvement:books:content:
|
||
CLOSED: [2023-03-07 Tue 11:11]
|
||
|
||
** DONE [#A] Fix fetching artwork without release group :bug:
|
||
CLOSED: [2023-01-29 Sun 14:27]
|
||
|
||
When we get artwork from Musicbrianz, and it's not found, we should check for
|
||
release groups as well. This will stop issues with missing artwork because of
|
||
obscure MB release matches.
|
||
|
||
** DONE [#A] Fix Jellyfin music scrobbling N+1 past 90 completion percent :bug:
|
||
CLOSED: [2023-01-30 Mon 18:31]
|
||
:LOGBOOK:
|
||
CLOCK: [2023-01-30 Mon 18:00]--[2023-01-30 Mon 18:31] => 0:31
|
||
:END:
|
||
|
||
If we play music from Jellyfin and the track reaches 90% completion, the
|
||
scrobbling goes crazy and starts creating new scrobbles with every update.
|
||
|
||
The cause is pretty simple, but the solution is hard. We want to mark a scrobble
|
||
as complete for the following conditions:
|
||
|
||
- Play stopped and percent played beyond 90%
|
||
- Play completely finished
|
||
|
||
But if we keep listening beyond 90, we should basically ignore updates (or just
|
||
update the existing scrobble)
|
||
** DONE [#A] Add support for Audioscrobbler tab-separated file uploads :improvement:
|
||
CLOSED: [2023-02-03 Fri 16:52]
|
||
|
||
An example of the format:
|
||
#+begin_src csv
|
||
,
|
||
#AUDIOSCROBBLER/1.1
|
||
#TZ/UNKNOWN
|
||
#CLIENT/Rockbox sansaclipplus $Revision$
|
||
75 Dollar Bill I Was Real I Was Real 4 1015 S 1740494944 64ff5f53-d187-4512-827e-7606c69e66ff
|
||
75 Dollar Bill I Was Real I Was Real 4 1015 S 1740494990 64ff5f53-d187-4512-827e-7606c69e66ff
|
||
311 311 Down 1 173 S 1740495003 00476c23-fd9e-464b-9b27-a62d69f3d4f4
|
||
311 311 Down 1 173 L 1740495049 00476c23-fd9e-464b-9b27-a62d69f3d4f4
|
||
311 311 Down 1 173 L 1740495113 00476c23-fd9e-464b-9b27-a62d69f3d4f4
|
||
311 311 Random 2 187 S 1740495190 530c09f3-46fe-4d90-b11f-7b63bcb4b373
|
||
311 311 Random 2 187 L 1740495194 530c09f3-46fe-4d90-b11f-7b63bcb4b373
|
||
311 311 Jackolantern’s Weather 3 204 L 1740495382 cc3b2dec-5d99-47ea-8930-20bf258be4ea
|
||
311 311 All Mixed Up 4 182 L 1740495586 980a78b5-5bdd-4f50-9e3a-e13261e2817b
|
||
311 311 Hive 5 179 L 1740495768 18f6dc98-d3a2-4f81-b967-97359d14c68c
|
||
311 311 Guns (Are for Pussies) 6 137 L 1740495948 5e97ed9f-c8cc-4282-9cbe-f8e17aee5128
|
||
311 311 Misdirected Hostility 7 179 S 1740496085 61ff2c1a-fc9c-44c3-8da1-5e50a44245af
|
||
,
|
||
#+end_src
|
||
** DONE [#B] Allow scrobbling music without MB IDs by grabbing them before scrobble :improvement:
|
||
CLOSED: [2023-02-17 Fri 00:10]
|
||
|
||
This would allow a few nice flows. One, you'd be able to record the play of an
|
||
entire album by just dropping the muscibrainz_id in. This could be helpful for
|
||
offline listening. It would also mean bad metadata from mopidy would not break
|
||
scrobbling.
|
||
** DONE When updating musicbrainz IDs, clear and run fetch artwrok :improvement:
|
||
CLOSED: [2023-02-17 Fri 00:11]
|
||
** DONE [#A] Add ability to manually scrobble albums or tracks from MB :improvement:
|
||
CLOSED: [2023-03-07 Tue 11:09]
|
||
|
||
Given a UUID from musicbrainz, we should be able to scrobble an album or
|
||
individual track.
|
||
|
||
** DONE [#C] Implement keeping track of week/month/year chart-toppers :improvement:
|
||
CLOSED: [2023-03-07 Tue 11:10]
|
||
:LOGBOOK:
|
||
CLOCK: [2023-01-30 Mon 16:30]--[2023-01-30 Mon 18:00] => 1:30
|
||
:END:
|
||
|
||
Maloja does this cool thing where artists and tracks get recorded as the top
|
||
track of a given week, month or year. They get gold, silver or bronze stars for
|
||
their place in the time period.
|
||
|
||
I could see this being implemented as a separate Chart table which gets
|
||
populated at the end of a time period and has a start and end date that defines
|
||
a period, along with a one, two, three instance.
|
||
|
||
Of course, it could also be a data model without a table, where it runs some fun
|
||
calculations, stores it's values in Redis as a long-term lookup table and just
|
||
has to re-populate when the server restarts.
|
||
* Backlog
|
||
** TODO Add Amazon scraper to look up books when OL fails :books:improvement:
|
||
** TODO [#C] Move to using more robust mopidy-webhooks pacakge form pypi :utility:improvement:
|
||
*** Example payloads from mopidy-webhooks
|
||
**** Podcast playback ended
|
||
#+begin_src json
|
||
{
|
||
"type": "event",
|
||
"event": "track_playback_ended",
|
||
"data": {
|
||
"tl_track": {
|
||
"__model__": "TlTrack",
|
||
"tlid": 13,
|
||
"track": {
|
||
"__model__": "Track",
|
||
"uri": "file:///var/lib/mopidy/media/podcasts/The%20Prince/2022-09-28-Wolf-warriors.mp3",
|
||
"name": "Wolf warriors",
|
||
"artists": [
|
||
{
|
||
"__model__": "Artist",
|
||
"name": "The Economist"
|
||
}
|
||
],
|
||
"album": {
|
||
"__model__": "Album",
|
||
"name": "The Prince",
|
||
"date": "2022"
|
||
},
|
||
"genre": "Blues",
|
||
"date": "2022",
|
||
"length": 2437778,
|
||
"bitrate": 127988
|
||
}
|
||
},
|
||
"time_position": 3290
|
||
}
|
||
}
|
||
#+end_src
|
||
**** Podcast playback state changes
|
||
#+begin_src json
|
||
{
|
||
"type": "event",
|
||
"event": "playback_state_changed",
|
||
"data": {
|
||
"old_state": "paused",
|
||
"new_state": "playing"
|
||
}
|
||
}
|
||
#+end_src
|
||
|
||
#+begin_src json
|
||
{
|
||
"type": "event",
|
||
"event": "playback_state_changed",
|
||
"data": {
|
||
"old_state": "stopped",
|
||
"new_state": "playing"
|
||
}
|
||
}
|
||
#+end_src
|
||
**** Podcast playback started
|
||
#+begin_src json
|
||
{
|
||
"type": "event",
|
||
"event": "track_playback_started",
|
||
"data": {
|
||
"tl_track": {
|
||
"__model__": "TlTrack",
|
||
"tlid": 13,
|
||
"track": {
|
||
"__model__": "Track",
|
||
"uri": "file:///var/lib/mopidy/media/podcasts/The%20Prince/2022-09-28-Wolf-warriors.mp3",
|
||
"name": "Wolf warriors",
|
||
"artists": [
|
||
{
|
||
"__model__": "Artist",
|
||
"name": "The Economist"
|
||
}
|
||
],
|
||
"album": {
|
||
"__model__": "Album",
|
||
"name": "The Prince",
|
||
"date": "2022"
|
||
},
|
||
"genre": "Blues",
|
||
"date": "2022",
|
||
"length": 2437778,
|
||
"bitrate": 127988
|
||
}
|
||
}
|
||
}
|
||
}
|
||
#+end_src
|
||
**** Podcast playback paused
|
||
#+begin_src json
|
||
{
|
||
"type": "status",
|
||
"data": {
|
||
"state": "paused",
|
||
"current_track": {
|
||
"__model__": "Track",
|
||
"uri": "file:///var/lib/mopidy/media/podcasts/The%20Prince/2022-09-28-Wolf-warriors.mp3",
|
||
"name": "Wolf warriors",
|
||
"artists": [
|
||
{
|
||
"__model__": "Artist",
|
||
"name": "The Economist"
|
||
}
|
||
],
|
||
"album": {
|
||
"__model__": "Album",
|
||
"name": "The Prince",
|
||
"date": "2022"
|
||
},
|
||
"genre": "Blues",
|
||
"date": "2022",
|
||
"length": 2437778,
|
||
"bitrate": 127988
|
||
},
|
||
"time_position": 2350
|
||
}
|
||
}
|
||
|
||
#+end_src
|
||
**** Track playback started
|
||
#+begin_src json
|
||
{
|
||
"type": "event",
|
||
"event": "track_playback_started",
|
||
"data": {
|
||
"tl_track": {
|
||
"__model__": "TlTrack",
|
||
"tlid": 14,
|
||
"track": {
|
||
"__model__": "Track",
|
||
"uri": "local:track:Various%20Artists%20-%202008%20-%20Twilight%20OST/01-muse-supermassive_black_hole.mp3",
|
||
"name": "Supermassive Black Hole",
|
||
"artists": [
|
||
{
|
||
"__model__": "Artist",
|
||
"uri": "local:artist:md5:250dd6551b66a58a6b4897aa697f200c",
|
||
"name": "Muse",
|
||
"musicbrainz_id": "9c9f1380-2516-4fc9-a3e6-f9f61941d090"
|
||
}
|
||
],
|
||
"album": {
|
||
"__model__": "Album",
|
||
"uri": "local:album:md5:455343d54cdd89cb5a3b5ad537ea99d0",
|
||
"name": "Twilight: Original Motion Picture Soundtrack",
|
||
"artists": [
|
||
{
|
||
"__model__": "Artist",
|
||
"uri": "local:artist:md5:54e4db2d5624f80b0cc290346e696756",
|
||
"name": "Various Artists",
|
||
"musicbrainz_id": "89ad4ac3-39f7-470e-963a-56509c546377"
|
||
}
|
||
],
|
||
"num_tracks": 12,
|
||
"num_discs": 1,
|
||
"date": "2008-11-04",
|
||
"musicbrainz_id": "b4889eaf-d9f4-434c-a68d-69227b12b6a4"
|
||
},
|
||
"composers": [
|
||
{
|
||
"__model__": "Artist",
|
||
"uri": "local:artist:md5:4d49cbca0b347e0a89047bb019d2779d",
|
||
"name": "Matt Bellamy"
|
||
}
|
||
],
|
||
"genre": "Rock",
|
||
"track_no": 1,
|
||
"disc_no": 1,
|
||
"date": "2008-11-04",
|
||
"length": 211121,
|
||
"musicbrainz_id": "ff1e3e1a-f6e8-4692-b426-355880383bb6",
|
||
"last_modified": 1672712949510
|
||
}
|
||
}
|
||
}
|
||
}
|
||
#+end_src
|
||
**** Track playback in progress
|
||
#+begin_src json
|
||
{
|
||
"type": "status",
|
||
"data": {
|
||
"state": "playing",
|
||
"current_track": {
|
||
"__model__": "Track",
|
||
"uri": "local:track:Various%20Artists%20-%202008%20-%20Twilight%20OST/01-muse-supermassive_black_hole.mp3",
|
||
"name": "Supermassive Black Hole",
|
||
"artists": [
|
||
{
|
||
"__model__": "Artist",
|
||
"uri": "local:artist:md5:250dd6551b66a58a6b4897aa697f200c",
|
||
"name": "Muse",
|
||
"musicbrainz_id": "9c9f1380-2516-4fc9-a3e6-f9f61941d090"
|
||
}
|
||
],
|
||
"album": {
|
||
"__model__": "Album",
|
||
"uri": "local:album:md5:455343d54cdd89cb5a3b5ad537ea99d0",
|
||
"name": "Twilight: Original Motion Picture Soundtrack",
|
||
"artists": [
|
||
{
|
||
"__model__": "Artist",
|
||
"uri": "local:artist:md5:54e4db2d5624f80b0cc290346e696756",
|
||
"name": "Various Artists",
|
||
"musicbrainz_id": "89ad4ac3-39f7-470e-963a-56509c546377"
|
||
}
|
||
],
|
||
"num_tracks": 12,
|
||
"num_discs": 1,
|
||
"date": "2008-11-04",
|
||
"musicbrainz_id": "b4889eaf-d9f4-434c-a68d-69227b12b6a4"
|
||
},
|
||
"composers": [
|
||
{
|
||
"__model__": "Artist",
|
||
"uri": "local:artist:md5:4d49cbca0b347e0a89047bb019d2779d",
|
||
"name": "Matt Bellamy"
|
||
}
|
||
],
|
||
"genre": "Rock",
|
||
"track_no": 1,
|
||
"disc_no": 1,
|
||
"date": "2008-11-04",
|
||
"length": 211121,
|
||
"musicbrainz_id": "ff1e3e1a-f6e8-4692-b426-355880383bb6",
|
||
"last_modified": 1672712949510
|
||
},
|
||
"time_position": 17031
|
||
}
|
||
}
|
||
#+end_src
|
||
**** Track event playback paused
|
||
#+begin_src json
|
||
{
|
||
"type": "event",
|
||
"event": "track_playback_paused",
|
||
"data": {
|
||
"tl_track": {
|
||
"__model__": "TlTrack",
|
||
"tlid": 14,
|
||
"track": {
|
||
"__model__": "Track",
|
||
"uri": "local:track:Various%20Artists%20-%202008%20-%20Twilight%20OST/01-muse-supermassive_black_hole.mp3",
|
||
"name": "Supermassive Black Hole",
|
||
"artists": [
|
||
{
|
||
"__model__": "Artist",
|
||
"uri": "local:artist:md5:250dd6551b66a58a6b4897aa697f200c",
|
||
"name": "Muse",
|
||
"musicbrainz_id": "9c9f1380-2516-4fc9-a3e6-f9f61941d090"
|
||
}
|
||
],
|
||
"album": {
|
||
"__model__": "Album",
|
||
"uri": "local:album:md5:455343d54cdd89cb5a3b5ad537ea99d0",
|
||
"name": "Twilight: Original Motion Picture Soundtrack",
|
||
"artists": [
|
||
{
|
||
"__model__": "Artist",
|
||
"uri": "local:artist:md5:54e4db2d5624f80b0cc290346e696756",
|
||
"name": "Various Artists",
|
||
"musicbrainz_id": "89ad4ac3-39f7-470e-963a-56509c546377"
|
||
}
|
||
],
|
||
"num_tracks": 12,
|
||
"num_discs": 1,
|
||
"date": "2008-11-04",
|
||
"musicbrainz_id": "b4889eaf-d9f4-434c-a68d-69227b12b6a4"
|
||
},
|
||
"composers": [
|
||
{
|
||
"__model__": "Artist",
|
||
"uri": "local:artist:md5:4d49cbca0b347e0a89047bb019d2779d",
|
||
"name": "Matt Bellamy"
|
||
}
|
||
],
|
||
"genre": "Rock",
|
||
"track_no": 1,
|
||
"disc_no": 1,
|
||
"date": "2008-11-04",
|
||
"length": 211121,
|
||
"musicbrainz_id": "ff1e3e1a-f6e8-4692-b426-355880383bb6",
|
||
"last_modified": 1672712949510
|
||
}
|
||
},
|
||
"time_position": 67578
|
||
}
|
||
}
|
||
#+end_src
|
||
** TODO Fix bug in Jellyfin scrobbles that spam more scrobbles after completion :scrobbling:videos:bug:
|
||
** TODO Fix bug in podcast scrobbling where a second scrobble is created after completion :scrobbling:podcasts:bug:
|