Age | Commit message (Collapse) | Author |
|
|
|
There's a good chance that this will be evtclib 0.5, so we want to adapt
our API usage (mainly replacing evtclib::Boss with evtclib::Encounter).
The naming is a bit all over the place now, as we sometimes refer to
bosses and sometimes to encounters, but I hope to make a sensible
decision at *some point* about what we're actually doing here.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
With evtclib being on crates.io now (and generally, being available
publicly through git), there is no longer a need to have a copy of the
evtclib repository in this repository. The main reason was that evtclib
was private when I started it, so the easiest way to include it was
through a git submodule. That reason is no longer valid.
If we really *need* to use the git version, it is also better to just
point Cargo to the repository and let it deal with keeping the
repository up-to-date, rather than using git submodules.
This commit also updates Cargo.lock, so there is a bit of noise from
also adding ctrlc as a dependency.
|
|
This is not yet perfect, as it seems to still execute all queued threads
just to immediately exit them, so maybe we should try and see if we can
"clear" the rayon queue. But it's a good start, and the ctrlc crate
seems to work well for this job.
|
|
|
|
|
|
This does increase the build times, but it makes sure the binaries are a
bit smaller (especially a gain for the Windows binary). In addition, it
removes librt, which is unneeded and gave warnings in namcap.
|
|
We already have license set, so no need for license-file.
|
|
|
|
|
|
This gives us a history, nicer editing capabilities and the possibility
to add completion in the future.
|
|
|
|
|
|
This also does away with the scary unsafe{} blocks just to set/get the
DEBUG flag.
|
|
Filtering based on guilds is slow, as it will have to retrieve every
guild name from the GW2 API, and it has to parse every log file instead
of bailing early.
Therefore, guilds are not searched by default, and have to be
explicitely turned on with --guilds.
In addition, this means that raidgrep will now need network access when
--guilds is passed, which was not the case before.
|
|
|
|
A lot of time is spent parsing the actual log events, especially when
they are zipped, as they have to be decompressed first. This results in
huge run-time hits, especially for files where we could determine very
early if we actually need it.
For example, player names are saved in the header, which can be examined
very quickly. If we can determine at that stage that a log file will not
appear in the result set, we don't need to parse all the log events.
This patch relies on the partial parsing support of evtclib to do
exactly that. It parses only the header with the player names, and only
if there's a match, it will proceed to parse the events and do more
filtering.
In the future, we can extend this even more, for example we can also
check the boss ID that way, since we can also access that in the header.
On the downside, we now have the zip handling logic replicated in
raidgrep, as we want a "common" interface to extract the actual data
stream. But this logic could be pushed back to evtclib after polishing
it a bit. There are some problems with Rust's borrow checking though,
which is why it looks a bit convoluted.
|
|
This accepts timestamps in the following formats:
* Human-readable, like "15d", taken relative to the current time.
* rfc3339-like "2018-03-14 13:13:00"
More formats might be added in the future.
|
|
The previous method was nice because it "just worked" for most of the
bosses, but with the introduction of W6 shenanigans (CA being a gadget,
and Largos Twins being two bosses), the method was a bit unreliable.
Now, the encounter ID that is saved by ArcDPS is used, and a predefined
list of encounter names is consulted, which makes this work better for
most bosses and allows us to change the name when appropriate
(Nightmare Oratuss -> Siax)
|
|
|
|
|
|
|
|
|