|
@@ -1,115 +1,103 @@
|
|
|
-#+title: TODOs
|
|
|
-
|
|
|
-* Backlog [1/20]
|
|
|
-** TODO [#A] Add email importer for BG stats file uploads :vrobbler:feature:boardgames:personal:project:
|
|
|
+#+title: Vrobbler 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
|