From f41a98cbddd602bbd34cb956db0ce0f128816d5a Mon Sep 17 00:00:00 2001 From: Colin Powell Date: Mon, 10 Aug 2026 15:30:30 -0400 Subject: [PATCH] [release] Bump to version 65.2 - Dedup track scrobbles from lastfm import - Write a script to check for raw mopidy vs found track discrepancies - Push database backups to WebDAV from the backup management command --- CHANGELOG.org | 43 +++++++++++++++++++++++++++++++++++++++++++ PROJECT.org | 43 +------------------------------------------ pyproject.toml | 2 +- 3 files changed, 45 insertions(+), 43 deletions(-) diff --git a/CHANGELOG.org b/CHANGELOG.org index 0cdae07..f487c0d 100644 --- a/CHANGELOG.org +++ b/CHANGELOG.org @@ -1,5 +1,48 @@ #+title: CHANGELOG +* Version 65.2 [3/3] +** DONE [#A] Dedup track scrobbles from lastfm import :importers:lastfm:tracks: +:PROPERTIES: +:ID: 69f22940-8cee-4a82-b8ea-3d3d770f5e1b +:END: + +*** Description + +The historical LastFM import duplicated a number of scrobbles. The importer +itself was not fixed, but a `dedup_scrobbles` management command now removes +duplicate scrobbles where the start timestamp, end timestamp, and media +scrobbled are identical. Run it dry (default) to report duplicates, or with +`--commit` to delete them. A `--media-type` filter limits the scan. +** DONE [#A] Write a script to check for raw mopidy vs found track discrepancies :tracks:metadata: +:PROPERTIES: +:ID: 0b98a1b9-2848-433e-8bec-0f5737cfc74b +:END: + +*** Description + +There should be a tool that can look at the track associated with a scrobble and +the actual raw_data from mopidy or jellyfin, and flag all tracks where the +artist or track name or both differ. +** DONE [#B] Push database backups to WebDAV from the backup management command :backups:webdav: +:PROPERTIES: +:ID: 01d35a28-aa62-464f-9730-80bd025c0381 +:END: + +*** Description + +The `backup_database` management command / celery task now uploads the nightly +pg_dump + gzip archive to a WebDAV destination in addition to the existing local +and optional SSH (scp) targets. + +Configured via server-level env vars: +- `VROBBLER_DB_BACKUP_WEBDAV_URL`, `VROBBLER_DB_BACKUP_WEBDAV_USER`, + `VROBBLER_DB_BACKUP_WEBDAV_PASS` +- `VROBBLER_DB_BACKUP_WEBDAV_PATH` (default `var/vrobbler-backups/`) + +Old backups on WebDAV are pruned with the same retention policy as the SSH +remote (`_retention_files_to_delete`), and the local copy in +`DB_BACKUP_LOCAL_DIR` is kept. + * Version 65.1 [4/4] ** DONE [#A] Add an exception list of artists as a constant that are exempted from splitting :music:artists:metadata: :PROPERTIES: diff --git a/PROJECT.org b/PROJECT.org index be5768c..b27d375 100644 --- a/PROJECT.org +++ b/PROJECT.org @@ -18,7 +18,7 @@ tasks, Todoist tasks, web pages I've read and trails I've hiked has turned out to be sometimes cathartic and sometimes functional as I try to remember when I did a thing. -* Backlog [1/36] :vrobbler:project:personal: +* Backlog [0/34] :vrobbler:project:personal: ** TODO [#C] Configure IMAP folder/start in user profile :imap:settings: *** Description @@ -627,44 +627,3 @@ The Edit log form should have from top to bottom: - Expansion ids (which should a multi-select widget of expansions for this game) - Location (which should be a drop down of BoardGameLocations for this user) -** DONE [#A] Dedup track scrobbles from lastfm import :importers:lastfm:tracks: -:PROPERTIES: -:ID: 69f22940-8cee-4a82-b8ea-3d3d770f5e1b -:END: - -*** Description - -The historical LastFM import duplicated a number of scrobbles. The importer -itself was not fixed, but a `dedup_scrobbles` management command now removes -duplicate scrobbles where the start timestamp, end timestamp, and media -scrobbled are identical. Run it dry (default) to report duplicates, or with -`--commit` to delete them. A `--media-type` filter limits the scan. -** DONE [#A] Write a script to check for raw mopidy vs found track discrepancies :tracks:metadata: -:PROPERTIES: -:ID: 0b98a1b9-2848-433e-8bec-0f5737cfc74b -:END: - -*** Description - -There should be a tool that can look at the track associated with a scrobble and -the actual raw_data from mopidy or jellyfin, and flag all tracks where the -artist or track name or both differ. -** DONE [#B] Push database backups to WebDAV from the backup management command :backups:webdav: -:PROPERTIES: -:ID: 01d35a28-aa62-464f-9730-80bd025c0381 -:END: - -*** Description - -The `backup_database` management command / celery task now uploads the nightly -pg_dump + gzip archive to a WebDAV destination in addition to the existing local -and optional SSH (scp) targets. - -Configured via server-level env vars: -- `VROBBLER_DB_BACKUP_WEBDAV_URL`, `VROBBLER_DB_BACKUP_WEBDAV_USER`, - `VROBBLER_DB_BACKUP_WEBDAV_PASS` -- `VROBBLER_DB_BACKUP_WEBDAV_PATH` (default `var/vrobbler-backups/`) - -Old backups on WebDAV are pruned with the same retention policy as the SSH -remote (`_retention_files_to_delete`), and the local copy in -`DB_BACKUP_LOCAL_DIR` is kept. diff --git a/pyproject.toml b/pyproject.toml index 00c0d36..ea7515c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "vrobbler" -version = "65.1" +version = "65.2" description = "" authors = ["Colin Powell "]