Add analytics meta for downloading dependent projects (#6318)

* Send dependent mod info to backend

* Parse meta from query

* condense dependent_on and modpack

* Analytics dependents response
This commit is contained in:
aecsocket
2026-06-09 16:47:52 +01:00
committed by GitHub
parent 3258d7dbdf
commit bc5a761312
15 changed files with 363 additions and 22 deletions
@@ -315,6 +315,7 @@ pub async fn generate_pack_from_version_id(
reason,
game_version: profile.game_version.clone(),
loader: profile.loader.as_str().to_string(),
dependent_on: Some(version_id.clone()),
};
let file = fetch_advanced(
@@ -387,8 +387,8 @@ pub async fn install_zipped_mrpack_files(
profile_path: profile_path.clone(),
pack_name: pack.name.clone(),
icon,
pack_id: project_id,
pack_version: version_id,
pack_id: project_id.clone(),
pack_version: version_id.clone(),
},
100.0,
"Downloading modpack",
@@ -409,6 +409,7 @@ pub async fn install_zipped_mrpack_files(
reason,
game_version: profile.game_version.clone(),
loader: profile.loader.as_str().to_string(),
dependent_on: version_id.clone(),
};
let num_files = pack.files.len();
+3
View File
@@ -462,6 +462,7 @@ pub async fn update_project(
profile_path,
update_version,
fetch::DownloadReason::Update,
None,
&state.pool,
&state.fetch_semaphore,
&state.io_semaphore,
@@ -503,6 +504,7 @@ pub async fn add_project_from_version(
profile_path: &str,
version_id: &str,
reason: fetch::DownloadReason,
dependent_on_version_id: Option<String>,
) -> crate::Result<String> {
let state = State::get().await?;
@@ -510,6 +512,7 @@ pub async fn add_project_from_version(
profile_path,
version_id,
reason,
dependent_on_version_id,
&state.pool,
&state.fetch_semaphore,
&state.io_semaphore,
@@ -888,6 +888,7 @@ async fn get_modpack_identifiers(
reason: DownloadReason::Modpack,
game_version: profile.game_version.clone(),
loader: profile.loader.as_str().to_string(),
dependent_on: Some(version_id.to_string()),
};
let mrpack_bytes = fetch_mirrors(
+2
View File
@@ -1336,6 +1336,7 @@ impl Profile {
profile_path: &str,
version_id: &str,
reason: util::fetch::DownloadReason,
dependent_on_version_id: Option<String>,
pool: &SqlitePool,
fetch_semaphore: &FetchSemaphore,
io_semaphore: &IoSemaphore,
@@ -1352,6 +1353,7 @@ impl Profile {
reason,
game_version: profile.game_version.clone(),
loader: profile.loader.as_str().to_string(),
dependent_on: dependent_on_version_id,
};
let version =
+1
View File
@@ -35,6 +35,7 @@ pub struct DownloadMeta {
pub reason: DownloadReason,
pub game_version: String,
pub loader: String,
pub dependent_on: Option<String>,
}
impl DownloadMeta {