From 872177a5ed5997c23d3a0d262f1a5b550444969e Mon Sep 17 00:00:00 2001 From: Fabio Bas Date: Tue, 23 Jun 2015 15:44:43 +0200 Subject: [PATCH] Card images blacklist; changed fallback urls --- cockatrice/src/carddatabase.cpp | 16 ++++++++++++++++ cockatrice/src/carddatabase.h | 1 + cockatrice/src/settingscache.h | 5 +++-- 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/cockatrice/src/carddatabase.cpp b/cockatrice/src/carddatabase.cpp index bd254308..4291e9d6 100644 --- a/cockatrice/src/carddatabase.cpp +++ b/cockatrice/src/carddatabase.cpp @@ -1,5 +1,6 @@ #include "carddatabase.h" #include "settingscache.h" +#include #include #include #include @@ -212,6 +213,9 @@ CardSet *PictureToLoad::getCurrentSet() const return 0; } +QStringList PictureLoader::md5Blacklist = QStringList() + << "db0c48db407a907c16ade38de048a441"; // card back returned by gatherer when card is not found + PictureLoader::PictureLoader(const QString &__picsPath, bool _picDownload, bool _picDownloadHq, QObject *parent) : QObject(parent), _picsPath(__picsPath), picDownload(_picDownload), picDownloadHq(_picDownloadHq), @@ -413,6 +417,18 @@ void PictureLoader::picDownloadFinished(QNetworkReply *reply) } const QByteArray &picData = reply->peek(reply->size()); //peek is used to keep the data in the buffer for use by QImageReader + + // check if the image is blacklisted + QString md5sum = QCryptographicHash::hash(picData, QCryptographicHash::Md5).toHex(); + if(md5Blacklist.contains(md5sum)) + { + qDebug() << "Picture downloaded, but blacklisted (" << md5sum << "), will consider it as not found"; + picDownloadFailed(); + reply->deleteLater(); + startNextPicDownload(); + return; + } + QImage testImage; QImageReader imgReader; diff --git a/cockatrice/src/carddatabase.h b/cockatrice/src/carddatabase.h index af817778..ac34f081 100644 --- a/cockatrice/src/carddatabase.h +++ b/cockatrice/src/carddatabase.h @@ -94,6 +94,7 @@ private: bool picDownload, picDownloadHq, downloadRunning, loadQueueRunning; void startNextPicDownload(); QString getPicUrl(); + static QStringList md5Blacklist; public: PictureLoader(const QString &__picsPath, bool _picDownload, bool _picDownloadHq, QObject *parent = 0); ~PictureLoader(); diff --git a/cockatrice/src/settingscache.h b/cockatrice/src/settingscache.h index bf64f4ac..e3850a81 100644 --- a/cockatrice/src/settingscache.h +++ b/cockatrice/src/settingscache.h @@ -3,10 +3,11 @@ #include +// the falbacks are used for cards without a muid #define PIC_URL_DEFAULT "http://gatherer.wizards.com/Handlers/Image.ashx?multiverseid=!cardid!&type=card" -#define PIC_URL_FALLBACK "http://gatherer.wizards.com/Handlers/Image.ashx?multiverseid=!cardid!&type=card" +#define PIC_URL_FALLBACK "http://gatherer.wizards.com/Handlers/Image.ashx?name=!name!&type=card" #define PIC_URL_HQ_DEFAULT "http://gatherer.wizards.com/Handlers/Image.ashx?multiverseid=!cardid!&type=card" -#define PIC_URL_HQ_FALLBACK "http://gatherer.wizards.com/Handlers/Image.ashx?multiverseid=!cardid!&type=card" +#define PIC_URL_HQ_FALLBACK "http://gatherer.wizards.com/Handlers/Image.ashx?name=!name!&type=card" // size should be a multiple of 64 #define PIXMAPCACHE_SIZE_DEFAULT 2047 #define PIXMAPCACHE_SIZE_MIN 64