about summary refs log tree commit diff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Added file updates and fixed a bug with truncated JSON filesVika2021-09-262-3/+154
| | | | | | | | | | | There was a bug where `File::write()` would not write the entire buffer, and this condition was left unchecked by the code. All `File::write()` calls are now replaced with `File::write_all()` which ensures the whole buffer is written to the backing file. Additionally added a smoke check for the file updates. It is in no way comprehensive nor it is able to catch all the possible failures but it's a good way of testing the functionality without way too much hassle.
* Added a WIP file backendVika2021-08-152-30/+210
| | | | | | | Currently unavailable for use and only has basic GET and POST operations implemented. A lot more work is needed to make it truly usable. Locking is implemented using flock() system call on Linux.
* Improved Redis module code qualityVika2021-08-151-13/+10
|
* Added Prometheus instrumentationVika2021-08-062-0/+73
| | | | | | I need to instrument the mobc library used for the Redis connection pool, but that can be done later since I am somewhat tired. I don't remember how much I've worked and I need a break... >.<
* Added a default food channel for foodstuffsVika2021-08-061-12/+35
|
* Log sent webmentionsVika2021-08-061-0/+1
|
* Refactored the onboarding template into its own fileVika2021-08-062-193/+198
|
* Shortened a connection timeout and installed a lifetime limit for connectionVika2021-08-061-1/+4
|
* Trying to mitigate and log more about the HTTP 500sVika2021-08-051-10/+12
|
* Fixed a VERY WRONG way to handle stream errorsVika2021-08-042-31/+25
| | | | | | for future reference: stream operations returning Result satisfy conditions for the futures::stream::TryStreamExt trait, allowing you to use `TryStreamExt::try_collect::<T>()` and receive a Result<T>.
* Moved templates into their own moduleVika2021-08-032-586/+585
| | | | | | | frontend.rs was too hard to navigate. Additionally, this allows playing with the organizational structure of templates, since they only need to export a certain API and how exactly they work is an implementation detail.
* Appease rustfmt, clippy and cargo checkVika2021-07-299-104/+196
|
* Respect Link: headers when sending webmentionsVika2021-07-281-4/+32
|
* Added CORS middlewareVika2021-07-272-0/+23
| | | | | This prevents Micropub requests fired from web apps on other domains from being blocked by overzealous browsers.
* Added an internal token mechanismVika Shleina2021-07-273-0/+18
| | | | | | | | The internal token is a shared secret that can update and delete any posts stored in the database. It is intended for use in webmention endpoints to update posts with latest webmentions. Please keep it safe.
* Fixed security hole where other people could delete YOUR posts. Yes, yours. ↵Vika Shleina2021-07-212-0/+67
| | | | You're welcome.
* Don't show internal links on h-cardsVika Shleina2021-07-191-1/+1
|
* Fixed crash when h-card doesn't contain a p-noteVika Shleina2021-07-191-3/+4
|
* Fixed feed pagination on frontendVika Shleina2021-07-191-1/+4
|
* Relaxed anti-takeover URL check to simply not place redirects at foreign URLsVika Shleina2021-07-195-16/+14
|
* Replaced scheme with HTTPS in frontend to prevent weird thingsVika Shleina2021-07-192-6/+11
|
* Added URL display to h-cardsVika Shleina2021-07-191-0/+14
|
* frontend: fixed site name, added thumbnail support and Markdown tutorial linkVika Shleina2021-07-191-7/+16
|
* make clippy happyVika Shleina2021-07-196-20/+18
|
* Renamed main executable to kittybox, added toolsVika Shleina2021-07-193-3/+101
| | | | | | | | | The new tools are: - kittybox-bulk-import, a bare-bones Micropub client that reads a JSON list of posts and then sends them one by one to the Micropub endpoint - pyindieblog-export, my personal tool which directly connects to Pyindieblog's redis instance and extracts data from it in JSON format suitable for use with kittybox-bulk-import.
* Make rustfmt happy again after Clippy editsVika2021-05-182-13/+19
|
* Make clippy happyVika2021-05-174-36/+30
|
* Make rustfmt happyVika2021-05-179-528/+1188
|
* Minimal onboarding support. TODO: h-card avatarsVika2021-05-172-1/+57
|
* Onboarding - initial featureVika2021-05-174-6/+349
|
* Added setting store per-userVika2021-05-172-0/+28
|
* Update CI configuration and GitLab WebIDE settingsVika2021-05-171-1/+1
|
* Fixed failing tests again - forgot to unwrapVika2021-05-171-1/+1
|
* Fixed failing testsVika2021-05-171-0/+2
|
* Refactoring, easter egg, healthcheck endpoint, support for rel= indieweb ↵Vika2021-05-176-17/+86
| | | | 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
|
* Added a frontend to the application. TODO: Login, alternative themes, ↵Vika2021-05-093-37/+710
| | | | built-in Micropub capabilities when logged in
* Fixed parsing the reply context for webmentions if there is no webmention ↵Vika2021-05-091-1/+19
| | | | endpoint
* Fixed Micropub client channels and sending payloadVika2021-05-091-11/+21
|
* Added a debug shim to IndieAuthMiddleware that makes it a no-op in staging ↵Vika2021-05-091-1/+15
| | | | (except unit tests)
* 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.
* Added a note to future selfVika2021-05-051-0/+7
|
* Added rudimentary caching to IndieAuth middlewareVika2021-05-052-29/+85
|
* Moved the client to /micropub/clientVika2021-05-051-4/+5
|
* Refactored the Redis instance spawning in tests to automatically kill RedisVika2021-05-053-40/+43
|
* Removed the in-memory database, it's dragging me downVika2021-05-053-214/+0
|