[project] Start adding features and update todos
This commit is contained in:
313
PROJECT.org
313
PROJECT.org
@ -1,115 +1,103 @@
|
||||
#+title: TODOs
|
||||
#+title: Vrobbler Project
|
||||
|
||||
* Backlog [1/20]
|
||||
** TODO [#A] Add email importer for BG stats file uploads :vrobbler:feature:boardgames:personal:project:
|
||||
* Overview
|
||||
* Features
|
||||
** Beer
|
||||
*** Triggers
|
||||
**** Bookmarklet
|
||||
**** Manual
|
||||
*** Metadata sources
|
||||
**** Untappd
|
||||
** Book
|
||||
*** Triggers
|
||||
**** Webdav via KoReader
|
||||
**** Manual
|
||||
*** Metadata sources
|
||||
**** Google Books
|
||||
This is the preferred method at this time. Also, the Book model implements a
|
||||
`find_or_create` classmethod which is an example of an interface we can use for
|
||||
other data models to get metadata in a way that provides easy testing, bulk
|
||||
fetching and simple saving.
|
||||
**** OpenLibrary
|
||||
**** ComicVine
|
||||
** Board Game
|
||||
*** Triggers
|
||||
**** IMAP import
|
||||
**** Bookmarklet
|
||||
**** Manual
|
||||
** Location
|
||||
*** Triggers
|
||||
**** GPSLogger (Android)
|
||||
*** Metadata sources
|
||||
**** User input
|
||||
** Music
|
||||
*** Triggers
|
||||
**** Last.FM
|
||||
**** Rockbox files
|
||||
**** Mopidy
|
||||
**** Jellyfin
|
||||
*** Metadata sources
|
||||
**** Musicbrainz
|
||||
** Podcast
|
||||
*** Triggers
|
||||
**** Mopidy
|
||||
*** Metadata sources
|
||||
**** Google Podcasts
|
||||
**** PodcastIndex
|
||||
** Sport
|
||||
*** Triggers
|
||||
**** Bookmarklet
|
||||
**** Manual
|
||||
*** Metadata sources
|
||||
**** Thes Sports DB
|
||||
** Task
|
||||
*** Triggers
|
||||
**** Todoist
|
||||
**** Org-mode
|
||||
*** Metadata sources
|
||||
**** User profile
|
||||
** Trails
|
||||
** Video
|
||||
*** Triggers
|
||||
**** Jellyfin
|
||||
**** Bookmarklet
|
||||
**** Manual
|
||||
*** Metadata sources
|
||||
**** IMDB
|
||||
**** Youtube
|
||||
** Web Page
|
||||
*** Triggers
|
||||
**** Bookmarklet
|
||||
*** Metadata sources
|
||||
**** Scraper
|
||||
* Release history
|
||||
* Chores
|
||||
** DONE Document various vrobbler features :chore:personal:project:vrobbler:documentation:
|
||||
:PROPERTIES:
|
||||
:ID: 116fe738-7966-615c-d195-ccff0337b101
|
||||
:ID: 514e9285-96f1-265f-56df-118c12f60918
|
||||
:END:
|
||||
:LOGBOOK:
|
||||
CLOCK: [2025-07-09 Wed 09:55]--[2025-07-09 Wed 10:15] => 0:20
|
||||
:END:
|
||||
* Backlog [3/23]
|
||||
** TODO Add timezone awarness to IMAP importer :personal:project:vrobbler:feature:importer:imap:timezones:
|
||||
** DONE Track timezone changes for profiles :vrobbler:feature:profiles:personal:project:
|
||||
:PROPERTIES:
|
||||
:ID: 89ec867f-29fd-82f1-be17-b49dddc30c78
|
||||
:END:
|
||||
[2025-07-11 14:23]
|
||||
** TODO [#A] Add classmethod for metadata fetching to tracks :vrobbler:feature:music:personal:project:
|
||||
:PROPERTIES:
|
||||
:ID: bc4b45e5-4c65-13c5-ab7b-1937d3fbf5c2
|
||||
:END:
|
||||
:LOGBOOK:
|
||||
CLOCK: [2025-07-09 Wed 10:15]
|
||||
:END:
|
||||
#+begin_src json example of a file
|
||||
{
|
||||
"about": "This is a Play file that can be read by Board Game Stats. If you see this text, try to use a share, export or open-in function to open it with Board Game Stats.",
|
||||
"players": [
|
||||
{
|
||||
"uuid": "31f8b92e-11d8-4162-88b1-fd9c79eea249",
|
||||
"id": 2,
|
||||
"name": "Colin",
|
||||
"isAnonymous": false,
|
||||
"modificationDate": "2025-07-01 18:10:32",
|
||||
"metaData": "{\"isNpc\":0}"
|
||||
},
|
||||
{
|
||||
"uuid": "00074700-cf4e-4ad3-b334-d35805bb0d90",
|
||||
"id": 4,
|
||||
"name": "Asa Sewell",
|
||||
"isAnonymous": false,
|
||||
"modificationDate": "2025-07-01 18:03:37"
|
||||
}
|
||||
],
|
||||
"locations": [
|
||||
{
|
||||
"uuid": "14f7389c-767f-4725-9b35-906c407b293c",
|
||||
"id": 3,
|
||||
"name": "Timberwyck Farm",
|
||||
"modificationDate": "2025-07-01 18:03:38"
|
||||
}
|
||||
],
|
||||
"games": [
|
||||
{
|
||||
"uuid": "043a2851-f201-467a-a60c-0b0a7e9c33d2",
|
||||
"id": 333,
|
||||
"name": "Ghost Fightin' Treasure Hunters: Anniversary Edition",
|
||||
"modificationDate": "2025-07-02 01:37:14",
|
||||
"cooperative": true,
|
||||
"highestWins": true,
|
||||
"noPoints": false,
|
||||
"usesTeams": false,
|
||||
"urlThumb": "https://cf.geekdo-images.com/DHA-mcH3zzw_OjfDxOPj1A__thumb/img/UhaIm4KIDIiraUc44QIvSAbMUXI=/fit-in/200x150/filters:strip_icc()/pic8266874.jpg",
|
||||
"urlImage": "https://cf.geekdo-images.com/DHA-mcH3zzw_OjfDxOPj1A__original/img/2-Lb6nLePhn0I0Hh2j1pOtbO4rg=/0x0/filters:format(jpeg)/pic8266874.jpg",
|
||||
"bggName": "Ghost Fightin' Treasure Hunters: Anniversary Edition",
|
||||
"bggYear": 2024,
|
||||
"bggId": 422668,
|
||||
"designers": "Brian Yu",
|
||||
"isBaseGame": 1,
|
||||
"isExpansion": 0,
|
||||
"rating": 75,
|
||||
"minPlayerCount": 2,
|
||||
"maxPlayerCount": 5,
|
||||
"minPlayTime": 30,
|
||||
"maxPlayTime": 0,
|
||||
"minAge": 8
|
||||
}
|
||||
],
|
||||
"plays": [
|
||||
{
|
||||
"uuid": "bae3f29e-5e1e-45d8-b409-47a665c8d5b5",
|
||||
"modificationDate": "2025-07-02 01:37:59",
|
||||
"entryDate": "2025-07-02 01:31:38",
|
||||
"playDate": "2025-07-02 01:31:38",
|
||||
"usesTeams": false,
|
||||
"durationMin": 23,
|
||||
"ignored": false,
|
||||
"manualWinner": true,
|
||||
"rounds": 3,
|
||||
"scoresheet": "{\"bggId\":244711,\"version\":1,\"langCode\":\"en\",\"scoreType\":\"bestTotalWins\",\"groups\":[{\"templateId\":\"1\",\"maxRepeat\":-1,\"repetition\":1,\"hasSubTotal\":false,\"hideSingleGroupLabel\":false,\"isExtra\":false,\"rows\":[{\"templateId\":\"vptrack\",\"label\":\"VP track\",\"repetition\":1,\"repeatable\":false,\"negative\":false,\"isExtra\":false,\"scores\":{}},{\"templateId\":\"objectives\",\"label\":\"Objectives\",\"repetition\":1,\"repeatable\":false,\"negative\":false,\"isExtra\":false,\"scores\":{}},{\"templateId\":\"mastercards\",\"label\":\"Master cards\",\"repetition\":1,\"repeatable\":false,\"negative\":false,\"isExtra\":false,\"scores\":{}}]}]}",
|
||||
"locationRefId": 3,
|
||||
"gameRefId": 333,
|
||||
"board": "",
|
||||
"scoringSetting": 4,
|
||||
"metaData": "{\"playUsedGameCopy\":2}",
|
||||
"playerScores": [
|
||||
{
|
||||
"score": "",
|
||||
"winner": true,
|
||||
"newPlayer": true,
|
||||
"startPlayer": false,
|
||||
"playerRefId": 4,
|
||||
"role": "",
|
||||
"rank": 0,
|
||||
"seatOrder": 0,
|
||||
"metaData": "{\"scoreUuid\":\"00074700-cf4e-4ad3-b334-d35805bb0d90\"}"
|
||||
},
|
||||
{
|
||||
"score": "",
|
||||
"winner": true,
|
||||
"newPlayer": true,
|
||||
"startPlayer": false,
|
||||
"playerRefId": 2,
|
||||
"role": "",
|
||||
"rank": 0,
|
||||
"seatOrder": 0,
|
||||
"metaData": "{\"scoreUuid\":\"31f8b92e-11d8-4162-88b1-fd9c79eea249\"}"
|
||||
}
|
||||
],
|
||||
"expansionPlays": []
|
||||
}
|
||||
],
|
||||
"userInfo": {
|
||||
"meRefId": 2
|
||||
}
|
||||
}
|
||||
|
||||
#+end_src
|
||||
** TODO Add youtube link in place of IMDB on video detail page :vrobbler:feature:videos:personal:project:
|
||||
** TODO [#A] Geolocation notifications should go out for named locations :vrobbler:feature:geoloc:personal:project:
|
||||
:PROPERTIES:
|
||||
:ID: 5d086625-877c-df81-15b8-7ae0bc1ba2fc
|
||||
:END:
|
||||
** TODO [#A] Tasks from org-mode should properly update notes and leave them out of the body :vrobbler:bug:tasks:
|
||||
** TODO [#A] Fix small bug in views for TV series where next episode is now None :vrobbler:bug:personal:videos:
|
||||
|
||||
@ -147,6 +135,7 @@ The page data has the canonical date something was read in it, but it seems to b
|
||||
|
||||
Also, we'd need to adjust any old scrobbles that took place with DST off to roll them back by an hour.
|
||||
** TODO [#A] Create small utility to clean up tracks scrobbled with wonky playback times :vrobbler:personal:bug:music:scrobbles:
|
||||
** TODO [#B] Aservicedd youtube link in place of IMDB on video detail page :vrobbler:feature:videos:personal:project:
|
||||
** TODO [#B] Add AllTrails as a source for Trail data :vrobbler:trails:feature:personal:project:
|
||||
Pretty clear, I would love to make trails more useful. Historically I wasn't
|
||||
hiking a lot, which made the source for this a bit silly. But it's clear that
|
||||
@ -462,6 +451,114 @@ it's annoying.
|
||||
** TODO [#C] Allow users to see tasks on calendar view :vrobbler:personal:project:templates:feature:
|
||||
https://codepen.io/oliviale/pen/QYqybo
|
||||
** TODO [#C] Come up with a possible flow using WebDAV and super-productivity for tasks :personal:feature:project:vrobbler:tasks:
|
||||
** DONE [#A] Add email importer for BG stats file uploads :vrobbler:feature:boardgames:personal:project:
|
||||
:PROPERTIES:
|
||||
:ID: 116fe738-7966-615c-d195-ccff0337b101
|
||||
:END:
|
||||
#+begin_src json example of a file
|
||||
{
|
||||
"about": "This is a Play file that can be read by Board Game Stats. If you see this text, try to use a share, export or open-in function to open it with Board Game Stats.",
|
||||
"players": [
|
||||
{
|
||||
"uuid": "31f8b92e-11d8-4162-88b1-fd9c79eea249",
|
||||
"id": 2,
|
||||
"name": "Colin",
|
||||
"isAnonymous": false,
|
||||
"modificationDate": "2025-07-01 18:10:32",
|
||||
"metaData": "{\"isNpc\":0}"
|
||||
},
|
||||
{
|
||||
"uuid": "00074700-cf4e-4ad3-b334-d35805bb0d90",
|
||||
"id": 4,
|
||||
"name": "Asa Sewell",
|
||||
"isAnonymous": false,
|
||||
"modificationDate": "2025-07-01 18:03:37"
|
||||
}
|
||||
],
|
||||
"locations": [
|
||||
{
|
||||
"uuid": "14f7389c-767f-4725-9b35-906c407b293c",
|
||||
"id": 3,
|
||||
"name": "Timberwyck Farm",
|
||||
"modificationDate": "2025-07-01 18:03:38"
|
||||
}
|
||||
],
|
||||
"games": [
|
||||
{
|
||||
"uuid": "043a2851-f201-467a-a60c-0b0a7e9c33d2",
|
||||
"id": 333,
|
||||
"name": "Ghost Fightin' Treasure Hunters: Anniversary Edition",
|
||||
"modificationDate": "2025-07-02 01:37:14",
|
||||
"cooperative": true,
|
||||
"highestWins": true,
|
||||
"noPoints": false,
|
||||
"usesTeams": false,
|
||||
"urlThumb": "https://cf.geekdo-images.com/DHA-mcH3zzw_OjfDxOPj1A__thumb/img/UhaIm4KIDIiraUc44QIvSAbMUXI=/fit-in/200x150/filters:strip_icc()/pic8266874.jpg",
|
||||
"urlImage": "https://cf.geekdo-images.com/DHA-mcH3zzw_OjfDxOPj1A__original/img/2-Lb6nLePhn0I0Hh2j1pOtbO4rg=/0x0/filters:format(jpeg)/pic8266874.jpg",
|
||||
"bggName": "Ghost Fightin' Treasure Hunters: Anniversary Edition",
|
||||
"bggYear": 2024,
|
||||
"bggId": 422668,
|
||||
"designers": "Brian Yu",
|
||||
"isBaseGame": 1,
|
||||
"isExpansion": 0,
|
||||
"rating": 75,
|
||||
"minPlayerCount": 2,
|
||||
"maxPlayerCount": 5,
|
||||
"minPlayTime": 30,
|
||||
"maxPlayTime": 0,
|
||||
"minAge": 8
|
||||
}
|
||||
],
|
||||
"plays": [
|
||||
{
|
||||
"uuid": "bae3f29e-5e1e-45d8-b409-47a665c8d5b5",
|
||||
"modificationDate": "2025-07-02 01:37:59",
|
||||
"entryDate": "2025-07-02 01:31:38",
|
||||
"playDate": "2025-07-02 01:31:38",
|
||||
"usesTeams": false,
|
||||
"durationMin": 23,
|
||||
"ignored": false,
|
||||
"manualWinner": true,
|
||||
"rounds": 3,
|
||||
"scoresheet": "{\"bggId\":244711,\"version\":1,\"langCode\":\"en\",\"scoreType\":\"bestTotalWins\",\"groups\":[{\"templateId\":\"1\",\"maxRepeat\":-1,\"repetition\":1,\"hasSubTotal\":false,\"hideSingleGroupLabel\":false,\"isExtra\":false,\"rows\":[{\"templateId\":\"vptrack\",\"label\":\"VP track\",\"repetition\":1,\"repeatable\":false,\"negative\":false,\"isExtra\":false,\"scores\":{}},{\"templateId\":\"objectives\",\"label\":\"Objectives\",\"repetition\":1,\"repeatable\":false,\"negative\":false,\"isExtra\":false,\"scores\":{}},{\"templateId\":\"mastercards\",\"label\":\"Master cards\",\"repetition\":1,\"repeatable\":false,\"negative\":false,\"isExtra\":false,\"scores\":{}}]}]}",
|
||||
"locationRefId": 3,
|
||||
"gameRefId": 333,
|
||||
"board": "",
|
||||
"scoringSetting": 4,
|
||||
"metaData": "{\"playUsedGameCopy\":2}",
|
||||
"playerScores": [
|
||||
{
|
||||
"score": "",
|
||||
"winner": true,
|
||||
"newPlayer": true,
|
||||
"startPlayer": false,
|
||||
"playerRefId": 4,
|
||||
"role": "",
|
||||
"rank": 0,
|
||||
"seatOrder": 0,
|
||||
"metaData": "{\"scoreUuid\":\"00074700-cf4e-4ad3-b334-d35805bb0d90\"}"
|
||||
},
|
||||
{
|
||||
"score": "",
|
||||
"winner": true,
|
||||
"newPlayer": true,
|
||||
"startPlayer": false,
|
||||
"playerRefId": 2,
|
||||
"role": "",
|
||||
"rank": 0,
|
||||
"seatOrder": 0,
|
||||
"metaData": "{\"scoreUuid\":\"31f8b92e-11d8-4162-88b1-fd9c79eea249\"}"
|
||||
}
|
||||
],
|
||||
"expansionPlays": []
|
||||
}
|
||||
],
|
||||
"userInfo": {
|
||||
"meRefId": 2
|
||||
}
|
||||
}
|
||||
|
||||
#+end_src
|
||||
** DONE [#B] Fix task app to only use one tag for the context a task was done in and allow configurable contexts by user profile :personal:vrobbler:feature:tasks:project:
|
||||
:PROPERTIES:
|
||||
:ID: 23f485e3-988c-6198-c79d-91fdf92f001c
|
||||
|
||||
Reference in New Issue
Block a user