diff options
author | dec05eba <dec05eba@protonmail.com> | 2020-09-20 18:59:04 +0200 |
---|---|---|
committer | dec05eba <dec05eba@protonmail.com> | 2020-09-20 18:59:04 +0200 |
commit | 5c72463c029804c85479d2c4426397d932c88ee1 (patch) | |
tree | 17d40e579cdc68d07e51233033cfa9db9b534c1d | |
parent | f41a28fe3ec5042849583081ca0e1aa6c38a7187 (diff) |
Add comments and trusted/remake colors to nyaa.si torrents
-rw-r--r-- | include/Body.hpp | 27 | ||||
-rw-r--r-- | src/Body.cpp | 27 | ||||
-rw-r--r-- | src/plugins/NyaaSi.cpp | 15 |
3 files changed, 43 insertions, 26 deletions
diff --git a/include/Body.hpp b/include/Body.hpp index 81e3a69..3dfbeaa 100644 --- a/include/Body.hpp +++ b/include/Body.hpp @@ -13,30 +13,8 @@ namespace QuickMedia { class BodyItem { public: - BodyItem(std::string _title): visible(true), dirty(true) { - set_title(std::move(_title)); - } - - BodyItem(const BodyItem &other) { - title = other.title; - description = other.description; - url = other.url; - thumbnail_url = other.thumbnail_url; - attached_content_url = other.attached_content_url; - author = other.author; - visible = other.visible; - dirty = other.dirty; - if(other.title_text) - title_text = std::make_unique<Text>(*other.title_text); - else - title_text = nullptr; - if(other.description_text) - description_text = std::make_unique<Text>(*other.description_text); - else - description_text = nullptr; - replies = other.replies; - post_number = other.post_number; - } + BodyItem(std::string _title); + BodyItem(const BodyItem &other); void set_title(std::string new_title) { title = std::move(new_title); @@ -62,6 +40,7 @@ namespace QuickMedia { // Used by image boards for example. The elements are indices to other body items std::vector<size_t> replies; std::string post_number; + sf::Color background_color; private: std::string title; std::string description; diff --git a/src/Body.cpp b/src/Body.cpp index 2579d64..73c3932 100644 --- a/src/Body.cpp +++ b/src/Body.cpp @@ -11,6 +11,31 @@ const sf::Color front_color(43, 45, 47); const sf::Color back_color(33, 35, 37); namespace QuickMedia { + BodyItem::BodyItem(std::string _title): visible(true), dirty(true), background_color(front_color) { + set_title(std::move(_title)); + } + + BodyItem::BodyItem(const BodyItem &other) { + title = other.title; + description = other.description; + url = other.url; + thumbnail_url = other.thumbnail_url; + attached_content_url = other.attached_content_url; + author = other.author; + visible = other.visible; + dirty = other.dirty; + if(other.title_text) + title_text = std::make_unique<Text>(*other.title_text); + else + title_text = nullptr; + if(other.description_text) + description_text = std::make_unique<Text>(*other.description_text); + else + description_text = nullptr; + replies = other.replies; + post_number = other.post_number; + } + Body::Body(Program *program, sf::Font *font, sf::Font *bold_font) : program(program), font(font), @@ -305,7 +330,7 @@ namespace QuickMedia { //item_pos.x += selected_border_width; item_background.setFillColor(sf::Color(0, 85, 119)); } else { - item_background.setFillColor(front_color); + item_background.setFillColor(item->background_color); } item_pos.x = std::floor(item_pos.x); diff --git a/src/plugins/NyaaSi.cpp b/src/plugins/NyaaSi.cpp index 0d43810..2ecf0d3 100644 --- a/src/plugins/NyaaSi.cpp +++ b/src/plugins/NyaaSi.cpp @@ -84,6 +84,12 @@ namespace QuickMedia { const std::string category_id_tag_end = "</nyaa:categoryId>"; const std::string size_tag_begin = "<nyaa:size>"; const std::string size_tag_end = "</nyaa:size>"; + const std::string comments_tag_begin = "<nyaa:comments>"; + const std::string comments_tag_end = "</nyaa:comments>"; + const std::string trusted_tag_begin = "<nyaa:trusted>"; + const std::string trusted_tag_end = "</nyaa:trusted>"; + const std::string remake_tag_begin = "<nyaa:remake>"; + const std::string remake_tag_end = "</nyaa:remake>"; size_t index = 0; while(index < website_data.size()) { @@ -105,6 +111,9 @@ namespace QuickMedia { std::string downloads = get_rss_item_text(website_data, index, item_end, downloads_tag_begin, downloads_tag_end); std::string category_id = get_rss_item_text(website_data, index, item_end, category_id_tag_begin, category_id_tag_end); std::string size = get_rss_item_text(website_data, index, item_end, size_tag_begin, size_tag_end); + std::string comments = get_rss_item_text(website_data, index, item_end, comments_tag_begin, comments_tag_end); + std::string trusted = get_rss_item_text(website_data, index, item_end, trusted_tag_begin, trusted_tag_end); + std::string remake = get_rss_item_text(website_data, index, item_end, remake_tag_begin, remake_tag_end); if(title.empty() || link.empty() || pub_date.empty() || seeders.empty() || leechers.empty() || downloads.empty() || category_id.empty() || size.empty()) { fprintf(stderr, "Error: failed to parse nyaa.si rss items\n"); @@ -114,7 +123,11 @@ namespace QuickMedia { auto body_item = std::make_unique<BodyItem>(std::move(title)); body_item->url = std::move(link); body_item->thumbnail_url = "https://nyaa.si/static/img/icons/nyaa/" + category_id + ".png"; - body_item->set_description("Published: " + pub_date + "\nSeeders: " + seeders + "\nLeechers: " + leechers + "\nDownloads: " + downloads + "\nSize: " + size); + body_item->set_description("Published: " + pub_date + "\nSeeders: " + seeders + "\nLeechers: " + leechers + "\nDownloads: " + downloads + "\nSize: " + size + "\nComments: " + comments); + if(trusted == "Yes") + body_item->background_color = sf::Color(43, 95, 47); + else if(remake == "Yes") + body_item->background_color = sf::Color(93, 45, 47); result_items.push_back(std::move(body_item)); index = item_end + 7; |