AB Download Manager - 高效开源下载管理工具

104 阅读3分钟

AB Download Manager

GitHub Release AB Download Manager Website Telegram Group Telegram Channel Crowdin

项目描述

AB Download Manager 是一款功能强大的开源桌面应用程序,帮助用户更高效地管理和组织下载任务。该工具提供现代化的用户界面和丰富的功能特性,让下载管理变得更加简单便捷。

功能特性

  • ⚡️ 高速下载 - 优化的下载引擎提供更快的下载速度
  • 队列和调度器 - 智能管理下载队列和定时下载任务
  • 🌐 浏览器扩展 - 与浏览器无缝集成
  • 💻 跨平台支持 - 支持 Windows、Linux 和 macOS 系统
  • 🌙 多主题界面 - 提供深色和浅色主题的现代化UI
  • 🎨 自定义列 - 支持拖拽重新排序表格列
  • 🔧 主机特定设置 - 为特定主机保存用户名、密码、线程数等设置
  • 📁 智能文件管理 - 自动修复服务器提供文件名中的非法字符
  • ❤️ 完全免费开源 - 开源项目,持续更新改进

安装指南

下载安装

Official Website

Linux 系统自动安装

使用提供的安装脚本进行一键安装:

# 运行安装脚本
./installer.sh

安装脚本会自动:

  • 检测系统包管理器(支持 apt 和 dnf)
  • 安装必要的依赖项
  • 下载最新版本的程序
  • 创建桌面启动器
  • 配置应用程序

系统要求

  • Linux 系统(支持 Debian、Ubuntu、Fedora、CentOS 等)
  • 需要 curl、tar 等基础工具
  • 支持多显示器环境
  • 自动适应系统缩放比例

使用说明

基础使用

安装完成后,应用程序将出现在系统应用程序菜单中,也可以通过命令行启动:

ABDownloadManager

特色功能使用

拖拽移动操作

  • 按住 Shift 键进行拖拽即可使用移动操作

自定义下载设置

  • 为不同主机配置独立的下载参数
  • 设置自定义线程数和用户代理
  • 配置下载大小显示单位

浏览器集成

安装浏览器扩展程序,实现一键下载功能。

核心代码

安装脚本核心逻辑

#!/usr/bin/env bash
# 安装脚本核心代码

remove_if_exists() {
    local target="$1"
    if [ -z "$target" ]; then
        logger "No target specified in remove_if_exists function"
        return 1
    fi
    if [ -e "$target" ]; then
        logger "File \"$target\" Removed"
        rm -rf "$target"
    else
        logger "File \"$target\" does not exist"
    fi
}

detect_package_manager() {
    # 检测操作系统和包管理器
    if [ -f /etc/os-release ]; then
        source /etc/os-release
        local OS=${NAME}
    elif type lsb_release >/dev/null 2>&1; then
        local OS=$(lsb_release -si)
    else
        logger error "Your Linux Distro is not Supported."
        exit 1
    fi
    # 识别包管理器类型
    if `grep -E 'Debian|Ubuntu' <<< $OS > /dev/null` ; then
        systemPackage="apt"
    elif `grep -E 'Fedora|CentOS|Red Hat' <<< $OS > /dev/null`; then
        systemPackage="dnf"
    fi
}

卸载脚本核心代码

#!/usr/bin/env bash
# 卸载脚本核心代码

delete_app() {
    # 查找并终止应用程序进程
    PIDS=$(pidof "$APP_NAME") || true
    if [ -n "$PIDS" ]; then
        echo "Found $APP_NAME with PID(s): $PIDS. Attempting to kill..."
        kill $PIDS 2>/dev/null || echo "Graceful kill failed..."
        sleep 2
        PIDS=$(pidof "$APP_NAME") || true
        if [ -n "$PIDS" ]; then
            echo "Process still running. Force killing..."
            kill -9 $PIDS 2>/dev/null || echo "Force kill failed..."
        fi
    fi
    
    # 清理应用程序文件
    remove_if_exists "$HOME/.local/share/applications/com.abdownloadmanager.desktop"
    remove_if_exists "$HOME/.local/bin/$APP_NAME"
    remove_if_exists "$HOME/.local/$APP_NAME"
    remove_if_exists "$HOME/.config/autostart/com.abdownloadmanager.desktop"
    
    logger "AB Download Manager completely removed"
}

构建配置模块

// 共享构建模块配置
implementation("$definedGroupId:$definedProjectName:$projectVersion")
// 该模块可在 buildSrc 和主构建中共享使用
// 支持模块化部署,可独立迁移到其他仓库

AB Download Manager 持续更新改进,提供稳定可靠的下载管理解决方案。项目支持多语言翻译,欢迎社区参与贡献。