From 573d8c90e5de42c310c757aebcc6668800ca4396 Mon Sep 17 00:00:00 2001 From: GeckoEidechse <40122905+GeckoEidechse@users.noreply.github.com> Date: Wed, 14 Feb 2024 22:58:09 +0100 Subject: [PATCH] refactor: Move release note announcement generation (#813) to module dedicated for logic interacting with GitHub --- src-tauri/src/github/release_notes.rs | 75 +++++++++++++++++++++++++++ src-tauri/src/main.rs | 2 +- src-tauri/src/util.rs | 75 --------------------------- 3 files changed, 76 insertions(+), 76 deletions(-) diff --git a/src-tauri/src/github/release_notes.rs b/src-tauri/src/github/release_notes.rs index 0dd4b9488..8858c3d5d 100644 --- a/src-tauri/src/github/release_notes.rs +++ b/src-tauri/src/github/release_notes.rs @@ -124,3 +124,78 @@ pub async fn get_northstar_release_notes() -> Result, String> { Ok(release_info_vector) } + +/// Checks latest GitHub release and generates a announcement message for Discord based on it +#[tauri::command] +pub async fn generate_release_note_announcement() -> Result { + let octocrab = octocrab::instance(); + let page = octocrab + .repos("R2Northstar", "Northstar") + .releases() + .list() + // Optional Parameters + .per_page(1) + .page(1u32) + // Send the request + .send() + .await + .unwrap(); + + // Get newest element + let latest_release_item = &page.items[0]; + + // Extract the URL to the GitHub release note + let github_release_link = latest_release_item.html_url.clone(); + + // Extract release version number + let current_ns_version = &latest_release_item.tag_name; + + // Extract changelog and format it + let changelog = remove_markdown_links::remove_markdown_links( + latest_release_item + .body + .as_ref() + .unwrap() + .split("**Contributors:**") + .next() + .unwrap() + .trim(), + ); + + // Strings to insert for different sections + // Hardcoded for now + let general_info = "REPLACE ME"; + let modders_info = "Mod compatibility should not be impacted"; + let server_hosters_info = "REPLACE ME"; + + // Build announcement string + let return_string = format!( + r"Hello beautiful people <3 +**Northstar `{current_ns_version}` is out!** + +{general_info} + +**__Modders:__** + +{modders_info} + +**__Server hosters:__** + +{server_hosters_info} + +**__Changelog:__** +``` +{changelog} +``` +{github_release_link} + +Checkout #installation on how to install/update Northstar +(the process is the same for both, using a Northstar installer like FlightCore, Viper, or VTOL is recommended over manual installation) + +If you do notice any bugs, please open an issue on Github or drop a message in the thread below +" + ); + + // Return built announcement message + Ok(return_string.to_string()) +} diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index 60e5a3ed6..0654d6267 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -124,6 +124,7 @@ fn main() { github::pull_requests::get_launcher_download_link, github::pull_requests::get_pull_requests_wrapper, github::release_notes::check_is_flightcore_outdated, + github::release_notes::generate_release_note_announcement, github::release_notes::get_newest_flightcore_version, github::release_notes::get_northstar_release_notes, mod_management::delete_northstar_mod, @@ -155,7 +156,6 @@ fn main() { thunderstore::query_thunderstore_packages_api, util::close_application, util::force_panic, - util::generate_release_note_announcement, util::get_flightcore_version_number, util::get_server_player_count, util::is_debug_mode, diff --git a/src-tauri/src/util.rs b/src-tauri/src/util.rs index b358b32b2..ad09eec25 100644 --- a/src-tauri/src/util.rs +++ b/src-tauri/src/util.rs @@ -265,81 +265,6 @@ pub fn convert_release_candidate_number(version_number: String) -> String { panic!(); } -/// Checks latest GitHub release and generates a announcement message for Discord based on it -#[tauri::command] -pub async fn generate_release_note_announcement() -> Result { - let octocrab = octocrab::instance(); - let page = octocrab - .repos("R2Northstar", "Northstar") - .releases() - .list() - // Optional Parameters - .per_page(1) - .page(1u32) - // Send the request - .send() - .await - .unwrap(); - - // Get newest element - let latest_release_item = &page.items[0]; - - // Extract the URL to the GitHub release note - let github_release_link = latest_release_item.html_url.clone(); - - // Extract release version number - let current_ns_version = &latest_release_item.tag_name; - - // Extract changelog and format it - let changelog = remove_markdown_links::remove_markdown_links( - latest_release_item - .body - .as_ref() - .unwrap() - .split("**Contributors:**") - .next() - .unwrap() - .trim(), - ); - - // Strings to insert for different sections - // Hardcoded for now - let general_info = "REPLACE ME"; - let modders_info = "Mod compatibility should not be impacted"; - let server_hosters_info = "REPLACE ME"; - - // Build announcement string - let return_string = format!( - r"Hello beautiful people <3 -**Northstar `{current_ns_version}` is out!** - -{general_info} - -**__Modders:__** - -{modders_info} - -**__Server hosters:__** - -{server_hosters_info} - -**__Changelog:__** -``` -{changelog} -``` -{github_release_link} - -Checkout #installation on how to install/update Northstar -(the process is the same for both, using a Northstar installer like FlightCore, Viper, or VTOL is recommended over manual installation) - -If you do notice any bugs, please open an issue on Github or drop a message in the thread below -" - ); - - // Return built announcement message - Ok(return_string.to_string()) -} - #[cfg(test)] mod tests { use super::*;