Baseline: pr1 HYC下载站 v2.3 before security/functional fixes

This commit is contained in:
HYC Fixer
2026-08-30 12:12:58 +08:00
commit a8e773839b
77 changed files with 38568 additions and 0 deletions
+583
View File
@@ -0,0 +1,583 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
镜像源处理器包
支持 Docker、APT、YUM、PyPI、npm、Go、Maven、Gradle 等镜像源代理
"""
from .docker import DockerMirror
from .apt import APTMirror
from .yum import YUMMirror
from .pypi import PyPIMirror
from .npm import NpmMirror
from .go import GoProxy
from .http import HttpMirror
# 镜像处理器映射
# 特殊类型使用专用处理器,其他使用通用HTTP处理器
MIRROR_HANDLERS = {
# 专用处理器
'docker': DockerMirror,
'apt': APTMirror,
'yum': YUMMirror,
'pypi': PyPIMirror,
'npm': NpmMirror,
'go': GoProxy,
# ======== 包管理器 ========
# Python
'pip': HttpMirror,
'pipenv': HttpMirror,
'poetry': HttpMirror,
'conda': HttpMirror,
'anaconda': HttpMirror,
'bandersnatch': HttpMirror,
'twine': HttpMirror,
# Node.js
'yarn': HttpMirror,
'pnpm': HttpMirror,
'bower': HttpMirror,
# Java
'maven': HttpMirror,
'gradle': HttpMirror,
# .NET
'nuget': HttpMirror,
# Ruby
'gem': HttpMirror,
'rubygems': HttpMirror,
# Rust
'cargo': HttpMirror,
'rustup': HttpMirror,
# PHP
'composer': HttpMirror,
'packagist': HttpMirror,
# Swift/Apple
'cocoapods': HttpMirror,
# C/C++
'conan': HttpMirror,
'vcpkg': HttpMirror,
# Dart/Flutter
'pub': HttpMirror,
'dart': HttpMirror,
'flutter': HttpMirror,
# Haskell
'hackage': HttpMirror,
'stackage': HttpMirror,
# OCaml
'opam': HttpMirror,
# D语言
'dub': HttpMirror,
# Nim
'nimble': HttpMirror,
# V语言
'v': HttpMirror,
# Julia
'julia': HttpMirror,
# Lua
'lua': HttpMirror,
'luarocks': HttpMirror,
# Elm
'elm': HttpMirror,
# Perl
'cpan': HttpMirror,
'cpanm': HttpMirror,
# R
'cran': HttpMirror,
# LaTeX
'ctan': HttpMirror,
# Haskell
'haskell': HttpMirror,
# ======== 容器/云原生 ========
'helm': HttpMirror,
'kubernetes': HttpMirror,
' Quay.io': HttpMirror,
'quay': HttpMirror,
'ghcr': HttpMirror,
'gcr': HttpMirror,
'harbor': HttpMirror,
# ======== 开发工具 ========
'jetbrains': HttpMirror,
'vscode': HttpMirror,
'cuda': HttpMirror,
# ======== 语言运行时 ========
'node': HttpMirror,
'python': HttpMirror,
'ruby': HttpMirror,
'php': HttpMirror,
'java': HttpMirror,
'dotnet': HttpMirror,
# ======== Linux 发行版 ========
'alpine': HttpMirror,
'arch': HttpMirror,
'aur': HttpMirror,
'centos': HttpMirror,
'debian': HttpMirror,
'fedora': HttpMirror,
'gentoo': HttpMirror,
'opensuse': HttpMirror,
'void': HttpMirror,
'freebsd': HttpMirror,
'netbsd': HttpMirror,
'openbsd': HttpMirror,
'rocky': HttpMirror,
'alma': HttpMirror,
'kali': HttpMirror,
'ubuntu': HttpMirror,
'mint': HttpMirror,
'manjaro': HttpMirror,
'slackware': HttpMirror,
'mageia': HttpMirror,
'openmandriva': HttpMirror,
# ======== 系统包管理器 ========
'homebrew': HttpMirror,
'brew': HttpMirror,
'chocolatey': HttpMirror,
'snap': HttpMirror,
'flatpak': HttpMirror,
'appimage': HttpMirror,
'winget': HttpMirror,
'scoop': HttpMirror,
# ======== 数据库/运维 ========
'postgresql': HttpMirror,
'mysql': HttpMirror,
'mariadb': HttpMirror,
'mongodb': HttpMirror,
'redis': HttpMirror,
'influxdata': HttpMirror,
'grafana': HttpMirror,
'prometheus': HttpMirror,
'elastic': HttpMirror,
'bitnami': HttpMirror,
# ======== 代码托管/源码 ========
'git': HttpMirror,
'github': HttpMirror,
'gitlab': HttpMirror,
'bitbucket': HttpMirror,
'sourceforge': HttpMirror,
# ======== 其他 ========
'pacman': HttpMirror,
'nix': HttpMirror,
'guix': HttpMirror,
'termux': HttpMirror,
'msys2': HttpMirror,
'google-fonts': HttpMirror,
'aurora': HttpMirror,
'cloudflare': HttpMirror,
'fastly': HttpMirror,
# ======== 自定义 ========
'http': HttpMirror,
'custom': HttpMirror,
}
def get_mirror_handler(mirror_type: str):
"""获取镜像处理器类"""
return MIRROR_HANDLERS.get(mirror_type)
# 各镜像类型的默认上游URL
DEFAULT_UPSTREAM_URLS = {
# ======== 包管理器 ========
# Python
'pip': 'https://pypi.org/simple',
'pipenv': 'https://pypi.org/simple',
'poetry': 'https://pypi.org/simple',
'conda': 'https://repo.anaconda.com',
'anaconda': 'https://repo.anaconda.com',
'bandersnatch': 'https://pypi.org/simple',
'twine': 'https://pypi.org/simple',
# Node.js
'yarn': 'https://registry.yarnpkg.com',
'pnpm': 'https://registry.npmjs.org',
'bower': 'https://registry.bower.io',
# Java
'maven': 'https://repo1.maven.org/maven2',
'gradle': 'https://services.gradle.org/distributions',
# .NET
'nuget': 'https://api.nuget.org/v3',
# Ruby
'gem': 'https://rubygems.org',
'rubygems': 'https://rubygems.org',
# Rust
'cargo': 'https://crates.io',
'rustup': 'https://static.rust-lang.org',
# PHP
'composer': 'https://repo.packagist.org',
'packagist': 'https://repo.packagist.org',
# Swift/Apple
'cocoapods': 'https://cdn.cocoapods.org',
# C/C++
'conan': 'https://center.conan.io',
'vcpkg': 'https://github.com/microsoft/vcpkg/archive/refs/heads/main.tar.gz',
# Dart/Flutter
'pub': 'https://pub.dev',
'dart': 'https://storage.googleapis.com/flutter_infra_release',
'flutter': 'https://storage.flutter-io.cn',
# Haskell
'hackage': 'https://hackage.haskell.org',
'stackage': 'https://www.stackage.org',
# OCaml
'opam': 'https://opam.ocaml.org',
# D语言
'dub': 'https://code.dlang.org',
# Nim
'nimble': 'https://nimble.directory',
# V语言
'v': 'https://vpm.itsgriffin.com',
# Julia
'julia': 'https://pkg.julialang.org',
# Lua
'lua': 'https://luarocks.org',
'luarocks': 'https://luarocks.org',
# Elm
'elm': 'https://package.elm-lang.org',
# Perl
'cpan': 'https://www.cpan.org',
'cpanm': 'https://www.cpan.org',
# R
'cran': 'https://cran.r-project.org',
# LaTeX
'ctan': 'https://ctan.math.illinois.edu',
# Haskell
'haskell': 'https://haskell.org',
# ======== 容器/云原生 ========
'helm': 'https://charts.helm.sh',
'kubernetes': 'https://dl.k8s.io/release',
'quay': 'https://quay.io',
'quay.io': 'https://quay.io',
'ghcr': 'https://ghcr.io',
'gcr': 'https://gcr.io',
'harbor': 'https://harbor.io',
# ======== 开发工具 ========
'jetbrains': 'https://www.jetbrains.com',
'vscode': 'https://code.visualstudio.com',
'cuda': 'https://developer.download.nvidia.com/compute/cuda/repos',
# ======== 语言运行时 ========
'node': 'https://nodejs.org/dist',
'python': 'https://www.python.org/ftp/python',
'ruby': 'https://www.ruby-lang.org',
'php': 'https://www.php.net/distributions',
'java': 'https://download.oracle.com/java',
'dotnet': 'https://dotnetcli.azureedge.net',
# ======== Linux 发行版 ========
'alpine': 'https://dl-cdn.alpinelinux.org',
'arch': 'https://mirror.archlinux.org',
'aur': 'https://aur.archlinux.org',
'centos': 'https://mirrors.aliyun.com/centos',
'debian': 'https://deb.debian.org/debian',
'fedora': 'https://mirrors.fedoraproject.org',
'gentoo': 'https://distfiles.gentoo.org',
'opensuse': 'https://download.opensuse.org',
'void': 'https://repo.voidlinux.org',
'freebsd': 'https://pkg.freebsd.org',
'netbsd': 'https://cdn.netbsd.org',
'openbsd': 'https://cdn.openbsd.org',
'rocky': 'https://download.rockylinux.org',
'alma': 'https://repo.almalinux.org',
'kali': 'http://.kali.org',
'ubuntu': 'https://releases.ubuntu.com',
'mint': 'https://packages.linuxmint.com',
'manjaro': 'https://repo.manjaro.org',
'slackware': 'https://mirrors.slackware.com',
'mageia': 'https://www.mageia.org',
'openmandriva': 'https://download.openmandriva.org',
# ======== 系统包管理器 ========
'homebrew': 'https://github.com/Homebrew/brew',
'brew': 'https://github.com/Homebrew/brew',
'chocolatey': 'https://chocolatey.org/api/v2',
'snap': 'https://snapcraft.io',
'flatpak': 'https://flathub.org',
'appimage': 'https://github.com/AppImage/AppImageHub/releases',
'winget': 'https://github.com/microsoft/winget-pkgs',
'scoop': 'https://scoop.sh',
# ======== 数据库/运维 ========
'postgresql': 'https://www.postgresql.org',
'mysql': 'https://dev.mysql.com',
'mariadb': 'https://mariadb.org',
'mongodb': 'https://www.mongodb.org',
'redis': 'https://redis.io',
'influxdata': 'https://portal.influxdata.com',
'grafana': 'https://grafana.com',
'prometheus': 'https://prometheus.io',
'elastic': 'https://www.elastic.co',
'bitnami': 'https://bitnami.com',
# ======== 代码托管/源码 ========
'git': 'https://github.com',
'github': 'https://github.com',
'gitlab': 'https://gitlab.com',
'bitbucket': 'https://bitbucket.org',
'sourceforge': 'https://sourceforge.net',
# ======== 其他 ========
'pacman': 'https://mirror.archlinux.org',
'nix': 'https://nix-community.org',
'guix': 'https://guix.gnu.org',
'termux': 'https://termux.net',
'msys2': 'https://repo.msys2.org',
'google-fonts': 'https://fonts.google.com',
'aurora': 'https://auroralinux.org',
'cloudflare': 'https://cloudflare.com',
'fastly': 'https://fastly.com',
}
def get_default_upstream(mirror_type: str) -> str:
"""获取镜像类型的默认上游URL"""
return DEFAULT_UPSTREAM_URLS.get(mirror_type, 'https://mirror.example.com')
def list_available_mirrors() -> list:
"""列出可用的镜像类型"""
return [
# ======== 专用处理器 ========
{
'type': 'docker',
'name': 'Docker Registry',
'description': 'Docker镜像代理'
},
{
'type': 'apt',
'name': 'APT (Debian/Ubuntu)',
'description': 'APT软件源代理'
},
{
'type': 'yum',
'name': 'YUM/DNF (RHEL/CentOS)',
'description': 'YUM/DNF软件源代理'
},
{
'type': 'pypi',
'name': 'PyPI',
'description': 'Python包索引代理'
},
{
'type': 'npm',
'name': 'npm Registry',
'description': 'Node.js包管理器代理'
},
{
'type': 'go',
'name': 'Go Modules',
'description': 'Go模块代理'
},
# ======== 包管理器 ========
# Python
{'type': 'pip', 'name': 'pip', 'description': 'Python pip包管理器'},
{'type': 'pipenv', 'name': 'Pipenv', 'description': 'Python Pipenv代理'},
{'type': 'poetry', 'name': 'Poetry', 'description': 'Python Poetry包管理器'},
{'type': 'conda', 'name': 'Conda', 'description': 'Python Conda包管理器'},
{'type': 'anaconda', 'name': 'Anaconda', 'description': 'Anaconda Python发行版'},
# Node.js
{'type': 'yarn', 'name': 'Yarn', 'description': 'Node.js Yarn包管理器'},
{'type': 'pnpm', 'name': 'pnpm', 'description': 'Node.js pnpm包管理器'},
{'type': 'bower', 'name': 'Bower', 'description': '前端包管理器'},
# Java
{'type': 'maven', 'name': 'Maven Central', 'description': 'Java/Maven包管理器'},
{'type': 'gradle', 'name': 'Gradle', 'description': 'Gradle构建工具分发'},
# .NET
{'type': 'nuget', 'name': 'NuGet', 'description': '.NET包管理器'},
# Ruby
{'type': 'gem', 'name': 'RubyGems', 'description': 'Ruby包管理器'},
{'type': 'rubygems', 'name': 'RubyGems', 'description': 'Ruby官方仓库'},
# Rust
{'type': 'cargo', 'name': 'Crates.io', 'description': 'Rust语言包管理器'},
{'type': 'rustup', 'name': 'Rustup', 'description': 'Rust工具链'},
# PHP
{'type': 'composer', 'name': 'Composer', 'description': 'PHP包管理器'},
{'type': 'packagist', 'name': 'Packagist', 'description': 'PHP官方包仓库'},
# Swift/Apple
{'type': 'cocoapods', 'name': 'CocoaPods', 'description': 'iOS/macOS包管理器'},
# C/C++
{'type': 'conan', 'name': 'Conan', 'description': 'C/C++包管理器'},
{'type': 'vcpkg', 'name': 'vcpkg', 'description': 'C/C++包管理器'},
# Dart/Flutter
{'type': 'pub', 'name': 'Pub.dev', 'description': 'Dart/Flutter包管理器'},
{'type': 'dart', 'name': 'Dart SDK', 'description': 'Dart SDK'},
{'type': 'flutter', 'name': 'Flutter', 'description': 'Flutter SDK'},
# Haskell
{'type': 'hackage', 'name': 'Hackage', 'description': 'Haskell包管理器'},
{'type': 'stackage', 'name': 'Stackage', 'description': 'Haskell Stackage'},
# OCaml
{'type': 'opam', 'name': 'OPAM', 'description': 'OCaml包管理器'},
# D语言
{'type': 'dub', 'name': 'Dub', 'description': 'D语言包管理器'},
# Nim
{'type': 'nimble', 'name': 'Nimble', 'description': 'Nim语言包管理器'},
# V语言
{'type': 'v', 'name': 'V PM', 'description': 'V语言包管理器'},
# Julia
{'type': 'julia', 'name': 'Julia Packages', 'description': 'Julia语言包管理器'},
# Lua
{'type': 'lua', 'name': 'Lua', 'description': 'Lua语言'},
{'type': 'luarocks', 'name': 'LuaRocks', 'description': 'Lua包管理器'},
# Elm
{'type': 'elm', 'name': 'Elm Packages', 'description': 'Elm语言包管理器'},
# Perl
{'type': 'cpan', 'name': 'CPAN', 'description': 'Perl包管理器'},
{'type': 'cpanm', 'name': 'cpanm', 'description': 'Perl cpanminus'},
# R
{'type': 'cran', 'name': 'CRAN', 'description': 'R语言包仓库'},
# LaTeX
{'type': 'ctan', 'name': 'CTAN', 'description': 'LaTeX包管理器'},
# ======== 容器/云原生 ========
{'type': 'helm', 'name': 'Helm Charts', 'description': 'Kubernetes Helm包'},
{'type': 'kubernetes', 'name': 'Kubernetes', 'description': 'Kubernetes发行版'},
{'type': 'quay', 'name': 'Quay.io', 'description': 'Quay容器仓库'},
{'type': 'ghcr', 'name': 'GitHub Container Registry', 'description': 'GitHub容器仓库'},
{'type': 'gcr', 'name': 'Google Container Registry', 'description': 'Google容器仓库'},
{'type': 'harbor', 'name': 'Harbor', 'description': 'Harbor容器仓库'},
# ======== 开发工具 ========
{'type': 'jetbrains', 'name': 'JetBrains', 'description': 'JetBrains IDE'},
{'type': 'vscode', 'name': 'VS Code', 'description': 'Visual Studio Code'},
{'type': 'cuda', 'name': 'CUDA', 'description': 'NVIDIA CUDA工具包'},
# ======== 语言运行时 ========
{'type': 'node', 'name': 'Node.js', 'description': 'Node.js官方'},
{'type': 'python', 'name': 'Python', 'description': 'Python官方'},
{'type': 'ruby', 'name': 'Ruby', 'description': 'Ruby官方'},
{'type': 'php', 'name': 'PHP', 'description': 'PHP官方'},
{'type': 'java', 'name': 'Java JDK', 'description': 'Oracle/OpenJDK'},
{'type': 'dotnet', 'name': '.NET SDK', 'description': '.NET SDK'},
# ======== Linux 发行版 ========
{'type': 'alpine', 'name': 'Alpine Linux', 'description': 'Alpine Linux'},
{'type': 'arch', 'name': 'Arch Linux', 'description': 'Arch Linux'},
{'type': 'aur', 'name': 'AUR', 'description': 'Arch Linux AUR'},
{'type': 'centos', 'name': 'CentOS', 'description': 'CentOS'},
{'type': 'debian', 'name': 'Debian', 'description': 'Debian'},
{'type': 'fedora', 'name': 'Fedora', 'description': 'Fedora'},
{'type': 'gentoo', 'name': 'Gentoo', 'description': 'Gentoo'},
{'type': 'opensuse', 'name': 'openSUSE', 'description': 'openSUSE'},
{'type': 'void', 'name': 'Void Linux', 'description': 'Void Linux'},
{'type': 'freebsd', 'name': 'FreeBSD', 'description': 'FreeBSD'},
{'type': 'netbsd', 'name': 'NetBSD', 'description': 'NetBSD'},
{'type': 'openbsd', 'name': 'OpenBSD', 'description': 'OpenBSD'},
{'type': 'rocky', 'name': 'Rocky Linux', 'description': 'Rocky Linux'},
{'type': 'alma', 'name': 'AlmaLinux', 'description': 'AlmaLinux'},
{'type': 'kali', 'name': 'Kali Linux', 'description': 'Kali Linux'},
{'type': 'ubuntu', 'name': 'Ubuntu', 'description': 'Ubuntu'},
{'type': 'mint', 'name': 'Linux Mint', 'description': 'Linux Mint'},
{'type': 'manjaro', 'name': 'Manjaro', 'description': 'Manjaro Linux'},
{'type': 'slackware', 'name': 'Slackware', 'description': 'Slackware'},
{'type': 'mageia', 'name': 'Mageia', 'description': 'Mageia Linux'},
{'type': 'openmandriva', 'name': 'OpenMandriva', 'description': 'OpenMandriva'},
# ======== 系统包管理器 ========
{'type': 'homebrew', 'name': 'Homebrew', 'description': 'macOS Homebrew'},
{'type': 'brew', 'name': 'Brew', 'description': 'Homebrew'},
{'type': 'chocolatey', 'name': 'Chocolatey', 'description': 'Windows Chocolatey'},
{'type': 'snap', 'name': 'Snap Store', 'description': 'Snap应用商店'},
{'type': 'flatpak', 'name': 'Flatpak', 'description': 'Flatpak应用'},
{'type': 'appimage', 'name': 'AppImage', 'description': 'AppImage应用'},
{'type': 'winget', 'name': 'winget', 'description': 'Windows winget'},
{'type': 'scoop', 'name': 'Scoop', 'description': 'Windows Scoop'},
# ======== 数据库/运维 ========
{'type': 'postgresql', 'name': 'PostgreSQL', 'description': 'PostgreSQL数据库'},
{'type': 'mysql', 'name': 'MySQL', 'description': 'MySQL数据库'},
{'type': 'mariadb', 'name': 'MariaDB', 'description': 'MariaDB数据库'},
{'type': 'mongodb', 'name': 'MongoDB', 'description': 'MongoDB数据库'},
{'type': 'redis', 'name': 'Redis', 'description': 'Redis数据库'},
{'type': 'influxdata', 'name': 'InfluxData', 'description': 'InfluxDB时序数据库'},
{'type': 'grafana', 'name': 'Grafana', 'description': 'Grafana可视化'},
{'type': 'prometheus', 'name': 'Prometheus', 'description': 'Prometheus监控'},
{'type': 'elastic', 'name': 'Elastic', 'description': 'Elasticsearch'},
# ======== 代码托管 ========
{'type': 'github', 'name': 'GitHub', 'description': 'GitHub代码托管'},
{'type': 'gitlab', 'name': 'GitLab', 'description': 'GitLab代码托管'},
{'type': 'bitbucket', 'name': 'Bitbucket', 'description': 'Bitbucket代码托管'},
{'type': 'sourceforge', 'name': 'SourceForge', 'description': 'SourceForge开源托管'},
# ======== 其他 ========
{'type': 'nix', 'name': 'Nix/NixOS', 'description': 'Nix包管理器'},
{'type': 'guix', 'name': 'Guix', 'description': 'Guix包管理器'},
{'type': 'termux', 'name': 'Termux', 'description': 'Termux包管理器'},
{'type': 'msys2', 'name': 'MSYS2', 'description': 'MSYS2包管理器'},
{'type': 'google-fonts', 'name': 'Google Fonts', 'description': 'Google字体库'},
# ======== 自定义 ========
{'type': 'custom', 'name': '自定义HTTP', 'description': '自定义HTTP镜像源'}
]