diff options
author | dec05eba <dec05eba@protonmail.com> | 2022-02-07 22:54:20 +0100 |
---|---|---|
committer | dec05eba <dec05eba@protonmail.com> | 2022-02-07 22:55:11 +0100 |
commit | 75c610d1f65d741bbeba9f1ddeef60a6e9315427 (patch) | |
tree | 0dd79a5a7f35c89b9672d55fbf24cb1f6de13aa9 /src/plugins/Soundcloud.cpp | |
parent | 9539a71dbeafdc4107d3b92eefada332ee45579a (diff) |
Use one struct for all args in Page::submit instead of multiple args (easier to add new fields without changing code)
Also remove submit_body_item from page.
Diffstat (limited to 'src/plugins/Soundcloud.cpp')
-rw-r--r-- | src/plugins/Soundcloud.cpp | 29 |
1 files changed, 13 insertions, 16 deletions
diff --git a/src/plugins/Soundcloud.cpp b/src/plugins/Soundcloud.cpp index 7f2b1f1..9da65ee 100644 --- a/src/plugins/Soundcloud.cpp +++ b/src/plugins/Soundcloud.cpp @@ -236,17 +236,17 @@ namespace QuickMedia { return PluginResult::OK; } - PluginResult SoundcloudPage::submit(const std::string &title, const std::string &url, std::vector<Tab> &result_tabs) { - if(url.empty()) + PluginResult SoundcloudPage::submit(const SubmitArgs &args, std::vector<Tab> &result_tabs) { + if(args.url.empty()) return PluginResult::ERR; - if(url == "track") { - SoundcloudPlaylist *playlist = static_cast<SoundcloudPlaylist*>(submit_body_item->extra.get()); + if(args.url == "track") { + SoundcloudPlaylist *playlist = static_cast<SoundcloudPlaylist*>(args.extra.get()); auto body = create_body(false, true); body->set_items(playlist->tracks); - result_tabs.push_back(Tab{std::move(body), std::make_unique<SoundcloudPlaylistPage>(program, playlist, title), nullptr}); - } else if(url.find("/stream/users/") != std::string::npos) { - std::string query_url = url + "?client_id=" + client_id + "&limit=20&offset=0&linked_partitioning=1&app_version=1616689516&app_locale=en"; + result_tabs.push_back(Tab{std::move(body), std::make_unique<SoundcloudPlaylistPage>(program, playlist, args.title), nullptr}); + } else if(args.url.find("/stream/users/") != std::string::npos) { + std::string query_url = args.url + "?client_id=" + client_id + "&limit=20&offset=0&linked_partitioning=1&app_version=1616689516&app_locale=en"; Json::Value json_root; DownloadResult result = download_json(json_root, query_url, {}, true); @@ -259,9 +259,9 @@ namespace QuickMedia { body->set_items(std::move(body_items)); if(pr != PluginResult::OK) return pr; - result_tabs.push_back(Tab{std::move(body), std::make_unique<SoundcloudUserPage>(program, title, url, std::move(next_href)), nullptr}); + result_tabs.push_back(Tab{std::move(body), std::make_unique<SoundcloudUserPage>(program, args.title, args.url, std::move(next_href)), nullptr}); } else { - std::string query_url = url + "?client_id=" + client_id; + std::string query_url = args.url + "?client_id=" + client_id; Json::Value json_root; DownloadResult result = download_json(json_root, query_url, {}, true); @@ -276,21 +276,18 @@ namespace QuickMedia { // TODO: Remove when youtube-dl is no longer required to download music std::string permalink_url; - SoundcloudTrack *track = static_cast<SoundcloudTrack*>(submit_body_item->extra.get()); + SoundcloudTrack *track = static_cast<SoundcloudTrack*>(args.extra.get()); if(track) permalink_url = track->permalink_url; - result_tabs.push_back(Tab{nullptr, std::make_unique<SoundcloudAudioPage>(program, title, url_json.asString(), std::move(permalink_url)), nullptr}); + result_tabs.push_back(Tab{nullptr, std::make_unique<SoundcloudAudioPage>(program, args.title, url_json.asString(), std::move(permalink_url)), nullptr}); } return PluginResult::OK; } - PluginResult SoundcloudSearchPage::submit(const std::string &title, const std::string &url, std::vector<Tab> &result_tabs) { - submit_page.submit_body_item = submit_body_item; - PluginResult result = submit_page.submit(title, url, result_tabs); - submit_page.submit_body_item = nullptr; - return result; + PluginResult SoundcloudSearchPage::submit(const SubmitArgs &args, std::vector<Tab> &result_tabs) { + return submit_page.submit(args, result_tabs); } SearchResult SoundcloudSearchPage::search(const std::string &str, BodyItems &result_items) { |