本文档涵盖了为Hydra中游戏提供多个下载来源的外部下载服务集成。这些服务包括高级下载加速服务和免费文件托管平台,它们扩展了除直接P2P下载以外的下载选项。
有关整体下载编排和管理的信息,请参阅下载管理器和编排。有关处理实际下载的Python RPC后端详细信息,请参阅Python RPC系统。
Hydra集成了多个外部下载服务,为用户提供多种下载选项。系统根据下载URL自动检测相应的服务,并为处理不同服务类型提供统一的界面。
高级下载加速服务
免费文件托管服务
来源:src/shared/constants.ts1-11 src/renderer/src/constants.ts5-15
系统使用URI模式匹配来自动确定哪个下载服务应处理给定的URL。此路由逻辑是集中式的,支持单个URI和批量URI处理。
getDownloadersForUri函数实现了路由逻辑
| URL模式 | 服务 | 下载器枚举 |
|---|---|---|
https://gofile.io | Gofile | Downloader.Gofile |
https://pixeldrain.com | PixelDrain | Downloader.PixelDrain |
https://www.mediafire.com | Mediafire | Downloader.Mediafire |
https://qiwi.gg | Qiwi | Downloader.Qiwi |
https://datanodes.to | Datanodes | Downloader.Datanodes |
magnet | 多个种子服务 | Downloader.Torrent, Downloader.Hydra, Downloader.TorBox, Downloader.RealDebrid |
| Real-Debrid主机 | Real-Debrid | Downloader.RealDebrid |
来源:src/shared/index.ts106-130 src/shared/index.ts132-141
每个外部服务都作为独立的API类实现,具有用于URL处理和下载链接提取的标准化方法。
来源:src/main/services/hosters/index.ts1-6
MediafireApi类通过HTML解析处理Mediafire URL和直链下载链接提取。
URL规范化
https://mediafire.com/?来处理仅含标识符的URL链接提取
错误处理
来源:src/main/services/hosters/mediafire.ts1-55
PixelDrainApi类通过重定向处理为PixelDrain文件提供直链下载URL提取。
基于重定向的提取
https://pd.cybar.xyz/代理端点浏览器头部模拟
响应处理
来源:src/main/services/hosters/pixeldrain.ts1-43
外部下载服务通过服务检测和路由机制与主下载系统集成。
系统为不同的服务故障定义了特定的错误类型,并为每种服务类型实现了适当的错误处理。
| 错误 | 描述 | 受影响的服务 |
|---|---|---|
NotCachedOnRealDebrid | 内容在Real-Debrid缓存中不可用 | Real-Debrid |
NotCachedOnTorBox | 内容在TorBox缓存中不可用 | TorBox |
GofileQuotaExceeded | Gofile下载配额超出 | Gofile |
RealDebridAccountNotAuthorized | Real-Debrid账户未正确配置 | Real-Debrid |
NotCachedOnHydra | 内容在Hydra缓存中不可用 | Hydra |
系统跟踪下载源状态以处理服务可用性和错误
UpToDate - 服务正常运行并响应Errored - 服务出现问题或不可用来源:src/shared/constants.ts55-62 src/shared/constants.ts13-16