Skip to content

Commit eca0f7b

Browse files
committed
fix(NextTrack): add language
1 parent cdc331a commit eca0f7b

4 files changed

Lines changed: 16 additions & 7 deletions

File tree

src/ai/command_handler.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ class CommandHandler {
120120
if (selected_track.source == "soundcloud") {
121121
next_tracks = soundcloud.fetch_next_tracks(selected_track.url);
122122
} else if (selected_track.source == "saavn") {
123-
next_tracks = saavn.fetch_next_tracks(selected_track.id);
123+
next_tracks = saavn.fetch_next_tracks(selected_track.id, selected_track.language);
124124
}
125125
} catch (const std::exception& e) {
126126
// If fetching next tracks fails, just play the selected track

src/common/Track.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ struct Track {
88
std::string id;
99
std::string source;
1010
std::string coverImage;
11+
std::string language;
1112

1213
// Convert to display string for FTXUI menu
1314
std::string to_string() const {

src/core/main.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -761,7 +761,7 @@ int main(int argc, char *argv[]) {
761761
next_tracks = soundcloud.fetch_next_tracks(track_data[selected].url);
762762
}else {//if(track_data[selected].source=="saavn"){
763763
// system(("notify-send 'Tuisic' 'Fetching next'" + track_data[selected].id).c_str());
764-
next_tracks = saavn.fetch_next_tracks(track_data[selected].id);
764+
next_tracks = saavn.fetch_next_tracks(track_data[selected].id, track_data[selected].language);
765765
// system(("notify-send 'Tuisic' 'Fetching next'" + next_tracks[0].id).c_str());
766766

767767
}

src/services/saavn/saavn.cpp

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ class Saavn {
2727
track.url = result["perma_url"].GetString();
2828
track.artist = result["more_info"]["artistMap"]["primary_artists"][0]["name"].GetString();
2929
track.source = "saavn";
30+
track.language = result["language"].GetString();
3031
tracks.push_back(track);
3132
}
3233
// std::cout << "NEXT TRACKS \n" << tracks[0].name << std::endl;
@@ -44,6 +45,7 @@ class Saavn {
4445
track.url = result["perma_url"].GetString();
4546
track.artist = result["more_info"]["artistMap"]["artists"][0]["name"].GetString();
4647
track.source = "saavn";
48+
track.language = result["language"].GetString();
4749
tracks.push_back(track);
4850
}
4951
return tracks;
@@ -68,6 +70,9 @@ class Saavn {
6870
if (result.HasMember("perma_url") && result["perma_url"].IsString()) {
6971
track.url = result["perma_url"].GetString();
7072
}
73+
if (result.HasMember("language") && result["language"].IsString()) {
74+
track.language = result["language"].GetString();
75+
}
7176
if (result.HasMember("more_info") && result["more_info"].IsObject()) {
7277
const auto &more_info = result["more_info"];
7378
if (more_info.HasMember("artistMap") &&
@@ -137,27 +142,28 @@ class Saavn {
137142
return extractTracks(readBuffer);
138143
}
139144

140-
std::vector<Track> fetch_trending() {
141-
std::string url = "https://www.jiosaavn.com/api.php?__call=content.getTrending&api_version=4&_format=json&_marker=0&ctx=web6dot0&entity_type=album&entity_language=english";
145+
std::vector<Track> fetch_trending(std::string language = "english") {
146+
std::string url = "https://www.jiosaavn.com/api.php?__call=content.getTrending&api_version=4&_format=json&_marker=0&ctx=web6dot0&entity_type=album&entity_language=" + language;
142147
std::string readBuffer = make_request(url);
143148
return extractTrendingTracks(readBuffer);
144149
}
145150

146-
std::vector<Track> fetch_next_tracks(std::string id) {
151+
std::vector<Track> fetch_next_tracks(std::string id, std::string language = "english") {
147152
CURL *curl = curl_easy_init();
148153
if (!curl) {
149154
throw std::runtime_error("CURL initialization failed.");
150155
}
151156

152157
std::string url = "https://www.jiosaavn.com/api.php?__call=reco.getreco&api_version=4&_format=json&_marker=0&ctx=web6dot0&pid=" + std::string(curl_easy_escape(curl, id.c_str(), id.length()));
153-
// std::cout << url << std::endl;
158+
// std::cout << "[NEXT TRACK]: " << url << std::endl;
154159
curl_easy_cleanup(curl);
155160
std::string readBuffer = make_request(url);
156161
// std::cout << readBuffer << readBuffer.size()<< std::endl;
157162

158163
if(readBuffer.size() == 2) {
159164
// std::cout << "in fi";
160-
std::string url = "https://www.jiosaavn.com/api.php?__call=content.getTrending&api_version=4&_format=json&_marker=0&ctx=web6dot0&entity_type=song&entity_language=english";
165+
// std::cout << "[TRENDING] ====== No next track found" << std::endl;
166+
std::string url = "https://www.jiosaavn.com/api.php?__call=content.getTrending&api_version=4&_format=json&_marker=0&ctx=web6dot0&entity_type=song&entity_language=" + std::string(curl_easy_escape(curl, language.c_str(), language.length()));
161167
curl_easy_cleanup(curl);
162168
std::string readBuffer = make_request(url);
163169
return extractTrendingTracks(readBuffer);
@@ -178,6 +184,7 @@ class Saavn {
178184
// std::cout << "Title: " << track.name << "\n";
179185
// std::cout << "URL: " << track.url << "\n";
180186
// std::cout << "Primary Artists: " << track.artist << "\n";
187+
// std::cout << "Language: " << track.language << "\n";
181188
// for (const auto& artist : track.artist) {
182189
// std::cout << artist << "";
183190
// }
@@ -190,6 +197,7 @@ class Saavn {
190197
// std::cout << "Title: " << track.name << "\n";
191198
// std::cout << "URL: " << track.url << "\n";
192199
// std::cout << "Primary Artists: " << track.artist << "\n";
200+
// std::cout << "Language: " << track.language << "\n";
193201
// for (const auto& artist : track.artist) {
194202
// std::cout << artist << "";
195203
// }

0 commit comments

Comments
 (0)