44 QVariantMap value = json.
toVariant().toMap();
45 if(value[
"code"].toInt() == 0 || value[
"code"].toInt() == 200)
48 prop.
m_url = value[
"url"].toString();
55 prop.
m_url = value[
"data"].toString();
85 QVariantMap value = json.
toVariant().toMap();
86 if(value[
"code"].toInt() == 0 || value[
"code"].toInt() == 200)
89 prop.
m_url = value[
"url"].toString();
96 prop.
m_url = value[
"data"].toString();
99 const QVariantMap &extra = value[
"extra"].toMap();
105 const QVariantMap &q = value[
"quality"].toMap();
106 if(q[
"target"].
toString().contains(quality, Qt::CaseInsensitive) &&
107 q[
"result"].
toString().contains(quality, Qt::CaseInsensitive) && !prop.
isEmpty())
134 QVariantMap value = json.
toVariant().toMap();
135 if(value.contains(
"url"))
138 prop.
m_url = value[
"url"].toString();
141 prop.
m_bitrate = value.contains(
"br") ? value[
"br"].toInt() : bitrate;
145 prop.
m_url = value[
"data"].toString();
175 QVariantMap value = json.
toVariant().toMap();
176 if(value[
"code"].toInt() == 0 || value[
"code"].toInt() == 200)
179 prop.
m_url = value[
"url"].toString();
186 prop.
m_url = value[
"data"].toString();
189 const QString &q = value[
"quality"].toString();
190 if(q.contains(quality, Qt::CaseInsensitive) && !prop.
isEmpty())
239 QVariantMap value = json.
toVariant().toMap();
240 if(value[
"code"].toInt() == 0 || value[
"code"].toInt() == 200)
243 prop.
m_url = value[
"url"].toString();
250 prop.
m_url = value[
"data"].toString();
272 if(file.open(QIODevice::ReadOnly))
274 TTK_INFO_STREAM(
"Load server unity plugins using local resource config");
275 bytes = file.readAll();
289 const QVariantList &datas = json.
toVariant().toList();
290 for(
const QVariant &var :
qAsConst(datas))
297 const QVariantMap &value = var.toMap();
298 const bool option = value[
"option"].toBool();
307 if(prop.m_bitrate == bitrate)
313 const QVariantMap &serverMap = value[
"server"].toMap();
314 const QVariantMap &qualityMap = value[
"quality"].toMap();
315 if(!serverMap.contains(type) || !qualityMap.contains(QString::number(bitrate)))
321 v.
m_ua = value[
"ua"].toString();
322 v.
m_quality = qualityMap[QString::number(bitrate)].toString();
324 for(
const QString &module : value.keys())
335 QNetworkRequest request;
342 if(!value.contains(
"body"))
352 if(v.
m_url.isEmpty())
357 request.setUrl(v.
m_url);
360 const QVariantMap &headerMap = value[
"headers"].toMap();
361 if(!headerMap.isEmpty())
363 for(
const QString &header : headerMap.keys())
370 if(!v.
m_ua.isEmpty())
TTK_MODULE_EXPORT QByteArray syncNetworkQueryForPost(QNetworkRequest *request, const QByteArray &data)
static constexpr const char * QUERY_MODULE_E
TTK_MODULE_EXPORT void setSslConfiguration(QNetworkRequest *request, QSslSocket::PeerVerifyMode mode=QSslSocket::VerifyNone) noexcept
QVariant toVariant() const
The class of the music song property.
static QJsonDocument fromJson(const QByteArray &json, QJsonParseError *error=0)
static constexpr const char * QUERY_PLUGINS_URL
static constexpr const char * QUERY_MODULE_X
static constexpr const char * QUERY_MODULE_B
static void parseSongPropertyC(QNetworkRequest *request, TTK::MusicSongInformation *info, int bitrate, const QString &quality)
TTK_MODULE_EXPORT QString sizeByteToLabel(qint64 size)
static void parseSongPropertyX(QNetworkRequest *request, TTK::MusicSongInformation *info, int bitrate)
TTK_MODULE_EXPORT QByteArray syncNetworkQueryForGet(QNetworkRequest *request)
static bool checkModule(const QString &module)
static constexpr const char * QUERY_MODULE_C
#define APPCACHE_DIR_FULL
#define TTK_INFO_STREAM(msg)
bool isEmpty() const noexcept
The class of the music meta.
TTK_MODULE_EXPORT void setContentTypeHeader(QNetworkRequest *request, const QByteArray &data={}) noexcept
static constexpr const char * QUERY_MODULE_A
static constexpr const char * QUERY_MODULE_D
TTK_MODULE_EXPORT QString toString(Record type) noexcept
static void parseSongPropertyA(QNetworkRequest *request, TTK::MusicSongInformation *info, int bitrate, const QString &quality)
static void parseSongPropertyE(QNetworkRequest *request, const QString &body, TTK::MusicSongInformation *info, int bitrate)
static void parseSongPropertyD(QNetworkRequest *request, TTK::MusicSongInformation *info, int bitrate)
static void parseSongPropertyB(QNetworkRequest *request, TTK::MusicSongInformation *info, int bitrate)
void parseFromSongProperty(TTK::MusicSongInformation *info, const QString &type, const QString &id, int bitrate)
#define TTK_ERROR_STREAM(msg)
TTK_MODULE_EXPORT QString mdII(const QString &data, bool encode)