From 42ab8dbcb19d3eda7b000dc8dca5bbe34e90e175 Mon Sep 17 00:00:00 2001 From: Nedko Date: Mon, 1 Jul 2024 15:17:40 +0300 Subject: [PATCH] Added cover resizing --- common.cpp | 14 ++++++++++++++ common.h | 1 + main.cpp | 23 ++++++++++++++++++++++- 3 files changed, 37 insertions(+), 1 deletion(-) diff --git a/common.cpp b/common.cpp index 8dae5b7..b37e8ec 100644 --- a/common.cpp +++ b/common.cpp @@ -3,6 +3,7 @@ #include #include +#include #include using std::endl; @@ -187,3 +188,16 @@ string clean_filename(const string& s) return result; } + +bool exec_cmd(const string& cmd) +{ + int error; + + error = system(cmd.c_str()); + if (0 != error) + { + return false; + } + + return true; +} diff --git a/common.h b/common.h index c069907..3e7381c 100644 --- a/common.h +++ b/common.h @@ -19,5 +19,6 @@ void json_extract(const nlohmann::json& j, const std::string& key, bool& out); bool ensure_folder(const std::string& main_path, const std::string& folder); std::string trim_whitespace(const std::string& s); std::string clean_filename(const std::string& s); +bool exec_cmd(const std::string& cmd); #endif // COMMON_H_ diff --git a/main.cpp b/main.cpp index 7095b24..da22937 100644 --- a/main.cpp +++ b/main.cpp @@ -15,6 +15,20 @@ void usage(const char *name) cout << "Usage: " << name << " [catalog id] ..." << endl; } +string gen_resize_command(const string& release_folder, const string& convert_exec) +{ + string cmd; + + cmd = convert_exec; + cmd += " \""; + cmd += build_fname(release_folder, "", "Cover.*"); + cmd += "\" -resize 750x750 \""; + cmd += build_fname(release_folder, "", "Cover_small.jpg"); + cmd += "\""; + + return cmd; +} + int main(int argc, char **argv) { // Config stuff @@ -104,7 +118,14 @@ int main(int argc, char **argv) continue; } - // TODO: Resize cover + // Resize cover + ok = exec_cmd(gen_resize_command(release_folder, convert_exec)); + if (!ok) + { + cout << "Could not resize cover for release - " << release.catalog_id << endl; + continue; + } + break; // Download tracks (1 -- N) for (Track& track : release.tracks)