about summary refs log tree commit diff
path: root/kittybox-rs
Commit message (Collapse)AuthorAgeFilesLines
* Better Micropub update object typingVika2023-06-221-4/+13
|
* database: more realistic pagination testVika2023-06-221-1/+7
| | | | | | We insert published time into all objects anyway, and expect feeds to be ordered by publishing time. We should let databases rely on that assumption when returning feeds.
* database: add add_to_feed and remove_from_feedVika2023-06-222-2/+9
| | | | | Some database backends may have optimized ways of tracking feed contents. Others might just use the "children" property directly.
* database: use domains instead of authorities as owner keyVika2023-06-225-41/+65
| | | | | This allows disregarding http/https comparisons and simplifies some database designs.
* database: introduce read_feed_with_cursorVika2023-06-226-13/+43
| | | | | read_feed_with_cursor allows using an arbitrary string as a cursor, unlike read_feed_with_limit, which uses last post's UID as a cursor.
* StorageError: use std::borrow::Cow for msg fieldVika2023-06-223-21/+36
| | | | | This allows avoiding an unnecessary allocation whenever the error message is static.
* main: refactor Kittybox constructionVika2023-06-225-192/+204
| | | | | | This allows proper separation of backend initialization and Kittybox construction code. Some boilerplate is still present, but there's much less of it now thanks to functions being generic.
* kittybox-util: Derive sqlx::FromRow on MicropubChannelVika2023-06-222-0/+5
|
* [wip] Postgres backendVika2023-06-224-29/+407
|
* Notes on how to replace lazy_static! with a LazyCellVika2023-06-151-0/+6
| | | | should've been a LazyLock tho
* Smallish code tweaksVika2023-06-153-3/+23
| | | | | | - cleaner format!() - syndication links - broke up a long line
* fixup! templates: allow for alt-text on profile photoVika2023-06-151-1/+7
|
* templates: allow for alt-text on profile photoVika2023-06-151-0/+18
| | | | | | | | Fixes accessibility issue and allows non-sighted users to learn how your profile picture looks. Generating alt-text with AI might be a nice idea, except I don't know how to integrate this yet.
* Add support for the IndieWeb Webring πŸ•ΈπŸ’Vika2023-06-154-10/+51
| | | | Optional at first. Onboarding UI not yet exposed.
* Database: use newtypes to represent settingsVika2023-06-155-57/+113
| | | | This allows much for a cleaner and idiomatic settings interface.
* cargo updateVika2023-06-151-451/+503
|
* tempfile -> tempdir, remove mockitoVika2023-02-274-78/+5
|
* mockito: 0.30.0 -> 0.32.3Vika2023-02-272-11/+15
|
* update markdown to 1.0.0-alpha.7Vika2023-02-272-12/+10
|
* cargo updateVika2023-02-271-563/+766
|
* Clarity improvementsVika2023-02-273-5/+9
|
* Add a skip link to the page layoutVika2023-01-252-3/+19
| | | | | | | | I tried to run my website through a screen reader, and thought this would be a nice addition. Also it turns out my website is *mostly* accessible as it is -- yay for semantic HTML!
* Show rainbow hearts on webinteractions widget tooVika2023-01-221-1/+5
| | | | More rainbows! πŸ³οΈβ€πŸŒˆ
* Add rainbow hearts on like postsVika2023-01-222-1/+27
| | | | | A cute little easter-egg from an old version of my site, now available all year round, because I'm sick of hiding my true self.
* templates: ellipsize u-in-reply-to to 48, not 24Vika2022-11-081-2/+2
|
* templates: fix no space between links in mini entryVika2022-11-081-2/+3
|
* media: get rid of an extraneous Arc over BytesVika2022-11-071-5/+9
| | | | | Bytes buffers are already reference-counted and cheaply clonable; there is no need to wrap them further.
* templates: hotfix rich reply contextsVika2022-11-061-9/+30
| | | | When did I implement that?!!!
* kittybox-frontend-renderer: gzip static assetsVika2022-11-064-18/+149
|
* indieauth: parse application metadataVika2022-10-244-34/+101
|
* media: implement file range requests for backendsVika2022-10-142-16/+274
| | | | | | | For now it is not yet exposed on the frontend, but that is merely a matter of time. TODO possibly remove the legacy methods, since they're obsoleted
* templates: move static assets to the templates crateVika2022-10-0720-85/+237
| | | | | | | | | | | | It makes more sense to keep CSS near the templates, and the client-side JavaScript code too, since it depends on the DOM structure to work. Additionally, the overhead of `include_dir!()` is almost completely mitigated by the fact that this is a separate crate that isn't recompiled often. The linking stage, however, is still expected to take a little bit long. But I doubt it'd be longer than what it was before, since it's the same exact files that get linked into the app.
* media: Use ETag and If-None-MatchVika2022-10-043-4/+38
| | | | | | | | | | | | | | | | | | | | Note: this requires a reindex of the media database. For the default CAS backend, use the following: ```bash for i in */*/*/*/*.json; do etag="$(echo $i | sed -e 's/\///g' -e 's/\.json$//')"; mv "$i" "$i.bak" cat "$i.bak" | jq '. + { "etag": '\""$etag"\"'}' > "$i" rm "$i.bak" done ``` This change is backwards compatible, but caching headers won't be emitted without etags present in the metadata. Actual etags are backend-specific and might differ from backend to backend.
* LibreJS compatibilityVika2022-10-034-2/+88
| | | | | | I don't know how worthwhile that was, given that LibreJS developers themselves don't care to properly declare licenses on the Bazaar frontend they use to host the extension's source code on the Web 🀑
* companion-lite: rewrite to use IndieAuthVika2022-10-027-100/+467
| | | | | This is a naive implementation that doesn't have some security checks. It's ok tho, should work fine... can refine it later
* companion-lite: port to TypeScriptVika2022-09-2910-128/+301
|
* AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVika2022-09-291-1/+1
|
* AAAAAAAAAAAAAAAAAVika2022-09-291-1/+1
|
* AAAAAAAAVika2022-09-291-1/+1
|
* indieauth: fix submit handler not being appliedVika2022-09-292-2/+7
|
* Switch to TypeScriptVika2022-09-287-196/+390
| | | | | | | | This neccesitates installing TypeScript to build Kittybox, but thankfully Nix actually takes care of that. Build Kittybox with Nix and you won't have problems. Also now I can safely do stuff.
* fix param name for media endpointVika2022-09-281-1/+1
| | | | AAAAAAAAAAAAAAAAAAAAAAAAA
* Use tokens from the auth backend to authenticate for MicropubVika2022-09-288-120/+201
|
* Fix some clippy errorsVika2022-09-282-1/+7
|
* indieauth: add "token_type" and "scope" to token grant responseVika2022-09-282-1/+26
| | | | | | | It looks like some badly-behaved apps require "scope" even though it is optional according to OAuth2. Additionally, both of these fields are not present in the IndieAuth spec (this is an error in the spec, tracked here: https://github.com/indieweb/indieauth/issues/116
* frontend: fix indieauth page crashing if no scopes requestedVika2022-09-201-1/+1
| | | | JavaScript is a hellpit i want out of it please help me
* kittybox-indieauth: fix extraneous padding in PKCE challengesVika2022-09-202-5/+25
|
* Make webauthn and openssl optionalVika2022-09-194-9/+37
|
* Add test password hasherVika2022-09-191-0/+33
|
* Small optimizations to frontend codeVika2022-09-192-27/+38
| | | | | | There is a possibility of refactoring some of the companion code to act as a generic embedded asset framework and put it in the `util` crate.