* typos :help_me:
* (part 1/?) massive cleanup to make the code more Rust-ic and cut down heap allocations.
* (part 2/?) massive cleanup to make the code more Rust-ic and cut down heap allocations.
* (part 3/?) cut down some pretty major heap allocations here - more Bytes and BytesMuts, less Vec<u8>s
also I don't really understand why you need to `to_vec` when you don't really use it again afterwards
* (part 4/?) deduplicate error handling in backblaze logic
* (part 5/?) fixes, cleanups, refactors, and reformatting
* (part 6/?) cleanups and refactors
* remove loads of `as_str` in types that already are `Display`
* Revert "remove loads of `as_str` in types that already are `Display`"
This reverts commit 4f974310cfb167ceba03001d81388db4f0fbb509.
* reformat and move routes util to the util module
* use streams
* Run prepare + formatting issues
Co-authored-by: Jai A <jaiagr+gpg@pm.me>
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
* Add types to game_versions, allow filtering by version type
- Fixes an issue with version numbers in the initial mod indexing
queue
- Modifies the /api/v1/categories/game_versions route to take an
optional query parameter `type` to filter the listed game versions
- Creating tags is now idempotent
- Creating game_versions now requires a JSON body that specifies
the version type
* Implement automatic indexing of new Minecraft versions
It's currently set to run every 6 hours and isn't configurable; we
could add config for it, but it doesn't seem likely to be rate
limited or have issues with frequency.
This also adds a commandline argument library (gumdrop) for dealing
with indices - reseting, reconfiguring, and skipping them. I don't
know which library is best for this case, but gumdrop has shorter
compile times and many fewer dependencies than clap, which is why
I chose it.
* feat(indexing): Reindex curseforge & local database at an interval
* fix(indexing): Use strings for meilisearch primary key
Fixes#17 by prefixing curseforge ids with "curse-" and local ids
with "local-".
* feat(indexing): Add newly created mods to the index more quickly
* feat(indexing): Implement faceted search, update to meilisearch master
Fixes#9, but only uses faceted search for categories. It should
be reasonably simple to add support for versions, but it may not
be as useful due to the large number of versions and the large
number of supported versions for each mod.
* feat(indexing): Allow skipping initial indexing
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>