6c5e904e9d
Some checks failed
Integration / metadata (push) Has been cancelled
Integration / lint (push) Has been cancelled
Integration / test (push) Has been cancelled
Security / metadata (push) Has been cancelled
Security / analyze (push) Has been cancelled
Integration / build (push) Has been cancelled
Integration / report (push) Has been cancelled
Integration / container (push) Has been cancelled
Security / security-scan (push) Has been cancelled
Signed-off-by: William Artero <git@artero.dev> |
||
---|---|---|
.github | ||
.make | ||
.vscode | ||
cmd | ||
internal | ||
.air.toml | ||
.codeclimate.yml | ||
.codecov.yml | ||
.dockerignore | ||
.editorconfig | ||
.gitignore | ||
.golangci.yaml | ||
.goreleaser.yml | ||
.grype.yaml | ||
.pre-commit-config.yaml | ||
anilistarr.puml | ||
CODE_OF_CONDUCT.md | ||
CODEOWNERS | ||
container-structure-test.yaml | ||
CONTRIBUTING.md | ||
cspell.config.yaml | ||
doc.go | ||
Dockerfile | ||
fly.toml | ||
gen.go | ||
go.mod | ||
go.sum | ||
LICENSE | ||
Makefile | ||
media.db.sql | ||
README.md | ||
SECURITY.md | ||
sonar-project.properties | ||
swagger.yaml | ||
TODO.md | ||
workspace.dsl |
anilistarr
anilist custom list provider for sonarr/radarr
📝 Table of Contents
🧐 About
Converts an Anilist user watching list to a custom list format which *arr apps support.
It works by fetching the user info directly from Anilist thanks to its API, and converts the IDs using community-provided mappings.
Try it out on a live instance at https://anilistarr.fly.dev/
. For API details
check either the source Swagger definition or the generated
online version here.
🏁 Getting Started
Clone the repository and use go run ./cmd/handler/...
to get the REST API up.
🔧 Running the tests
Explain how to run the automated tests for this system.
🎈 Usage
Configuration in general is a WIP. The code supports distinct storage and cache options and has built-in support for different caches and stores. The handler needs flags/configuration file support to allow switching at runtime.
Implemented solutions:
- Cache
- Badger
- Bolt (no TTL support tho)
- Redis
- Store
- Badger
- SQL (model generated for SQLite, should work for others but YMMV)
🚀 Deployment
The handler
binary is statically compiled and serves both the REST API and the
telemetry to an OTLP endpoint. Extra requirements depend on which storage and
cache technologies you've chosen; e.g. using SQLite/Bolt requires a database
file. The Docker image provided contains the handler alone, for instance.
🔧 Built Using
- Golang - Base language
- Chi - net/HTTP-compatible router that doesn't suck
- genqlient - type-safe GraphQL client generator
- xo - SQL client code generator
- Open Telemetry - Observability
🧑💻 Authors
- @wwmoraes - Idea & Initial work
🎉 Acknowledgements
- Anilist for their great service and API https://anilist.gitbook.io/anilist-apiv2-docs/
- The community for their efforts to map IDs between services