builds: Mirror all refs over to GitHub Not all branches would be pushed when mirroring, so this should fix that.
build: Mirror to GitHub Adds an automatic build job to mirror Shoelace to the GitHub mirror.
readme: Change room address I've moved the Shoelace Matrix room to f0rest.net, since it's more stable to work with.
meta: Bump version to v0.2.1 Now using spools v0.6.1. Fixes scraping at large after some updates from Instagram's side.
meta: Bump version to v0.2.0 Major release. This release focuses on expanding quite a bit from the base established in v0.2.x. Changes include: - RSS feeds for profiles: Users can now fetch the latest posts from their favorite creators using an RSS reader. - Open Graph previews: Posts and profiles can now have embedded previews when being shared on other social media platforms. - Image thumbnails: Pages now load in less time, by fetching lighter versions of embedded media, which is now an option in spools v0.6. - Frontend changes: aoife added the quick jump bar found in the homepage to the error pages, reducing the amount of clicks needed to find another profile. - API revamp: Gone are the unnecessary URL formatted headers. The API now parses arguments through the path specified in the URL. It must be noted that RocksDB support has been dropped in this version. Existing instance administrators are strongly advised to switch to either a Redis/Redict install, or to use the internal keystore.
meta: Fix spools version to v0.6
meta: Submodule to repo ref for spools Cargo has the option to fetch a dependency from a Git repository. Instead of using a submodule and importing its path, use Cargo to fetch spools directly from its original repository on builds.
api: Consistency on input names Every other endpoint uses "post" to define the shortcode, therefore making it the de facto way of referring to that kind of input.
src: Make all definitions crate-private Many of these private definitions were removed due to compilation issues on older compilers. However, in order to not leave incomplete documentation when publishing this on crates.io, its best to sacrifice compatibility on legacy systems.
test: Unify app data definitions Many of the ShoelaceData structs defined for testing were exactly equal. Declare a constant for these, so it can be reused on tests which require it.
spools: Bump submodule commit Considering including it into the crate's manifest instead of using this submodule...
src: Format with `cargo fmt`
src: Apply Cargo clippy suggestions These include removing Error suffixes inside Error enum, renaming the `to_plaintext()` to `into_plaintext()` to fit language conventions, and merging the match arms defining `url` with the definition of the variable itself.
rss: Revise feed formatting Modify item titles to display a post's context instead of its body, add publication dates, and reformat builders to fit the rendered feed's structure. Dates require the Chrono crate, so include it into Cargo.toml. Finally, remove trailing newline on `api.rs`.
templates/user: Add RSS subscribe button It's located next to the verification badge (if applicable), and links the user directly into the equivalent response in the RSS endpoint.
config: Implement RSS endpoint toggle This allows for disabling user RSS feeds if the instance administrator doesn't want them to be used. Includes edits on example configuration file, and passes value in order to not display a button for it in the frontend.
rss: Return plaintext errors Uses the same `error.to_plaintext()` method used in the API.
rss: Initial implementation Adds the backend for RSS feeds. The implementation uses the `rss` crate, which serializes the data for a user's posts into an RSS 2.0 feed. Still is incomplete, as there's no option to disable these feeds, and error responses are being returned as full HTML documents instead of plaintext
submodule: Bump commit for spools Since quite a few changes have been applied to spools since the last commit, it's only fair to get Shoelace working in a more recent revision
main: Fix request logging Request logs would go ignored due to no adapter being provided for the `log` crate in Tracing. Add the `tracing-log` crate and include the adapter on the main function to get them to show up. Additionally, clean up messy comments.