47
* Construct a query command in m_request to search on the server.
45
* Send a query command to search on the server.
49
47
* @param cfg import source configuration
50
48
* @param artist artist to search
51
49
* @param album album to search
52
* @param dest the server to connect to is returned hera
53
* @param destPort the port of the server is returned here
55
void MusicBrainzReleaseClient::constructFindQuery(
51
void MusicBrainzReleaseClient::sendFindQuery(
56
52
const ImportSourceConfig* cfg,
57
const QString& artist, const QString& album,
58
QString& dest, int& destPort)
53
const QString& artist, const QString& album)
61
56
* Query looks like this:
62
57
* http://musicbrainz.org/ws/1/release/?type=xml&artist=wizard&title=odin
64
QString destNamePort(getProxyOrDest(cfg->m_server));
65
splitNamePort(destNamePort, dest, destPort);
68
splitNamePort(cfg->m_server, serverName, serverPort);
69
QString encArtist(artist);
70
encArtist.replace(QRegExp(" +"), " "); // collapse spaces
71
QCM_QUrl_encode(encArtist);
72
encArtist.replace("%20", "+"); // replace spaces by '+'
73
QString encAlbum(album);
74
encAlbum.replace(QRegExp(" +"), " "); // collapse spaces
75
QCM_QUrl_encode(encAlbum);
76
encAlbum.replace("%20", "+"); // replace spaces by '+'
78
if (dest != serverName) {
79
m_request += "http://";
80
m_request += serverName;
81
if (serverPort != 80) {
83
m_request += QString::number(serverPort);
86
m_request += "/ws/1/release/?type=xml&artist=";
87
m_request += encArtist;
88
m_request += "&title=";
89
m_request += encAlbum;
90
m_request += " HTTP/1.1\r\nUser-Agent: Kid3/" VERSION "\r\nHost: ";
91
m_request += serverName;
92
m_request += "\r\nConnection: close\r\n\r\n";
59
sendRequest(cfg->m_server,
60
QString("/ws/1/release/?type=xml&artist=") +
61
encodeUrlQuery(artist) +
62
"&title=" + encodeUrlQuery(album));
96
* Construct a query command in m_request to fetch the track list
66
* Send a query command to fetch the track list
99
69
* @param cfg import source configuration
100
70
* @param cat category
102
* @param dest the server to connect to is returned hera
103
* @param destPort the port of the server is returned here
105
void MusicBrainzReleaseClient::constructTrackListQuery(
106
const ImportSourceConfig* cfg, const QString& cat, const QString& id,
107
QString& dest, int& destPort)
73
void MusicBrainzReleaseClient::sendTrackListQuery(
74
const ImportSourceConfig* cfg, const QString& cat, const QString& id)
110
77
* Query looks like this:
111
78
* http://musicbrainz.org/ws/1/release/978c7ed1-a854-4ef2-bd4e-e7c1317be854/?type=xml&inc=artist+tracks
113
QString destNamePort(getProxyOrDest(cfg->m_server));
114
splitNamePort(destNamePort, dest, destPort);
117
splitNamePort(cfg->m_server, serverName, serverPort);
119
if (dest != serverName) {
120
m_request += "http://";
121
m_request += serverName;
122
if (serverPort != 80) {
124
m_request += QString::number(serverPort);
127
m_request += "/ws/1/";
131
m_request += "/?type=xml&inc=artist+tracks";
80
QString path("/ws/1/");
84
path += "/?type=xml&inc=artist+tracks";
132
85
if (cfg->m_additionalTags) {
133
m_request += "+release-events+artist-rels+release-rels+track-rels+"
86
path += "+release-events+artist-rels+release-rels+track-rels+"
134
87
"track-level-rels+labels";
136
m_request += " HTTP/1.1\r\nUser-Agent: Kid3/" VERSION "\r\nHost: ";
137
m_request += serverName;
138
m_request += "\r\nConnection: close\r\n\r\n";
89
if (cfg->m_coverArt) {
92
sendRequest(cfg->m_server, path);