20 if(url.isEmpty() && !
id.isEmpty())
38 if(prop.m_bitrate == bitrate)
44 TTK_INFO_STREAM(
"parse song" << bitrate <<
"kbps property in v1 module");
47 if((format.contains(
"MP3128") || format.contains(
"128kmp3")) && bitrate ==
TTK_BN_128)
51 else if((format.contains(
"MP3192") || format.contains(
"192kmp3")) && bitrate ==
TTK_BN_192)
55 else if((format.contains(
"MP3H") || format.contains(
"320kmp3")) && bitrate ==
TTK_BN_320)
59 else if((format.contains(
"FLAC") || format.contains(
"2000kflac")) && bitrate ==
TTK_BN_1000)
61 quality =
"2000kflac";
68 QNetworkRequest request;
80 const QVariant &data = json.
parse(bytes, &ok);
83 QVariantMap value = data.toMap();
84 if(value[
"code"].toInt() == 200 && value.contains(
"data"))
86 value = value[
"data"].toMap();
92 const QString &format = value[
"format"].toString();
96 prop.
m_url = value[
"url"].toString();
110 if(prop.m_bitrate == bitrate)
116 TTK_INFO_STREAM(
"parse song" << bitrate <<
"kbps property in v2 module");
119 if((format.contains(
"MP3128") || format.contains(
"128kmp3")) && bitrate ==
TTK_BN_128)
123 else if((format.contains(
"MP3192") || format.contains(
"192kmp3")) && bitrate ==
TTK_BN_192)
127 else if((format.contains(
"MP3H") || format.contains(
"320kmp3")) && bitrate ==
TTK_BN_320)
131 else if((format.contains(
"FLAC") || format.contains(
"2000kflac")) && bitrate ==
TTK_BN_1000)
133 quality =
"2000kflac";
143 QNetworkRequest request;
153 if(!bytes.contains(
"res not found"))
155 const QString text(bytes);
156 const QRegExp regx(
".*url=(.*)\r\nsig=");
158 if(regx.indexIn(text) != -1)
161 prop.
m_url = regx.cap(1);
180 if(prop.m_bitrate == bitrate)
186 TTK_INFO_STREAM(
"parse song" << bitrate <<
"kbps property in v3 module");
188 if(((format.contains(
"MP3128") || format.contains(
"128kmp3")) && bitrate ==
TTK_BN_128) ||
189 ((format.contains(
"MP3H") || format.contains(
"320kmp3")) && bitrate ==
TTK_BN_320) ||
190 ((format.contains(
"FLAC") || format.contains(
"2000kflac")) && bitrate ==
TTK_BN_1000))
TTK_MODULE_EXPORT QString charactersReplace(const QString &value)
static void parseSongPropertyV3(TTK::MusicSongInformation *info, const QString &format, int bitrate)
TTK_MODULE_EXPORT void makeUserAgentHeader(QNetworkRequest *request, const QByteArray &data={})
static constexpr const char * KW_SONG_PATH_V1_URL
static void parseSongPropertyV1(TTK::MusicSongInformation *info, const QString &suffix, const QString &format, int bitrate)
The class of the music song property.
static constexpr const char * KW_ALBUM_COVER_URL
TTK_MODULE_EXPORT void setSslConfiguration(QNetworkRequest *request, QSslSocket::PeerVerifyMode mode=QSslSocket::VerifyNone)
static constexpr const char * KW_ALBUM_COVER_INFO_URL
QString makeCoverPixmapUrl(const QString &url, const QString &id)
QByteArray encrypt(const QByteArray &in, const QByteArray &key)
TTK_MODULE_EXPORT QByteArray syncNetworkQueryForGet(QNetworkRequest *request)
void makeRequestRawHeader(QNetworkRequest *request)
static void parseSongPropertyV2(TTK::MusicSongInformation *info, const QString &suffix, const QString &format, int bitrate)
static void parseSongProperty(TTK::MusicSongInformation *info, const QString &suffix, const QString &format, int bitrate)
TTK_MODULE_EXPORT QString suffix(const QString &name)
#define TTK_INFO_STREAM(msg)
The class of the des wrapper.
static constexpr const char * KW_SONG_PATH_V2_URL
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
static constexpr const char * KW_SONG_PATH_V2_DATA_URL
QString makeSongArtist(const QString &name)
TTK_MODULE_EXPORT void makeContentTypeHeader(QNetworkRequest *request, const QByteArray &data={})
Main class used to convert JSON data to QVariant objects.
void parseFromSongProperty(TTK::MusicSongInformation *info, const QString &type, const QString &id, int bitrate)
static constexpr const char * MDII_SHR_KEY
TTK_MODULE_EXPORT QString mdII(const QString &data, bool encode)
void parseFromSongProperty(TTK::MusicSongInformation *info, int bitrate)
TTK_MODULE_EXPORT bool isNetworkUrl(const QString &path)