From bbb9d37ec7727397879c3eb7cc804388f9d36d34 Mon Sep 17 00:00:00 2001 From: Mark Hoekveen Date: Sat, 23 Aug 2025 13:50:01 +0200 Subject: [PATCH] adds export script. does some cleanup --- .gitignore | 2 ++ backend/db.sqlite | 0 backend/export.sql | 23 +++++++++++++++++++++++ 3 files changed, 25 insertions(+) delete mode 100644 backend/db.sqlite create mode 100644 backend/export.sql diff --git a/.gitignore b/.gitignore index c3fd7ae..bd61b02 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,5 @@ frontend/node_modules/ frontend/.next/ frontend/src/data/types.ts backend/session_*.log +backend/*.csv +*.bak diff --git a/backend/db.sqlite b/backend/db.sqlite deleted file mode 100644 index e69de29..0000000 diff --git a/backend/export.sql b/backend/export.sql new file mode 100644 index 0000000..3c75e71 --- /dev/null +++ b/backend/export.sql @@ -0,0 +1,23 @@ +-- sqlite3 -csv db.sqlite3 '.read export.sql' > export.csv +SELECT + CONCAT('https://open.spotify.com/track/', T.id) as spotify_id, + T.name as track_name, + A.name as artist_name, + (CAST(T.duration_ms AS REAL) / 86400000) as duration, + V.point_total, + V.vote_count, + CAST(V.point_total AS REAL) / CAST(V.vote_count AS REAL) as average_points, + U.username as nominated_by +FROM + ( + SELECT track_id, SUM(points) as point_total, COUNT(*) as vote_count + FROM playlist_vote + GROUP BY track_id + ) AS V + INNER JOIN playlist_track T ON V.track_id = T.id + INNER JOIN ( + SELECT track_id, MIN(artist_id) as artist_id FROM playlist_track_artists GROUP BY track_id + ) PTA ON T.id = PTA.track_id + INNER JOIN playlist_artist A ON PTA.artist_id = A.id + INNER JOIN auth_user U ON T.nominated_by_id = U.id +ORDER BY average_points DESC, vote_count DESC;