Age | Commit message (Collapse) | Author |
|
With the addition of our own parser, we no longer need the FromStr
implementation for SearchField. Furthermore, it is now only used in
player::NameFilter, so the definition has been moved there. The import
in the grammar was unused as well, so it has been removed.
|
|
Most users probably don't need the capitalization, and character names
always have a predefined capitalization anyway.
|
|
|
|
|
|
This causes issues with the player: prefix used in any() and all()
constructs, as player: will now be parsed as a word instead of the
proper token. For now, : is disallowed in words again until there is a
better solution.
|
|
With the file name heuristic for -before and -after in place, we might
want a way for the user to disable it. For now, we simply do this by
providing a new set of predicates without the filter.
In the future, we might have a --disable-heuristics switch to disable
the heuristics, in case we ever add more.
|
|
First of all, this allows : to be part of a word. This has been added
because the account names start with a colon, so -player :Dunje should
work.
Furthermore, the re-quoting now also quotes strings that contain a .+*,
as those are characters usually used in regular expressions. A command
line like
raidgrep -- -player "G.dric"
should work, so we either have to re-quote words with a dot, or allow
the dot to be part of a (lexical) word as well. For now, we're
re-quoting it, but if it turns out to be too troublesome, we might
change that.
|
|
This allows us to attach some additional metadata that is not found in
the PartialEvtc otherwise, such as the file name.
|
|
As it turns out, the "local timestamp" as advertised by arcdps is a bit
misleading, because the timestamp is still in UTC. The "local" refers to
the fact that it can lag behind the server timestamp a bit (but usually
they seem to be within +-1 of each other), not that the timestamp is in
the local timezone.
This makes date handling a bit harder for raidgrep, but thanks to
chrono, not by much. The idea is that we simply deal with Utc pretty
much everywhere, except at the user boundary. This means that
1. Input timestamps for -before and -after are converted to Utc right
after input
2. When outputting, we convert to a local timestamp first
This makes the output consistent with the filenames now (and the "wall
time" that the player saw).
|
|
With evtclib 0.2, every boss has at least one name without space, so
every boss can be used. Still, for completeness's and consistency's
sake, we want to allow users to also specify boss names with spaces in
them. For example, if we print "Qadim the Peerless" as the name of the
boss, we might expect
raidgrep -- -boss "Qadim the Peerless"
to work (instead of -boss qadimp). Therefore, we now allow boss names to
be quoted, so that we can properly persist the whitespace.
|
|
|
|
|
|
Having a ::new on each of the filter types was a bit weird, especially
because we returned Box<dyn ...> instead of Self (and clippy rightfully
complained). With this patch, we now have a bunch of normal functions,
and we don't show to the outside how a filter is actually implemented
(or what struct is behind it).
|
|
|
|
If we don't allow the higher-tier on the left side, we cannot chain
multiple or/and on the same level. Since or is associative, we shouldn't
expect the user to write (... or (... or ...)) and instead provide the
flattened version as well.
|
|
Otherwise they'd get tokenized as word and we couldn't build
conjunctions/disjunctions.
|
|
|
|
This method is not perfect yet, because
1. The items are not documented as they were before
2. You need to separate the args with --, otherwise Clap tries to parse
them as optional flags
This should be fixed (especially the documentation part) before merging
into master.
|
|
|
|
|