From: Steinar H. Gunderson Date: Mon, 29 May 2023 16:47:00 +0000 (+0200) Subject: Fix handling of multiple filters. X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=941bc73c9698e7f1dcaa742ba2ca0dd7de125d2d;p=pkanalytics Fix handling of multiple filters. --- diff --git a/ultimate.js b/ultimate.js index 40461d8..2eb282a 100644 --- a/ultimate.js +++ b/ultimate.js @@ -1239,22 +1239,29 @@ function keep_match(match_id, filters) { return true; } +function filter_passes(players, filter) { + if (filter.type === 'player_any') { + for (const p of Array.from(filter.elements)) { + if (players[p].on_field_since !== null) { + return true; + } + } + return false; + } else if (filter.type === 'player_all') { + for (const p of Array.from(filter.elements)) { + if (players[p].on_field_since === null) { + return false; + } + } + return true; + } + return true; +} + function keep_event(players, filters) { for (const filter of filters) { - if (filter.type === 'player_any') { - for (const p of Array.from(filter.elements)) { - if (players[p].on_field_since !== null) { - return true; - } - } + if (!filter_passes(players, filter)) { return false; - } else if (filter.type === 'player_all') { - for (const p of Array.from(filter.elements)) { - if (players[p].on_field_since === null) { - return false; - } - } - return true; } } return true;