This commit is contained in:
+24
-12
@@ -443,33 +443,38 @@ impl Daemon {
|
||||
});
|
||||
|
||||
// Fetch player game metadata (runes, summoner spells, puuid) as fallback
|
||||
let player_metadata = self.lqp_client.fetch_player_game_metadata().await.ok();
|
||||
let player_metadata =
|
||||
self.lqp_client.fetch_player_game_metadata().await.ok();
|
||||
let (fetched_puuid, fetched_runes, fetched_summoner_spells) =
|
||||
player_metadata.map_or((None, None, None), |m| {
|
||||
(m.puuid, m.runes, m.summoner_spells)
|
||||
});
|
||||
|
||||
|
||||
// Use transition values first, then fall back to fetched values
|
||||
let final_puuid = transition_puuid.or(fetched_puuid);
|
||||
let final_runes = transition_runes.or(fetched_runes);
|
||||
let final_summoner_spells = transition_summoner_spells.or(fetched_summoner_spells);
|
||||
|
||||
let final_summoner_spells =
|
||||
transition_summoner_spells.or(fetched_summoner_spells);
|
||||
|
||||
info!(
|
||||
"[EVENT_HANDLER] Final values: puuid={:?}, runes={:?}, summoner_spells={:?}",
|
||||
final_puuid, final_runes, final_summoner_spells
|
||||
);
|
||||
|
||||
// Fetch all players identities for puuid mapping
|
||||
let all_players_identities = self.lqp_client.fetch_all_players_identities().await.ok();
|
||||
let all_players_identities =
|
||||
self.lqp_client.fetch_all_players_identities().await.ok();
|
||||
let all_players_info: Vec<record_daemon::timeline::PlayerIdentityInfo> =
|
||||
all_players_identities.unwrap_or_default().into_iter().map(|p| {
|
||||
record_daemon::timeline::PlayerIdentityInfo {
|
||||
all_players_identities
|
||||
.unwrap_or_default()
|
||||
.into_iter()
|
||||
.map(|p| record_daemon::timeline::PlayerIdentityInfo {
|
||||
puuid: p.puuid,
|
||||
summoner_name: p.summoner_name,
|
||||
champion_name: p.champion_name,
|
||||
team: p.team,
|
||||
}
|
||||
}).collect();
|
||||
})
|
||||
.collect();
|
||||
|
||||
// Build game metadata for timeline
|
||||
let metadata_update = record_daemon::timeline::MetadataUpdate {
|
||||
@@ -501,14 +506,18 @@ impl Daemon {
|
||||
info!("[EVENT_HANDLER] start_recording completed successfully");
|
||||
}
|
||||
}
|
||||
StateTransition::GameEnded { game_end_info, final_items: _ } => {
|
||||
StateTransition::GameEnded {
|
||||
game_end_info,
|
||||
final_items: _,
|
||||
} => {
|
||||
info!(
|
||||
"[EVENT_HANDLER] GameEnded transition with info: {:?}",
|
||||
game_end_info
|
||||
);
|
||||
|
||||
// Fetch final items before stopping
|
||||
let fetched_final_items = self.lqp_client.fetch_final_items().await.ok().flatten();
|
||||
let fetched_final_items =
|
||||
self.lqp_client.fetch_final_items().await.ok().flatten();
|
||||
|
||||
// Convert GameEndInfo to GameEndMetadata if available
|
||||
let game_end_metadata =
|
||||
@@ -551,7 +560,10 @@ impl Daemon {
|
||||
game_end_metadata
|
||||
);
|
||||
|
||||
if let Err(e) = self.stop_recording_with_metadata(game_end_metadata, fetched_final_items).await {
|
||||
if let Err(e) = self
|
||||
.stop_recording_with_metadata(game_end_metadata, fetched_final_items)
|
||||
.await
|
||||
{
|
||||
error!("[EVENT_HANDLER] Failed to stop recording: {}", e);
|
||||
|
||||
// Don't propagate error - keep daemon running
|
||||
|
||||
Reference in New Issue
Block a user