À propos du projet

OtakuWorld est un projet combiné issu des applications MangaWorld et AnimeWorld de l'auteur. Comme elles partageaient une grande partie de la logique de base, elles ont été fusionnées en un seul dépôt qui produit plusieurs applications distinctes avec une interface commune et du code partagé. Applications de la suite : - AnimeWorld : diffuse et télécharge des anime depuis divers sites vidéo, les lit dans un lecteur vidéo intégré et prend en charge la diffusion sur les appareils compatibles Chromecast. - AnimeWorldTV : une version uniquement Android TV pour diffuser anime, TV et films, avec un lecteur intégré, des favoris synchronisés avec AnimeWorld et un sauteur d'ouverture qui avance de 90 secondes. - MangaWorld : lit des mangas depuis divers sites de mangas. - NovelWorld : lit des romans depuis divers sites de romans. - Otaku Manager : affiche les favoris de toutes les applications OtakuWorld et nécessite une connexion ; écrit en pur Jetpack Compose sans vues XML. Les fonctionnalités partagées incluent la connexion au compte pour synchroniser les favoris et les épisodes regardés entre appareils, des favoris pouvant alerter sur les mises à jour, le partage d'anime ou de manga et leur ouverture dans l'application, ainsi qu'un dictionnaire/glossaire personnel de termes pouvant être géré depuis les paramètres ou ajouté rapidement pendant la lecture dans MangaWorld. Sources et ponts : les applications ne fournissent pas de sources elles-mêmes mais incluent quelques sources par défaut. Les sources compatibles avec Mihon fonctionnent avec MangaWorld après installation d'un pont, et les sources compatibles avec Aniyomi fonctionnent avec AnimeWorld après installation d'un pont. La synchronisation cloud utilise actuellement Firebase, mais le README indique que cela sera remplacé par une approche de configuration manuelle nécessitant un serveur ; un serveur de base limité au réseau local est fourni et de l'aide est demandée pour une solution plus robuste. Builds desktop : MangaWorld, AnimeWorld et NovelWorld ont chacun des builds JVM/Desktop Compose qui partagent l'interface avec les applications Android via des modules partagés et sont lancés avec des tâches Gradle run. MangaWorld Desktop prend en charge la navigation, la recherche, les favoris, les listes et les détails, la lecture des chapitres dans le lecteur intégré, les téléchargements avec un répertoire configurable et les listes personnalisées. AnimeWorld Desktop prend en charge la navigation, la recherche, les favoris, les listes d'épisodes et les détails, et les téléchargements de base, mais pas la lecture vidéo dans l'application ni la diffusion. NovelWorld Desktop prend en charge la navigation, la recherche, les favoris et la lecture, sans prise en charge du téléchargement sur aucune plateforme. Scraper web personnalisé : un module fournit un pipeline de scraping HTML à la demande qui extrait les URL d'images de mangas et les URL de flux vidéo d'anime depuis des pages web publiques à l'aide d'un agent LLM sur appareil. Le flux récupère le HTML avec Ktor, le nettoie à au plus 8 000 caractères, le transmet à un Koog AIAgent et renvoie un modèle sérialisable contenant les URL extraites. Il gère les pages de chapitres de mangas (img src, data-src, data-lazy-src) et les pages d'épisodes d'anime (URL de vidéo/source et variables JavaScript .mp4 ou .m3u8). Les limitations documentées incluent l'absence d'authentification, de contournement de CAPTCHA, de rendu JavaScript, de mise en cache et l'extraction d'URL uniquement. Les technologies utilisées sont Kotlin Multiplatform pour Android et JVM Desktop, Ktor avec le moteur OkHttp, Koog pour l'extraction JSON structurée et kotlinx.serialization. La construction locale nécessite de passer la variante de build à une variante noFirebase. Le projet fournit des workflows de publication nightly et main, une communauté Discord et des directives de contribution demandant aux contributeurs de créer une branche, d'apporter des modifications, d'ouvrir une pull request et d'ajouter le mainteneur comme relecteur. Le README note également que l'auteur n'est pas affilié à l'application Tachiyomi ni à ses forks GitHub.