diff options
| author | Daniel <kingdread@gmx.de> | 2021-11-19 22:04:50 +0100 | 
|---|---|---|
| committer | Daniel <kingdread@gmx.de> | 2021-11-19 22:04:50 +0100 | 
| commit | 53123d5ab01f2b6ee0282ff067ba39e10b28528e (patch) | |
| tree | 11c616ea7a20be3f7e9f8688c2d5d3134359731d /src/output | |
| parent | 0c634d3c2d279ef75347ac635b69d396d5bf695a (diff) | |
| parent | a7682465132e4758bd50777f17a7c4b2048b4c8c (diff) | |
| download | raidgrep-53123d5ab01f2b6ee0282ff067ba39e10b28528e.tar.gz raidgrep-53123d5ab01f2b6ee0282ff067ba39e10b28528e.tar.bz2 raidgrep-53123d5ab01f2b6ee0282ff067ba39e10b28528e.zip | |
Merge branch 'gamemode-filters'
Diffstat (limited to 'src/output')
| -rw-r--r-- | src/output/formats.rs | 59 | ||||
| -rw-r--r-- | src/output/sorting.rs | 7 | 
2 files changed, 44 insertions, 22 deletions
| diff --git a/src/output/formats.rs b/src/output/formats.rs index d22ab19..47da57e 100644 --- a/src/output/formats.rs +++ b/src/output/formats.rs @@ -5,6 +5,7 @@ use super::super::guilds;  use super::{FightOutcome, LogResult};  use chrono::Local; +use evtclib::GameMode;  /// An output format  pub trait Format: Sync + Send { @@ -30,27 +31,43 @@ impl Format for HumanReadable {              item.log_file.to_string_lossy()          )          .expect("writing to String failed"); -        let outcome = match item.outcome { -            FightOutcome::Success => "SUCCESS".green(), -            FightOutcome::Wipe => "WIPE".red(), -        }; -        writeln!( -            result, -            "{}: {} - {}: {}{} {} after {}", -            "Date".green(), -            item.time -                .with_timezone(&Local) -                .format("%Y-%m-%d %H:%M:%S %a"), -            "Boss".green(), -            item.encounter -                .map(|x| x.to_string()) -                .unwrap_or_else(|| "unknown".into()), -            if item.is_cm { " CM" } else { "" }, -            outcome, -            humantime::Duration::from(item.duration.to_std().unwrap()), -        ) -        .expect("writing to String failed"); -        for player in &item.players { + +        if item.game_mode != Some(GameMode::WvW) { +            let outcome = match item.outcome { +                FightOutcome::Success => "SUCCESS".green(), +                FightOutcome::Wipe => "WIPE".red(), +            }; +            writeln!( +                result, +                "{}: {} - {}: {}{} {} after {}", +                "Date".green(), +                item.time +                    .with_timezone(&Local) +                    .format("%Y-%m-%d %H:%M:%S %a"), +                "Boss".green(), +                item.encounter +                    .map(|x| x.to_string()) +                    .unwrap_or_else(|| "unknown".into()), +                if item.is_cm { " CM" } else { "" }, +                outcome, +                humantime::Duration::from(item.duration.to_std().unwrap()), +            ) +            .expect("writing to String failed"); +        } else { +            writeln!( +                result, +                "{}: {} - {} ended after {}", +                "Date".green(), +                item.time +                    .with_timezone(&Local) +                    .format("%Y-%m-%d %H:%M:%S %a"), +                "World vs. World".green(), +                humantime::Duration::from(item.duration.to_std().unwrap()), +            ) +            .expect("writing to String failed"); +        } + +        for player in item.players.iter().filter(|p| !p.account_name.is_empty()) {              write!(                  result,                  "  {:2} {:20} {:19} {:12}", diff --git a/src/output/sorting.rs b/src/output/sorting.rs index 234d804..27ea1e1 100644 --- a/src/output/sorting.rs +++ b/src/output/sorting.rs @@ -135,7 +135,7 @@ mod tests {      use super::*;      use chrono::prelude::*; -    use evtclib::Encounter as E; +    use evtclib::{Encounter as E, GameMode};      #[test]      fn test_parse_component() { @@ -179,6 +179,7 @@ mod tests {                  players: vec![],                  outcome: FightOutcome::Success,                  is_cm: false, +                game_mode: Some(GameMode::Raid),              },              &LogResult {                  log_file: "".into(), @@ -188,6 +189,7 @@ mod tests {                  players: vec![],                  outcome: FightOutcome::Success,                  is_cm: false, +                game_mode: Some(GameMode::Raid),              },              &LogResult {                  log_file: "".into(), @@ -197,6 +199,7 @@ mod tests {                  players: vec![],                  outcome: FightOutcome::Success,                  is_cm: false, +                game_mode: Some(GameMode::Raid),              },              &LogResult {                  log_file: "".into(), @@ -206,6 +209,7 @@ mod tests {                  players: vec![],                  outcome: FightOutcome::Success,                  is_cm: false, +                game_mode: Some(GameMode::Raid),              },              &LogResult {                  log_file: "".into(), @@ -215,6 +219,7 @@ mod tests {                  players: vec![],                  outcome: FightOutcome::Success,                  is_cm: false, +                game_mode: Some(GameMode::Raid),              },          ]; | 
