diff options
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/Youtube.cpp | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/src/plugins/Youtube.cpp b/src/plugins/Youtube.cpp index 23e95c6..d3d498e 100644 --- a/src/plugins/Youtube.cpp +++ b/src/plugins/Youtube.cpp @@ -1139,7 +1139,9 @@ namespace QuickMedia { PluginResult YoutubeCommentsPage::submit(const SubmitArgs &args, std::vector<Tab> &result_tabs) { if(args.url.empty()) return PluginResult::OK; - result_tabs.push_back(Tab{create_body(), std::make_unique<YoutubeCommentRepliesPage>(program, video_url, args.url), nullptr}); + + const BodyItem *body_item = (BodyItem*)args.userdata; + result_tabs.push_back(Tab{create_body(), std::make_unique<YoutubeCommentRepliesPage>(program, video_url, args.url, body_item), nullptr}); return PluginResult::OK; } @@ -1266,6 +1268,7 @@ namespace QuickMedia { } body_item->set_description(std::move(description)); + body_item->userdata = body_item.get(); return body_item; } @@ -1458,7 +1461,7 @@ namespace QuickMedia { PluginResult YoutubeCommentRepliesPage::get_page(const std::string&, int page, BodyItems &result_items) { while(current_page < page) { - PluginResult plugin_result = lazy_fetch(result_items); + PluginResult plugin_result = lazy_fetch(result_items, false); if(plugin_result != PluginResult::OK) return plugin_result; ++current_page; } @@ -1470,6 +1473,16 @@ namespace QuickMedia { } PluginResult YoutubeCommentRepliesPage::lazy_fetch(BodyItems &result_items) { + return lazy_fetch(result_items, true); + } + + PluginResult YoutubeCommentRepliesPage::lazy_fetch(BodyItems &result_items, bool first_fetch) { + if(first_fetch) { + auto body_item = BodyItem::create(""); + *body_item = *replied_to_body_item; + body_item->set_author("(OP) " + body_item->get_author()); + result_items.push_back(std::move(body_item)); + } return fetch_comments(this, video_url, continuation_token, result_items); } |