Alan Guo Xiang Tan
5b1306cb54
DEV: Refactor TopicsFilter ( #21071 )
...
Why this change?
Previously `TopicsFilter` was designed in such a way that we act on a
filter sequentially based on the order it was matched. However, this
made it hard to support filters composition where a similar filter may
be present further in the query string. Because of this limitation, I
previously introduced a private API `TopicsFilter.register_scope` which
allows us to act on a filter only after the entire query string has been
scanned. However, I felt that it made the code complicated and hard to
reason about.
In thie commit, I've changed it such that we scan through the entire
query string and group the values of each filter together. This allows
us to act on the values of a given filter in one go which I find easier
to reason about. This also opens up the possibility for us to ignore
certain filters when it has been specified multiple times.
2023-04-13 13:22:11 +08:00
..
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-01-20 12:52:49 -06:00
2023-03-16 16:09:22 +01:00
2022-04-28 11:51:03 +02:00
2023-01-20 12:52:49 -06:00
2023-03-27 09:22:38 -05:00
2023-01-09 12:10:19 +00:00
2023-01-12 10:04:46 +10:00
2023-02-27 17:20:00 +01:00
2023-02-16 10:47:01 +00:00
2023-02-20 06:20:47 +03:00
2023-01-09 12:10:19 +00:00
2023-03-24 10:16:53 +10:00
2023-03-16 15:27:09 -06:00
2023-03-16 15:27:09 -06:00
2021-08-20 11:29:06 +02:00
2023-03-22 23:31:33 +02:00
2023-01-31 16:53:24 +01:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-02-09 16:24:24 +00:00
2023-03-10 17:17:59 +08:00
2023-04-03 11:46:39 +01:00
2023-03-01 12:45:33 +01:00
2023-03-30 14:39:55 +11:00
2023-03-30 08:35:06 -04:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-01-16 09:08:44 +11:00
2023-04-03 11:09:36 -03:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-04-05 12:28:16 +01:00
2023-02-16 18:15:56 +03:00
2023-03-29 11:54:25 -04:00
2023-01-09 12:10:19 +00:00
2023-03-13 08:09:38 +08:00
2023-02-23 07:47:11 +10:00
2023-04-12 09:45:29 +01:00
2023-01-09 12:10:19 +00:00
2023-03-21 10:40:42 -04:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-01-20 12:52:49 -06:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2020-04-30 16:48:53 +10:00
2023-01-27 12:28:47 +08:00
2021-05-21 11:43:47 +10:00
2023-01-05 08:43:58 +10:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-02-01 09:55:21 +00:00
2023-01-09 12:10:19 +00:00
2023-02-21 10:30:48 +01:00
2023-02-21 10:30:48 +01:00
2023-01-09 12:10:19 +00:00
2023-02-21 10:30:48 +01:00
2023-01-09 12:10:19 +00:00
2023-01-20 12:52:49 -06:00
2023-03-16 15:27:09 -06:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2019-05-13 09:31:32 +08:00
2023-01-10 22:38:52 +02:00
2023-01-09 12:10:19 +00:00
2023-01-20 12:52:49 -06:00
2023-01-09 12:10:19 +00:00
2021-06-14 20:34:44 +05:30
2023-01-20 12:52:49 -06:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-02-27 18:43:28 +01:00
2023-01-09 12:10:19 +00:00
2023-03-30 14:39:55 +11:00
2023-01-20 12:52:49 -06:00
2023-01-09 12:10:19 +00:00
2023-01-20 09:50:24 +08:00
2023-01-09 12:10:19 +00:00
2023-04-10 13:54:55 -05:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2022-04-05 19:29:58 +02:00
2023-03-01 08:58:32 +11:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-01-20 12:52:49 -06:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2019-05-13 09:31:32 +08:00
2023-01-09 12:10:19 +00:00
2023-02-21 10:30:48 +01:00
2023-03-08 15:27:17 +10:00
2023-01-09 12:10:19 +00:00
2022-01-21 17:54:18 +02:00
2023-01-20 12:52:49 -06:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2021-11-11 12:21:25 -06:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-01-25 18:55:01 +02:00
2023-01-20 12:52:49 -06:00
2023-01-09 12:10:19 +00:00
2023-03-23 15:16:05 +11:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-01-20 12:52:49 -06:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-03-22 10:19:59 +10:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-01-25 18:55:33 +02:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-02-03 10:02:14 +08:00
2023-01-09 12:10:19 +00:00
2023-04-11 10:16:28 +01:00
2023-04-05 17:00:05 +01:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-01-20 12:52:49 -06:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-02-21 10:30:48 +01:00
2023-03-02 16:40:53 +01:00
2023-02-21 10:30:48 +01:00
2019-05-13 09:31:32 +08:00
2023-01-09 12:10:19 +00:00
2023-04-05 13:31:31 -05:00
2023-03-20 16:56:43 +01:00
2023-03-30 14:50:36 +10:00
2023-03-30 13:52:10 +10:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-01-20 12:52:49 -06:00
2023-01-20 12:52:49 -06:00
2023-01-09 12:10:19 +00:00
2023-01-20 12:52:49 -06:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-01-12 09:41:39 +10:00
2023-01-20 12:52:49 -06:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-02-13 12:39:45 +08:00
2019-12-03 10:05:53 +01:00
2023-01-20 12:52:49 -06:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-03-30 14:08:19 +10:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2019-05-13 09:31:32 +08:00
2023-01-09 12:10:19 +00:00
2023-03-20 11:41:23 -05:00
2023-02-17 18:38:21 -03:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-01-20 12:52:49 -06:00
2023-01-09 12:10:19 +00:00
2023-03-06 11:41:47 +03:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-01-20 12:52:49 -06:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-03-20 13:51:39 -05:00
2023-04-11 08:48:07 +08:00
2023-03-02 13:05:45 -03:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-03-31 09:03:15 +11:00
2023-01-09 12:10:19 +00:00
2023-04-13 13:22:11 +08:00
2023-03-01 15:35:21 +11:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2020-07-21 15:55:03 +08:00
2023-01-09 12:10:19 +00:00
2023-04-11 14:10:44 -04:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-03-09 11:52:26 +10:00
2023-03-23 12:01:04 +00:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-03-16 17:51:54 -06:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00