diff --git a/packages/core/src/api/packages/provider/modrinth.rs b/packages/core/src/api/packages/provider/modrinth.rs index e1bcb77f..a08dd67f 100644 --- a/packages/core/src/api/packages/provider/modrinth.rs +++ b/packages/core/src/api/packages/provider/modrinth.rs @@ -510,8 +510,8 @@ impl From for ManagedUser { struct ModrinthUser { pub id: String, pub username: String, - pub avatar_url: String, - pub bio: String, + pub avatar_url: Option, + pub bio: Option, } impl From for ManagedUser { @@ -520,16 +520,12 @@ impl From for ManagedUser { id: value.id.clone(), username: value.username, url: Some(format!( - "{}/user/{}", + "{}user/{}", Provider::Modrinth.website(), value.id )), - avatar_url: Some(value.avatar_url), - bio: if value.bio.is_empty() || value.bio.eq_ignore_ascii_case("a modrinth creator.") { - None - } else { - Some(value.bio) - }, + avatar_url: value.avatar_url, + bio: value.bio, is_organization_user: false, role: None, } diff --git a/packages/core/src/api/tauri/commands.rs b/packages/core/src/api/tauri/commands.rs index 2ac6b8a4..4fa6576e 100644 --- a/packages/core/src/api/tauri/commands.rs +++ b/packages/core/src/api/tauri/commands.rs @@ -1,7 +1,7 @@ use interpulse::api::minecraft::Version; use onelauncher_entity::{icon::Icon, loader::GameLoader, package::Provider, packages, resolution::Resolution}; use sea_orm::ActiveValue::Set; -use crate::{api::packages::{data::{SearchResult, ManagedPackage, ManagedUser, ManagedVersion, SearchQuery}, provider::ProviderExt}, store::{Settings, State}, utils::pagination::Paginated}; +use crate::{api::packages::{data::{ManagedPackage, ManagedUser, ManagedVersion, PackageAuthor, SearchQuery, SearchResult}, provider::ProviderExt}, store::{Settings, State}, utils::pagination::Paginated}; use tauri::{AppHandle, Runtime}; use crate::{api::{self, cluster::dao::ClusterId}, error::{LauncherError, LauncherResult}, store::{credentials::MinecraftCredentials, Core}}; @@ -99,6 +99,9 @@ pub trait TauriLauncherApi { #[taurpc(alias = "downloadPackage")] async fn download_package(provider: Provider, package_id: String, version_id: String, cluster_id: ClusterId, skip_compatibility: Option) -> LauncherResult; + + #[taurpc(alias = "getUsersFromAuthor")] + async fn get_users_from_author(provider: Provider, author: PackageAuthor) -> LauncherResult>; } @@ -425,4 +428,8 @@ impl TauriLauncherApi for TauriLauncherApiImpl { Ok(model) } + + async fn get_users_from_author(self, provider: Provider, author: PackageAuthor) -> LauncherResult> { + Ok(provider.get_users_from_author(author).await?) + } }