aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Soundcloud.cpp
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2022-02-07 22:54:20 +0100
committerdec05eba <dec05eba@protonmail.com>2022-02-07 22:55:11 +0100
commit75c610d1f65d741bbeba9f1ddeef60a6e9315427 (patch)
tree0dd79a5a7f35c89b9672d55fbf24cb1f6de13aa9 /src/plugins/Soundcloud.cpp
parent9539a71dbeafdc4107d3b92eefada332ee45579a (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.cpp29
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) {