qnloft-spider/PT/qbittorrent_opt.py

117 lines
4.1 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

from datetime import datetime
import qbittorrentapi
'''
官方文档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}")
# 从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")
def format_day(timestamp):
days = timestamp // (24 * 3600)
hours = (timestamp % (24 * 3600)) // 3600
return f"{days}天零{hours}小时"
# 检索并显示所有种子
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)
# 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()
# 结束与 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总大小。
# trackerTracker 地址。
# trackers_countTracker 数量。
# up_limit上传速度限制。
# uploaded已上传文件大小。
# uploaded_session当前会话中已上传的文件大小。
# upspeed当前上传速度。