add handling of unknown combat events instead of just silently ignoring

This commit is contained in:
Gered 2016-03-08 13:04:28 -05:00
parent 08b4ac32d7
commit 71b94e6e4b
2 changed files with 15 additions and 5 deletions

View file

@ -82,6 +82,13 @@
(update-active-encounter x #(handle-event event %))) (update-active-encounter x #(handle-event event %)))
data)) data))
(s/defn ^:private handle-unknown-event :- RaidAnalysis
[event :- CombatEvent
data :- RaidAnalysis]
"special handling for unknown combat events."
(warn (str "Unknown event encountered during log file parse: \"" (:line event) "\". Skipping event."))
(assoc data :unknown-events-count (inc (or (:unknown-events-count data) 0))))
(s/defn ^:private parse-log* :- (s/maybe RaidAnalysis) (s/defn ^:private parse-log* :- (s/maybe RaidAnalysis)
[f [f
options :- ParserOptions] options :- ParserOptions]
@ -91,9 +98,11 @@
(fn [data ^String line] (fn [data ^String line]
(try (try
(let [event (parse-line line options)] (let [event (parse-line line options)]
(if (active-encounter? data) (if (= :unknown (:event event))
(active-encounter-processing event data) (handle-unknown-event event data)
(out-of-encounter-processing event data))) (if (active-encounter? data)
(active-encounter-processing event data)
(out-of-encounter-processing event data))))
(catch Exception ex (catch Exception ex
(throw (ex-info "Parser error" {:line line} ex))))) (throw (ex-info "Parser error" {:line line} ex)))))
{:encounters [] {:encounters []

View file

@ -85,8 +85,9 @@
; TODO ; TODO
(def RaidAnalysis (def RaidAnalysis
{:encounters [Encounter] {:encounters [Encounter]
:active-encounter (s/maybe Encounter)}) :active-encounter (s/maybe Encounter)
(s/optional-key :unknown-events-count) (s/Num)})
; TODO ; TODO
(def DamageProperties (def DamageProperties