aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Soundcloud.cpp
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2021-05-13 23:30:20 +0200
committerdec05eba <dec05eba@protonmail.com>2021-05-13 23:30:20 +0200
commitacb6ac0a04e800a79876908fd1fdb98dc7e93678 (patch)
treee8d0e97b3ac22d8ee1fc5b5a515047bf4a173014 /src/plugins/Soundcloud.cpp
parent4af866c610a8f6650a5d2c5045c085d9af7d7951 (diff)
Show local time for nyaa.si, soundcloud and spotify. Add sukebei
Diffstat (limited to 'src/plugins/Soundcloud.cpp')
-rw-r--r--src/plugins/Soundcloud.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/plugins/Soundcloud.cpp b/src/plugins/Soundcloud.cpp
index 9a5fe64..9c2d5f4 100644
--- a/src/plugins/Soundcloud.cpp
+++ b/src/plugins/Soundcloud.cpp
@@ -1,6 +1,7 @@
#include "../../plugins/Soundcloud.hpp"
#include "../../include/NetUtils.hpp"
#include "../../include/StringUtils.hpp"
+#include "../../include/Utils.hpp"
#include "../../include/Scale.hpp"
#include <quickmedia/HtmlSearch.h>
@@ -64,6 +65,14 @@ namespace QuickMedia {
return "";
}
+ static std::string unix_time_to_local_time_str(time_t unix_time) {
+ struct tm time_tm;
+ localtime_r(&unix_time, &time_tm);
+ char time_str[128] = {0};
+ strftime(time_str, sizeof(time_str) - 1, "%Y-%m-%d %H:%M", &time_tm);
+ return time_str;
+ }
+
static std::shared_ptr<BodyItem> parse_collection_item(const Json::Value &item_json) {
std::string title;
@@ -105,6 +114,12 @@ namespace QuickMedia {
auto body_item = BodyItem::create(std::move(title));
std::string description;
+ const Json::Value &last_modified_json = item_json["last_modified"];
+ if(last_modified_json.isString()) {
+ const time_t unix_time = iso_utc_to_unix_time(last_modified_json.asCString());
+ description = "Updated " + unix_time_to_local_time_str(unix_time);
+ }
+
const Json::Value &media_json = item_json["media"];
if(media_json.isObject())
body_item->url = get_best_transcoding_audio_url(media_json);
@@ -129,6 +144,8 @@ namespace QuickMedia {
}
num_tracks = tracks_json.size();
+ if(!description.empty())
+ description += '\n';
description = "Playlist with " + std::to_string(num_tracks) + " track" + (num_tracks == 1 ? "" : "s");
body_item->extra = std::move(playlist);
body_item->url = "track";
@@ -167,6 +184,9 @@ namespace QuickMedia {
body_item->thumbnail_size.x = 100;
body_item->thumbnail_size.y = 100;
body_item->thumbnail_mask_type = ThumbnailMaskType::CIRCLE;
+ } else {
+ body_item->thumbnail_size.x = 100;
+ body_item->thumbnail_size.y = 100;
}
if(username_json.isString()) {