gpt4 book ai didi

python libtorrent save_state

转载 作者:太空宇宙 更新时间:2023-11-03 17:55:37 26 4
gpt4 key购买 nike

我有一个问题。我不是 C/C++ 程序员,libtorrent 文档对我来说并不是很清楚。没有像 libtorrent 的 python 文档那样的文档可供查找。

此刻,我尝试在 stackoverflow 中搜索代码示例,以了解如何在 session 中使用 save_state 和 load_state。

谁能给我举个例子或者解释一下如何保存 session 状态并稍后加载?

目标是在进程重新启动时恢复所有种子。

ses = libtorrent.session()
ses.listen_on(6881, 6891)

if os.path.isfile('./tempfile'):
with open('./tempfile', 'wb+') as temp_file:
ses.load_state(
libtorrent.bdecode(temp_file.read())
)
params = {
'save_path': '/home/downloads/',
'storage_mode': libtorrent.storage_mode_t(2),
'paused': False,
'auto_managed': True,
'duplicate_is_error': True
}
link = "magnet:?xt=urn:btih:4MR6HU7SIHXAXQQFXFJTNLTYSREDR5EI&tr=http://tracker.vodo.net:6970/announce"
handle = libtorrent.add_magnet_uri(ses, link, params)
while not handle.has_metadata():
time.sleep(1)
with open('./tempfile', 'wb+') as temp_file:
temp_file.write(libtorrent.bencode(ses.save_state()))

更新当在 torrent 句柄上使用 save_state_resume() 时,它也不会返回任何内容?我发现执行“pydoc libtorrent > libtorrentDoc.txt”为我提供了一个有用的文档来浏览和搜索。此时,我将磁铁重新添加到 session 中并使用上面的代码。

也许有人有更有效的方法?

最佳答案

参见:http://www.libtorrent.org/reference-Session.html#save_state_flags_t

看起来 save_state 并不关心种子本身,但这是恢复 session 状态本身的方法。

我不懂 Python,但我之前使用了 Libtorrent 的 Lua 绑定(bind),称为 Luatorrent,我只是将所有 torrent 存储在表/数组中,然后在关闭时我会循环遍历表/数组并获取每个 torrent 的暂停状态连同相关统计信息,然后创建一个 save_resume_data() 文件,停止 torrent,然后结束 session 。

根据我获得的数据,我将在 AppData 中存储一个 .dat 文件,该文件可以在客户端下次运行时再次加载,这将启动正在运行的种子并暂停已暂停的种子,并且它将包含数据完成百分比等。

关于python libtorrent save_state,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28503318/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com