qnloft-spider/PT/qbittorrent_opt.py

117 lines
4.1 KiB
Python
Raw Normal View History

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总大小。
# trackerTracker 地址。
# trackers_countTracker 数量。
# up_limit上传速度限制。
# uploaded已上传文件大小。
# uploaded_session当前会话中已上传的文件大小。
2024-01-28 16:19:09 +00:00
# upspeed当前上传速度。