[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]
|
* Overview
|
||||||
** TODO [#A] Add email importer for BG stats file uploads :vrobbler:feature:boardgames:personal:project:
|
* 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:
|
: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:
|
: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 [#A] Geolocation notifications should go out for named locations :vrobbler:feature:geoloc:personal:project:
|
||||||
** TODO Add youtube link in place of IMDB on video detail page :vrobbler:feature:videos: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] 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:
|
** 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.
|
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 [#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:
|
** 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
|
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
|
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:
|
** TODO [#C] Allow users to see tasks on calendar view :vrobbler:personal:project:templates:feature:
|
||||||
https://codepen.io/oliviale/pen/QYqybo
|
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:
|
** 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:
|
** 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:
|
:PROPERTIES:
|
||||||
:ID: 23f485e3-988c-6198-c79d-91fdf92f001c
|
:ID: 23f485e3-988c-6198-c79d-91fdf92f001c
|
||||||
|
|||||||
Reference in New Issue
Block a user