summaryrefslogtreecommitdiff
path: root/src/weepinbell/storage
AgeCommit message (Collapse)Author
11 daysall: use JF2 as a single source of truth, compile ↵eltrac
microformats/JSON-LD/<meta> to JF2 (#80) closes #75 This is a large squash commit. For details, see https://codeberg.org/eltrac/weepinbell/pulls/80
2026-10-24storage/h2: optimize H2 database performanceeltrac
- use LEFT JOIN instead of making multiple queries - put insert/update inside transactions - add indexes - fix configuration description
2026-10-24storage: query result is always in chronological order #79eltrac
2026-10-23storage: migrate from SQLite to H2eltrac
add ADR-0002 about migrating to H2
2026-10-16storage: create parent directories for SQLite .dbeltrac
2026-10-16Implement SQLite storage #7 (#73)eltrac
- new config `:storage-type` (default `:edn`, also support `:sqlite`) - `LICENSE` change: add exceptions to `next.jdbc` (which uses EPL) Reviewed-on: https://codeberg.org/eltrac/weepinbell/pulls/73
2026-10-14processor, storage: clear queues before shutting down proceesor and storage ↵eltrac
worker
2026-10-14core, storage: add storage worker that handles writes asynchronously and ↵eltrac
thread-safely fix
2026-10-13test: add basic test suite for storage layereltrac
also remove post-conditional assertion from edn-storage/use-store, since tests have that covered
2026-10-11proceesor, storage: better error handling; no interrupting pipelineeltrac
- print clear stack trace using timbre when capturing exceptions - don't pass nil to url/normalize; if url/normalize gets a nil, instead of NPE, it now returns an empty string - capture exceptions in processor pipeline to keep it from dying - http.downloader now checks response status instead of blindly downloading anything
2026-10-10edn_storage, handler, core: decouple stroage conformity responsibilityeltrac
- handler and core no longer care if storage is a valid vtable - use-store assert storage is valid before it was returned - AssertionError should be spotted while testing
2026-10-08config, storage: replace clojure.edn with fast-edn for speedeltrac
2026-10-07receiver, verifier, retriever, storage: URL normalizationeltrac
utils: add url utilities for accurate comparison - add url/normalize taht reconstructs URL, strips unnecessary components, reorders query string and ensures determinism - add url/url= that uses url/normalize receiver: normalize URLs before checking and putting in queue - use url= and normalize from utils.url - rename verify-request to check-request to avoid confusion with verifier.clj verifier: check if source includes target URL more accurately - implement url/extract with robinst/autolink-java, which extracts a vector a URLs from string - check if source includes target by 1. extracting all links from source body 2. normalizing all links before comparing with target link (with url= func) - refactor verify-headers -> match-content-types, with a higher order function and clearer description retriever, storage: use url= instead of = when comparing urls
2026-09-23processor: refactor processor; replace mf2j with mf2cljeltrac
- replace mf2j with mf2clj - remove utils.clj completely - refactored processor, use Chain of Responsibilities pattern and pass around maps to reuse data (so we don't have to make a separate HTTP request just to parse microformats, etc.) - test: add more test cases to verifier test - test: add basic test cases to all processing steps - add more logging to each processing steps. good for debugging.
2026-09-18docs: add missing docstrings and mark certain components as deprecatedeltrac
2026-09-17fix #34eltrac
2026-09-16wrapper, storage, mf: add spec check and improve project structureeltrac
wrapper: use spec to check webmention data before writing to storage warn when data does not meet spec (corrupted). for now we're not dealing with corruption, just collect logs and analyze. microformats: use spec to validate data and warn if it's in bad form microformats: move parsers/wrappers to one sub-directory storage: move weepinbell.spec to weepinbell.storage.spec
2026-09-11fix #13eltrac
Instead of exit, it should create the data file. The previous approach cause issues when testing and building.
2026-09-11fix #13eltrac
2026-09-11refactor(receiver, webhook, utils): replace commons validatoreltrac
used java.net to create a small validator that passes the test refactor: rename validator to url, and move other url funcs here
2026-05-12refactor(storage): make storage vtable in its nseltrac