mirror of
https://github.com/qbittorrent/qBittorrent.git
synced 2024-12-27 08:19:30 +08:00
Merge pull request #13637 from Chocobo1/libt
Improve compatibility with libtorrent 2.0
This commit is contained in:
commit
73e9dce143
@ -220,17 +220,9 @@ QString PeerInfo::connectionType() const
|
||||
if (m_nativeInfo.flags & lt::peer_info::utp_socket)
|
||||
return QString::fromUtf8(C_UTP);
|
||||
|
||||
QString connection;
|
||||
switch (m_nativeInfo.connection_type) {
|
||||
case lt::peer_info::http_seed:
|
||||
case lt::peer_info::web_seed:
|
||||
connection = "Web";
|
||||
break;
|
||||
default:
|
||||
connection = "BT";
|
||||
}
|
||||
|
||||
return connection;
|
||||
return (m_nativeInfo.connection_type == lt::peer_info::standard_bittorrent)
|
||||
? QLatin1String {"BT"}
|
||||
: QLatin1String {"Web"};
|
||||
}
|
||||
|
||||
void PeerInfo::calcRelevance(const TorrentHandle *torrent)
|
||||
|
@ -31,6 +31,7 @@
|
||||
#include <libtorrent/bencode.hpp>
|
||||
#include <libtorrent/create_torrent.hpp>
|
||||
#include <libtorrent/error_code.hpp>
|
||||
#include <libtorrent/version.hpp>
|
||||
|
||||
#include <QByteArray>
|
||||
#include <QDateTime>
|
||||
@ -294,7 +295,12 @@ QVector<QUrl> TorrentInfo::urlSeeds() const
|
||||
QByteArray TorrentInfo::metadata() const
|
||||
{
|
||||
if (!isValid()) return {};
|
||||
#if (LIBTORRENT_VERSION_NUM >= 20000)
|
||||
const lt::span<const char> infoSection {m_nativeInfo->info_section()};
|
||||
return {infoSection.data(), static_cast<int>(infoSection.size())};
|
||||
#else
|
||||
return {m_nativeInfo->metadata().get(), m_nativeInfo->metadata_size()};
|
||||
#endif
|
||||
}
|
||||
|
||||
QStringList TorrentInfo::filesForPiece(const int pieceIndex) const
|
||||
|
@ -30,6 +30,8 @@
|
||||
|
||||
#include <algorithm>
|
||||
|
||||
#include <libtorrent/version.hpp>
|
||||
|
||||
#include <QString>
|
||||
#include <QUrl>
|
||||
|
||||
@ -62,7 +64,15 @@ TrackerEntry::Status TrackerEntry::status() const
|
||||
const bool allFailed = !endpoints.empty() && std::all_of(endpoints.begin(), endpoints.end()
|
||||
, [](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);
|
||||
#endif
|
||||
});
|
||||
if (allFailed)
|
||||
return NotWorking;
|
||||
@ -70,7 +80,15 @@ TrackerEntry::Status TrackerEntry::status() const
|
||||
const bool isUpdating = std::any_of(endpoints.begin(), endpoints.end()
|
||||
, [](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;
|
||||
#endif
|
||||
});
|
||||
if (isUpdating)
|
||||
return Updating;
|
||||
@ -89,24 +107,42 @@ void TrackerEntry::setTier(const int value)
|
||||
int TrackerEntry::numSeeds() const
|
||||
{
|
||||
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);
|
||||
#endif
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
int TrackerEntry::numLeeches() const
|
||||
{
|
||||
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);
|
||||
#endif
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
int TrackerEntry::numDownloaded() const
|
||||
{
|
||||
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);
|
||||
#endif
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user