| Age | Commit message (Collapse) | Author |
|
|
|
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
|
|
|
|
add "if not exists" condition before creating indexes
|
|
|
|
add ADR-0002 about migrating to H2
|
|
|
|
|
|
- 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
|
|
|
|
|
|
- microformats type inferring is more accurate
- before: check if microformats h-entry has a type key (:like-of,
:in-reply-to...)
- now: check if such key's value equals to target URL, so it makes
sure this like/reply/repost/rsvp is sent to this target
- use ring.util.http-response to simplify response
- `?mftype=` filter no longer depends on microformats reduction
- retriever.clj is overall cleaner
|
|
|
|
|
|
SNAPSHOT because it's not fully tested yet.
|
|
|
|
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
|
|
- add start/stop/restart/watch functions in 'user namespace (dev
profile)
- add lein alias `dev` that starts file watcher and REPL
- every time source code is changed, `lein dev` reloads modified
namespaces and restarts system
- add `lein dev` to Contributors' Guide
|
|
- remove deprecated weepinbell.ui
- create a ClojureScript project named bellsprout
- use vanilla cljs and Pico CSS
- can find and send webmentions in/to weepinbell
- display webmentions in cards
- <noscript> reminder
- embed frontend in weepinbell
- opt-in, weepinbell can work without a frontend
- serve static files from disk for now; might support a simple reverse
proxy in the future
- test frontend route (OK when enabled; 404 when disabled)
fe: ?show param that shows webmentions when set to true
equivalent of clicking "Find" button manually
|
|
|
|
|
|
|
|
|
|
|
|
- put badges in a paragraph
- add clojure version badge
- add link to woodpecker ci
- babashka script for automatically extracting and replacing coverage
rate
- pipeline for running cloverage
|
|
- 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.
|
|
|
|
|
|
|
|
|
|
|
|
1. nil guard `status`
2. upgrade `http-kit` to fix SNI issue
3. match Content-Type correctly
|
|
used java.net to create a small validator that passes the test
refactor: rename validator to url, and move other url funcs here
|
|
from lein deps :tree
Possibly confusing dependencies found:
[org.clojure/core.async "1.8.741"] -> [org.clojure/tools.analyzer.jvm
"1.3.2"] -> [org.clojure/tools.reader "1.5.0"]
overrides
[com.taoensso/timbre "6.8.0"] -> [com.taoensso/encore "3.153.1"] ->
[org.clojure/tools.reader "1.5.2"]
Consider using these :managed-dependencies:
[org.clojure/tools.reader "1.5.2"]
|
|
|
|
|
|
since http-kit handle both server and client, hato as a client can be
replaced
|
|
|
|
use Java introp instead of cljc-md5, which is heavy on dependencies.
|
|
|
|
|
|
|
|
Since I'm currently the only contributor of this project, and MIT is
compatible with AGPL, relicensing is valid.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|