Add a limit option to the pool retrieval functions
To download less than the maximum (and ease testing)
This commit is contained in:
parent
c5b8fccc6f
commit
08402657a0
3 changed files with 15 additions and 6 deletions
|
@ -106,7 +106,7 @@ void KonachanDanbooruService::getPostList() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void KonachanDanbooruService::getPoolList()
|
void KonachanDanbooruService::getPoolList(int limit)
|
||||||
{
|
{
|
||||||
|
|
||||||
QUrl danbooruUrl;
|
QUrl danbooruUrl;
|
||||||
|
@ -130,7 +130,7 @@ void KonachanDanbooruService::getPoolList()
|
||||||
|
|
||||||
// connect(job, &KIO::StoredTransferJob::result, this, &DanbooruService::processPoolList);
|
// connect(job, &KIO::StoredTransferJob::result, this, &DanbooruService::processPoolList);
|
||||||
|
|
||||||
connect(job, &KIO::StoredTransferJob::result, [this](KJob * job) {
|
connect(job, &KIO::StoredTransferJob::result, [this, limit](KJob * job) {
|
||||||
|
|
||||||
if (job->error()) {
|
if (job->error()) {
|
||||||
Q_EMIT(downloadError(job->errorString()));
|
Q_EMIT(downloadError(job->errorString()));
|
||||||
|
@ -148,6 +148,10 @@ void KonachanDanbooruService::getPoolList()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (limit > 0 && poolList.length() > limit) {
|
||||||
|
poolList = poolList.mid(0, limit);
|
||||||
|
}
|
||||||
|
|
||||||
for (auto element : poolList) {
|
for (auto element : poolList) {
|
||||||
QVariantMap map = element.toMap();
|
QVariantMap map = element.toMap();
|
||||||
|
|
||||||
|
@ -378,7 +382,13 @@ void KonachanDanbooruService::processPostList(KJob *job)
|
||||||
}
|
}
|
||||||
|
|
||||||
m_postsToFetch = postList.length();
|
m_postsToFetch = postList.length();
|
||||||
// qCDebug(LIBDANBOORU) << "Found " << m_postsToFetch << "posts to fetch";
|
qCDebug(LIBDANBOORU) << "Found " << m_postsToFetch << "posts to fetch" << "with limit" << m_maxPosts;
|
||||||
|
|
||||||
|
// This is mostly needed for pools
|
||||||
|
if (postList.length() > m_maxPosts) {
|
||||||
|
m_postsToFetch = m_maxPosts;
|
||||||
|
postList = postList.mid(0, m_maxPosts);
|
||||||
|
}
|
||||||
|
|
||||||
for (auto element : postList) {
|
for (auto element : postList) {
|
||||||
|
|
||||||
|
@ -446,7 +456,6 @@ void KonachanDanbooruService::processPostList(KJob *job)
|
||||||
m_cache->insertPixmap(post->thumbnailUrl().url(), pix);
|
m_cache->insertPixmap(post->thumbnailUrl().url(), pix);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
m_postsToFetch--; // One less post to do
|
m_postsToFetch--; // One less post to do
|
||||||
|
|
||||||
qCDebug(LIBDANBOORU) << "Current posts remaining: " << m_postsToFetch;
|
qCDebug(LIBDANBOORU) << "Current posts remaining: " << m_postsToFetch;
|
||||||
|
|
|
@ -48,7 +48,7 @@ public:
|
||||||
Danbooru::ApiType apiType() const override;
|
Danbooru::ApiType apiType() const override;
|
||||||
|
|
||||||
void getPostList() override;
|
void getPostList() override;
|
||||||
void getPoolList() override;
|
void getPoolList(int limit = -1) override;
|
||||||
void getPool(int poolId, int page = 1) override;
|
void getPool(int poolId, int page = 1) override;
|
||||||
void getTagList(int limit = 10, QString name = "") override;
|
void getTagList(int limit = 10, QString name = "") override;
|
||||||
void getRelatedTags(const QStringList &tags,
|
void getRelatedTags(const QStringList &tags,
|
||||||
|
|
|
@ -282,7 +282,7 @@ public:
|
||||||
* This does not actually retrieve pool contents, only their definitions.
|
* This does not actually retrieve pool contents, only their definitions.
|
||||||
*
|
*
|
||||||
**/
|
**/
|
||||||
virtual void getPoolList() = 0;
|
virtual void getPoolList(int limit = -1) = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief retrieve posts associated to a specific pool from a Danbooru board.
|
* @brief retrieve posts associated to a specific pool from a Danbooru board.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue