TTKMusicPlayer  4.2.0.0
TTKMusicPlayer imitates Kugou UI, the music player uses of qmmp core library based on Qt for windows and linux
musicdownloadbirdskinrequest.cpp
Go to the documentation of this file.
3 
4 static constexpr const char *MAIN_URL = "Q1VDQlUvWGpxVXBjclBxZHR2MUpGaWZoeUJpUlZYRDBsYkwyV3VyRzNIY1hpWnQweTFLNWNpaCtoenp5SkR6Sg==";
5 static constexpr const char *QUERY_URL = "MlVINmI0aGlvRXpvQVcwSklUUDRyVFVFdUExT0Rib3VuZlQ5QThRWTNyQUl4RkdlYmJLTmdrb2hVN21JZ2RZRHNYV1d3b09pcWRMcmM3d09SWWdIUlVwQ2NjSHhiSVg5V2R5ZmgyaEMyMVk9";
6 
9 {
10 
11 }
12 
14 {
16  connect(d, SIGNAL(downLoadRawDataChanged(QByteArray)), SLOT(downLoadFinished(QByteArray)));
18 }
19 
21 {
23  connect(d, SIGNAL(downLoadRawDataChanged(QByteArray)), SLOT(downLoadItemsFinished(QByteArray)));
24  d->startToRequest(TTK::Algorithm::mdII(QUERY_URL, false).arg(id));
25 }
26 
28 {
29  MusicSkinRemoteGroupList groups;
30 
31  QJsonParseError ok;
32  const QJsonDocument &json = QJsonDocument::fromJson(bytes, &ok);
34  {
35  QVariantMap value = json.toVariant().toMap();
36  if(value.contains("data"))
37  {
38  const QVariantList &datas = value["data"].toList();
39  for(const QVariant &var : qAsConst(datas))
40  {
41  if(var.isNull())
42  {
43  continue;
44  }
45 
46  value = var.toMap();
47 
49  group.m_group = QString("%1%2").arg(SKIN_BIRD_DIR, value["category"].toString());
50  group.m_id = value["old_id"].toString();
51  groups << group;
52  }
53  }
54  }
55 
56  Q_EMIT downLoadDataChanged(groups);
57 }
58 
60 {
62 
63  QJsonParseError ok;
64  const QJsonDocument &json = QJsonDocument::fromJson(bytes, &ok);
66  {
67  QVariantMap value = json.toVariant().toMap();
68  if(value.contains("data"))
69  {
70  value = value["data"].toMap();
71 
72  const QVariantList &datas = value["list"].toList();
73  for(const QVariant &var : qAsConst(datas))
74  {
75  if(var.isNull())
76  {
77  continue;
78  }
79 
80  value = var.toMap();
81 
83  item.m_name = value["tag"].toString();
84  item.m_index = value["id"].toInt();
85  item.m_useCount = item.m_index;
86  item.m_url = value["url"].toString();
87 
88  if(group.m_id.isEmpty())
89  {
90  group.m_id = value["class_id"].toString();
91  }
92 
93  if(item.isValid())
94  {
95  group.m_items << item;
96  }
97  }
98  }
99  }
100 
101  Q_EMIT downLoadItemsChanged(group);
102 }
virtual void startToRequest() overridefinal
void downLoadItemsFinished(const QByteArray &bytes)
The class of the remote skin item.
void downLoadDataChanged(const MusicSkinRemoteGroupList &bytes)
QVariant toVariant() const
static QJsonDocument fromJson(const QByteArray &json, QJsonParseError *error=0)
The class of the download skin remote background.
static constexpr const char * MAIN_URL
static constexpr const char * QUERY_URL
ParseError error
#define qAsConst
Definition: ttkqtglobal.h:57
The class of the data source download request.
MusicDownloadBirdSkinRequest(QObject *parent=nullptr)
virtual void downLoadFinished(const QByteArray &bytes) overridefinal
void startToRequest(const QString &url)
TTK_MODULE_EXPORT QString toString(Record type) noexcept
The class of the remote skin item group.
void downLoadItemsChanged(const MusicSkinRemoteGroup &bytes)
TTK_MODULE_EXPORT QString mdII(const QString &data, bool encode)
static constexpr const char * SKIN_BIRD_DIR