Commit graph

78 commits

Author SHA1 Message Date
CosminPerRam
ea6140c5d9 docs(lib): fix eco not being hyperlinked in changelog 2024-03-15 18:30:49 +02:00
CosminPerRam
275fb7d4cd
feat: release 0.5.0 (#191)
* feat: add initial crates readmes

* feat: add initial CLI readme

* fix: some links

* feat: fix node badge, split changelogs, fix some other links add docs in cli

* feat: feature the gamedig site in the lib

* feat: fill in cli package fields

* feat: set CLI version to 0.1.0

* feat: update changelogs to set vers

* feat: update the release workflow
2024-03-15 18:14:59 +02:00
CosminPerRam
04803996cd fix: counter strike 2 gid 2024-03-10 23:41:43 +02:00
CosminPerRam
967dc37d64 feat: add Double Action: Boogaloo support 2024-03-10 23:39:39 +02:00
CosminPerRam
82b7a5f169 feat: add counter-strike 2 support 2024-03-10 23:36:04 +02:00
CosminPerRam
8a38d742f6 chore: run formatting on minecraft types 2024-02-26 00:16:59 +02:00
CosminPerRam
a9fcfe1bb3 tests: add minecraft varint and string types 2024-02-26 00:15:33 +02:00
CosminPerRam
b913b0c7e7 fix: remove unused test 2024-02-25 23:56:21 +02:00
CosminPerRam
1080a94bd2 fix: replace 2 instances of .get(0) with .first() 2024-02-25 23:54:19 +02:00
CosminPerRam
c1454805bb
feat: add black ops 3 support (#189)
* feat: add black ops 3 support

* chore: formatting
2024-02-25 23:50:27 +02:00
CosminPerRam
ef017d4703 docs: fix gramatical error in eco protocol 2024-02-25 19:39:27 +02:00
CosminPerRam
310b62664c
feat: http client and eco support (#175)
* feat: initial http and eco support

* http: Replace reqwest with ureq and add HTTPS support

ureq markets itself as a lightweight blocking HTTP client which might be
a good choice for rust-gamedig at the moment. However the main reason
for changing to ureq is that it allows setting a "resolver" function
which overrides the IP address to connect to. This is useful because it
allows us to pass a URL with the desired hostname without the HTTP
library doing an extra DNS lookup (this allows HTTPS to work when we
specify the exact IP and port to connect to external to the URL).

Other changes in this commit are:
- Feature gated things that depend on serde: this means that the eco
  game won't be available if the library is compiled without serde
- Added the TLS feature to enable TLS support in the HTTP library
- Added HTTPSettings to set the protocol (HTTP/HTTPS) and the hostname
- Setting a user-agent string on HTTP requests (allows the server to see
  what program is being used to query them)
- Store the address as a parsed Url so we don't re-parse it on every
  request
- Add a method to POST JSON data and parse response
- Renamed the request() method to get_json() in anticipation of a future
  method that will send a GET request and handle the raw bytes instead
  of using serde
- Improved documentation

* eco: Add generic impls

* eco: fixes

* http: Add headers to HttpSettings and rename from HTTPSettings

* eco: Add extra request settings

* http: Add support for querying raw bytes

* http: Add unit-tests

* http: Rename HttpProtocol

* crate: Make serde dependency non-optional

The serde feature now only enable serde derivations for our types that
don't need it for the library to function.

* http: Add helper for creating HttpClients to query APIs

Adds the from_url helper that should make working with master server web
APIs easier.

* Add/Update badge

* crate: Require games feature for eco example

* docs: Update changelog

---------

Co-authored-by: Douile <douile@douile.com>
2024-02-10 18:26:49 +00:00
Cain
e86e80522b
feat: Add packet capture functionality and many more CLI improvements (#182) 2024-02-07 22:31:31 +00:00
Cain
7369dbab19 refactor: use slices where possable in pcap 2024-02-07 16:10:04 +00:00
Cain
730c938ad2 chore: format 2024-02-07 15:30:20 +00:00
Cain
7b37e71221 chore: remove unused else 2024-02-07 15:29:13 +00:00
Cain
9a2b953fff refactor: capture socket and move to capture dir 2024-02-07 15:28:41 +00:00
Cain
c34392a3da refactor: pcap packet buffer size 2024-02-07 15:26:17 +00:00
Tom
fd497764f8
feat: Improve doc-comments for ErrorKind (#186)
* Improve doc-comments for ErrorKind

* error: Improve ErrorKind::BadGame doc comment

* error: fmt ErrorKind doc comments
2024-02-06 17:06:54 +02:00
Cain
744230455c revert: lib default feat to exclude packet capture 2024-02-02 02:34:02 +00:00
Tom
89ed19f089
feat(protocols): Add more control over gathering additional information (#180)
* protocols: Add more control over gathering additional information

Adds GatherToggle which allows choosing the behaviour for how the query
handles fetching additional information. The choices are:
- DontGather - Don't attempt to fetch information
- AttemptGather - Try to fetch the information but ignore errors
- Required - Try to fetch information and fail if it errors

A handy macro was also added to utils to dispatch additional queries
based on a GatherToggle value.

* Add/Update badge

* protocols: Improve GatherToggle enum names

Co-Authored-By: Cain <75994858+cainthebest@users.noreply.github.com>
Co-Authored-By: CosminPerRam <cosmin.p@live.com>

* Add/Update badge

---------

Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Cain <75994858+cainthebest@users.noreply.github.com>
Co-authored-by: CosminPerRam <cosmin.p@live.com>
2024-01-22 13:36:17 +02:00
Cain
5dff511e6f refactor: clippy fix + docs 2024-01-18 18:59:59 +00:00
Cain
b1e42f9023 refactor: clippy fixs 2024-01-18 18:59:19 +00:00
Cain
3eb20b9deb fix: mindustry leak crate-private type 2024-01-18 18:13:42 +00:00
Cain
962c856418 fix: packet support for msrv 2024-01-18 18:08:27 +00:00
Cain
b49525543d chore: format 2024-01-18 17:56:58 +00:00
Tom
32dd486632
fix: various crate/clippy/ci changes (#181)
* crate: Set default binary to gamedig-cli

* crate: Fix bad no-default-features option on gamedig-id dependency

* ci: Run tests when Cargo.toml changes

* id-tests: Clippy fixes
2024-01-18 15:34:05 +02:00
Cain
36d957ceb4
Merge branch 'main' into feat/rootless-capture 2024-01-18 01:56:14 +00:00
Cain
c30f28741f
impl: tcp fin 2024-01-17 23:44:36 +00:00
Cain
0543cabce2
refactor: clean up 2024-01-17 23:44:11 +00:00
Cain
3d47180e85
refactor: backport pcap impl 2024-01-17 23:44:05 +00:00
Cain
49096e46bb
merge: Douile fork + local (broken af) 2024-01-17 23:43:53 +00:00
Tom
07de5168f4
Add support for Mindustry (#178)
* buffer: Add UTF8LengthPrefixed string decoder

* games: Use expression for default port

This allows us to refer to constants for the default ports if we want to
(literals will still work).

* games: Add support for mindustry
2024-01-17 13:53:40 +00:00
CosminPerRam
a3bc8b79e5 feat(games): add zombie panic: source support 2024-01-11 01:48:05 +02:00
Tom
b248a7661e
feat: Move ID tests into their own crate with a CLI (#177)
* fix: ID tests not in correct directory

* refactor: Move game-id test logic into its own crate

* id-tests: Add CLI that reads JSON input

* id-tests: Update crate docs

* Remove node ID test

* id-tests: Don't try to parse unneeded info

* id-tests: Enable cli feature by default
2024-01-11 01:31:02 +02:00
CosminPerRam
94102d0d7b feat(games): add base defense support 2024-01-07 23:44:35 +02:00
CosminPerRam
c71e783e1e fix(crate): formatting 2024-01-07 23:34:46 +02:00
CosminPerRam
109a3db13e feat(games): add americas army proving grounds support 2024-01-07 23:34:26 +02:00
CosminPerRam
1333655d53 fix(games): atlas definitions steam app id 2024-01-07 23:22:17 +02:00
CosminPerRam
ae9a38907f feat(games): add atlas support 2024-01-07 23:15:35 +02:00
Tom
bd3727d7fe
chore: Tidy up some out of place types (#160)
* tidy: Move TimeoutSettings out of protocol types

* tidy: Move game type to a types file

* tidy: Move generic query functions to own file

* tidy: Move ExtraRequestSettings to game types

* tidy: Move generic query functions into games module

* Revert "tidy: Move ExtraRequestSettings to game types"

This reverts commit aa0d23fc2acc12d68f03265a9caff6f98bf25054.

* Revert "tidy: Move TimeoutSettings out of protocol types"

This reverts commit 7ee10711ed11f17cc06565d4cc9102040d53a319.

* tidy: Re-export types needed for query at the root

* Add/Update badge

---------

Co-authored-by: GitHub Action <action@github.com>
2024-01-02 00:17:43 +02:00
CosminPerRam
a7ee331dc3 feat: add Rising World support 2023-12-30 17:31:22 +02:00
Tom
87ed02420e
feat: Add best effort test to validate game ID rules (#111)
* [Test] Add best effort test to validate game ID rules

An attempt to implement the rules specified in #108 as a programmatic
test.

* [Test] Refactor ID rules to check if a mod exists after - in game name

This allows fivem to pass the check following rule 8, but could also
cause a false pass in some cases.

* [Test] Add unit tests for ID rule checker

Adds unit tests based on the examples in CONTRIBUTING.md to confirm in
those cases we would allow ID to pass. However these tests don't check
any error cases.

* test/id: Correctly extract protocol names

* games/defs: Fix unreal tournament IDs

* tests: Require game definitions to run ID tests

* tests: Improve comments on ID tests

* tests/id: Combine - seperated numbers

* games/defs: Fix darkest hour ID

* Add/Update badge

---------

Co-authored-by: GitHub Action <action@github.com>
2023-12-19 22:20:19 +01:00
CosminPerRam
10169c9107
chore: extract ffow into multiple files (#173)
* chore: extract ffow into multiple files

* fix: serde uses not being conditional
2023-12-19 22:04:45 +01:00
CosminPerRam
bdcf64facf
chore: extract the ship into multiple files (#172)
* chore: extract the ship into multiple files

* fix: actual the ship reference link

* fix: revert last commit and replace in ts
2023-12-19 20:58:15 +01:00
CosminPerRam
99b0269ec2
chore: extract jc2m into multiple files (#171)
* chore: extract jc2m into multiple files

* docs: add jc2m fields public
2023-12-15 20:19:15 +01:00
CosminPerRam
a4bc430868 perf: use of or followed by a function call 2023-12-11 03:58:40 +02:00
CosminPerRam
0aa498b30b chore: simplify condition to use equals operator 2023-12-11 03:56:14 +02:00
CosminPerRam
f746fad157 perf: use of ok_or followed by a function call 2023-12-11 03:54:04 +02:00
CosminPerRam
9c3e6cb51f perf: use of ok_or followed by a function call 2023-12-11 03:53:18 +02:00