anilistarr

package module
v0.3.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 27, 2025 License: MIT Imports: 0 Imported by: 0

README ΒΆ

anilistarr

anilist custom list provider for sonarr/radarr

Go Reference GitHub Issues GitHub Pull Requests Codecov

GitHub branch status Integration Release Security Documentation

License CII Best Practices

Docker Image Size (latest semver) Docker Image Version (latest semver) Docker Pulls

built with nix


πŸ“ 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

πŸ§‘β€πŸ’» Authors

πŸŽ‰ Acknowledgements

Documentation ΒΆ

Overview ΒΆ

Package anilistarr provides interfaces and a REST API that converts IDs from anime tracking services such as Anilist to the TVDB IDs wanted by *arr tools.

It relies on community-provided mappings to match the IDs. Tracker information uses the upstream service directly.

Copyright (c) William Artero. MIT License

Directories ΒΆ

Path Synopsis
cmd
handler command
Handler processes requests to map media list IDs to specific services and formats.
Handler processes requests to map media list IDs to specific services and formats.
internal/integration command
Integration is a self-contained system test program.
Integration is a self-contained system test program.
internal
adapters/cachedtracker
Package cachedtracker provides a transparent usecases.Tracker wrapper that enables cache-first responses.
Package cachedtracker provides a transparent usecases.Tracker wrapper that enables cache-first responses.
adapters/chaincache
Package chaincache provides a serial cache driver that uses other caches in order.
Package chaincache provides a serial cache driver that uses other caches in order.
adapters/sources
Package sources contains usecases.Source implementations to retrieve metadata from specific encode formats such as JSON.
Package sources contains usecases.Source implementations to retrieve metadata from specific encode formats such as JSON.
api
Package api provides primitives to interact with the openapi HTTP API.
Package api provides primitives to interact with the openapi HTTP API.
drivers/animelists
Package animelists provides elements to consume data from the anime lists and its forks.
Package animelists provides elements to consume data from the anime lists and its forks.
drivers/badger
Package badger provides a BadgerDB-backed driver that implements use-cases.
Package badger provides a BadgerDB-backed driver that implements use-cases.
drivers/bolt
Package bolt implements a BoltDB-backed driver that implements use-cases.
Package bolt implements a BoltDB-backed driver that implements use-cases.
drivers/redis
Package redis implements a Redis-backed driver to fit use-cases needs.
Package redis implements a Redis-backed driver to fit use-cases needs.
drivers/sqlite
Package sqlite provides a SQLite-backed persistence store driver that implements both [adapters.Cache] and usecases.Store.
Package sqlite provides a SQLite-backed persistence store driver that implements both [adapters.Cache] and usecases.Store.
drivers/trackers/anilist
Package anilist provides an usecases.Tracker that communicates with Anilist's GraphQL API.
Package anilist provides an usecases.Tracker that communicates with Anilist's GraphQL API.
entities
Package entities contains plain entities (a.k.a.
Package entities contains plain entities (a.k.a.
usecases
Package usecases contains the core logic of the application and interfaces that exposes its requirements.
Package usecases contains the core logic of the application and interfaces that exposes its requirements.
pkg
finalizers
Package finalizers provides functions to use with runtime.SetFinalizer.
Package finalizers provides functions to use with runtime.SetFinalizer.
process
Package process allows to assert errors and exit an application in a non-disruptive way.
Package process allows to assert errors and exit an application in a non-disruptive way.
with
Package with implements an idiomatic builder pattern.
Package with implements an idiomatic builder pattern.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL