Show illustration upload time
This commit is contained in:
parent
64f8060a9f
commit
04e34a6e3a
|
@ -4,10 +4,11 @@
|
||||||
#include "../pixivclient.h"
|
#include "../pixivclient.h"
|
||||||
|
|
||||||
static inline bool is_true(const std::string& str);
|
static inline bool is_true(const std::string& str);
|
||||||
|
static inline std::string time_to_string(time_t time);
|
||||||
static inline Element generate_user_link(const httplib::Request& req, const Config& config, const Illust& illust);
|
static inline Element generate_user_link(const httplib::Request& req, const Config& config, const Illust& illust);
|
||||||
static inline Element generate_images(const httplib::Request& req, const Config& config, const Illust& illust);
|
static inline Element generate_images(const httplib::Request& req, const Config& config, const Illust& illust);
|
||||||
static inline Element generate_preview_images(const httplib::Request& req, const Config& config, const Illust& illust);
|
static inline Element generate_preview_images(const httplib::Request& req, const Config& config, const Illust& illust);
|
||||||
static inline Element generate_illust_metadata(const Illust& illust);
|
static inline Element generate_illust_tags(const Illust& illust);
|
||||||
|
|
||||||
void artworks_route(const httplib::Request& req, httplib::Response& res, const Config& config, PixivClient& pixiv_client) {
|
void artworks_route(const httplib::Request& req, httplib::Response& res, const Config& config, PixivClient& pixiv_client) {
|
||||||
uint64_t illust_id = to_ull(req.matches.str(1));
|
uint64_t illust_id = to_ull(req.matches.str(1));
|
||||||
|
@ -36,7 +37,8 @@ void artworks_route(const httplib::Request& req, httplib::Response& res, const C
|
||||||
generate_user_link(req, config, illust),
|
generate_user_link(req, config, illust),
|
||||||
!preview ? generate_images(req, config, illust) : generate_preview_images(req, config, illust),
|
!preview ? generate_images(req, config, illust) : generate_preview_images(req, config, illust),
|
||||||
Element("br"),
|
Element("br"),
|
||||||
generate_illust_metadata(illust)
|
generate_illust_tags(illust),
|
||||||
|
Element("p", {time_to_string(illust.upload_time)})
|
||||||
});
|
});
|
||||||
serve(req, res, config, std::move(illust.title), std::move(body));
|
serve(req, res, config, std::move(illust.title), std::move(body));
|
||||||
}
|
}
|
||||||
|
@ -101,8 +103,8 @@ static inline Element generate_preview_images(const httplib::Request& req, const
|
||||||
return div;
|
return div;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline Element generate_illust_metadata(const Illust& illust) {
|
static inline Element generate_illust_tags(const Illust& illust) {
|
||||||
Element div("div", {{"class", "illustmetadata"}}, {});
|
Element div("div", {{"class", "illusttags"}}, {});
|
||||||
|
|
||||||
if (illust.ai_generated) {
|
if (illust.ai_generated) {
|
||||||
div.nodes.push_back(Element("b", {"AI-Generated "}));
|
div.nodes.push_back(Element("b", {"AI-Generated "}));
|
||||||
|
@ -124,3 +126,18 @@ static inline Element generate_illust_metadata(const Illust& illust) {
|
||||||
static inline bool is_true(const std::string& str) {
|
static inline bool is_true(const std::string& str) {
|
||||||
return !str.empty() && str != "0" && str != "false" && str != "no";
|
return !str.empty() && str != "0" && str != "false" && str != "no";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline std::string time_to_string(time_t time) {
|
||||||
|
struct tm tm;
|
||||||
|
char str[1024] = {0};
|
||||||
|
|
||||||
|
if (!gmtime_r(&time, &tm)) {
|
||||||
|
return std::to_string(time);
|
||||||
|
}
|
||||||
|
size_t len = strftime(str, 1024, "%F %H:%M:%S %z", &tm);
|
||||||
|
if (len == 0) {
|
||||||
|
return std::to_string(time);
|
||||||
|
}
|
||||||
|
|
||||||
|
return std::string(str, len);
|
||||||
|
}
|
||||||
|
|
|
@ -79,7 +79,7 @@ void css_route(const httplib::Request& req, httplib::Response& res) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ILLUSTRATIONS PAGE */
|
/* ILLUSTRATIONS PAGE */
|
||||||
.illustmetadata {
|
.illusttags {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
gap: 1em;
|
gap: 1em;
|
||||||
|
|
Loading…
Reference in New Issue