]> git.sur5r.net Git - minitube/blob - src/invidious/ivchannel.cpp
New upstream version 3.6.1
[minitube] / src / invidious / ivchannel.cpp
1 #include "ivchannel.h"
2
3 #include "http.h"
4 #include "httputils.h"
5 #include "invidious.h"
6
7 IVChannel::IVChannel(const QString &id, QObject *parent) : QObject(parent) {
8     QUrl url = Invidious::instance().method("channels/");
9     url.setPath(url.path() + id);
10
11     auto *reply = Invidious::cachedHttp().get(url);
12     connect(reply, &HttpReply::data, this, [this](auto data) {
13         QJsonDocument doc = QJsonDocument::fromJson(data);
14         const QJsonObject obj = doc.object();
15
16         displayName = obj["author"].toString();
17         description = obj["descriptionHtml"].toString();
18
19         const auto thumbnails = obj["authorThumbnails"].toArray();
20         for (const auto &thumbnail : thumbnails) {
21             if (thumbnail["width"].toInt() >= 300) {
22                 thumbnailUrl = thumbnail["url"].toString();
23                 break;
24             }
25         }
26         qDebug() << displayName << description << thumbnailUrl;
27
28         emit loaded();
29     });
30     connect(reply, &HttpReply::error, this, [this](auto message) {
31         Invidious::instance().initServers();
32         emit error(message);
33     });
34 }