- ✅ 添加类型注解 (Type Hints)
- ✅ 使用 PEP 8 命名规范 (snake_case)
- ✅ 移除注释掉的代码和调试语句
- ✅ 统一字符串格式化 (f-strings)
- ✅ 使用
isinstance()替代type() == type()
- ✅ 修复
add_torrent方法中未定义变量torrent_file_position的错误 - ✅ 修复
get_global_option和change_global_option不应该需要gid参数的问题 - ✅ 移除无用的
nofification方法 (拼写错误且未完成)
- ✅ 消除重复的异常处理代码
- ✅ 使用属性装饰器 (
@property) 简化 URL 和 token 的获取 - ✅ 提取公共方法
_normalize_keys和_normalize_uris减少重复 - ✅ 简化
setServer参数处理逻辑
- ✅ 支持在初始化时直接传入配置参数
- ✅ 移除不必要的
rpc变量,直接硬编码为常量 - ✅ 使用常量定义默认值 (
DEFAULT_HOST,DEFAULT_PORT等) - ✅ 改进文档字符串格式 (Google 风格)
- ✅ 将代码重命名为
aria2_client.py更语义化 - ✅ 添加
__init__.py使其成为标准的 Python 包 - ✅ 添加
example.py演示正确用法 - ✅ 使用可选类型
Optional[str]明确参数可否为空
def setServer(self, server_add='', server_port='6800', token=''):
#server信息更改
rpc = "rpc"
#更改服务器地址
if server_add == '':
pass
else:
if server_add[-1] == "/":
server_add = server_add[:-1]
self.server_add = server_add
#更改端口
if server_port == '':
pass
else:
self.server_port = str(server_port)
if token == '':
pass
else:
self.token = str(token)
self.server_url = self.server_add + ":" + self.server_port + "/" + rpc
self.server = xmlrpc_client.ServerProxy(self.server_url)def set_server(
self,
host: Optional[str] = None,
port: Optional[int] = None,
token: Optional[str] = None,
) -> None:
"""Update server connection settings."""
if host is not None:
self._host = host.rstrip("/")
if port is not None:
self._port = port
if token is not None:
self._token = token
self._server = self._create_server_proxy()from aria2_client import Aria2Client
# 初始化
client = Aria2Client(host="http://127.0.0.1", port=6800, token="your_token")
# 添加下载
gid = client.add_uri("https://example.com/file.zip")
# 查看状态
status = client.tell_status(gid, ["gid", "status"])
# 暂停下载
client.pause(gid)原始的 Aria2Client 类名仍然可用,但方法名已更新为 PEP 8 规范:
setServer()→set_server()addUri()→add_uri()addTorrent()→add_torrent()checkConnection()→check_connection()- ... 等
建议迁移到新的命名规范。