void DanbooruTest::testXml() { myInit("xml"); QSignalSpy spy(m_downloader, SIGNAL(finishedImages(QList<Image*>))); m_downloader->getImages(); // Wait for signal QVERIFY(spy.wait()); // Get results QList<QVariant> arguments = spy.takeFirst(); QVariantList variants = arguments.at(0).value<QVariantList>(); // Convert results QList<Image*> images; QStringList md5s; for (QVariant variant : variants) { Image *img = variant.value<Image*>(); images.append(img); md5s.append(img->md5()); } // Check results md5s = md5s.mid(0, 3); QStringList expected = QStringList() << "test98bf686ca7910ee0ad48e59ba99807d3" << "e5d074c5fe05e1493372e7224d2d198f" << "1e774a4a9d080611fde61e58625e038e"; QCOMPARE(images.count(), 20); QCOMPARE(md5s, expected); }
void DanbooruTest::testHtml() { myInit("regex"); QSignalSpy spy(m_downloader, SIGNAL(finishedImages(QList<Image*>))); m_downloader->getImages(); // Wait for signal QVERIFY(spy.wait()); // Get results QList<QVariant> arguments = spy.takeFirst(); QVariantList variants = arguments.at(0).value<QVariantList>(); // Convert results QList<Image*> images; QStringList md5s; for (QVariant variant : variants) { Image *img = variant.value<Image*>(); images.append(img); md5s.append(img->md5()); } // Check results md5s = md5s.mid(0, 3); QStringList expected = QStringList() << "testf2b78f4b9c79e6bef0cdc948fbd495cc" << "a6ce80f18652847857a0258f0046282d" << "91d66f4801086eb474fb5c52af8b0418"; QCOMPARE(images.count(), 20); QCOMPARE(md5s, expected); }
void Downloader::finishedLoadingImages(Page *page) { if (m_cancelled) return; log("Received page '"+page->url().toString()+"'"); emit finishedImagesPage(page); if (--m_waiting > 0) { loadNext(); return; } QList<Image*> images; for (int i = 0; i < m_pages->size(); ++i) for (Image *img : m_pages->at(i)->images()) { if (!m_blacklist) { if (!img->blacklisted(m_blacklistedTags).empty()) { ++m_ignored; continue; } } if (m_noduplicates) { bool found = false; for (Image *image : images) if (image->md5() == img->md5()) found = true; if (found) continue; } images.append(img); } QList<Image*> imgs; int i = 0; for (Image *img : images) if (m_max <= 0 || i++ < m_max) imgs.append(img); if (m_quit) downloadImages(imgs); else emit finishedImages(imgs); }