2024-01-25 16:36:25 +00:00
|
|
|
|
from datetime import datetime
|
|
|
|
|
|
|
|
|
|
import qbittorrentapi
|
2024-01-28 16:19:09 +00:00
|
|
|
|
|
2024-01-25 16:36:25 +00:00
|
|
|
|
'''
|
|
|
|
|
官方文档:https://qbittorrent-api.readthedocs.io/en/latest/introduction.html
|
|
|
|
|
'''
|
|
|
|
|
# instantiate a Client using the appropriate WebUI configuration
|
|
|
|
|
conn_info = dict(
|
|
|
|
|
host="192.168.3.172",
|
|
|
|
|
port=7021,
|
|
|
|
|
username="qnloft",
|
|
|
|
|
password="EtDgCb@123",
|
|
|
|
|
)
|
|
|
|
|
qbt_client = qbittorrentapi.Client(**conn_info)
|
|
|
|
|
|
|
|
|
|
try:
|
|
|
|
|
qbt_client.auth_log_in()
|
|
|
|
|
except qbittorrentapi.LoginFailed as e:
|
|
|
|
|
print(e)
|
|
|
|
|
|
|
|
|
|
# 显示qBittorrent信息
|
|
|
|
|
print(f"qBittorrent: {qbt_client.app_version()}")
|
|
|
|
|
print(f"qBittorrent Web API: {qbt_client.app_web_api_version()}")
|
|
|
|
|
# qbt_client.app_preferences() # 偏好配置
|
|
|
|
|
for k, v in qbt_client.app.build_info.items():
|
|
|
|
|
print(f"{k}: {v}")
|
|
|
|
|
|
2024-01-28 16:19:09 +00:00
|
|
|
|
|
2024-01-25 16:36:25 +00:00
|
|
|
|
# 从url下载种子 返回 "Ok." 成功 或者 "Fails."失败
|
|
|
|
|
# add_res = qbt_client.torrents_add(urls="https://www.pttime.org/download.php?id=63655&passkey=b282678479d8f2cb8de1a811a707483d&uid=91145")
|
|
|
|
|
# print(add_res)
|
|
|
|
|
# qbt_client.torrents_reannounce()
|
|
|
|
|
def format_stamp(timestamp):
|
|
|
|
|
return datetime.utcfromtimestamp(timestamp).strftime("%Y-%m-%d %H:%M:%S")
|
|
|
|
|
|
2024-01-28 16:19:09 +00:00
|
|
|
|
|
2024-01-25 16:36:25 +00:00
|
|
|
|
def format_day(timestamp):
|
|
|
|
|
days = timestamp // (24 * 3600)
|
|
|
|
|
hours = (timestamp % (24 * 3600)) // 3600
|
|
|
|
|
return f"{days}天零{hours}小时"
|
2024-01-28 16:19:09 +00:00
|
|
|
|
|
|
|
|
|
|
2024-01-25 16:36:25 +00:00
|
|
|
|
# 检索并显示所有种子
|
|
|
|
|
for torrent in qbt_client.torrents_info():
|
|
|
|
|
# 完成任务的时间
|
|
|
|
|
seen_complete = format_stamp(torrent.seen_complete)
|
|
|
|
|
# 任务添加时间
|
|
|
|
|
added_on = format_stamp(torrent.added_on)
|
|
|
|
|
# 任务完成时间
|
|
|
|
|
completion_on = format_stamp(torrent.completion_on)
|
|
|
|
|
# 最后活动时间
|
|
|
|
|
last_activity = format_stamp(torrent.last_activity)
|
|
|
|
|
# 做种时间
|
|
|
|
|
seeding_time = format_day(torrent.seeding_time)
|
2024-01-28 16:19:09 +00:00
|
|
|
|
# print(f"{torrent.hash[-6:]}: {torrent.name} ({torrent.state})")
|
|
|
|
|
# print(f"任务添加时间:{added_on}, 成任务的时间:{seen_complete} - {completion_on}, 最后活动时间:{last_activity}, 做种时间:{seeding_time}")
|
|
|
|
|
print(f"{torrent.progress}")
|
|
|
|
|
if torrent.progress == 0:
|
|
|
|
|
# 删除文件
|
|
|
|
|
qbt_client.torrents_delete(delete_files=True, torrent_hashes=torrent.hash)
|
|
|
|
|
# qbt_client.torrents_remove_categories()
|
2024-01-25 16:36:25 +00:00
|
|
|
|
|
|
|
|
|
# 结束与 qBittorrent 的会话
|
|
|
|
|
qbt_client.auth_log_out()
|
|
|
|
|
# 暂停所有种子
|
|
|
|
|
# qbt_client.torrents.pause.all()
|
|
|
|
|
|
|
|
|
|
# added_on:任务添加时间(时间戳)。
|
|
|
|
|
# completion_on:任务完成时间(时间戳)
|
|
|
|
|
# eta:预计剩余时间(以秒为单位)。
|
|
|
|
|
# last_activity:最后活动时间(时间戳)。
|
|
|
|
|
# seeding_time:做种时间。
|
|
|
|
|
# seen_complete:完成任务的时间(时间戳)。
|
|
|
|
|
# max_seeding_time:最大种子时间。
|
|
|
|
|
# time_active:任务活跃时间。
|
|
|
|
|
# amount_left:剩余未下载的文件大小。
|
|
|
|
|
# auto_tmm:是否启用自动移动下载完成的种子。
|
|
|
|
|
# availability:文件可用性。
|
|
|
|
|
# category:下载任务的类别。
|
|
|
|
|
# completed:任务完成状态,1 表示已完成。
|
|
|
|
|
# content_path:下载文件的路径。
|
|
|
|
|
# dl_limit:下载速度限制。
|
|
|
|
|
# dlspeed:当前下载速度。
|
|
|
|
|
# download_path:下载文件保存路径。
|
|
|
|
|
# downloaded:已下载文件大小。
|
|
|
|
|
# downloaded_session:当前会话中已下载的文件大小。
|
|
|
|
|
# f_l_piece_prio:是否启用首尾片段优先下载。
|
|
|
|
|
# force_start:是否强制开始下载。
|
|
|
|
|
# inactive_seeding_time_limit:不活动种子的时间限制。
|
|
|
|
|
# magnet_uri:磁力链接。
|
|
|
|
|
# max_inactive_seeding_time:最大不活动种子时间。
|
|
|
|
|
# max_ratio:最大分享率。
|
|
|
|
|
# name:文件名称。
|
|
|
|
|
# num_complete:完成下载的数量。
|
|
|
|
|
# num_incomplete:未完成下载的数量。
|
|
|
|
|
# num_leechs:下载中的数量。
|
|
|
|
|
# num_seeds:做种中的数量。
|
|
|
|
|
# priority:下载任务的优先级。
|
|
|
|
|
# progress:下载进度(百分比)。
|
|
|
|
|
# ratio:分享率。
|
|
|
|
|
# ratio_limit:分享率限制。
|
|
|
|
|
# save_path:保存路径。
|
|
|
|
|
# seeding_time_limit:做种时间限制。
|
|
|
|
|
# seq_dl:是否启用顺序下载。
|
|
|
|
|
# size:文件总大小。
|
|
|
|
|
# state:下载任务的状态。
|
|
|
|
|
# super_seeding:是否启用超级做种。
|
|
|
|
|
# tags:下载任务的标签。
|
|
|
|
|
# total_size:总大小。
|
|
|
|
|
# tracker:Tracker 地址。
|
|
|
|
|
# trackers_count:Tracker 数量。
|
|
|
|
|
# up_limit:上传速度限制。
|
|
|
|
|
# uploaded:已上传文件大小。
|
|
|
|
|
# uploaded_session:当前会话中已上传的文件大小。
|
2024-01-28 16:19:09 +00:00
|
|
|
|
# upspeed:当前上传速度。
|