Import new trackers from magnet link in case of duplicate torrent (closes #111)

This commit is contained in:
Christophe Dumez 2012-09-23 11:09:01 +03:00
parent 819dcacae0
commit 806ab07865
4 changed files with 52 additions and 5 deletions

View file

@ -309,7 +309,7 @@ QString misc::bcLinkToMagnet(QString bc_link) {
return magnet;
}
QString misc::magnetUriToName(QString magnet_uri) {
QString misc::magnetUriToName(const QString& magnet_uri) {
QString name = "";
QRegExp regHex("dn=([^&]+)");
const int pos = regHex.indexIn(magnet_uri);
@ -321,7 +321,23 @@ QString misc::magnetUriToName(QString magnet_uri) {
return name;
}
QString misc::magnetUriToHash(QString magnet_uri) {
QList<QUrl> misc::magnetUriToTrackers(const QString& magnet_uri)
{
QList<QUrl> trackers;
QRegExp rx("tr=([^&]+)");
int pos = 0;
while ((pos = rx.indexIn(magnet_uri, pos)) != -1) {
const QUrl tracker = QUrl::fromEncoded(rx.cap(1).toUtf8());
qDebug() << Q_FUNC_INFO << "Found tracker: " << tracker.toString();
trackers << tracker;
pos += rx.matchedLength();
}
return trackers;
}
QString misc::magnetUriToHash(const QString& magnet_uri) {
QString hash = "";
QRegExp regHex("urn:btih:([0-9A-Za-z]+)");
// Hex