| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Tracked upstream as https://github.com/launchbadge/sqlx/issues/3510
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Using `tokio::task::block_in_place` downgrades the thread temporarily
to avoid starvation.
|
| |
|
|
|
|
|
|
| |
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
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
- 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
|
|
|
|
|
|
|
| |
I think I managed to not lose any functionality from my dependencies.
sqlparser remains unupgraded, but that's mostly because it is only
used in one example and it's not worth it to upgrade right now.
|
| |
|
|
|
|
|
|
|
|
| |
Since Kittybox router composition is entirely generic, we can move it
into the library.
I feel like I could also split database types into their own crates,
too.
|
| |
|
|
|
|
|
| |
This somehow allowed me to shrink the construction phase of Kittybox
by a huge amount of code.
|
|
|
|
|
| |
Now the database objects can be uniformly created from a URI. They can
also optionally do sanity checks and one-time initialization.
|
|
|
|
|
|
|
|
|
| |
Per clippy suggestion.
While they're behind a reference counter, and thus cloning is cheap,
we can avoid increasing the reference counter by borrowing here.
Also now the code is a bit prettier.
|
| |
|
|
|
|
| |
This makes the interface more consistent and resistant to misuse.
|
|
|
|
|
|
|
|
|
| |
Added fundamental AutoAuth types. This library can now be used to
augment existing authorization and token endpoints with AutoAuth
capabilities.
See https://github.com/sknebel/AutoAuth/blob/master/AutoAuth.md for
the latest spec draft.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Warning, untested. But hopefully works!
|
| |
|
|
|
|
| |
This reduces the worst-case complexity to O(n) from O(n^2).
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Kittybox's source code is moved to a subfolder
- This improves build caching by Nix since it doesn't take changes
to other files into account
- Package and test definitions were spun into separate files
- This makes my flake.nix much easier to navigate
- This also makes it somewhat possible to use without flakes (but
it is still not easy, so use flakes!)
- Some attributes were moved in compliance with Nix 2.8's changes to
flake schema
|