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);
}
Beispiel #3
0
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);
}