mirror of
https://github.com/qbittorrent/qBittorrent
synced 2025-07-14 01:03:08 -07:00
Add support for tracker scrape in libtorrent 2.0
This commit is contained in:
parent
7a3e397949
commit
480832318c
1 changed files with 39 additions and 3 deletions
|
@ -30,6 +30,8 @@
|
||||||
|
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
|
||||||
|
#include <libtorrent/version.hpp>
|
||||||
|
|
||||||
#include <QString>
|
#include <QString>
|
||||||
#include <QUrl>
|
#include <QUrl>
|
||||||
|
|
||||||
|
@ -62,7 +64,15 @@ TrackerEntry::Status TrackerEntry::status() const
|
||||||
const bool allFailed = !endpoints.empty() && std::all_of(endpoints.begin(), endpoints.end()
|
const bool allFailed = !endpoints.empty() && std::all_of(endpoints.begin(), endpoints.end()
|
||||||
, [](const lt::announce_endpoint &endpoint)
|
, [](const lt::announce_endpoint &endpoint)
|
||||||
{
|
{
|
||||||
|
#if (LIBTORRENT_VERSION_NUM >= 20000)
|
||||||
|
return std::all_of(endpoint.info_hashes.begin(), endpoint.info_hashes.end()
|
||||||
|
, [](const lt::announce_infohash &infohash)
|
||||||
|
{
|
||||||
|
return (infohash.fails > 0);
|
||||||
|
});
|
||||||
|
#else
|
||||||
return (endpoint.fails > 0);
|
return (endpoint.fails > 0);
|
||||||
|
#endif
|
||||||
});
|
});
|
||||||
if (allFailed)
|
if (allFailed)
|
||||||
return NotWorking;
|
return NotWorking;
|
||||||
|
@ -70,7 +80,15 @@ TrackerEntry::Status TrackerEntry::status() const
|
||||||
const bool isUpdating = std::any_of(endpoints.begin(), endpoints.end()
|
const bool isUpdating = std::any_of(endpoints.begin(), endpoints.end()
|
||||||
, [](const lt::announce_endpoint &endpoint)
|
, [](const lt::announce_endpoint &endpoint)
|
||||||
{
|
{
|
||||||
|
#if (LIBTORRENT_VERSION_NUM >= 20000)
|
||||||
|
return std::any_of(endpoint.info_hashes.begin(), endpoint.info_hashes.end()
|
||||||
|
, [](const lt::announce_infohash &infohash)
|
||||||
|
{
|
||||||
|
return infohash.updating;
|
||||||
|
});
|
||||||
|
#else
|
||||||
return endpoint.updating;
|
return endpoint.updating;
|
||||||
|
#endif
|
||||||
});
|
});
|
||||||
if (isUpdating)
|
if (isUpdating)
|
||||||
return Updating;
|
return Updating;
|
||||||
|
@ -89,24 +107,42 @@ void TrackerEntry::setTier(const int value)
|
||||||
int TrackerEntry::numSeeds() const
|
int TrackerEntry::numSeeds() const
|
||||||
{
|
{
|
||||||
int value = -1;
|
int value = -1;
|
||||||
for (const lt::announce_endpoint &endpoint : nativeEntry().endpoints)
|
for (const lt::announce_endpoint &endpoint : nativeEntry().endpoints) {
|
||||||
|
#if (LIBTORRENT_VERSION_NUM >= 20000)
|
||||||
|
for (const lt::announce_infohash &infoHash : endpoint.info_hashes)
|
||||||
|
value = std::max(value, infoHash.scrape_complete);
|
||||||
|
#else
|
||||||
value = std::max(value, endpoint.scrape_complete);
|
value = std::max(value, endpoint.scrape_complete);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
int TrackerEntry::numLeeches() const
|
int TrackerEntry::numLeeches() const
|
||||||
{
|
{
|
||||||
int value = -1;
|
int value = -1;
|
||||||
for (const lt::announce_endpoint &endpoint : nativeEntry().endpoints)
|
for (const lt::announce_endpoint &endpoint : nativeEntry().endpoints) {
|
||||||
|
#if (LIBTORRENT_VERSION_NUM >= 20000)
|
||||||
|
for (const lt::announce_infohash &infoHash : endpoint.info_hashes)
|
||||||
|
value = std::max(value, infoHash.scrape_incomplete);
|
||||||
|
#else
|
||||||
value = std::max(value, endpoint.scrape_incomplete);
|
value = std::max(value, endpoint.scrape_incomplete);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
int TrackerEntry::numDownloaded() const
|
int TrackerEntry::numDownloaded() const
|
||||||
{
|
{
|
||||||
int value = -1;
|
int value = -1;
|
||||||
for (const lt::announce_endpoint &endpoint : nativeEntry().endpoints)
|
for (const lt::announce_endpoint &endpoint : nativeEntry().endpoints) {
|
||||||
|
#if (LIBTORRENT_VERSION_NUM >= 20000)
|
||||||
|
for (const lt::announce_infohash &infoHash : endpoint.info_hashes)
|
||||||
|
value = std::max(value, infoHash.scrape_downloaded);
|
||||||
|
#else
|
||||||
value = std::max(value, endpoint.scrape_downloaded);
|
value = std::max(value, endpoint.scrape_downloaded);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue