Add dht_live_nodes and dht_sample_infohashes to Python bindings
Add 'dht_live_nodes' and 'dht_sample_infohashes' functionality to Python bindings: - add function 'dht_live_nodes' to libtorrent.session - add function 'dht_sample_infohashes' to libtorrent.session - add alert 'dht_live_nodes_alert' to alerts - add alert 'dht_sample_infohashes_alert' to alerts - add alert 'dht_bootstrap_alert' to alerts
This commit is contained in:
parent
faa807c0f3
commit
b148e9ddc4
|
@ -135,6 +135,34 @@ dict session_stats_values(session_stats_alert const& alert)
|
||||||
return d;
|
return d;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
list dht_live_nodes_nodes(dht_live_nodes_alert const& alert)
|
||||||
|
{
|
||||||
|
list result;
|
||||||
|
std::vector<std::pair<sha1_hash, udp::endpoint>> const nodes = alert.nodes();
|
||||||
|
for (std::pair<sha1_hash, udp::endpoint> const& node : nodes)
|
||||||
|
{
|
||||||
|
dict d;
|
||||||
|
d["nid"] = node.first;
|
||||||
|
d["endpoint"] = node.second;
|
||||||
|
result.append(d);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
list dht_sample_infohashes_nodes(dht_sample_infohashes_alert const& alert)
|
||||||
|
{
|
||||||
|
list result;
|
||||||
|
std::vector<std::pair<sha1_hash, udp::endpoint>> const nodes = alert.nodes();
|
||||||
|
for (std::pair<sha1_hash, udp::endpoint> const& node : nodes)
|
||||||
|
{
|
||||||
|
dict d;
|
||||||
|
d["nid"] = node.first;
|
||||||
|
d["endpoint"] = node.second;
|
||||||
|
result.append(d);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
#if TORRENT_ABI_VERSION == 1
|
#if TORRENT_ABI_VERSION == 1
|
||||||
entry const& get_resume_data_entry(save_resume_data_alert const& self)
|
entry const& get_resume_data_entry(save_resume_data_alert const& self)
|
||||||
{
|
{
|
||||||
|
@ -1070,6 +1098,30 @@ void bind_alert()
|
||||||
.add_property("ip", make_getter(&socks5_alert::ip, by_value()))
|
.add_property("ip", make_getter(&socks5_alert::ip, by_value()))
|
||||||
;
|
;
|
||||||
|
|
||||||
|
class_<dht_live_nodes_alert, bases<alert>, noncopyable>(
|
||||||
|
"dht_live_nodes_alert", no_init)
|
||||||
|
.add_property("node_id", &dht_live_nodes_alert::node_id)
|
||||||
|
.add_property("num_nodes", &dht_live_nodes_alert::num_nodes)
|
||||||
|
.add_property("nodes", &dht_live_nodes_nodes)
|
||||||
|
;
|
||||||
|
|
||||||
|
std::vector<sha1_hash> (dht_sample_infohashes_alert::*samples)() const = &dht_sample_infohashes_alert::samples;
|
||||||
|
|
||||||
|
class_<dht_sample_infohashes_alert, bases<alert>, noncopyable>(
|
||||||
|
"dht_sample_infohashes_alert", no_init)
|
||||||
|
.add_property("endpoint", make_getter(&dht_sample_infohashes_alert::endpoint, by_value()))
|
||||||
|
.add_property("interval", make_getter(&dht_sample_infohashes_alert::interval, by_value()))
|
||||||
|
.add_property("num_infohashes", &dht_sample_infohashes_alert::num_infohashes)
|
||||||
|
.add_property("num_samples", &dht_sample_infohashes_alert::num_samples)
|
||||||
|
.add_property("samples", samples)
|
||||||
|
.add_property("num_nodes", &dht_sample_infohashes_alert::num_nodes)
|
||||||
|
.add_property("nodes", &dht_sample_infohashes_nodes)
|
||||||
|
;
|
||||||
|
|
||||||
|
class_<dht_bootstrap_alert, bases<alert>, noncopyable>(
|
||||||
|
"dht_bootstrap_alert", no_init)
|
||||||
|
;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef _MSC_VER
|
#ifdef _MSC_VER
|
||||||
|
|
|
@ -1017,6 +1017,8 @@ void bind_session()
|
||||||
.def("dht_put_mutable_item", &dht_put_mutable_item)
|
.def("dht_put_mutable_item", &dht_put_mutable_item)
|
||||||
.def("dht_get_peers", allow_threads(<::session::dht_get_peers))
|
.def("dht_get_peers", allow_threads(<::session::dht_get_peers))
|
||||||
.def("dht_announce", allow_threads(<::session::dht_announce))
|
.def("dht_announce", allow_threads(<::session::dht_announce))
|
||||||
|
.def("dht_live_nodes", allow_threads(<::session::dht_live_nodes))
|
||||||
|
.def("dht_sample_infohashes", allow_threads(<::session::dht_sample_infohashes))
|
||||||
#endif // TORRENT_DISABLE_DHT
|
#endif // TORRENT_DISABLE_DHT
|
||||||
.def("add_torrent", &add_torrent)
|
.def("add_torrent", &add_torrent)
|
||||||
.def("async_add_torrent", &async_add_torrent)
|
.def("async_add_torrent", &async_add_torrent)
|
||||||
|
|
Loading…
Reference in New Issue