From acb6ac0a04e800a79876908fd1fdb98dc7e93678 Mon Sep 17 00:00:00 2001 From: dec05eba Date: Thu, 13 May 2021 23:30:20 +0200 Subject: Show local time for nyaa.si, soundcloud and spotify. Add sukebei --- src/plugins/Soundcloud.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'src/plugins/Soundcloud.cpp') 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 @@ -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 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()) { -- cgit v1.2.3