File indexing completed on 2025-02-23 04:35:14

0001 // SPDX-FileCopyrightText: 2023 Joshua Goins <josh@redstrate.com>
0002 // SPDX-License-Identifier: GPL-3.0-or-later
0003 
0004 #include "playlist.h"
0005 
0006 using namespace QInvidious;
0007 using namespace Qt::StringLiterals;
0008 
0009 Playlist Playlist::fromJson(const QJsonObject &obj, Playlist &playlist)
0010 {
0011     const bool isPiped = obj.contains("uploaderName"_L1);
0012     if (isPiped) {
0013         playlist.m_id = obj["url"_L1].toString().remove(QStringLiteral("/playlist?list="));
0014         playlist.m_title = obj["name"_L1].toString();
0015         playlist.m_thumbnail = obj["thumbnail"_L1].toString();
0016         playlist.m_videoCount = obj["videos"_L1].toInt();
0017     } else {
0018         playlist.m_id = obj["playlistId"_L1].toString();
0019         playlist.m_title = obj["title"_L1].toString();
0020         const QJsonValue firstVideo = obj["videos"_L1].toArray().first();
0021         const QJsonValue firstVideoThumb = firstVideo.toObject()["videoThumbnails"_L1].toArray().first();
0022         playlist.m_thumbnail = firstVideoThumb.toObject()["url"_L1].toString();
0023         playlist.m_videoCount = obj["videoCount"_L1].toInt();
0024     }
0025 
0026     return playlist;
0027 }
0028 
0029 QString Playlist::id() const
0030 {
0031     return m_id;
0032 }
0033 
0034 QString Playlist::title() const
0035 {
0036     return m_title;
0037 }
0038 
0039 QString Playlist::thumbnail() const
0040 {
0041     return m_thumbnail;
0042 }
0043 
0044 int Playlist::videoCount() const
0045 {
0046     return m_videoCount;
0047 }