corpus

Log | Files | Refs | README | LICENSE

commit c33abbbc38405f453456e1400a9bcb595d5dd30f
parent 9dfaa892efce32fd26b4da883cb602b05d547dad
Author: mtmn <miro@haravara.org>
Date:   Sat, 11 Apr 2026 07:23:05 +0200

feat: periodic scans, disable source builds, docs

Diffstat:
MREADME.md | 8+++-----
Mflake.nix | 4----
Mspago.lock | 14--------------
Msrc/Main.purs | 7+++++--
4 files changed, 8 insertions(+), 25 deletions(-)

diff --git a/README.md b/README.md @@ -1,10 +1,8 @@ # Scorpus -<div align="right"> - <img src="docs/korpus.webp" width="50%" alt="Korpus"> -</div> - -Scorpus is a ListenBrainz frontend built with PureScript that provides server-side rendering and client-side interactivity using Halogen. It enables music listening tracking with DuckDB/SQLite storage and S3 integration for data management. +| | | +| :--- | ---: | +| Scorpus is a ListenBrainz frontend built with PureScript that provides server-side rendering and client-side interactivity using Halogen. It enables music listening tracking with DuckDB/SQLite storage and S3 integration for data management. | <img src="docs/korpus.webp" width="400" alt="Korpus"> | --- diff --git a/flake.nix b/flake.nix @@ -28,12 +28,8 @@ makeWrapper python3 pkg-config - gcc - gnumake ]; - npmFlags = ["--build-from-source"]; - buildPhase = '' export HOME=$TMPDIR npm run build diff --git a/spago.lock b/spago.lock @@ -30,7 +30,6 @@ "node-http", "node-net", "node-process", - "node-sqlite3", "node-streams", "node-url", "now", @@ -1618,19 +1617,6 @@ "strings" ] }, - "node-sqlite3": { - "type": "registry", - "version": "8.0.0", - "integrity": "sha256-vmiT8S2dcBO6udUoXn8ppG3FNCEcq6AA1q92memeyWo=", - "dependencies": [ - "aff", - "effect", - "either", - "exceptions", - "foreign", - "prelude" - ] - }, "node-streams": { "type": "registry", "version": "9.0.1", diff --git a/src/Main.purs b/src/Main.purs @@ -41,7 +41,6 @@ import Types (Listen(..), ListenBrainzResponse(..), Payload(..)) import Control.Monad.Rec.Class (forever) import Data.Time.Duration (Milliseconds(..)) import Data.Int (fromString) -import Data.Foldable (traverse_) import S3 (existsInS3, uploadToS3, getS3Url) -- Types @@ -85,7 +84,11 @@ syncData conn = do else liftEffect $ Console.log "Initial sync skipped (INITIAL_SYNC != true)" - pure unit + forever do + liftEffect $ Console.log "Performing periodic sync..." + void $ performSync 100 + delay (Milliseconds 60000.0) + where performSync count = do result <- try $ fetchListenBrainzData count