From b37ec732f7efe071a8a43282236b4b185ed3e02b Mon Sep 17 00:00:00 2001 From: Alex Emmet <111742636+Alex-Emmet@users.noreply.github.com> Date: Wed, 8 Apr 2026 11:36:42 +0200 Subject: [PATCH] [Fix] moved language to logging --- iota-logger/Cargo.toml | 8 +++- .../src}/language_creator.rs | 3 +- .../src}/language_manager.rs | 2 +- iota-logger/src/lib.rs | 19 +-------- iota-updater/Cargo.toml | 0 .../update_util.rs => iota-updater/src/lib.rs | 41 ++++++++++++++++--- iota-util/src/langu/mod.rs | 2 - 7 files changed, 46 insertions(+), 29 deletions(-) rename {iota-util/src/langu => iota-logger/src}/language_creator.rs (98%) rename {iota-util/src/langu => iota-logger/src}/language_manager.rs (98%) create mode 100644 iota-updater/Cargo.toml rename iota-util/src/update_util.rs => iota-updater/src/lib.rs (79%) delete mode 100644 iota-util/src/langu/mod.rs diff --git a/iota-logger/Cargo.toml b/iota-logger/Cargo.toml index aa71144..bdfc84b 100644 --- a/iota-logger/Cargo.toml +++ b/iota-logger/Cargo.toml @@ -4,7 +4,11 @@ version = "0.1.0" edition = "2024" [dependencies] -ratatui = "0.30.0" -ttp-core = { git = "https://git.methanium.net/Tensamin/TTP.git", package = "ttp-core" } iota-state = { path = "../iota-state" } iota-util = { path = "../iota-util" } + +ttp-core = { git = "https://git.methanium.net/Tensamin/TTP.git", package = "ttp-core" } + +ratatui = "0.30.0" +json = "0.12.4" +once_cell = "1.21.4" diff --git a/iota-util/src/langu/language_creator.rs b/iota-logger/src/language_creator.rs similarity index 98% rename from iota-util/src/langu/language_creator.rs rename to iota-logger/src/language_creator.rs index e740e5b..2b9f109 100644 --- a/iota-util/src/langu/language_creator.rs +++ b/iota-logger/src/language_creator.rs @@ -1,4 +1,5 @@ -use crate::file_util::save_file; +use iota_util::file_util::save_file; + use json::{self, JsonError, JsonValue}; pub fn create_languages() -> Result<(), JsonError> { diff --git a/iota-util/src/langu/language_manager.rs b/iota-logger/src/language_manager.rs similarity index 98% rename from iota-util/src/langu/language_manager.rs rename to iota-logger/src/language_manager.rs index 0dcfa70..8cced10 100644 --- a/iota-util/src/langu/language_manager.rs +++ b/iota-logger/src/language_manager.rs @@ -1,4 +1,4 @@ -use crate::file_util::{self}; +use iota_util::file_util::{self}; use json::parse; use once_cell::sync::Lazy; use std::collections::HashMap; diff --git a/iota-logger/src/lib.rs b/iota-logger/src/lib.rs index 8a4b8b0..5e45c1e 100644 --- a/iota-logger/src/lib.rs +++ b/iota-logger/src/lib.rs @@ -12,7 +12,8 @@ use ratatui::style::Color; use ttp_core::{CommunicationValue, DataTypes, DataValue}; use iota_state::{APP_STATE, UNIQUE, UiLogEntry}; -use iota_util::langu::language_manager; +mod language_creator; +mod language_manager; static LOGGER: OnceLock> = OnceLock::new(); @@ -128,22 +129,6 @@ fn fixed_box(content: &str, width: usize) -> String { } } -fn colorize(kind: PrintType, is_error: bool) -> Color { - if is_error { - return Color::Red; - } - - match kind { - PrintType::Call => Color::Magenta, - PrintType::Client => Color::Green, - PrintType::Iota => Color::Yellow, - PrintType::Omikron => Color::Blue, - PrintType::Omega => Color::Cyan, - PrintType::General => Color::LightCyan, - PrintType::Command => Color::LightGreen, - } -} - pub fn log_internal_translated( kind: PrintType, prefix: String, diff --git a/iota-updater/Cargo.toml b/iota-updater/Cargo.toml new file mode 100644 index 0000000..e69de29 diff --git a/iota-util/src/update_util.rs b/iota-updater/src/lib.rs similarity index 79% rename from iota-util/src/update_util.rs rename to iota-updater/src/lib.rs index 2752008..627b3eb 100644 --- a/iota-util/src/update_util.rs +++ b/iota-updater/src/lib.rs @@ -5,7 +5,6 @@ use anyhow::{Context, Result, anyhow}; use semver::Version; -use serde::Deserialize; use std::fs::File; use std::io::copy; use tempfile::NamedTempFile; @@ -16,13 +15,13 @@ const API_BASE: &str = "https://git.methanium.net/api/v1"; const OWNER: &str = "Tensamin"; const REPO: &str = "Iota"; -#[derive(Debug, Deserialize)] +#[derive(Debug)] struct Release { tag_name: String, assets: Vec, } -#[derive(Debug, Deserialize)] +#[derive(Debug)] struct Asset { name: String, browser_download_url: String, @@ -39,10 +38,40 @@ async fn latest_release() -> Result { return Err(anyhow!("release API returned {}", response.status())); } - Ok(response - .json() + let text = response + .text() .await - .context("failed to parse release JSON")?) + .context("failed to read response text")?; + + let parsed = json::parse(&text).map_err(|e| anyhow!("failed to parse JSON: {}", e))?; + + let tag_name = parsed["tag_name"] + .as_str() + .ok_or_else(|| anyhow!("missing tag_name"))? + .to_string(); + + let assets_json = parsed["assets"].members().collect::>(); + + let mut assets = Vec::new(); + + for asset in assets_json { + let name = asset["name"] + .as_str() + .ok_or_else(|| anyhow!("missing asset name"))? + .to_string(); + + let browser_download_url = asset["browser_download_url"] + .as_str() + .ok_or_else(|| anyhow!("missing download url"))? + .to_string(); + + assets.push(Asset { + name, + browser_download_url, + }); + } + + Ok(Release { tag_name, assets }) } async fn parse_tag_version(tag: &str) -> Result { diff --git a/iota-util/src/langu/mod.rs b/iota-util/src/langu/mod.rs deleted file mode 100644 index 352d639..0000000 --- a/iota-util/src/langu/mod.rs +++ /dev/null @@ -1,2 +0,0 @@ -pub mod language_creator; -pub mod language_manager;