Move original_or_thumbnail and thumbnail_or_original to Images
This commit is contained in:
parent
1f877e4d4e
commit
2750953d5c
|
@ -8,6 +8,26 @@ static inline std::optional<std::string> get_1920x960_cover_image(blankie::murl:
|
|||
static inline std::optional<std::string> get_original_cover_image(blankie::murl::Url url);
|
||||
static inline std::optional<std::string> get_original_profile_picture(blankie::murl::Url url);
|
||||
|
||||
const std::string& Images::original_or_thumbnail() const {
|
||||
if (this->original) {
|
||||
return *this->original;
|
||||
}
|
||||
if (!this->thumbnails.empty()) {
|
||||
return this->thumbnails.back();
|
||||
}
|
||||
throw std::runtime_error("Images does not contain any images");
|
||||
}
|
||||
|
||||
const std::string& Images::thumbnail_or_original() const {
|
||||
if (!this->thumbnails.empty()) {
|
||||
return this->thumbnails.back();
|
||||
}
|
||||
if (this->original) {
|
||||
return *this->original;
|
||||
}
|
||||
throw std::runtime_error("Images does not contain any images");
|
||||
}
|
||||
|
||||
PixivClient::PixivClient() {
|
||||
this->_www_pixiv_net_client.set_keep_alive(true);
|
||||
this->_www_pixiv_net_client.set_default_headers({
|
||||
|
|
|
@ -10,6 +10,9 @@
|
|||
struct Images {
|
||||
std::optional<std::string> original;
|
||||
std::vector<std::string> thumbnails;
|
||||
|
||||
const std::string& original_or_thumbnail() const;
|
||||
const std::string& thumbnail_or_original() const;
|
||||
};
|
||||
|
||||
struct User {
|
||||
|
|
|
@ -4,21 +4,19 @@
|
|||
#include "../../pixivclient.h"
|
||||
|
||||
static inline Element generate_user_links(const User& user);
|
||||
static std::string thumbnail_or_original(const Images& images);
|
||||
static std::string original_or_thumbnail(const Images& images);
|
||||
|
||||
Element generate_user_header(const User& user, const Config& config) {
|
||||
Element header("header");
|
||||
if (user.cover_images) {
|
||||
std::string cover_original = proxy_image_url(config, original_or_thumbnail(*user.cover_images));
|
||||
std::string cover_thumbnail = proxy_image_url(config, thumbnail_or_original(*user.cover_images));
|
||||
std::string cover_original = proxy_image_url(config, user.cover_images->original_or_thumbnail());
|
||||
std::string cover_thumbnail = proxy_image_url(config, user.cover_images->thumbnail_or_original());
|
||||
header.nodes.push_back(Element("a", {{"href", std::move(cover_original)}}, {
|
||||
Element("img", {{"class", "cover"}, {"src", std::move(cover_thumbnail)}}, {})
|
||||
}));
|
||||
}
|
||||
|
||||
std::string profile_picture_original = proxy_image_url(config, original_or_thumbnail(user.profile_pictures));
|
||||
std::string profile_picture_thumbnail = proxy_image_url(config, thumbnail_or_original(user.profile_pictures));
|
||||
std::string profile_picture_original = proxy_image_url(config, user.profile_pictures.original_or_thumbnail());
|
||||
std::string profile_picture_thumbnail = proxy_image_url(config, user.profile_pictures.thumbnail_or_original());
|
||||
header.nodes.push_back(Element("div", {{"class", "usermetadata"}}, {
|
||||
Element("a", {{"href", std::move(profile_picture_original)}}, {
|
||||
Element("img", {{"class", "profilepicture"}, {"src", std::move(profile_picture_thumbnail)}}, {})
|
||||
|
@ -41,20 +39,3 @@ static inline Element generate_user_links(const User& user) {
|
|||
}
|
||||
return p;
|
||||
}
|
||||
|
||||
static std::string thumbnail_or_original(const Images& images) {
|
||||
if (!images.thumbnails.empty()) {
|
||||
return images.thumbnails.back();
|
||||
}
|
||||
return images.original.value_or("");
|
||||
}
|
||||
|
||||
static std::string original_or_thumbnail(const Images& images) {
|
||||
if (images.original) {
|
||||
return *images.original;
|
||||
}
|
||||
if (!images.thumbnails.empty()) {
|
||||
return images.thumbnails.back();
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue