Commit Graph

113 Commits

Author SHA1 Message Date
Archi
6d0fa9bd2f Wait up to 10 seconds for mutex 2022-12-29 23:41:51 +01:00
Archi
d0fc189fa4 Make cleanup of old version after update more robuts 2022-12-29 22:57:20 +01:00
Archi
b28fcf46a0 Misc 2022-12-23 22:43:55 +01:00
Archi
8fd5f2e883 Fix Archi fuckup
Who would have thought?
2022-12-23 22:42:41 +01:00
Archi
8d5653b41e Add target channel to update command and public API 2022-12-23 22:12:18 +01:00
Vita Chumakova
8897c1d405 Support thousands separator for parsing playtime (#2773) 2022-12-21 17:42:38 +01:00
Archi
defc1bf80f Add support for full OpenID procedure against ArchiNet 2022-12-17 17:23:20 +01:00
Archi
fc63c28b05 Use local cache for BadBots in case server is unavailable
Bad actors might attempt to DDoS the server in order to refuse the service, fallback to local cache if that happens.
2022-12-17 03:11:07 +01:00
Archi
be5ec43772 Add support for automatically rejecting trade offers from bad bots
With special dedication to the guy who attempted to DDoS ASF STM listing today, hope your business will truly expand from now on! <3
2022-12-17 02:39:37 +01:00
Archi
fc20b6cfc4 Final Rider inspections 2022-12-15 19:23:46 +01:00
Archi
c9cae6e258 I wonder if netf understands nint 2022-12-15 19:17:48 +01:00
Łukasz Domeradzki
98ef37e722 Extract PublicListing and MatchActively to a plugin, resurrect MatchActively (#2759)
* Start work on extracting remote communication

* ok

* Dockerfile fixes

* More fixes

* Prepare /Api/Announce and /Api/HeartBeat

* Decrease publish race conditions

* OK

* Misc

* Misc

* Misc

* Move Steam group part back to ASF core

* Finally implement match actively v2 core

* Update RemoteCommunication.cs

* Use single round exclusively, report inventories more often

* Use randomization when asking others for assetIDs

* Add support for license and crowdin

* Kill dead code

* Fix return type of inventories

* Fix responses for good

* Unify old backend with new

* Report whole inventory, always

Helps with optimization on the backend side in terms of inventory fetching

* Update RemoteCommunication.cs

* Determine index of each asset and tell server about it

* Update AnnouncementRequest.cs

* Fix ASF screwing up with the order

* Fix warnings

* Misc rename

* Final logging touches
2022-12-15 18:46:37 +01:00
JustArchi
e994dca817 Remove inventory count that no longer does anything anyway 2022-12-03 00:09:33 +01:00
JustArchi
32a2c1b232 Misc improvements to OnRenamed() 2022-11-28 22:57:02 +01:00
JustArchi
4816cd006d Fix possible InvalidOperationException on OldName
I don't know how it's possible, MSDN docs don't mention it, but since it's nullable, this should help.
2022-11-27 14:25:03 +01:00
JustArchi
14421b606e Fix build 2022-11-16 12:35:14 +01:00
JustArchi
3cf4ef3466 Address SYSLIB1045 2022-11-16 12:33:17 +01:00
JustArchi
9ba8e021d2 Add compat for generic-netf 2022-11-14 23:57:11 +01:00
JustArchi
f3255665ad Update NativeMethods.cs 2022-11-14 23:46:07 +01:00
JustArchi
0a5a447b6d Address SYSLIB1054 2022-11-14 23:42:44 +01:00
JustArchi
bce0649822 Closes #2728 2022-10-28 19:08:14 +02:00
JustArchi
ea7b944114 Include http errors in GetInventoryAsync()
And stop actively matching on first 429
2022-10-27 10:46:00 +02:00
Sebastian Göls
5a182b7522 Add --input-cryptkey argument (#2714)
* Add --input-cryptkey argument

* Improve readability of argument parsing

* Make the compiler shut up

* Remove German translation again

* Revert switch expression

* Fix unused cryptkey

It seems to be late
2022-10-07 19:32:58 +02:00
JustArchi
e9c02a4140 Misc 2022-08-08 12:40:19 +02:00
JustArchi
f3229fa45f Implement AngleSharp.XPath breaking changes
Bump of B warranted, more in the release notes
2022-08-06 18:51:32 +02:00
JustArchi
1dc2b1e06e Misc 2022-07-21 16:50:15 +02:00
JustArchi
2961975f05 Misc 2022-07-08 19:17:43 +02:00
JustArchi
06843ebf9f Misc 2022-07-08 19:16:58 +02:00
JustArchi
6ca395795c Move network group logic into plugins core
This will allow plugin creators to make use of network groups
2022-07-08 19:16:29 +02:00
JustArchi
772607b680 Use recommended async dispose pattern
Funny enough, non-breaking API changes since all of those classes are sealed.
2022-06-19 18:24:52 +02:00
JustArchi
95a6cef6db Take into account trade hold durations from both sides
Previous implementations had several problems when dealing with trade holds:
- User could've configured max trade hold duration to 0, and still accept trades with hold when he's the cause of it, this is unwanted
- There is virtually no way to ensure that the other party is willing to accept our trade hold even if we allow it, so expose that detail.

This precisely answers quite rather but not impossible situation of having a trade hold with ASF 2FA, e.g. due to moving authenticator, but we're also now ready for "perpetual" trade hold with ASF 2FA, in case it ever happened.

This way, we:
- Expose to other users our max trade hold duration preference
- Users validate both their own and listed user's trade hold, and if it exceeds either their own or user's limit, bot is not considered for matching
- It also resolves problem of accepting trade offers from other people when we're on trade hold ourselves
2022-06-11 18:07:06 +02:00
JustArchi
2ec764f8ec Rewrite WebBrowser errors handling 2022-06-06 23:28:35 +02:00
Sebastian Göls
dae3e93031 Make use of "or" keyword in switch statements (#2598) 2022-06-05 15:59:34 +02:00
JustArchi
7c00d8d03d Misc 2FA enhancements 2022-06-05 12:39:04 +02:00
JustArchi
06bfe01087 Misc 2022-06-04 21:41:07 +02:00
Łukasz Domeradzki
7fe5989f5d Rewrite Steam time to ulongs (#2594)
My latest "research" resulted in learning that under the hood, Steam unix time seconds is bullet-proof not only for year 2038 but for uint range as well. While I do not expect to be alive by 2106, let alone ASF still being operative, it makes sense to base our time on the correct backend implementation regardless.

Small breaking change for people using `GetUnixTime()`.
2022-06-01 21:13:50 +02:00
Łukasz Domeradzki
715ed034df Unify WebBrowser API in regards to nullable bodies (#2593)
* Unify logic for nullable bodies

* Update ArchiWebHandler.cs

* Misc
2022-06-01 21:13:40 +02:00
Sebastian Göls
68e30b43c2 Use ArgumentNullException.ThrowIfNull when possible (#2591)
* Misc.

* Fix mistake
2022-05-26 13:29:12 +02:00
JustArchi
b5ca484c2b Add ReturnRedirections for plugins usage
This will allow caller to handle redirections manually
2022-05-24 12:13:54 +02:00
Archi
062b241232 Misc 2022-04-18 21:08:30 +02:00
Archi
b5af510eb9 Improve weak passwords reasons 2022-04-18 20:35:47 +02:00
Archi
9c7014d5c1 Misc 2022-04-15 19:38:56 +02:00
Sebastian Göls
b8bfcd5df3 Simplify LogNullError calls (#2554)
* Remove necessity of nameof(...) in calls to ArchiLogger.LogNullError(...)

* Upgrade Madness

* Upgrade Madness

* Split up compound null log statements
2022-04-13 23:16:36 +02:00
Sebastian Göls
2326196e01 Slightly deduplicate utility code (#2553) 2022-04-13 21:44:57 +02:00
Archi
cc83222c3e Use shorter syntax for json properties 2022-03-22 16:33:47 +01:00
Archi
6fcc64dad1 Update RemoteCommunication.cs 2022-02-03 19:54:39 +01:00
Archi
e18046084e Remove TradeMatcher remote communication
Instead, make MatchActively work without specifying SteamTradeMatcher
2022-02-03 18:01:39 +01:00
Łukasz Domeradzki
c3c5f33289 Split global statistics into per-bot RemoteConnection (#2505)
* Split global statistics into per-bot RemoteConnection

* Add migration for existing statistics setting
2022-02-03 17:33:04 +01:00
Archi
dae6f9d328 Use newer syntax for Enum.IsDefined() 2022-01-23 01:37:43 +01:00
Archi
a5640f5a84 Fix permanently stopped IPC when ASF update has failed 2022-01-08 17:26:16 +01:00