{"id":37016361,"url":"https://github.com/nfd-parser/parser-android","last_synced_at":"2026-01-14T01:50:48.480Z","repository":{"id":320542566,"uuid":"1082485656","full_name":"nfd-parser/parser-android","owner":"nfd-parser","description":null,"archived":false,"fork":false,"pushed_at":"2025-11-16T04:26:38.000Z","size":643,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-11-16T06:10:55.547Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nfd-parser.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-24T10:04:47.000Z","updated_at":"2025-11-16T04:26:41.000Z","dependencies_parsed_at":"2025-10-24T12:13:01.860Z","dependency_job_id":"1936b6c5-f22a-402f-91e2-cfe4e71e1945","html_url":"https://github.com/nfd-parser/parser-android","commit_stats":null,"previous_names":["nfd-parser/parser-android"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/nfd-parser/parser-android","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nfd-parser%2Fparser-android","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nfd-parser%2Fparser-android/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nfd-parser%2Fparser-android/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nfd-parser%2Fparser-android/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nfd-parser","download_url":"https://codeload.github.com/nfd-parser/parser-android/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nfd-parser%2Fparser-android/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28408691,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T00:40:43.272Z","status":"ssl_error","status_checked_at":"2026-01-14T00:40:42.636Z","response_time":56,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-14T01:50:47.841Z","updated_at":"2026-01-14T01:50:48.474Z","avatar_url":"https://github.com/nfd-parser.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# parser-android\n\nNFD 解析器模块（Android兼容版）：聚合各类网盘/分享页解析，统一输出文件列表与下载信息，供上层下载器使用。\n\n- 语言：Java 17\n- 构建：Maven\n- 模块版本：10.2.1\n- **Android兼容**：使用OkHttp替代Vert.x，完美支持Android平台\n\n## 依赖（Maven Central）\n```xml\n\u003cdependency\u003e\n  \u003cgroupId\u003ecn.qaiu\u003c/groupId\u003e\n  \u003cartifactId\u003eparser-android\u003c/artifactId\u003e\n  \u003cversion\u003e10.2.1\u003c/version\u003e\n\u003c/dependency\u003e\n```\n- Gradle Groovy DSL：\n```groovy\ndependencies {\n  implementation 'cn.qaiu:parser-android:10.2.1'\n}\n```\n- Gradle Kotlin DSL：\n```kotlin\ndependencies {\n  implementation(\"cn.qaiu:parser-android:10.2.1\")\n}\n```\n\n## Android 兼容性说明\n\n### OkHttp 替代 Vert.x\n本项目专门为Android平台优化，使用OkHttp替代了Vert.x作为HTTP客户端：\n\n- **OkHttp 5.2.0**：现代化的HTTP客户端，完美支持Android\n- **异步处理**：基于CompletableFuture，与Android异步编程模式兼容\n- **网络优化**：支持HTTP/2、连接池、缓存等现代网络特性\n- **轻量级**：相比Vert.x更轻量，适合移动端应用\n\n### Android 集成优势\n1. **无额外依赖**：OkHttp是Android生态的标准HTTP库\n2. **性能优化**：针对移动网络环境优化\n3. **内存友好**：减少不必要的线程和资源消耗\n4. **兼容性好**：支持Android 5.0+（API 21+）\n\n### 使用示例（Android）\n```java\n// Android 环境下的使用方式\nCompletableFuture\u003cList\u003cFileInfo\u003e\u003e future = ParserCreate\n    .fromShareUrl(\"https://share.feijipan.com/s/3pMsofZd\")\n    .createTool()\n    .parseFileList()\n    .toCompletionStage().toCompletableFuture();\n\n// 在Android主线程中处理结果\nfuture.thenAccept(fileList -\u003e {\n    // 更新UI\n    runOnUiThread(() -\u003e {\n        adapter.updateData(fileList);\n    });\n}).exceptionally(throwable -\u003e {\n    // 处理错误\n    Log.e(\"Parser\", \"解析失败\", throwable);\n    return null;\n});\n```\n\n## 核心 API 速览\n- **OkHttpClient**：内置OkHttp客户端，无需额外配置\n- **ParserCreate**：从分享链接或类型构建解析器；生成短链 path\n- **IPanTool**：统一解析接口（parse、parseFileList、parseById）\n- **CustomParserRegistry**：自定义解析器注册中心（支持扩展）\n- **CustomParserConfig**：自定义解析器配置类（支持扩展）\n\n## 使用示例（极简）\n```java\n// 同步方式\nList\u003cFileInfo\u003e list = ParserCreate\n  .fromShareUrl(\"https://share.feijipan.com/s/3pMsofZd\")\n  .createTool()\n  .parseFileList()\n  .toCompletionStage().toCompletableFuture().join();\n\n// 异步方式（推荐Android使用）\nCompletableFuture\u003cList\u003cFileInfo\u003e\u003e future = ParserCreate\n  .fromShareUrl(\"https://share.feijipan.com/s/3pMsofZd\")\n  .createTool()\n  .parseFileList()\n  .toCompletionStage().toCompletableFuture();\n```\n完整示例与调试脚本见 doc/README.md。\n\n## 快速开始\n- 环境：JDK \u003e= 17，Maven \u003e= 3.9\n- 构建/安装：\n```bash\nmvn clean package -DskipTests\nmvn install\n```\n- 测试：\n```bash\nmvn test\n```\n\n### Android 项目集成\n在Android项目的 `build.gradle` 中添加：\n```gradle\nandroid {\n    compileOptions {\n        sourceCompatibility JavaVersion.VERSION_17\n        targetCompatibility JavaVersion.VERSION_17\n    }\n}\n\ndependencies {\n    implementation 'cn.qaiu:parser-android:10.2.1'\n    // OkHttp 已包含，无需额外添加\n}\n```\n\n## 自定义解析器扩展\n本模块支持用户自定义解析器扩展。通过简单的配置和注册，你可以添加自己的网盘解析实现：\n\n```java\n// 1. 继承 PanBase 抽象类（推荐）\npublic class MyPanTool extends PanBase {\n    public MyPanTool(ShareLinkInfo info) { \n        super(info);\n    }\n    @Override\n    public Future\u003cString\u003e parse() { \n        // 使用 PanBase 提供的 OkHttp 客户端\n        Request request = new Request.Builder()\n            .url(\"https://api.example.com\")\n            .build();\n        \n        client.newCall(request).enqueue(new Callback() {\n            @Override\n            public void onResponse(Call call, Response response) throws IOException {\n                if (response.isSuccessful()) {\n                    String json = response.body().string();\n                    complete(extractUrlFromJson(json));\n                } else {\n                    handleFail(\"请求失败: \" + response.code());\n                }\n            }\n            \n            @Override\n            public void onFailure(Call call, IOException e) {\n                handleFail(\"网络错误: \" + e.getMessage());\n            }\n        });\n        return future();\n    }\n}\n\n// 2. 注册到系统\nCustomParserConfig config = CustomParserConfig.builder()\n    .type(\"mypan\")\n    .displayName(\"我的网盘\")\n    .toolClass(MyPanTool.class)\n    .build();\nCustomParserRegistry.register(config);\n\n// 3. 使用自定义解析器（仅支持 fromType 方式）\nIPanTool tool = ParserCreate.fromType(\"mypan\")\n    .shareKey(\"abc123\")\n    .createTool();\nString url = tool.parseSync();\n```\n\n**详细文档：** [自定义解析器扩展指南](doc/CUSTOM_PARSER_GUIDE.md)\n\n## 文档\n- doc/README.md：解析约定、示例、IDEA `.http` 调试\n- **doc/CUSTOM_PARSER_GUIDE.md：自定义解析器扩展完整指南**\n- **doc/ANDROID_MIGRATION_GUIDE.md：Android迁移指南**\n- **doc/WEBCLIENT_ANDROID_COMPATIBILITY.md：OkHttp Android兼容性说明**\n\n## 目录结构\n- src/main/java/cn/qaiu/entity：通用实体（如 FileInfo）\n- src/main/java/cn/qaiu/parser：解析框架 \u0026 各站点实现（impl）\n- src/main/java/cn/qaiu/util：工具类（OkHttp相关工具）\n- src/test/java：单测与示例\n- src/main/resources/custom-parsers：自定义解析器脚本\n\n## 许可证\nMIT License\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnfd-parser%2Fparser-android","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnfd-parser%2Fparser-android","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnfd-parser%2Fparser-android/lists"}