@@ -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