MasutaYunikon 693f8a96ae feat: UX improvements, folder picker, download state & NFO support
## Settings
- Folder picker pour les paths (navigation dossier côté serveur via GET /api/browse)
- Paths vides par défaut, démarrage à / dans le picker
- Picker accessible même sous Docker (volumes montés accessibles)
- Bouton "Analyser bibliothèque" pour relancer scanMediaPath manuellement (POST /api/scan)
- Toggle NFO support (téléchargement dossier GitLab Fankai Pack à l'organisation)
- nfoSupport ajouté dans Settings interface + defaults

## Catalogue
- Logo "Fankarr" cliquable → retour accueil
- Filtres séparés en 2 groupes : état série (orange) | état téléchargement (bleu)
- Groupe 1 : Toutes / Disponibles / Sans torrent
- Groupe 2 : DL complet / DL partiel
- Tooltip badge torrents → "X torrents téléchargeables"

## Page Série
- Anti-spam boutons download : Set au lieu de string, bouton bloqué après envoi
- Boutons bloqués si torrent déjà dans qBittorrent (cross-session via poll /api/downloads)
- Boutons bloqués si épisode/saison déjà organisé dans la bibliothèque
- Barre de progression sous épisode / saison / intégrale (poll 5s)
- Badge "✓ téléchargé" à 100% à la place de la barre
- Badge "dispo" en bleu, "✓ téléchargé" inline à côté de "dispo"

## Page Téléchargements
- Onglets EN COURS / TERMINÉS (défaut : EN COURS)
- EN COURS : downloading + paused + checking + error
- TERMINÉS : seeding uniquement
- Toggle "Masquer organisés" dans l'onglet TERMINÉS
- Message vide adapté au contexte

## Organizer
- seasonFolder : Saison N sans padding (pour matcher GitLab)
- Map SERIE_TITLE_GITLAB_MAP : 9 corrections titres API → GitLab
- downloadGitlabFolder : liste récursive + téléchargement NFO/images depuis fankai_pack
- Appelé au début de organizeTorrent si nfoSupport activé
- Paths vides par défaut dans readSettings du worker

## Backend
- POST /api/scan : déclenche scanMediaPath manuellement
- GET /api/browse?path= : liste les sous-dossiers d'un chemin
- dispatchList : utilise client.config.category en priorité sur la catégorie globale
- Catégorie configurable par client torrent (fix torrents non affichés page downloads)
2026-03-12 22:41:46 +01:00
2026-03-11 15:47:46 +01:00
2026-03-10 22:36:34 +01:00
2026-03-10 22:36:34 +01:00
2026-03-11 15:48:19 +01:00
2026-03-10 22:36:34 +01:00
2026-03-10 22:36:34 +01:00
2026-03-10 22:36:34 +01:00
2026-03-10 22:36:34 +01:00
2026-03-11 15:47:46 +01:00
2026-03-10 22:36:34 +01:00
2026-03-10 22:36:34 +01:00
2026-03-10 22:36:34 +01:00
2026-03-10 22:36:34 +01:00
2026-03-10 22:36:34 +01:00

Fankarr

Version Docker Image Size Docker Pulls GitHub Actions License Node Vue

Gestionnaire de téléchargements pour le catalogue Fankai
Inspiré de Radarr/Sonarr — interface dédiée aux éditions Kai & Yabai


Catalogue

Vue catalogue : toutes les séries Fankai avec leur état d'organisation. Les badges indiquent si les fichiers sont déjà présents dans votre médiathèque Jellyfin.


Fonctionnalités

  • Catalogue complet des séries Fankai avec affiches, statut et badges d'état
  • Téléchargement en un clic vers qBittorrent — par épisode, par saison ou intégrale
  • Organisation automatique des fichiers téléchargés vers votre médiathèque (hardlink ou déplacement)
  • Suivi par épisode — badge ✓ organisé sur chaque épisode et compteur par saison
  • Notifications toast automatiques quand une organisation se termine
  • Page téléchargements avec statut d'organisation et badge erreurs avec détail au hover
  • Logs centralisés avec filtre par niveau/source, rotation automatique et clear depuis l'UI
  • Multi-client torrent — architecture extensible (qBittorrent supporté)
  • Authentification par mot de passe avec session JWT
  • Compatible Runtipi / Docker

Serie

Vue série : détail des épisodes avec leur état de disponibilité torrent et d'organisation dans Jellyfin.


Download

Vue téléchargements : suivi en temps réel de l'organisation avec détail des erreurs au survol.


Logs

Page logs : historique complet des événements avec filtres et gestion de la taille.


Données torrent — Scraper

Les données du catalogue sont récupérées depuis le repo fankarr-scraper.

Ce repo contient un pipeline de scripts Python qui collecte, parse et résout les torrents Fankai depuis les trackers publics, puis les croise avec l'API metadata de Fankai pour identifier chaque épisode. Les scripts tournent automatiquement toutes les 6 heures via GitHub Actions et publient le fichier torrent_final.json dans le repo.

Fankarr récupère ce fichier au démarrage et via le bouton Mettre à jour dans les paramètres. Aucun scraping ne se fait en local.


Installation

Prérequis

  • Docker + Docker Compose
  • qBittorrent accessible en réseau
  • Un dossier de téléchargements complétés (/downloads/complete ou équivalent)
  • Un dossier médiathèque pour Jellyfin (/media/Kai ou équivalent)

Docker Compose

services:
  fankarr:
    image: masutayunikon/fankarr:latest
    container_name: fankarr
    environment:
      - PUID=1000        # UID de votre utilisateur (id -u)
      - PGID=1000        # GID de votre utilisateur (id -g)
      - TZ=Europe/Paris  # Votre timezone
    volumes:
      - ./data:/app/data                        # Config, logs, base de données
      - /votre/chemin/media:/media/Kai          # Destination Jellyfin
      - /votre/chemin/complete:/downloads/complete  # Dossier complétés qBittorrent
    ports:
      - 3001:3001
    restart: unless-stopped
docker compose up -d

Fankarr sera accessible sur http://localhost:3001.

Variables d'environnement

Variable Défaut Description
PUID 1000 UID utilisateur pour les permissions fichiers
PGID 1000 GID utilisateur pour les permissions fichiers
TZ — Timezone (ex: Europe/Paris)
JWT_SECRET auto-généré Secret JWT — généré automatiquement dans data/secret.key si absent
GITHUB_RAW_URL repo scraper URL du torrent_final.json à utiliser

Premier démarrage

  1. Ouvrir http://localhost:3001
  2. Créer un mot de passe à la première connexion
  3. Aller dans Paramètres → ajouter votre client qBittorrent
  4. Vérifier les chemins completePath et mediaPath
  5. Choisir le mode d'organisation : hardlink (recommandé) ou move
  6. Retourner au catalogue et télécharger

Organisation des fichiers

Fankarr organise automatiquement les fichiers terminés toutes les 30 secondes vers la structure attendue par Jellyfin :

/media/Kai/
└── Black Lagoon Henshū/
    └── Saison 001/
        ├── Black Lagoon Henshū S01E01.mkv
        ├── Black Lagoon Henshū S01E02.mkv
        └── ...

Le mode hardlink est recommandé si vos dossiers complete et media sont sur le même filesystem — les fichiers ne sont pas déplacés, qBittorrent continue de seeder.


Runtipi

Fankarr est disponible dans l'appstore personnalisé. Pour l'installer :

  1. Dans Runtipi, aller dans Paramètres → App Stores
  2. Ajouter l'URL : https://github.com/Masutayunikon/runtipi-appstore
  3. Fankarr apparaît dans le catalogue → Installer

Stack technique

Couche Technologie
Frontend Vue 3 + Vite + Tailwind CSS
Backend Express 5 + TypeScript
Auth JWT + bcrypt
Packaging Docker (node:20-slim) + pnpm
Permissions gosu (PUID/PGID)

Liens

S
Description
No description provided
Readme
13 MiB
0 Stars 1 Watchers 0 Forks
Languages
Vue 50.7%
TypeScript 48%
CSS 1%
Dockerfile 0.2%