aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-11-19update CHANGELOGDaniel
2021-11-19update manpage and help textDaniel
2021-11-19update evtclib to 0.6.0Daniel
Now that evtclib has been released with the features we need, we can upgrade and do away with the git dependency.
2021-11-17Implement -gamemodeDaniel Schadt
-gamemode is a more general version of -raid/-fractal/...
2021-11-17Add a game-mode filterDaniel Schadt
2021-11-17fix testsDaniel Schadt
2021-11-17Better output for World vs. World logsDaniel Schadt
2021-11-12Add ai to the helptextDaniel
2021-11-12Update CHANGELOGDaniel
2021-11-12Remove duplicate error handling in search_fileDaniel
We already print out errors in the caller, no need to have this duplicated error handling here.
2021-11-12Better error handling, less .unwraps()Daniel
Some of these unwraps are fine to stay, mostly those that deal with locks - in this case, crashing the program if something goes wrong is probably fine. However, we also had a lot of other places where we panic'd on errors, even though we really shouldn't have. For example, an invalid zip file would bring down the whole scanner. In this case, we now use proper Result<>s and we log the error. Some places stay with unwrap() for now, mainly the code that is rare and obvious when it goes wrong - such as an overflow in input values. It could be made nicer, but it is not a priority for now. Some unwraps() have been changed to expect() to signal why they shouldn't fail.
2021-11-12Minor code smell fixesDaniel
2021-11-12Update dependenciesDaniel
Only minor changes are needed.
2020-10-12mention -n/--count in the manpageDaniel
2020-10-10Update boss name list in manpageDaniel
2020-10-10fix testsv1.3.1Daniel
2020-10-10fix lintsDaniel
2020-10-10bump version to 1.3.1Daniel
2020-10-10update dependenciesDaniel
2020-10-10update to evtclib 0.5.0Daniel
2020-10-04use Encounter::from_header_idDaniel
2020-10-04update to newest evtclibDaniel
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.
2020-10-04update dependenciesDaniel
2020-08-28update dependenciesDaniel
2020-08-28add --count/-n flagDaniel
2020-07-24bump version to 1.3.0v1.3.0Daniel
2020-07-24use Analyzer/span from evtclibDaniel
This is better than re-implementing these functions, especially for the fight outcome as it is more accurate.
2020-07-24update dependenciesDaniel
2020-06-26implement sorting based on durationDaniel Schadt
2020-06-26Merge branch 'comparison-filters'Daniel Schadt
2020-06-26fix formattingDaniel Schadt
2020-06-26update changelogDaniel Schadt
2020-06-12write about the new predicates in the manpageDaniel
2020-06-12fix up doc comments and testsDaniel
2020-06-12implement -after/-before in terms of -timeDaniel
It makes sense to unify this implementation to avoid code duplication and bugs that might be hidden. -after and -before can stay for now, as shortcuts for -time < and -time >, the same way we have other shortcuts as well.
2020-06-12add a count(player) to count all playersDaniel
2020-06-12report invalid filters that are valid regexesDaniel
2020-06-12add a comment about the trait aliasesDaniel
2020-06-12implement count(player: ...) constructDaniel
2020-06-12allow durations with minutes as wellDaniel
This allows things like "2m 50s" but also "5m". humantime would allow even more, but we need a regular expression to catch them for lalrpop, so for now this are the only two supported formats (together with "50s"). Considering the usual time of fights in GW2, I doubt we'll need anything bigger than minutes.
2020-06-12include fight duration in outputDaniel
Since we have this information now anyway, might as well include it. We're using humantime here, as that produces the expected "xxm yys zzms" output. The conversion shouldn't fail (the unwrap), as we should never encounter negative fight durations.
2020-06-12compute fight duration from event timesDaniel
It seems a bit iffy to use the local timestamp to compute the fight duration: First of all, the event timestamps have higher precision, being counted in milliseconds rather than seconds. Second, it is more reliable, as we always have a first and a last event, whereas the LogStart and LogEnd may not exist. Third, we may want to change how this value is calculated in the future anyway, as some bosses have a bit of a pre-log before the fight actually starts (arcdps starts the log when you get into combat, which might be before the boss actually spawns, like on Ensolyss). In either case, this function is probably a strong contender for being implemented properly in evtclib.
2020-06-12fix tests for sortingDaniel
2020-06-12add tests for CompOp::matchesDaniel
2020-06-12implement filter_early for ComparatorDaniel
2020-06-12more documentation for filters::valuesDaniel
2020-06-12initial work on comparison based filtersDaniel
This enables filters such as -time > 2020-01-01 -time < 2020-02-03 ... for time and duration, and later possibly also for more things (such as a COUNT(...) construct). This work tries to integrate them into the existing filter system as seamless as possible, by providing a Comparator which implements LogFilter. The "type checking" is done at parse time, so nonsensical comparisons like -time > 12s flat out give a parse error. This however might be changed to a more dynamic system with run-time type checking, in which case we could do away with the type parameter on Producer and simply work with a generic Value. The comparator would then return an error if two non-identical types would be compared. Note that the system does not support arithmetic expressions, only simple comparisons to constant values.
2020-06-08make --repl conflict with --checkDaniel
2020-06-08update manpage & changelog for --checkDaniel
2020-06-08add --check to check a single fileDaniel
The --check flag will check the given file and set the exit status accordingly.