Commit Graph
260 Commits
Author SHA1 Message Date
MasutaYunikon bb02ea6cf8 fix: android build name 2026-04-07 16:13:57 +02:00
MasutaYunikon 887beae614 Merge remote-tracking branch 'origin/main' 2026-04-07 16:11:07 +02:00
MasutaYunikon 1290d5c925 feat: add build for arm64
feat: add developer settings on settings and dashboard debug
2026-04-07 16:10:57 +02:00
MasutaYunikon dffb340250 Merge pull request #63 from Masutayunikon/release-please--branches--main
chore(main): release 3.1.1
v3.1.1
2026-03-28 10:45:16 +01:00
MasutaYunikon 059298f537 chore(main): release 3.1.1 2026-03-28 10:44:47 +01:00
MasutaYunikon 0ba2144f2f Merge remote-tracking branch 'origin/main' 2026-03-28 10:44:27 +01:00
MasutaYunikon 83a2fb9860 fix: remove plex settings 2026-03-28 10:44:13 +01:00
MasutaYunikon 5445fadf94 Merge remote-tracking branch 'origin/main' 2026-03-28 10:36:26 +01:00
MasutaYunikon 6d110b86dd fix: torrent for multiple seasons is now working 2026-03-28 10:36:16 +01:00
MasutaYunikon 2ef6d4738a Merge pull request #62 from Masutayunikon/release-please--branches--main
chore(main): release 3.1.0
v3.1.0
2026-03-27 22:42:34 +01:00
MasutaYunikon 65f7d4e109 chore(main): release 3.1.0 2026-03-27 22:40:50 +01:00
MasutaYunikon 6166c370ef Merge remote-tracking branch 'origin/main' 2026-03-27 22:40:28 +01:00
MasutaYunikon ad1cade6bf feat: use original_name and formated_name from scraper to bypass timeout 2026-03-27 22:40:21 +01:00
MasutaYunikon 803519062a Merge pull request #61 from Masutayunikon/release-please--branches--main
chore(main): release 3.0.0
v3.0.0
2026-03-27 07:03:30 +01:00
MasutaYunikon 6246c44994 chore(main): release 3.0.0 2026-03-27 07:03:00 +01:00
MasutaYunikon 9780aee40d feat!: refonte complète du frontend et amélioration des logs serveur
BREAKING CHANGE: nouvelle architecture frontend avec layout sidebar, système de thèmes et routes restructurées

### Frontend
- nouveau layout global `AppLayout.vue` avec sidebar de navigation inspirée Radarr/Sonarr
- sidebar configurable via un objet `NavItem[]` avec support parents/enfants cliquables
- 3 thèmes CSS (Indigo Électrique, Crimson Night, Teal Froid) persistés via localStorage
- switcher de thème en bas de sidebar avec pastilles colorées
- logo FanKarr cliquable, bouton déconnexion discret dans le header sidebar
- badge animé sur "Activité" affichant le nombre de téléchargements en cours
- migration complète vers Tailwind v4 avec variables CSS `@theme`
- classes utilitaires globales : `btn-primary`, `btn-secondary`, `settings-card`, `settings-input`

### Vues
- `SeriesView` : barre colorée en bas des affiches (vert/bleu/orange), dropdown filtres, boutons taille S/M/L/XL persistés
- `SerieView` : bouton état unique par épisode (↓/⟳/✓/✗), badges simplifiés, toast via `useToast` global
- `ActivityView` : onglets pill, stats, toggle "masquer importés", polling silencieux
- `DashboardView` : stats catalogue/importées/en cours/erreurs, torrents actifs, derniers imports
- `SettingsView` découpée en 3 vues indépendantes : `DownloadClientView`, `MediaManagementView`, `CatalogueView`
- `LogsView` déplacée dans `src/views/settings/`
- `AuthView` : migré au système de thème

### Composants
- `SidebarNavItem` : support badge, chevron masqué si badge présent
- `SettingsToggle` : composant réutilisable `v-model`
- `FolderPicker` : migré au thème, `Teleport` intégré
- `ToastContainer` : déplacé en bas droite, groupement des toasts similaires avec badge count

### Router
- `AppLayout` comme layout racine pour toutes les routes protégées
- `/auth` reste hors layout
- redirections `/` → `/series`, `/downloads` → `/activity`
- `SettingsLayout` avec titre dynamique par route
- scroll géré sur `<main id="main-scroll">` dans `AppLayout`

### Stores & composables
- nouveau store `downloads` partagé pour le badge sidebar
- `usePosterSize` : taille des affiches persistée en localStorage
- `useToast` : groupement des toasts du même type, timer reset au lieu d'empilement

### Serveur
- logs structurés via `logger` dans `auth.ts`, `organize.ts`, `organize-worker.ts`, `torrent-clients/index.ts`, `qbittorrent.ts`, `index.ts`
- suppression des `console.log/error/warn` en faveur de `logger.info/warn/error/debug`
- messages worker routés vers `logger` via `organize.ts`
- logs `debug` pour les événements verbeux (healthcheck, skip, worker terminé)
2026-03-27 07:02:31 +01:00
MasutaYunikon e5e8baf1fd Merge remote-tracking branch 'origin/main' 2026-03-26 07:06:02 +01:00
MasutaYunikon 79e73b603f feat: hors-fankai badge and fix series datetime and typo 2026-03-26 07:05:53 +01:00
MasutaYunikon 49c3a09129 Merge pull request #60 from Masutayunikon/release-please--branches--main
chore(main): release 2.4.1
v2.4.1
2026-03-24 22:01:53 +01:00
MasutaYunikon 4a24b7fa0f chore(main): release 2.4.1 2026-03-24 22:01:36 +01:00
MasutaYunikon 80aef10230 Merge remote-tracking branch 'origin/main' 2026-03-24 22:00:58 +01:00
MasutaYunikon 92055caf4d fix: add usePlexTitles to return function 2026-03-24 22:00:47 +01:00
MasutaYunikon d8e284b0de Merge pull request #59 from Masutayunikon/release-please--branches--main
chore(main): release 2.4.0
v2.4.0
2026-03-24 21:55:31 +01:00
MasutaYunikon 0b98269695 chore(main): release 2.4.0 2026-03-24 19:19:44 +01:00
MasutaYunikon 402946b462 Merge remote-tracking branch 'origin/main' 2026-03-24 19:19:03 +01:00
MasutaYunikon c374ceb0a7 fix(organize): sanitisation des caractères spéciaux dans les noms de dossiers
Le titre "Kaguya-sama : Love is War Henshū" contenait un ":" qui causait
une troncation du nom de dossier sur certains systèmes de fichiers.
sanitizeDirName() remplace ":" par " -" et supprime les autres caractères
interdits (<>"/\|?*).

feat(settings): option titres optimisés Plex (title_for_plex)

Nouveau toggle "Noms de dossiers" dans les paramètres. Quand activé,
utilise le champ title_for_plex de l'API Fankai pour les noms de dossiers
au lieu du titre brut — évite les caractères spéciaux incompatibles avec
Plex et les systèmes de fichiers Windows/NTFS.

enrichSeriesDataWithOriginalFilenames fetche maintenant /series/{id} pour
injecter title_for_plex dans chaque serieData avant de passer au worker.

fix(organize): retry sur les erreurs réseau dans enrichSeriesDataWithOriginalFilenames

2 tentatives avec 500ms d'attente entre les deux pour les erreurs réseau
ponctuelles sur /seasons/{id}/episodes — évite que formatted_name soit null
à cause d'un timeout isolé au démarrage.

fix(catalogue): activeTorrents filtre désormais uniquement state=downloading

Les torrents en seeding étaient inclus dans activeTorrents, forçant
computeSerieDownloadState à retourner "downloading" même pour les séries
entièrement importées. Les badges affichaient "EN COURS" au lieu de "IMPORTÉ".
2026-03-24 19:18:51 +01:00
MasutaYunikon 6f21b0a5cd Merge pull request #58 from Masutayunikon/release-please--branches--main
chore(main): release 2.3.3
v2.3.3
2026-03-24 03:41:25 +01:00
MasutaYunikon 1c36bb7688 chore(main): release 2.3.3 2026-03-24 03:39:35 +01:00
MasutaYunikon 82a9d51731 Merge remote-tracking branch 'origin/main' 2026-03-24 03:39:03 +01:00
MasutaYunikon ac03aa3c11 fix: recuperation des episodes avec un delai 2026-03-24 03:38:54 +01:00
MasutaYunikon d8173a6d72 Merge pull request #57 from Masutayunikon/release-please--branches--main
chore(main): release 2.3.2
v2.3.2
2026-03-24 02:55:28 +01:00
MasutaYunikon 60c9ffa14c chore(main): release 2.3.2 2026-03-24 02:54:52 +01:00
MasutaYunikon 0751c2edcc Merge remote-tracking branch 'origin/main' 2026-03-24 02:54:20 +01:00
MasutaYunikon 7e050a699d fix: badge catalogue sur les series importé 2026-03-24 02:54:12 +01:00
MasutaYunikon 9badada4a3 Merge pull request #56 from Masutayunikon/release-please--branches--main
chore(main): release 2.3.1
v2.3.1
2026-03-24 02:43:17 +01:00
MasutaYunikon 5e881272a1 chore(main): release 2.3.1 2026-03-24 02:42:59 +01:00
MasutaYunikon a229a1eb3b Merge remote-tracking branch 'origin/main' 2026-03-24 02:42:27 +01:00
MasutaYunikon b621adc6f6 fix: add readsettings import 2026-03-24 02:42:19 +01:00
MasutaYunikon 7d3bc413ef Merge pull request #55 from Masutayunikon/release-please--branches--main
chore(main): release 2.3.0
v2.3.0
2026-03-24 02:36:52 +01:00
MasutaYunikon 6f9b7892b1 chore(main): release 2.3.0 2026-03-24 02:36:06 +01:00
MasutaYunikon 2332b544e6 fix: add config directory to .gitignore 2026-03-24 02:35:34 +01:00
MasutaYunikon 3b091b7aa8 Merge remote-tracking branch 'origin/main' 2026-03-24 02:32:56 +01:00
MasutaYunikon e1e430a968 feat(settings): ajout du toggle import automatique (activé par défaut)
Nouveau champ autoImport dans Settings — quand désactivé, le worker ne se
lance jamais automatiquement. Activé par défaut pour conserver le comportement
existant. Le toggle est exposé dans SettingsView avec une description claire.

feat(organize): nommage des fichiers selon original_filename ou formatted_name

Selon l'option NFO :
- nfoSupport activé → original_filename (correspond aux .nfo GitLab)
- nfoSupport désactivé → formatted_name de l'API Fankai (format Jellyfin/Plex
  standardisé, ex: Serie.S01E01.MULTI.1080p.x264-FANKAI.mkv)

formatted_name est maintenant injecté dans enrichSeriesDataWithOriginalFilenames
en même temps que original_filename.

feat(catalogue): tri du catalogue avec 4 options

- A→Z (défaut, localeCompare français)
- Z→A
- Récents (par année décroissante)
- Importés (fichiers importés en premier)

feat(catalogue): badge IMPORTÉ et refresh automatique post-import

- Renommage ORGANISÉ → IMPORTÉ sur les affiches et dans les toasts
- Le catalogue se rafraîchit automatiquement quand fetchOrganizeNotifs
  détecte de nouvelles notifications d'import

feat(settings): textes génériques sans mention de logiciels spécifiques

- "Dossier Complétion" → "Dossier Téléchargements"
- "Dossier Jellyfin" → "Médiathèque Fankai"
- "Mode Organisation" → "Mode Import"
- "Organisation" → "Import" partout dans l'interface

feat(downloads): bouton Organiser tout renommé Importer tout

Itère sur tous les torrents seeding non importés et les envoie
séquentiellement à /api/organize avec feedback toast de progression.
2026-03-24 02:32:47 +01:00
MasutaYunikon 2d49125e09 Merge pull request #54 from Masutayunikon/release-please--branches--main
chore(main): release 2.2.0
v2.2.0
2026-03-23 15:38:51 +01:00
MasutaYunikon 721047c95f chore(main): release 2.2.0 2026-03-23 15:38:03 +01:00
MasutaYunikon 74662de2b6 Merge remote-tracking branch 'origin/main' 2026-03-23 15:37:23 +01:00
MasutaYunikon 84ef0333f3 feat: add organize all button
fix: organizer reuse the wrong name for gitlab path
2026-03-23 15:37:07 +01:00
MasutaYunikon c6624843b9 Merge pull request #53 from Masutayunikon/release-please--branches--main
chore(main): release 2.1.3
v2.1.3
2026-03-23 06:09:59 +01:00
MasutaYunikon 8bd30913cd chore(main): release 2.1.3 2026-03-23 06:09:36 +01:00
MasutaYunikon d7eb932ed3 Merge remote-tracking branch 'origin/main' 2026-03-23 06:09:04 +01:00