diff --git a/sdgb-api/Cargo.toml b/sdgb-api/Cargo.toml index 8aea64d..6fc4c05 100644 --- a/sdgb-api/Cargo.toml +++ b/sdgb-api/Cargo.toml @@ -11,6 +11,8 @@ compio = ["dep:compio"] tokio = ["dep:tokio"] bincode = ["dep:bincode"] +parquet = ['dep:parquet', 'dep:parquet_derive'] + [dependencies] snafu = { workspace = true } serde_json = { workspace = true } @@ -45,5 +47,5 @@ aes = "0.8.4" cipher = { version = "0.4.4", features = ["block-padding"] } bincode = { version = "2.0.1", optional = true } -parquet = { workspace = true } -parquet_derive = { version = "56.0.0" } +parquet = { version = "56.0.0", optional = true } +parquet_derive = { version = "56.0.0", optional = true } diff --git a/sdgb-api/src/title/model/get_user_preview_api/mod.rs b/sdgb-api/src/title/model/get_user_preview_api/mod.rs index 7f6cb9d..7cc9448 100644 --- a/sdgb-api/src/title/model/get_user_preview_api/mod.rs +++ b/sdgb-api/src/title/model/get_user_preview_api/mod.rs @@ -1,7 +1,7 @@ use std::fmt::Display; use bincode::{Decode, Encode}; -use parquet_derive::ParquetRecordWriter; + use serde::{Deserialize, Serialize}; #[derive(Serialize)] @@ -16,7 +16,8 @@ impl From for GetUserPreviewApi { } } -#[derive(Debug, Clone, Serialize, Deserialize, Encode, Decode, ParquetRecordWriter)] +#[derive(Debug, Clone, Serialize, Deserialize, Encode, Decode)] +#[cfg_attr(feature = "parquet", derive(parquet_derive::ParquetRecordWriter))] #[serde(rename_all = "camelCase")] pub struct GetUserPreviewApiResp { pub user_id: u32, diff --git a/sdgb-api/src/title/model/get_user_region_api/mod.rs b/sdgb-api/src/title/model/get_user_region_api/mod.rs index e8232ab..88f04b9 100644 --- a/sdgb-api/src/title/model/get_user_region_api/mod.rs +++ b/sdgb-api/src/title/model/get_user_region_api/mod.rs @@ -1,5 +1,4 @@ use bincode::{Decode, Encode}; -use parquet_derive::ParquetRecordWriter; use serde::{Deserialize, Serialize}; #[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] @@ -42,7 +41,8 @@ impl From for Vec { } } -#[derive(Default, Debug, Clone, PartialEq, ParquetRecordWriter)] +#[derive(Default, Debug, Clone, PartialEq)] +#[cfg_attr(feature = "parquet", derive(parquet_derive::ParquetRecordWriter))] pub struct UserRegionFlatten { pub user_id: u32, pub region_id: u32, diff --git a/sdgb-cli/Cargo.toml b/sdgb-cli/Cargo.toml index d2e44fb..bed4e90 100644 --- a/sdgb-cli/Cargo.toml +++ b/sdgb-cli/Cargo.toml @@ -11,7 +11,7 @@ default = ["compio", "fetchall"] compio = ["dep:compio", "sdgb-api/compio"] tokio = ["dep:tokio", "sdgb-api/tokio"] -fetchall = ["dep:redb", "dep:futures-util"] +fetchall = ["dep:redb", "dep:futures-util", "dep:parquet", "sdgb-api/parquet"] [dependencies] sdgb-api = { workspace = true, features = ["bincode"] } @@ -42,7 +42,7 @@ ctrlc = { version = "3.4.7", features = ["termination"] } # magic macro crabtime = { workspace = true } -parquet = { workspace = true } +parquet = { workspace = true, optional = true } [build-dependencies] version_check = "0.9.5" diff --git a/utils/flat_user_detail.py b/utils/flat_user_detail.py index 7fc84f9..56fcbd2 100644 --- a/utils/flat_user_detail.py +++ b/utils/flat_user_detail.py @@ -26,7 +26,8 @@ def calculate_dxrating(music: dict): try: return music | {"dxRating": dx_rating(Decimal(level.pop()["difficulty"]), ach)} except IndexError as _: - logger.warning(f"unknown level: {music_id} - {level_id}", file=stderr) + if level_id != 10: + logger.warning(f"unknown level: {music_id} - {level_id}", file=stderr) return music | {"dxRating": 0}