Extend the QVariantMap parsing to Gelbooru data
This commit is contained in:
parent
0ee1d034c7
commit
dc6236f00c
2 changed files with 70 additions and 20 deletions
|
@ -46,7 +46,41 @@ void DanbooruPost::parseDanbooruDonmai(const QVariantMap &postData) {
|
||||||
m_size = postData.value("file_size").toInt();
|
m_size = postData.value("file_size").toInt();
|
||||||
m_rating = RATING_MAP.value(postData.value("rating").toString());
|
m_rating = RATING_MAP.value(postData.value("rating").toString());
|
||||||
m_sampleUrl = postData.value("large_file_url").toUrl();
|
m_sampleUrl = postData.value("large_file_url").toUrl();
|
||||||
|
}
|
||||||
|
|
||||||
|
void DanbooruPost::parseDanbooruDonmai(const QXmlStreamAttributes &postData) {
|
||||||
|
|
||||||
|
m_tags = QSet<QString>::fromList(postData.value("tag_string").toString().split(' '));
|
||||||
|
m_id = postData.value("id").toString().toInt();
|
||||||
|
m_height = postData.value("image_height").toString().toInt();
|
||||||
|
m_width = postData.value("image_width").toString().toInt();
|
||||||
|
m_url = QUrl::fromUserInput(postData.value("file_url").toString());
|
||||||
|
m_thumbnailUrl = QUrl::fromUserInput(postData.value("preview_file_url").toString());
|
||||||
|
m_size = postData.value("file_size").toInt();
|
||||||
|
m_rating = RATING_MAP.value(postData.value("rating").toString());
|
||||||
|
m_sampleUrl = QUrl::fromUserInput(postData.value("large_file_url").toString());
|
||||||
|
|
||||||
|
// fixup for wrong URLs in danbooru input
|
||||||
|
|
||||||
|
m_url.setScheme("http");
|
||||||
|
m_thumbnailUrl.setScheme("http");
|
||||||
|
m_sampleUrl.setScheme("http");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void DanbooruPost::parseDanbooruKonachan(const QXmlStreamAttributes &postData) {
|
||||||
|
|
||||||
|
m_tags = QSet<QString>::fromList(postData.value("tags").toString().split(' '));
|
||||||
|
m_id = postData.value("id").toString().toInt();
|
||||||
|
m_height = postData.value("height").toString().toInt();
|
||||||
|
m_width = postData.value("width").toString().toInt();
|
||||||
|
|
||||||
|
m_url = QUrl::fromUserInput(postData.value("file_url").toString());
|
||||||
|
m_thumbnailUrl = QUrl::fromUserInput(postData.value("preview_url").toString());
|
||||||
|
m_sampleUrl = QUrl::fromUserInput(postData.value("sample_url").toString());
|
||||||
|
|
||||||
|
m_size = postData.value("file_size").toString().toInt();
|
||||||
|
m_rating = RATING_MAP.value(postData.value("rating").toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
void DanbooruPost::parseDanbooruKonachan(const QVariantMap &postData) {
|
void DanbooruPost::parseDanbooruKonachan(const QVariantMap &postData) {
|
||||||
|
@ -63,6 +97,19 @@ void DanbooruPost::parseDanbooruKonachan(const QVariantMap &postData) {
|
||||||
m_sampleUrl = postData.value("sample_url").toUrl();
|
m_sampleUrl = postData.value("sample_url").toUrl();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DanbooruPost::parseGelbooru(const QVariantMap &postData) {
|
||||||
|
|
||||||
|
m_tags = QSet<QString>::fromList(postData.value("tags").toString().split(' '));
|
||||||
|
m_id = postData.value("id").toString().toInt();
|
||||||
|
m_height = postData.value("height").toString().toInt();
|
||||||
|
m_width = postData.value("width").toString().toInt();
|
||||||
|
m_url = postData.value("file_url").toUrl();
|
||||||
|
m_thumbnailUrl = postData.value("preview_url").toUrl();
|
||||||
|
m_size = 0; // No size information
|
||||||
|
m_rating = RATING_MAP.value(postData.value("rating").toString());
|
||||||
|
m_sampleUrl = postData.value("sample_url").toUrl();
|
||||||
|
}
|
||||||
|
|
||||||
DanbooruPost::DanbooruPost(QObject *parent): QObject(parent)
|
DanbooruPost::DanbooruPost(QObject *parent): QObject(parent)
|
||||||
{
|
{
|
||||||
m_pixmap = QPixmap();
|
m_pixmap = QPixmap();
|
||||||
|
@ -88,6 +135,9 @@ DanbooruPost::DanbooruPost(QVariantMap postData,Danbooru::ApiType apiType, QPixm
|
||||||
case ApiType::OriginalDanbooru:
|
case ApiType::OriginalDanbooru:
|
||||||
parseDanbooruDonmai(postData);
|
parseDanbooruDonmai(postData);
|
||||||
break;
|
break;
|
||||||
|
case ApiType::Gelbooru:
|
||||||
|
parseGelbooru(postData);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
parseDanbooruKonachan(postData);
|
parseDanbooruKonachan(postData);
|
||||||
break;
|
break;
|
||||||
|
@ -115,22 +165,22 @@ DanbooruPost::DanbooruPost(QVariantMap postData,Danbooru::ApiType apiType, QPixm
|
||||||
//
|
//
|
||||||
// }
|
// }
|
||||||
|
|
||||||
DanbooruPost::DanbooruPost(QXmlStreamAttributes &postData, QPixmap pixmap, QObject *parent):
|
DanbooruPost::DanbooruPost(QXmlStreamAttributes &postData, Danbooru::ApiType apiType, QPixmap pixmap, QObject *parent):
|
||||||
QObject(parent),
|
QObject(parent),
|
||||||
m_pixmap(pixmap)
|
m_pixmap(pixmap)
|
||||||
{
|
{
|
||||||
|
|
||||||
m_tags = QSet<QString>::fromList(postData.value("tags").toString().split(' '));
|
switch(apiType) {
|
||||||
m_id = postData.value("id").toString().toInt();
|
case ApiType::KonachanDanbooru:
|
||||||
m_height = postData.value("height").toString().toInt();
|
parseDanbooruKonachan(postData);
|
||||||
m_width = postData.value("width").toString().toInt();
|
break;
|
||||||
|
case ApiType::OriginalDanbooru:
|
||||||
m_url = QUrl::fromUserInput(postData.value("file_url").toString());
|
parseDanbooruDonmai(postData);
|
||||||
m_thumbnailUrl = QUrl::fromUserInput(postData.value("preview_url").toString());
|
break;
|
||||||
m_sampleUrl = QUrl::fromUserInput(postData.value("sample_url").toString());
|
default:
|
||||||
|
parseDanbooruKonachan(postData);
|
||||||
m_size = postData.value("file_size").toString().toInt();
|
break;
|
||||||
m_rating = RATING_MAP.value(postData.value("rating").toString());
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
DanbooruPost::~DanbooruPost()
|
DanbooruPost::~DanbooruPost()
|
||||||
|
|
|
@ -114,8 +114,10 @@ private:
|
||||||
static const QMap< QString, Rating > initRatingMap();
|
static const QMap< QString, Rating > initRatingMap();
|
||||||
|
|
||||||
void parseDanbooruKonachan(const QVariantMap &postData);
|
void parseDanbooruKonachan(const QVariantMap &postData);
|
||||||
|
void parseDanbooruKonachan(const QXmlStreamAttributes &postData);
|
||||||
void parseDanbooruDonmai(const QVariantMap &postData);
|
void parseDanbooruDonmai(const QVariantMap &postData);
|
||||||
void parseGelbooru(QXmlStreamAttributes &postData);
|
void parseDanbooruDonmai(const QXmlStreamAttributes &postData);
|
||||||
|
void parseGelbooru(const QVariantMap &postData);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
@ -132,9 +134,10 @@ public:
|
||||||
* @param parent A pointer to the parent QObject.
|
* @param parent A pointer to the parent QObject.
|
||||||
*
|
*
|
||||||
**/
|
**/
|
||||||
/*
|
|
||||||
explicit DanbooruPost(QVariantMap postData, QPixmap pixmap = QPixmap(),
|
explicit DanbooruPost(QVariantMap postData, Danbooru::ApiType apiType=ApiType::KonachanDanbooru,
|
||||||
QObject *parent = 0);*/
|
QPixmap pixmap = QPixmap(),
|
||||||
|
QObject *parent=0);
|
||||||
|
|
||||||
explicit DanbooruPost(QObject *parent = 0);
|
explicit DanbooruPost(QObject *parent = 0);
|
||||||
|
|
||||||
|
@ -152,12 +155,9 @@ public:
|
||||||
* @param parent A pointer to the parent QObject.
|
* @param parent A pointer to the parent QObject.
|
||||||
*
|
*
|
||||||
**/
|
**/
|
||||||
explicit DanbooruPost(QXmlStreamAttributes &postData,
|
explicit DanbooruPost(QXmlStreamAttributes &postData, Danbooru::ApiType apiType=ApiType::KonachanDanbooru,
|
||||||
QPixmap pixmap = QPixmap(), QObject *parent = 0);
|
QPixmap pixmap = QPixmap(), QObject *parent = 0);
|
||||||
|
|
||||||
explicit DanbooruPost(QVariantMap postData, Danbooru::ApiType apiType=ApiType::KonachanDanbooru,
|
|
||||||
QPixmap pixmap = QPixmap(),
|
|
||||||
QObject *parent=0);
|
|
||||||
|
|
||||||
bool operator==(const DanbooruPost &);
|
bool operator==(const DanbooruPost &);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue