Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mac build fix #11

Open
wants to merge 111 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
111 commits
Select commit Hold shift + click to select a range
9ef4340
Add protobuff files
LauraRozier Mar 16, 2023
029e695
Add (improvised) missing files
LauraRozier Mar 16, 2023
98e3444
Update bindings
LauraRozier Mar 16, 2023
e0b914f
Fix AttributeError('out_of_game_heartbeat_seconds')
LauraRozier Mar 16, 2023
cb9f8c3
Update README.md
TheSentry Apr 10, 2023
0d24e8a
implemented the RSA call.
ABaumher Apr 30, 2023
4f39c71
actually staging the changes this time, lol
ABaumher Apr 30, 2023
4edb254
Updated enums to the current version available. Continued modificatio…
ABaumher Apr 30, 2023
d0c2a14
Updated protocol buffer message files to work with auth. Merged chang…
ABaumher May 2, 2023
0b16bfc
updated the EMsg constants. They were out of date
ABaumher May 2, 2023
77474d5
minor changes to protobuf client. Prototyping new workflow. Preparing…
ABaumher May 4, 2023
6cc7ecb
Updated bugfixes to a version that runs in GOG Galaxy. This still req…
ABaumher May 4, 2023
b61273b
Got the RSA Key all the way back to the Backend, so we can change the…
ABaumher May 4, 2023
58c8f29
Update that gets the password RSA key for the user. Implements the ba…
ABaumher May 5, 2023
7498c57
Maybe breaking. Looking for an old message i wrote, so i need this ba…
ABaumher May 5, 2023
da90375
updated consts, protobuf, protocol buffer to report modern os types (…
ABaumher May 5, 2023
83a69a1
Testing various changes. This will break at some point before hitting…
ABaumher May 6, 2023
76ccfca
Breaking Change: Renamed types.py so Visual Studio would stop complai…
ABaumher May 6, 2023
708083c
adding type hints, mostly. need to track down where job_list was adde…
ABaumher May 6, 2023
141eed8
Public Key data comes back in hexidecimal, so that is now handled pro…
ABaumher May 6, 2023
0eef845
Full login with no SteamGuard test. Likely will require a few bugfixe…
ABaumher May 6, 2023
dc762dd
Login processed properly, goes to confirm to get the tokens, and none…
ABaumher May 7, 2023
0285aa2
Merged in Thibmo's fixes and proto files. this is not a complete merg…
ABaumher May 7, 2023
4429a71
Dealing with getting the proto files properly parsed and built so the…
ABaumher May 8, 2023
3cd0b49
Added Protos. Updated Tasks.py to properly import them. They still do…
ABaumher May 8, 2023
91f2670
Reverted py files to what they were before merging with Thibmo's fork.
ABaumher May 8, 2023
95bbacf
Updated the protobuf list to the files we currently use. There are a …
ABaumher May 8, 2023
f65f179
Figured out how to handle conflicts with the service messages. we sho…
ABaumher May 8, 2023
e4cf9bd
Finally found the version of protoc the old version was using. we can…
ABaumher May 9, 2023
a44be78
Updates throughout the code base. Preparing for full auth workflow an…
ABaumher May 10, 2023
a135724
Full integration of all parts of new auth flow implemented. Bugfixing…
ABaumher May 10, 2023
d9641f3
Bugs Fixed. Now logs in, but no other messages are sent. needs a Clie…
ABaumher May 10, 2023
0d50163
Experimental branch; i don't want to break something on the main fix.…
ABaumher May 10, 2023
7922c28
Added a readme for alpha testers
ABaumher May 10, 2023
452d83a
Update README_ALPHA.md
ABaumher May 10, 2023
dc6adcd
Attempt to fix issue raised by HiddenAnomaly
ABaumher May 10, 2023
d008b6c
preparing to call old client login method. preparing to remove public…
ABaumher May 11, 2023
825de45
Merge branch 'remove_public_profiles_backend' into AuthFix
ABaumher May 11, 2023
5869ef9
Finished removing public profiles. Started adding the token login cal…
ABaumher May 11, 2023
81e3a66
Fixed a few issues created by removing public backend
ABaumher May 11, 2023
f506150
Getting persistent login to work. Fixed a few errors.
ABaumher May 11, 2023
b8f9a0e
Removed logger info for packet information. This massively bloated th…
ABaumher May 11, 2023
0bcaf03
fix mobile confirm flow. not pretty but should work
May 11, 2023
8946473
Enable job processing - achievements, collections, game times
slo May 11, 2023
6f1aa9e
Merge pull request #1 from don-de-marco/AuthFix
ABaumher May 12, 2023
398c39d
bugfix. trying to stay logged in. failing. Currently, the stay logged…
ABaumher May 12, 2023
ad838f2
disabled cache login. Wrote comments explaining it
ABaumher May 12, 2023
e45d0e5
Temporary "fix" that removes the job_list so the code will work again.
ABaumher May 12, 2023
a656d12
Persistent login now works.
ABaumher May 15, 2023
167aa0f
Remove guard data requirements, as they were breaking mobile login
ABaumher May 15, 2023
fe25334
(try to) fix the conflicting protobuf files situation
May 13, 2023
33908dc
fix proto2 syntax statement
May 13, 2023
46c3370
Bugfix to properly recover when refresh token expires or is revoked.
ABaumher May 15, 2023
921bd72
Update README_ALPHA.md
ABaumher May 15, 2023
6869909
Update README_ALPHA.md
ABaumher May 15, 2023
7f01fc0
Update README_ALPHA.md
ABaumher May 15, 2023
d75bf9c
Update README_ALPHA.md
ABaumher May 15, 2023
4647e5f
Update README_ALPHA.md
ABaumher May 15, 2023
5805697
Update README.md
ABaumher May 15, 2023
8521a9b
Update protobuf_steammessages.txt
ABaumher May 15, 2023
86a709e
Merge pull request #1 from don-de-marco/abaumher-rebase
ABaumher May 15, 2023
6aa370d
Update README.md
ABaumher May 16, 2023
9873e50
Update README.md
ABaumher May 16, 2023
e0a78a1
Update README.md
ABaumher May 16, 2023
374dbd2
added install.txt so readme works properly
ABaumher May 16, 2023
e0a00a5
Update the install so it works properly. Merge changes that i didn't …
ABaumher May 16, 2023
04ff339
Fix the readme and install.txt so they now work
ABaumher May 16, 2023
7b23678
Actually fixed it this time. Requires galaxy plugin in install
ABaumher May 16, 2023
3b7c90e
Added beautiful soup to app requirements so it does not crash. fixed …
ABaumher May 16, 2023
9435073
revert app.txt change. remove user_profile, which caused the conflict…
ABaumher May 16, 2023
e511960
Bugfix so mobile code works correctly
ABaumher May 17, 2023
3f242fe
updated translate error to log the error received so we can more easi…
ABaumher May 17, 2023
8cfb1c4
bugfix for mobile confirm. If you hit continue before confirming, it …
ABaumher May 17, 2023
bc8af72
Reverted UI so it's user and password. cleaned up the css and html so…
ABaumher May 18, 2023
6d5e8e3
fixes multiple bugs: a residual debug that caused errors on a failed …
ABaumher May 18, 2023
4247b66
missed a pair of errors related to removing user name from pages.
ABaumher May 18, 2023
cb6f315
Mobile confirm bugfix, html now displays errors properly.
ABaumher May 18, 2023
050f9e1
Attempting to refactor all the code to work with mobile confirm. I st…
ABaumher May 18, 2023
45d450b
fallback on mobile confirm should now work.
ABaumher May 18, 2023
4b3f3ff
Bugfixes (again). Email code works again.
ABaumher May 18, 2023
1ede3a7
Tracked down a bug where the client would silently crash if you revok…
ABaumher May 19, 2023
276cabe
bugfix, priority list was sorting ascending, wanted descending.
ABaumher May 19, 2023
37762fd
Multiple bugfixes. Mobile confirm should finally work (though, probab…
ABaumher May 20, 2023
50ceaab
Bugfix. Wrapping recv in a task was done improperly. it's now fixed. …
ABaumher May 20, 2023
c8b8a7b
Updated the ui for mobile confirm for clarity. link now uses the prop…
ABaumher May 20, 2023
bb47e90
Experiemental Resend Code implementation. Two Factor expire now kicks…
ABaumher May 21, 2023
9e226de
Revert "Updated the ui for mobile confirm for clarity. link now uses …
ABaumher May 21, 2023
e2d6f6c
Revert "Experiemental Resend Code implementation. Two Factor expire n…
ABaumher May 21, 2023
23423d9
Reverts all the changes made to try to fix the resend issue. We now j…
ABaumher May 21, 2023
b68aff8
Merge pull request #4 from ABaumher/revert_pls
ABaumher May 21, 2023
cd5133a
hopefully fixed error message for login page after a timeout
ABaumher May 21, 2023
05a1615
Updated index with a message explaining what happens when email times…
ABaumher May 21, 2023
a137cd5
some fixes to readme, move pip req to reqs file, fix start of pytest
MisterZeus May 22, 2023
30369f8
Merge pull request #5 from ABaumher/mobile_confirm_refactor
ABaumher May 22, 2023
236ab56
Update README.md
ABaumher May 22, 2023
f93ea59
Update README.md
ABaumher May 22, 2023
9c700b7
Merge branch 'master' into master
MisterZeus May 22, 2023
489230c
check whether users have py installed
MisterZeus May 22, 2023
3aa2cfa
Merge branch 'master' of https://github.com/MisterZeus/galaxy-integra…
MisterZeus May 22, 2023
a51a0fc
remove exeprobe, make if simpler
MisterZeus May 22, 2023
23ef0c0
readme tweaks
MisterZeus May 22, 2023
3a03a84
Merge pull request #3 from MisterZeus/master
ABaumher May 23, 2023
eb8879b
Update gitignore to ignore zip files, so it excudes the release. reim…
ABaumher May 23, 2023
432e77c
Temporary fix for achievements sync. Limit simultaneous jobs.
wwMRd May 25, 2023
3da5c06
Merge pull request #8 from wwMRd/achievements_temp_fix
ABaumher May 26, 2023
5231719
Added .DStore to ignore list
bgebhardt May 29, 2023
e3bb216
Revert "Added .DStore to ignore list"
bgebhardt May 29, 2023
6a253d0
Added mac-related .dot files
bgebhardt May 29, 2023
9ab4a60
updated required pip-tools
bgebhardt May 29, 2023
dbd6f45
Updated mac build instructions
bgebhardt May 29, 2023
33d791d
Added instructions to setup protobuf compiling on Mac
bgebhardt May 29, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Dealing with getting the proto files properly parsed and built so the…
… plugin works from task.py. Not finished; switching gears to localization so i don't go insane.
  • Loading branch information
ABaumher committed May 8, 2023
commit 4429a712e96dfc94d386f40aa7bc010b262512d8
4 changes: 3 additions & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@

MIT License

Copyright (c) 2017-2023, Hiroyuki Takagi, FriendsOfGalaxy, Slo, Andrew Baumher, TheSentry, et.al.
Copyright (c) 2021-2023, FriendsOfGalaxy, Slo, Andrew Baumher, TheSentry, Thibmo et.al.
Portions of this code Copyright (c) 2015-2023, Rossen Georgiev <rossen@rgp.io>
Portions of this code Copyright (c) 2017-2023, Hiroyuki Takagi

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

Expand Down
40 changes: 11 additions & 29 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,42 +43,24 @@ This is a fork of the repository from FriendsOfGalaxy, intended to continue deve

If the latest version available on Github is newer than the version specified in the `manifest.json` file in the custom build, Galaxy will download the newer version and replace the files. To prevent this from happening, you can manually set the version in `manifest.json` to a significantly higher value (e.g. `9.9`).

## Configuration of the backend operation mode
## Why this fork?

The plugin supports different data collectors, called `backends`.
Well, without being too complicated, Steam changed how they do authentication. We used to be able to use one call and magically get a lot of info we needed. But, if we're being honest, it was a little insecure, and it easy. While we were using it for legitimate purposes, not everyone else was, and one of Valve's greatest deterrence to botting or DOS attacks (etc) is making things difficult. The new workflow uses a significant back-and-forth between a Steam Server and ourselves, closely resembling a common web form of authentication called OAuth2. This meant a lot of under-the-hood changes.

Currently supported `backends` are:
1. `Steam Network`
- uses internal Steam protocols
- supports library, game times, achievements, importing tags, friends presence
2. `Public Profiles`
- works without providing user credentials
- requires steamcommunity.com user's profile to be set as public with access at least for games library
- supports library, game times, achievements, importing tags

NOTE: Data imported by different `backends` may differ due to both Steam side inconsistencies and limitations of specific `backend` implementation.

NOTE: interaction with local games and local Steam client is the same for all `backends`.

The behavior is configurable using a `config file`.

### Config file location

- Windows:
`%localappdata%\GOG.com\Galaxy\plugins\installed\steam_plugin_config.ini`
## Credits

- MacOS:
`~/Library/Application Support/GOG.com/Galaxy/plugins/installed/steam_plugin_config.ini`
### Current Version:
This is a fork of https://github.com/FriendsOfGalaxy/galaxy-integration-steam

### Default behavior
The new Authorization flow implementation is heavily influenced by SteamKit. https://github.com/SteamRE/SteamKit<br/>
While we have not utilized their source code, they have implemented the new authentication workflow before we did, and we used their knowledge of how to do so in order to implement it ourselves. If you are doing anything steam related in C#, you should check them out; their project has far more features than our own.

Initial `backend` (with the login window) is set to use `Steam Network` and switches to `Public Profiles` automatically when stored token become invalid (for the main reason see #74).
Some work was influenced by ValvePython. https://github.com/ValvePython/steam<br/>
Our projects do the same thing, but use different methods (we use asyncio, they use gevent, for example). Both projects were working on the new Auth Flow simultaneously, with little collaboration between us. That said, their scope is much larger than our own and lets you do a lot more things. If you are looking for a python means of implementing a steam network authentication, you should use their work instead.

## Credits

This is a fork of https://github.com/FriendsOfGalaxy/galaxy-integration-steam
### Original Version:

Based on work and research done by others:
Original Plugin was based on work and research done by others:
* https://github.com/prncc/steam-scraper
* https://github.com/rhaarm/steam-scraper
* https://github.com/mulhod/steam_reviews
Expand Down
17 changes: 0 additions & 17 deletions README_UPDATE_PROTOBUF_FILES.md

This file was deleted.

9 changes: 5 additions & 4 deletions galaxy-integration-steam.pyproj
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,11 @@
<Content Include=".gitignore" />
<Content Include="current_version.json" />
<Content Include="galaxy-integration-steam.pyproj" />
<Content Include="LICENSE" />
<Content Include="protobuf_files\protobuf_list.txt" />
<Content Include="pytest.ini" />
<Content Include="README.md" />
<Content Include="README_UPDATE_PROTOBUF_FILES.md" />
<Content Include="requirements\app.txt" />
<Content Include="requirements\dev.txt" />
<Content Include="protobuf_files\README_UPDATE_PROTOBUF_FILES.md" />
<Content Include="src\commonWeb\css\common.css" />
<Content Include="src\commonWeb\fonts\LatoWeb\LatoWeb-Light.ttf" />
<Content Include="src\commonWeb\fonts\LatoWeb\LatoWeb-Regular.ttf" />
Expand Down Expand Up @@ -109,6 +109,7 @@
<Compile Include="src\uri_scheme_handler.py" />
<Compile Include="src\user_profile.py" />
<Compile Include="src\version.py" />
<Compile Include="tasks.py" />
<Compile Include="tests\async_mock.py" />
<Compile Include="tests\conftest.py" />
<Compile Include="tests\tests_public_profiles\conftest.py" />
Expand Down Expand Up @@ -147,7 +148,7 @@
<Compile Include="tests\test_user_profile_checker.py" />
</ItemGroup>
<ItemGroup>
<Folder Include="requirements" />
<Folder Include="protobuf_files\" />
<Folder Include="src" />
<Folder Include="src\commonWeb\" />
<Folder Include="src\commonWeb\css" />
Expand Down
26 changes: 26 additions & 0 deletions protobuf_files/README_UPDATE_PROTOBUF_FILES.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Obtaining procedure:

1. Ensure protobuf_files exists in the main directory. This file should be in this location.
2. (Optional) Backup any existing `.proto` files. There may have been breaking changes, and it is much easier to compare .proto files instead of their compiled versions.
3. From the main directory, execute `inv pull_protobuf_files` it will dump all of the necessary proto files here.


# Updating procedure

1. (Optional) Copy all existing files in `src/steam_network/protocol/messages/` to a backup directory. If you backed up the proto files in the obtain procedure, you may ignore this step. otherwise, they may be useful determining if any changes have occured.
2. Make sure that your virtual environment has the `protobuf` library installed. If not then install it with the
version in the `requirements/app.txt` file.
3. Make sure your virtual environment has `invoke` installed. if not, install the version in `requirements/app.txt`
4. Make sure you have `protoc` installed. It should come with `protobuf`, but may not.
5. To generate/update python files in `src/steam_network/protocol/messages/`
from main directory, run command: `inv generate-protobuf-messages`
6. If you received a warning log in the console that some of the messages already exist, check that the mentioned file
is not obsolete.
7. Check imports in `steam_network/protocol/protobuf_client.py`. Some messages could have moved or been renamed.
8. Build the plugin and check that it works, especially features which may be affected by changes in their protobuf
messages.

## Sources

* <https://github.com/steamdatabase/protobufs>
* <https://github.com/ValvePython/steam>
11 changes: 0 additions & 11 deletions protobuf_files/encrypted_app_ticket.proto

This file was deleted.

Loading