写点什么

Aniyomi 扩展开发指南与 Google Drive 集成方案

作者:qife122
  • 2025-10-15
    福建
  • 本文字数:2511 字

    阅读完需:约 8 分钟

Aniyomi 扩展开发指南

项目概述

Aniyomi 是一个基于 Android 6.0+的免费开源动漫阅读器,本项目提供了完整的扩展开发框架和多个功能模块,支持开发者创建自定义的动漫源扩展。项目包含 Google Drive 集成、Stremio 支持等高级功能。

功能特性

核心功能

  • 多源支持:可同时集成多个动漫数据源

  • Google Drive 集成:直接播放 Google Drive 中的视频文件

  • Stremio 支持:集成 Stremio 流媒体服务

  • 本地化管理:支持本地动漫文件管理

  • 智能过滤:提供强大的搜索和过滤功能

扩展特性

  • 模块化设计:采用 Gradle 模块化架构

  • 灵活配置:支持多种配置选项和自定义设置

  • 安全认证:集成 Google 登录和安全验证

  • 缓存优化:智能缓存机制提升性能

安装指南

环境要求

  • Android 6.0 及以上版本

  • Gradle 构建工具

  • Java/Kotlin 开发环境

手动安装

将以下链接添加到 Aniyomi 的仓库设置中:


https://raw.githubusercontent.com/yuzono/anime-repo/repo/index.min.json
复制代码

依赖配置

build.gradle中添加核心依赖:


dependencies {    implementation 'aniyomi.lib:extension-api:1.4.0'    implementation 'aniyomi.lib:crypto-aes:1.4.0'    implementation 'aniyomi.lib:unpacker:1.4.0'    implementation 'aniyomi.lib:synchrony:1.4.0'}
复制代码

使用说明

Google Drive 扩展配置

添加驱动器路径

在扩展设置中添加 Google Drive 文件夹链接:


https://drive.google.com/drive/folders/some-long-id
复制代码


支持多个路径,用分号分隔:


[Weekly episodes]https://drive.google.com/drive/folders/id1;[Monthly episodes]https://drive.google.com/drive/folders/id2
复制代码

高级选项配置

// 设置递归深度"https://drive.google.com/drive/folders/some-long-id#3"
// 设置集数范围"https://drive.google.com/drive/folders/some-long-id#1,2,7"
复制代码

Stremio 扩展配置

服务器设置

// WebUI URL配置webui_url = "https://your-stremio-server.com"
// 服务器URL用于种子流播放server_url = "https://torrent-server.com"
复制代码

账户登录

email = "your-email@example.com"password = "your-password"addons = "https://addon-server.com/manifest.json"
复制代码

核心代码

扩展主类结构

class GoogleDriveExtension : AnimeSource() {        // 核心变量定义    override val name = "Google Drive"    override val baseUrl = "https://drive.google.com"    override val lang = "all"        // 流行动漫列表    override suspend fun getPopularAnime(page: Int): AnimesPage {        // 实现获取热门动漫逻辑        return AnimesPage(animeList, hasNextPage)    }        // 搜索功能    override suspend fun getSearchAnime(        page: Int,         query: String,         filters: AnimeFilterList    ): AnimesPage {        // 实现搜索逻辑        return AnimesPage(searchResults, hasNextPage)    }        // 动漫详情    override suspend fun getAnimeDetails(anime: Anime): DetailedAnime {        // 获取动漫详细信息        return DetailedAnime.create()    }}
复制代码

过滤器实现

class DrivePathFilter : Filter.Text("Drive Path") {    override fun filter(anime: Anime): Boolean {        // 实现基于驱动器路径的过滤逻辑        return anime.url.contains(drivePath)    }}
class SingleFolderFilter : Filter.Text("Add single folder") { override fun filter(anime: Anime): Boolean { // 单文件夹过滤实现 return anime.url == folderUrl }}
复制代码

视频加载器

class GoogleDriveVideoLoader : VideoLoader() {        suspend fun loadEpisodes(anime: Anime): List<Episode> {        // 从Google Drive加载剧集        val driveFiles = fetchDriveFiles(anime.url)        return parseEpisodes(driveFiles)    }        suspend fun getVideoUrl(episode: Episode): String {        // 获取视频播放URL        return generateStreamingUrl(episode.url)    }        private suspend fun fetchDriveFiles(folderUrl: String): List<DriveFile> {        // 调用Google Drive API获取文件列表        // 实现递归遍历和文件过滤        return emptyList()    }}
复制代码

认证管理器

class GoogleAuthManager {        suspend fun authenticate(): Boolean {        // 处理Google登录流程        try {            // WebView认证实现            return performWebViewLogin()        } catch (e: Exception) {            // 处理认证失败            return false        }    }        fun clearCookies() {        // 清除认证cookies        webView.clearCache(true)        webView.clearFormData()        webView.clearHistory()        webView.clearSslPreferences()    }}
复制代码

配置管理器

class ExtensionSettingsManager(context: Context) {        private val prefs = context.getSharedPreferences("extension_settings", Context.MODE_PRIVATE)        fun saveDrivePaths(paths: String) {        // 保存驱动器路径配置        prefs.edit().putString("drive_paths", paths).apply()    }        fun getDrivePaths(): String {        // 获取已配置的驱动器路径        return prefs.getString("drive_paths", "") ?: ""    }        fun parseDrivePathOptions(path: String): DrivePathOptions {        // 解析路径配置选项(名称、深度、范围等)        return DrivePathOptions(            name = extractName(path),            depth = extractDepth(path),            range = extractRange(path)        )    }}
复制代码


以上代码展示了 Aniyomi 扩展的核心架构,包括主类定义、过滤器实现、视频加载、认证管理和配置处理等关键组件,为开发者提供了完整的扩展开发参考。更多精彩内容 请关注我的个人公众号 公众号(办公 AI 智能小助手)对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)


公众号二维码


办公AI智能小助手


公众号二维码


网络安全技术点滴分享


用户头像

qife122

关注

还未添加个人签名 2021-05-19 加入

还未添加个人简介

评论

发布
暂无评论
Aniyomi扩展开发指南与Google Drive集成方案_android_qife122_InfoQ写作社区