纵横中文网手机客户端
42.26MB · 2025-10-18
Aniyomi是一个基于Android 6.0+的免费开源动漫阅读器,本项目提供了完整的扩展开发框架和多个功能模块,支持开发者创建自定义的动漫源扩展。项目包含Google Drive集成、Stremio支持等高级功能。
将以下链接添加到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文件夹链接:
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"
// WebUI URL配置
webui_url = "https://your-stremio-server.com"
// 服务器URL用于种子流播放
server_url = "https://torrent-server.com"
email = "[email protected]"
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扩展的核心架构,包括主类定义、过滤器实现、视频加载、认证管理和配置处理等关键组件,为开发者提供了完整的扩展开发参考。