TTKMusicPlayer  4.2.0.0
TTKMusicPlayer imitates Kugou UI, the music player uses of qmmp core library based on Qt for windows and linux
musicbpdownloadimagerequest.cpp
Go to the documentation of this file.
3 
4 static constexpr const char *ART_BACKGROUND_URL = "L2tVRE5IY2RSOVcyNysvc3RBNVNjS3pmUlNwNjlOTW8xYmlnT2sxNVJUc0VTQk1CTGtoL2Z3SG1nbDNiOWRaR1dPL1BxQ3ZOSmVUdG91TEZaUVJhNjVyb2Znd2xBYWtYYTV6bURubXFqdFFIV293cg==";
5 
6 MusicBPDownloadBackgroundRequest::MusicBPDownloadBackgroundRequest(const QString &name, const QString &path, QObject *parent)
7  : MusicAbstractDownloadImageRequest(name, path, parent)
8 {
9 
10 }
11 
13 {
14  TTK_INFO_STREAM(className() << __FUNCTION__);
15 
17 
18  QNetworkRequest request;
19  request.setUrl(TTK::Algorithm::mdII(ART_BACKGROUND_URL, false));
20  TTK::setSslConfiguration(&request);
22 
23  m_reply = m_manager.get(request);
24  connect(m_reply, SIGNAL(finished()), SLOT(downLoadFinished()));
26 }
27 
29 {
30  TTK_INFO_STREAM(className() << __FUNCTION__);
31 
33  if(m_reply && m_reply->error() == QNetworkReply::NoError)
34  {
35  QJsonParseError ok;
36  const QJsonDocument &json = QJsonDocument::fromJson(m_reply->readAll(), &ok);
38  {
39  QVariantMap value = json.toVariant().toMap();
40  if(value.contains("data"))
41  {
42  value = value["data"].toMap();
43 
44  const QVariantList &datas = value["list"].toList();
45  for(const QVariant &var : qAsConst(datas))
46  {
47  if(var.isNull())
48  {
49  continue;
50  }
51 
52  value = var.toMap();
54 
55  const QString &name = value["tag"].toString();
56  if(m_counter < m_remainCount && !name.isEmpty() && (name.contains(m_name) || m_name.contains(name)))
57  {
58  const QString &url = value["url"].toString();
59  if(url.isEmpty())
60  {
61  continue;
62  }
63 
65  connect(d, SIGNAL(downLoadDataChanged(QString)), SLOT(downLoadDataFinished()));
66  d->startToRequest();
67  }
68  }
69  }
70  }
71  }
72 
73  TTK_INFO_STREAM(className() << "download image size" << m_counter);
74  Q_EMIT downLoadDataChanged(QString::number(m_counter));
75  //
76  if(m_counter == 0)
77  {
78  deleteAll();
79  }
80 }
#define TTK_NETWORK_QUERY_CHECK(VALUE)
virtual void downLoadFinished() overridefinal
virtual void deleteAll()
void downLoadDataChanged(const QString &bytes)
TTK_MODULE_EXPORT void setSslConfiguration(QNetworkRequest *request, QSslSocket::PeerVerifyMode mode=QSslSocket::VerifyNone) noexcept
QNetworkReply * m_reply
QVariant toVariant() const
static QJsonDocument fromJson(const QByteArray &json, QJsonParseError *error=0)
The class of the download the type of data.
virtual void downLoadFinished()
ParseError error
MusicBPDownloadBackgroundRequest(const QString &name, const QString &path, QObject *parent=nullptr)
#define qAsConst
Definition: ttkqtglobal.h:57
const char * name
Definition: http_parser.c:458
TTK_MODULE_EXPORT void makeContentTypeHeader(QNetworkRequest *request, const QByteArray &data={}) noexcept
#define TTK_INFO_STREAM(msg)
Definition: ttklogger.h:74
QNetworkAccessManager m_manager
#define BACKGROUND_DIR_FULL
Definition: musicobject.h:143
virtual void replyError(QNetworkReply::NetworkError error) override
#define TTK_SLOT
Definition: ttkqtglobal.h:177
The class of the download art background image.
virtual void startToRequest() overridefinal
static constexpr const char * ART_BACKGROUND_URL
#define SKN_FILE
Definition: musicobject.h:69
virtual void startToRequest() override
TTK_MODULE_EXPORT QString mdII(const QString &data, bool encode)
#define QtNetworkErrorConnect(p, q, f, s)
Network error connect.
Definition: ttkqtcompat.h:59