| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
Because sometimes seeing the problem is better than searching for it.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
It works. Launch it using the "kittybox-database-converter" command.
First argument should be the old database URI, second should be the
new one. It will migrate the DB for you.
If you're doing this on a test machine, you can then migrate the
database to production using `rsync -rl` to preserve symbolic links
created by Kittybox's database backend.
|
|
|
|
|
|
| |
Thanks to @Kloenk I was able to get rid of the unsafety and
tell the compiler how to properly check what I needed for
the StorageError to be declared thread-safe.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Flake lock file changes:
• Updated input 'nixpkgs':
'github:kisik21/nixpkgs/28ab753837babd73e2200fb76a6c40f6cb8aee28' (2021-07-14)
→ 'github:kisik21/nixpkgs/e2b7e226ac2f83039d0f116c3693619a8bd6444c' (2021-11-23)
• Updated input 'rust':
'github:oxalica/rust-overlay/63cff1cea66f1cd76fe5377776e5e597c6635a42' (2021-08-06)
→ 'github:oxalica/rust-overlay/885ef5bf9d2857dff8689292aedb511dfc952862' (2021-11-23)
• Updated input 'rust/flake-utils':
'github:numtide/flake-utils/f7e004a55b120c02ecb6219596820fcd32ca8772' (2021-06-16)
→ 'github:numtide/flake-utils/bba5dcc8e0b20ab664967ad83d24d64cb64ec4f4' (2021-11-15)
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
When an error is found, the site name passed to Storage::get_setting
in the error handler is incorrect. The ASCII serialisation of the
hostname should get used.
|
| |
|
| |
|
|
|
|
|
| |
BufReader was really unneccesary here, since I was batch-reading all
of this in one go.
|
|
|
|
|
|
| |
Now symlink creation works on Windows and creates links relative to
the posts, allowing for seamless migrations of the backing directory
for true portability and no data lock-in.
|
| |
|
|
|
|
|
|
| |
Now the Redis dependencies are optional and only required if you want
to test the backend or actually use it in production. The app displays
a hint if you try to launch with an unsupported backend.
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
This reverts commit 1c1d0e504c276ccb3c204aa28750f86610bff248.
|
| |
|
|
|
|
|
|
| |
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... >.<
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
| |
It was always my intention to license this under AGPLv3, so the project will stay free no matter who hosts it, and no matter where. We should have the freedom to customize our blogs however we want!
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
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>.
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
This prevents Micropub requests fired from web apps on other domains
from being blocked by overzealous browsers.
|
|
|
|
|
|
|
|
| |
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.
|