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 }