| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
This function takes a closure that modifies the post. This could be
useful in maintenance utilities that scan and fixup posts. For now
this isn't used anywhere within Kittybox, but once all backends
implement this correctly, this could replace `Storage::update_post`
calls. For supporting backends, `Storage::update_post` is implemented
in terms of `Storage::update_with`.
|
|
|
|
|
|
|
|
| |
In Kittybox, Micropub updates cannot modify UIDs, since UIDs are used
as a primary key.
Additional constraints may be added later, and perhaps I'll add a
Storage method that would check backend-specific constraints.
|
| |
|
|
|
|
|
|
| |
This allows for a separation of concerns between database backends and
Micropub, unless such backend have special requirements, like the file
backend storing children of a feed in an array.
|
| |
|
| |
|
|
|
|
|
| |
This might save a round-trip for clients that know how to cache
things. Such as Kittybox's HTTP fetcher.
|
|
|
|
|
|
|
| |
Axum still uses `async_trait`, let them do whatever they want. I will
no longer be subject to the humiliation of trying to dig through
lifetime errors and unreadable declarations. Also I don't fucking care
about MSRV, I'm not a library. If you don't have modern Rust, get one.
|
|
|
|
|
|
|
|
|
|
|
| |
This only displays on top-level entries, not ones in feeds. This
should help search indexers know which URI is the canonical for a
given link.
I wonder why Google doesn't bother to parse MF2 markup. Do they think
themselves monarchs of the Internet, able to show peasants their
place? their search results are shitty anyway, I'd rather ask
GPT-2. Yes, GPT TWO. Not even 3, 4 or 4o!
|
|
|
|
| |
Now it uses the same code as Kittybox itself.
|
|
|
|
|
|
|
| |
It just does its thing in the background, potentially speeding up
things. Maybe I could also use the underlying in-memory cache
implementation (Moka) to speed up my database. I heard crates.io got
some good results from that.
|
|
|
|
|
|
| |
The warnings only remain in places where I need them to remain,
because I either need a reminder to implement something, or I need to
refactor and simplify the code in question.
|
|
|
|
| |
It was never used much anyway.
|
|
|
|
|
| |
Using `tokio::task::block_in_place` downgrades the thread temporarily
to avoid starvation.
|
|
|
|
| |
Now the URLs are shown in their serialized form.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
If the post has no explicit channels, normally Kittybox attempts to
post to a channel that makes sense for the post type. Adding
`unlisted` to `visibility` now suppresses this behavior.
|
| |
|
| |
|
|
|
|
| |
Micropub types are now more coherent and gathered in one place.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
yes you can finally sign in
this is also supposed to show private posts intended for you!
maybe i can also reveal my email to those who sign in! :3
|
|
|
|
| |
for apps that can't hold state for long
|
| |
|
|
|
|
| |
whoops
|
| |
|
|
|
|
| |
I use these in development.
|
|
|
|
| |
Required for new revision of IndieAuth.
|
|
|
|
| |
Seems to be useful on its own.
|
|
|
|
|
|
|
| |
When testing things, I don't test TLS verification, that's what
reqwest unit tests should exist for. I test my things, and some of my
things assume some form of TLS. I don't need it to be valid TLS, I
need it to be TLS so I can use the `https://` links in dev.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This documents the onboarding request schema so somebody unwilling or
unable to run JavaScript (why would you subject yourself to this?) is
still able to use Kittybox.
Since JavaScript is used to provide form interactivity and complex
data structures in the onboarding flow, whoever cannot run JS will
have to manually compose the onboarding request, and this will help
them a little.
I just need to remember to update this if the schema ever changes.
|
|
|
|
|
|
|
| |
- Properly catch IndieAuth errors when parsing grant responses
- Use the new `into_query_pairs()` method to serialize the
authorization request into the authorization endpoint URL
- Migrate to `axum::serve` for simplicity in serving the callback hook
|
|
|
|
|
|
| |
`caddy reverse-proxy -r --from https://localhost:8443 --to http://localhost:8080`
can help meet Kittybox's security assumptions in development (and
could be a good way to meet them in production too.)
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
This is a more efficient way of appending to a query string, as it
avoids a needless copy and borrows most things instead. We can't
really avoid copying here, since we'll need to write to the query
string, but we can avoid an extra copy by borrowing most of our way
through.
|