diff --git a/CMakeLists.txt b/CMakeLists.txt index 416388f..b3a7f7d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,6 @@ cmake_minimum_required (VERSION 3.2) project(gitea2rss - VERSION 0.0.0 + VERSION 0.1.0 LANGUAGES CXX ) diff --git a/src/main.cpp b/src/main.cpp index 1e92f82..ca0987f 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -21,6 +21,8 @@ #include #include #include +#include +#include #include #include #include @@ -75,7 +77,7 @@ const string get_http(const string &url) return answer; } -// RFC 822 compliant time string. +// Convert time_point to RFC 822 compliant time string. const string strtime(const system_clock::time_point &timepoint) { constexpr uint16_t bufsize = 1024; @@ -87,6 +89,15 @@ const string strtime(const system_clock::time_point &timepoint) return static_cast(buffer); } +// Convert ISO 8601 time string to RFC 822 time string. +const string strtime(const string &time) +{ + std::tm tm = {}; + std::stringstream ss(time); + ss >> std::get_time(&tm, "%Y-%m-%dT%T%z"); + return strtime(std::chrono::system_clock::from_time_t(std::mktime(&tm))); +} + int main(int argc, char *argv[]) { if (argc < 2) @@ -131,8 +142,11 @@ int main(int argc, char *argv[]) << release["id"].asString() << "\n" " " << domain << " release " << release["id"].asString() << "\n" - " " << type << "\n\n" - << release["body"].asString() << "\n"; + " " + << strtime(release["published_at"].asString()) << "" + " " << type << "

" + << "
" << release["body"].asString()
+             << "
]]
\n"; // for (const Json::Value &file : release["assets"]) // {