57 if(prop.m_bitrate == bitrate)
65 QNetworkRequest request;
78 const QVariant &data = json.
parse(bytes, &ok);
81 QVariantMap value = data.toMap();
82 if(value[
"code"].toInt() == 0)
85 prop.
m_url = value[
"data"].toString();
92 prop.
m_url = value[
"url"].toString();
100 value = value[
"extra"].toMap();
106 value = value[
"quality"].toMap();
112 if(value[
"target"].
toString().contains(quality, Qt::CaseInsensitive) && value[
"result"].toString().contains(quality, Qt::CaseInsensitive))
125 if(prop.m_bitrate == bitrate)
133 QNetworkRequest request;
145 const QVariant &data = json.
parse(bytes, &ok);
148 QVariantMap value = data.toMap();
149 if(value.contains(
"url"))
152 prop.
m_url = value[
"url"].toString();
170 if(file.open(QIODevice::ReadOnly))
173 bytes = file.readAll();
184 const QVariant &data = json.
parse(bytes, &ok);
187 const QVariantList &datas = data.toList();
188 for(
const QVariant &var :
qAsConst(datas))
195 const QVariantMap &value = var.toMap();
196 const QString &
key = value[
"key"].toString();
197 const bool option = value[
"option"].toBool();
204 for(
const QString &module : value.keys())
206 const QString &url = value[module].toString();
215 if(server.isEmpty() || quality.isEmpty())
static QString makeQualityValue(const QString &type, int bitrate)
The class of the music song property.
static constexpr const char * QUERY_PLUGINS_URL
static constexpr const char * QUERY_KG_INTERFACE
static constexpr wchar_t key[]
static constexpr const char * QUERY_MODULE_B
TTK_MODULE_EXPORT void setSslConfiguration(QNetworkRequest *request, QSslSocket::PeerVerifyMode mode=QSslSocket::VerifyNone)
static void parseSongPropertyB(TTK::MusicSongInformation *info, const QString &url, int bitrate)
static QString makeModuleValue(const QString &type, const QString &module)
TTK_MODULE_EXPORT QByteArray syncNetworkQueryForGet(QNetworkRequest *request)
#define APPCACHE_DIR_FULL
static constexpr const char * QUERY_WY_INTERFACE
#define TTK_INFO_STREAM(msg)
bool isEmpty() const noexcept
static constexpr const char * QUERY_MODULE_A
QVariant parse(QIODevice *io, bool *ok=0)
Read JSON string from the I/O Device and converts it to a QVariant object.
static constexpr const char * QUERY_KW_INTERFACE
TTK_MODULE_EXPORT QString toString(Record type)
static void parseSongPropertyA(TTK::MusicSongInformation *info, const QString &key, const QString &url, const QString &quality, int bitrate)
Main class used to convert JSON data to QVariant objects.
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)