À propos du projet

Mastarr est une application open-source conçue pour examiner les médias téléchargés et les réconcilier avec les piles de médias existantes, ciblant spécifiquement l'intégration avec Radarr, Sonarr, Jellyfin et Seerr. Actuellement en phase de mise en œuvre pour la version 0.0.1, le projet fournit un cadre robuste pour découvrir les fichiers vidéo et de sous-titres dans les répertoires de téléchargement configurés, y compris ceux où l'historique de téléchargement a été perdu. La fonctionnalité principale tourne autour d'un tableau de bord d'examen complet qui affiche la provenance du téléchargement, les médias suivis et les états distincts pour l'enregistrement, l'importation et la disponibilité sur toutes les instances connectées. Les utilisateurs peuvent effectuer des actions telles que l'enregistrement et l'importation de médias via les applications Arr, le placement de fichiers directement dans les bibliothèques ou l'organisation et le nettoyage de fichiers. Chacune de ces actions est exposée via des contrats REST indépendants, garantissant une structure d'API claire. Techniquement, Mastarr utilise un backend basé sur Go utilisant des ports d'architecture hexagonale, oapi-codegen pour la génération d'API, SQLite pour le stockage de données, sqlc pour les SQL de type sécurisé et golang-migrate pour les migrations de base de données. Le frontend est servi par un module UI Go imbriqué qui agit comme un Backend-For-Frontend (BFF) pour le tableau de bord Goshtoso. Le système prend en charge des flux de travail durables, affichant les approbations, les échecs partiels, les réessais et les états d'annulation. Des fonctionnalités de sécurité telles que l'authentification de base et l'OIDC sont prévues pour les versions futures (v0.0.2), avec v0.0.1 axé sur la fonctionnalité principale sans authentification d'application. Le projet comprend une documentation détaillée couvrant les spécifications du système, les contrats HTTP, les ports de connecteur, les mécanismes de récupération de données, les options de configuration et les limites du tableau de bord. Il met l'accent sur un processus de développement structuré avec des voies de mise en œuvre, des matrices d'acceptation et des hooks de pré-commit pour la qualité du code.