about summary refs log tree commit diff
path: root/src/micropub
Commit message (Collapse)AuthorAgeFilesLines
* Migrate from axum::Extension to axum::extract::StateVika2024-08-011-22/+16
| | | | | This somehow allowed me to shrink the construction phase of Kittybox by a huge amount of code.
* treewide: create a common method for state initializationVika2024-08-011-4/+4
| | | | | Now the database objects can be uniformly created from a URI. They can also optionally do sanity checks and one-time initialization.
* database: use Url to represent user authoritiesVika2024-07-092-4/+4
| | | | This makes the interface more consistent and resistant to misuse.
* micropub: fix channels in ?q=configVika2024-07-091-1/+2
|
* Expose ?q=category queries in Micropub APIVika2024-03-041-1/+15
|
* lint: no extra whitespace on line endingsVika2024-01-291-1/+1
|
* Switch reply contexts from a Vec to HashMapVika2023-11-131-16/+15
| | | | This reduces the worst-case complexity to O(n) from O(n^2).
* Fix bug with likes/bookmarks on h-entries lacking URLs in markupVika2023-10-151-7/+21
|
* Moved the entire Kittybox tree into the rootVika2023-07-293-0/+1372
|
* flake.nix: reorganizeVika2022-05-243-1990/+0
| | | | | | | | | | | | - 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
* feat: webmention sending and reply context enrichmentVika2022-05-141-44/+160
| | | | | | | These features share some code since they both require fetching reply contexts, so it makes sense to implement them together. TODO cover webmention sending with integration tests
* treewide: prepare for mf2 parsing and cleanup unused codeVika2022-05-121-23/+82
|
* media: move to separate subtreeVika2022-05-101-50/+0
| | | | | | | | This will ease future extraction of the media endpoint to a separate crate. This is highly desirable since it will allow Kittybox's media endpoint to be used separately in instances where a standalone media endpoint is desirable (e.g. custom solutions using my code to polyfill for desired functionality that is undesirable to implement by oneself)
* Get rid of todo!() invocationsVika2022-03-231-4/+32
| | | | | | This stubs the neccesary code with enough stuff that it will work and be accepted by most compliant Micropub implementations. Later, this can be extended when the neccesary amendments and refactors are done.
* Get rid of legacy code, fix mistakes in fluff text and commentsVika2022-03-231-3/+3
|
* Port onboardingVika2022-03-071-3/+15
|
* Restored most of the functionality (except onboarding and some queries)Vika2022-03-062-163/+580
|
* micropub: parse mp-channel as channelVika2022-03-031-2/+72
|
* Added stubs for Micropub posts and the media endpointVika2022-02-211-1/+83
|
* micropub: flesh out queryVika2022-02-211-47/+180
|
* WIP: convert to Tokio and WarpVika2022-02-151-29/+99
| | | | | | | | | | | Warp allows requests to be applied as "filters", allowing to flexibly split up logic and have it work in a functional style, similar to pipes. Tokio is just an alternative runtime. I thought that maybe switching runtimes and refactoring the code might allow me to fish out that pesky bug with the whole application hanging after a certain amount of requests...
* Make rustfmt and clippy happyVika2021-12-062-9/+10
|
* Added support for IndieAuth client sign inVika2021-12-061-1/+1
| | | | | | | This will allow readers to view private posts intended just for them. Additionally fixed bugs in patterns due to which webmentions might not have been sent.
* Code cleanup and small bugfixing in templatesVika2021-12-051-12/+8
|
* frontend: Added listing feeds to the header barVika2021-12-051-2/+2
|
* Make the default feeds' UIDs pretty!Vika2021-12-051-5/+5
|
* Added a default food channel for foodstuffsVika2021-08-061-12/+35
|
* Log sent webmentionsVika2021-08-061-0/+1
|
* Appease rustfmt, clippy and cargo checkVika2021-07-292-54/+72
|
* Respect Link: headers when sending webmentionsVika2021-07-281-4/+32
|
* Added CORS middlewareVika2021-07-271-0/+21
| | | | | This prevents Micropub requests fired from web apps on other domains from being blocked by overzealous browsers.
* Fixed security hole where other people could delete YOUR posts. Yes, yours. ↵Vika Shleina2021-07-211-0/+25
| | | | You're welcome.
* Relaxed anti-takeover URL check to simply not place redirects at foreign URLsVika Shleina2021-07-191-8/+3
|
* make clippy happyVika Shleina2021-07-192-10/+10
|
* Make clippy happyVika2021-05-171-6/+6
|
* Make rustfmt happyVika2021-05-173-204/+439
|
* Refactoring, easter egg, healthcheck endpoint, support for rel= indieweb ↵Vika2021-05-172-6/+8
| | | | APIs and preparation for onboarding
* More descriptive error handling and more descriptive TODOsVika2021-05-092-9/+15
|
* Added support for more default feeds, added a feed for vCardsVika2021-05-091-15/+42
|
* Fixed parsing the reply context for webmentions if there is no webmention ↵Vika2021-05-091-1/+19
| | | | endpoint
* Add a note about a possible optimization once the MF2 parser is readyVika2021-05-061-0/+3
|
* Deduplicated the fetched posts to save on bandwidth and timeVika2021-05-061-2/+8
|
* Turns out assert!() can have a second argument with a panic reason. Cool!Vika2021-05-061-19/+16
|
* Added post-processing of new postsVika2021-05-061-6/+143
| | | | | | | | | | | | | This launches a background task to handle: - Downloading reply contexts (requires an MF2 parser, doesn't work yet) - Syndicating the post (currently no syndication targets are defined) - Sending WebSub notifications if a hub is present (WIP) - Sending webmentions (ok this one is fully implemented... I hope!) This background task should not impact processing times and should never conflict with futher updates of a post, since the database is guaranteed to be fully atomic. Inside of the task, you can run long asynchronous fetching and stuff, just don't block the whole thread.
* Clippy lintsVika2021-05-041-8/+8
|
* Made StorageErrors directly convertible into Micropub JSON responsesVika2021-05-042-15/+6
|
* Refactored the database module and its testsVika2021-05-041-1/+0
|
* Initial commitVika2021-05-043-0/+524
Working features: - Sending posts from the database - Reading posts from the database - Responding with MF2-JSON (only in debug mode!) - Not locking the database when not needed - All database actions are atomic (except for a small race where UIDs can clash, but that's not gonna happen often) TODOs: - Send webmentions - Send syndication requests - Send WebSub notifications - Make tombstones for deleted posts (update adding dt-deleted) - Rich reply contexts (possibly on the frontend part?) - Frontend? - Fix UID race Code maintenance TODOs: - Split the database module - Finish implementing the in-memory test database - Make RedisDatabase unit tests launch their own Redis instances (see redis-rs/tests/support/mod.rs for more info) - Write more unit-tests!!!