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:
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