1 #include "ivvideolist.h"
6 #include "ivlistparser.h"
9 IVVideoList::IVVideoList(const QString &req, const QString &name, QObject *parent)
10 : IVVideoSource(parent), name(name), req(req) {}
12 void IVVideoList::reallyLoadVideos(int max, int startIndex) {
15 QString baseUrl = Invidious::instance().baseUrl();
16 if (baseUrl.isEmpty()) {
17 QTimer::singleShot(500, this, [this] { handleError("No baseUrl"); });
20 QUrl url(baseUrl + req);
22 auto *reply = Invidious::cachedHttp().get(url);
23 connect(reply, &HttpReply::data, this, [this](auto data) {
24 QJsonDocument doc = QJsonDocument::fromJson(data);
25 const QJsonArray items = doc.array();
26 if (items.isEmpty()) {
27 handleError("No videos");
31 IVListParser parser(items);
32 const QVector<Video *> &videos = parser.getVideos();
34 emit gotVideos(videos);
35 emit finished(videos.size());
37 connect(reply, &HttpReply::error, this, &IVVideoList::handleError);