Browse Source

Merge branch 'ValvePython:master' into master

pull/290/head
XronoZ-create 3 years ago
committed by GitHub
parent
commit
aa69cd7efa
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 9
      .coveragerc
  2. 29
      .github/ISSUE_TEMPLATE/bug_report.md
  3. 8
      .github/ISSUE_TEMPLATE/config.yml
  4. 18
      .github/ISSUE_TEMPLATE/feature_request.md
  5. 105
      .github/workflows/testing_initiative.yml
  6. 65
      .travis.yml
  7. 9
      CHANGES.md
  8. 22
      Makefile
  9. 20
      README.rst
  10. 5
      Vagrantfile
  11. 13
      dev_requirements.txt
  12. 7
      docs/api/steam.monkey.rst
  13. 1
      docs/api/steam.rst
  14. 5
      docs/api/steam.versions_report.rst
  15. 36
      docs/user_guide.rst
  16. 20
      protobuf_list.txt
  17. 147
      protobufs/enums.proto
  18. 1534
      protobufs/enums_clientserver.proto
  19. 17
      protobufs/steammessages_base.proto
  20. 3
      protobufs/steammessages_broadcast.proto
  21. 67
      protobufs/steammessages_chat.proto
  22. 196
      protobufs/steammessages_client_objects.proto
  23. 855
      protobufs/steammessages_clientserver.proto
  24. 376
      protobufs/steammessages_clientserver_2.proto
  25. 167
      protobufs/steammessages_clientserver_appinfo.proto
  26. 6
      protobufs/steammessages_clientserver_friends.proto
  27. 158
      protobufs/steammessages_clientserver_gameservers.proto
  28. 71
      protobufs/steammessages_clientserver_lbs.proto
  29. 5
      protobufs/steammessages_clientserver_login.proto
  30. 229
      protobufs/steammessages_clientserver_mms.proto
  31. 203
      protobufs/steammessages_clientserver_ucm.proto
  32. 105
      protobufs/steammessages_clientserver_uds.proto
  33. 173
      protobufs/steammessages_clientserver_ufs.proto
  34. 81
      protobufs/steammessages_clientserver_userstats.proto
  35. 182
      protobufs/steammessages_cloud.proto
  36. 77
      protobufs/steammessages_contentsystem.proto
  37. 13
      protobufs/steammessages_credentials.proto
  38. 26
      protobufs/steammessages_datapublisher.proto
  39. 3
      protobufs/steammessages_depotbuilder.proto
  40. 44
      protobufs/steammessages_friendmessages.proto
  41. 33
      protobufs/steammessages_lobbymatchmaking.proto
  42. 26
      protobufs/steammessages_market.proto
  43. 94
      protobufs/steammessages_parties.proto
  44. 221
      protobufs/steammessages_player.proto
  45. 34
      protobufs/steammessages_publishedfile.proto
  46. 125
      protobufs/steammessages_qms.proto
  47. 857
      protobufs/steammessages_remoteplay.proto
  48. 34
      protobufs/steammessages_shader.proto
  49. 17
      protobufs/steammessages_store.proto
  50. 50
      protobufs/steammessages_timedtrial.proto
  51. 831
      protobufs/steammessages_webui_friends.proto
  52. 14
      requirements.txt
  53. 12
      setup.py
  54. 4
      steam/__init__.py
  55. 16
      steam/client/__init__.py
  56. 63
      steam/client/builtins/apps.py
  57. 15
      steam/client/builtins/gameservers.py
  58. 9
      steam/client/builtins/leaderboards.py
  59. 4
      steam/client/builtins/user.py
  60. 154
      steam/client/cdn.py
  61. 24
      steam/client/user.py
  62. 4
      steam/core/cm.py
  63. 5
      steam/core/crypto.py
  64. 36
      steam/core/manifest.py
  65. 16
      steam/core/msg/__init__.py
  66. 125
      steam/core/msg/unified.py
  67. 236
      steam/enums/common.py
  68. 38
      steam/exceptions.py
  69. 55
      steam/game_servers.py
  70. 164
      steam/guard.py
  71. 26
      steam/monkey.py
  72. 7688
      steam/protobufs/enums_clientserver_pb2.py
  73. 752
      steam/protobufs/enums_pb2.py
  74. 174
      steam/protobufs/steammessages_base_pb2.py
  75. 375
      steam/protobufs/steammessages_broadcast_pb2.py
  76. 1074
      steam/protobufs/steammessages_chat_pb2.py
  77. 1657
      steam/protobufs/steammessages_client_objects_pb2.py
  78. 5167
      steam/protobufs/steammessages_clientserver_2_pb2.py
  79. 1418
      steam/protobufs/steammessages_clientserver_appinfo_pb2.py
  80. 124
      steam/protobufs/steammessages_clientserver_friends_pb2.py
  81. 1288
      steam/protobufs/steammessages_clientserver_gameservers_pb2.py
  82. 596
      steam/protobufs/steammessages_clientserver_lbs_pb2.py
  83. 83
      steam/protobufs/steammessages_clientserver_login_pb2.py
  84. 1918
      steam/protobufs/steammessages_clientserver_mms_pb2.py
  85. 8903
      steam/protobufs/steammessages_clientserver_pb2.py
  86. 1712
      steam/protobufs/steammessages_clientserver_ucm_pb2.py
  87. 902
      steam/protobufs/steammessages_clientserver_uds_pb2.py
  88. 1457
      steam/protobufs/steammessages_clientserver_ufs_pb2.py
  89. 704
      steam/protobufs/steammessages_clientserver_userstats_pb2.py
  90. 1667
      steam/protobufs/steammessages_cloud_pb2.py
  91. 651
      steam/protobufs/steammessages_contentsystem_pb2.py
  92. 105
      steam/protobufs/steammessages_credentials_pb2.py
  93. 213
      steam/protobufs/steammessages_datapublisher_pb2.py
  94. 83
      steam/protobufs/steammessages_depotbuilder_pb2.py
  95. 362
      steam/protobufs/steammessages_friendmessages_pb2.py
  96. 229
      steam/protobufs/steammessages_lobbymatchmaking_pb2.py
  97. 199
      steam/protobufs/steammessages_market_pb2.py
  98. 694
      steam/protobufs/steammessages_parties_pb2.py
  99. 2386
      steam/protobufs/steammessages_player_pb2.py
  100. 592
      steam/protobufs/steammessages_publishedfile_pb2.py

9
.coveragerc

@ -1,5 +1,14 @@
# Docs: https://coverage.readthedocs.org/en/latest/config.html
[run]
concurrency = gevent
omit =
steam/protobufs/*
steam/enums/*
branch = False
# If True, stores relative file paths in data file (needed for Github Actions).
# Using this parameter requires coverage>=5.0
relative_files = True

29
.github/ISSUE_TEMPLATE/bug_report.md

@ -0,0 +1,29 @@
---
name: Bug report
about: Create a report to help us improve
title: "[BUG]"
labels: bug, needs-review
assignees: ''
---
**Description**
A clear and concise description of what the bug is.
**Steps to Reproduce the behavior**
(Include debug logs if possible and relevant)
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Versions Report**
<details><summary>python -m steam.versions_report</summary>
(Run python -m steam.versions_report and paste the output below)
```yaml
PASTE HERE
```
</details>

8
.github/ISSUE_TEMPLATE/config.yml

@ -0,0 +1,8 @@
blank_issues_enabled: true
contact_links:
- name: Ask a question in the discussion section
url: https://github.com/ValvePython/steam/discussions
about: Please ask and answer questions here.
- name: Ask a question via IRC (libera.chat)
url: https://web.libera.chat/#steamre
about: Please ask and answer questions here.

18
.github/ISSUE_TEMPLATE/feature_request.md

@ -0,0 +1,18 @@
---
name: Feature request
about: Suggest an idea for this project
title: "[FEATURE REQUEST]"
labels: feature-request, needs-review
assignees: ''
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.

105
.github/workflows/testing_initiative.yml

@ -0,0 +1,105 @@
# This workflow will install Python dependencies, run tests and lint with a variety of Python versions
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions
name: Testing Initiative
on:
push:
branches: [ master ]
paths-ignore:
- '.gitignore'
- '*.md'
- '*.rst'
- 'LICENSE'
- 'Vagrantfile'
- 'protobuf_list.txt'
- 'protobufs/**'
- 'recipes/**'
pull_request:
branches: [ master ]
paths-ignore:
- '.gitignore'
- '*.md'
- '*.rst'
- 'LICENSE'
- 'Vagrantfile'
- 'protobuf_list.txt'
- 'protobufs/**'
- 'recipes/**'
jobs:
test:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
python-version: [2.7, 3.6, 3.7, 3.8, 3.9]
no-coverage: [0]
include:
- os: ubuntu-latest
python-version: pypy-2.7
no-coverage: 1
- os: ubuntu-latest
python-version: pypy-3.6
no-coverage: 1
steps:
- uses: actions/checkout@v2
- name: Set up Python Env
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Display Python version
run: python -c "import sys; print(sys.version)"
- name: Install dependencies
run: |
make init
- name: Run Tests
env:
NOCOV: ${{ matrix.no-coverage }}
run: |
make test
- name: Upload to Coveralls
# pypy + concurrenct=gevent not supported in coveragepy. See https://github.com/nedbat/coveragepy/issues/560
if: matrix.no-coverage == 0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
COVERALLS_PARALLEL: true
COVERALLS_FLAG_NAME: "${{ matrix.os }}_${{ matrix.python-version }}"
run: |
coveralls --service=github
coveralls:
name: Finish Coveralls
needs: test
runs-on: ubuntu-latest
container: python:3-slim
steps:
- name: Install coveralls
run: |
pip3 install --upgrade coveralls
- name: Send coverage finish to coveralls.io
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
coveralls --finish
build-docs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest]
python-version: [3.6]
steps:
- uses: actions/checkout@v2
- name: Set up Python Env
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Display Python version
run: python -c "import sys; print(sys.version)"
- name: Install dependencies
run: |
make init
make init_docs
- name: Build Docs
run: make docs

65
.travis.yml

@ -1,65 +0,0 @@
language: python
os: linux
jobs:
include:
# docs build
- name: Docs (py36)
python: 3.6
install: make init
script: make docs
after_script: []
# linux
- python: 2.7
- python: 3.5
- python: 3.6
- python: 3.7
- python: 3.8
# OSX
- name: OSX Python 2.7
os: osx
language: shell
before_install:
- cp -fv `which python2` `which python` || true
- cp -fv `which pip2` `which pip` || true
- pip install --upgrade pip
after_script: []
- name: OSX Python 3.7
os: osx
language: shell
before_install:
- cp -fv `which python3` `which python` || true
- cp -fv `which pip3` `which pip` || true
- pip install --upgrade pip
after_script: []
# Windows
- name: Win Python 3.6
language: shell
os: windows
env: PATH=/c/Python36:/c/Python36/Scripts:$PATH
before_install:
- choco install python --version 3.6.8
- python -m pip install --upgrade pip
after_script: []
- name: Win Python 3.7
language: shell
os: windows
env: PATH=/c/Python37:/c/Python37/Scripts:$PATH
before_install:
- choco install python --version 3.7.4
- python -m pip install --upgrade pip
after_script: []
- name: Win Python 3.8
language: shell
os: windows
env: PATH=/c/Python38:/c/Python38/Scripts:$PATH
before_install:
- choco install python --version 3.8.2
- python -m pip install --upgrade pip
after_script: []
install:
- pip install -r requirements.txt
- pip install coveralls
script:
- PYTHONHASHSEED=0 pytest --cov=steam tests
after_script:
- coveralls

9
CHANGES.md

@ -1,5 +1,14 @@
# Change notes
## 2.0.0
This release brings breaking changes
### steam.client
- Add `steam.monkey` module for applying gevent monkey patches
- Removed monkey patching by default. See `steam.monkey` for details
## 1.0.0
This release brings breaking changes

22
Makefile

@ -24,15 +24,21 @@ export HELPBODY
help:
@echo "$$HELPBODY"
init: init_docs
pip install -r requirements.txt
init:
pip install -r dev_requirements.txt
init_docs:
pip install sphinx==1.8.5 sphinx_rtd_theme
COVOPTS = --cov-config .coveragerc --cov=steam
ifeq ($(NOCOV), 1)
COVOPTS =
endif
test:
coverage erase
PYTHONHASHSEED=0 pytest --cov=steam tests
PYTHONHASHSEED=0 pytest --tb=short $(COVOPTS) tests
webauth_gen:
rm -f vcr/webauth*
@ -61,7 +67,7 @@ upload: dist register
pb_fetch:
wget -nv --show-progress -N -P ./protobufs/ -i protobuf_list.txt || exit 0
mv protobufs/friends.proto protobufs/steammessages_webui_friends.steamclient.proto
mv protobufs/friends_mobile.proto protobufs/steammessages_webui_friends.steamclient.proto
sed -i 's/CCommunity_ClanAnnouncementInfo/xCCommunity_ClanAnnouncementInfo/' protobufs/steammessages_webui_friends.steamclient.proto
sed -i 's/CMsgClientSecret/xCMsgClientSecret/' protobufs/steammessages_webui_friends.steamclient.proto
sed -i '1s/^/option py_generic_services = true\;\n/' protobufs/steammessages_webui_friends.steamclient.proto
@ -81,4 +87,10 @@ pb_compile:
pb_clear:
rm -f ./protobufs/*.proto ./steam/protobufs/*_pb2.py
pb_update: pb_fetch pb_compile
pb_services:
grep -B 99999 MARK_SERVICE_START steam/core/msg/unified.py > steam/core/msg/unified.py.tmp
grep '^service' protobufs/*.proto | tr '/.:' ' ' | awk '{ printf(" %-35s '\''steam.protobufs.%s_pb2'\'',\n", "'\''" $$5 "'\'':", $$2) }' >> steam/core/msg/unified.py.tmp
grep -A 99999 MARK_SERVICE_END steam/core/msg/unified.py >> steam/core/msg/unified.py.tmp
mv steam/core/msg/unified.py.tmp steam/core/msg/unified.py
pb_update: pb_fetch pb_compile pb_services

20
README.rst

@ -36,7 +36,7 @@ Install latest release version from PYPI:
.. code:: bash
# with SteamClient dependecies
pip install -U steam[client]
pip install -U 'steam[client]'
# without (only when using parts that do no rely on gevent, and protobufs)
pip install -U steam
@ -46,12 +46,12 @@ Installing directly from ``github`` repository:
.. code:: bash
# cutting edge from master
pip install git+https://github.com/ValvePython/steam#egg=steam
pip install 'git+https://github.com/ValvePython/steam#egg=steam'
# specific version tag (e.g. v1.0.0)
pip install git+https://github.com/ValvePython/[email protected]#egg=steam[client]
pip install 'git+https://github.com/ValvePython/[email protected]#egg=steam[client]'
# without SteamClient extras
pip install git+https://github.com/ValvePython/[email protected]#egg=steam
pip install 'git+https://github.com/ValvePython/[email protected]#egg=steam'
Vagrant
-------
@ -93,18 +93,18 @@ To run for specific version, setup a virtual environment
Contact
-------
IRC: irc.freenode.net / #steamkit (`join via webchat <https://webchat.freenode.net/#steamkit>`_)
IRC: irc.libera.chat / #steamre (`join via webchat <https://web.libera.chat/#steamre>`_)
.. _Steam: https://store.steampowered.com/
.. |pypi| image:: https://img.shields.io/github/tag/valvepython/steam.svg?label=release&color=green&logo=steam
.. |pypi| image:: https://img.shields.io/pypi/v/steam.svg?label=pypi&color=green
:target: https://pypi.python.org/pypi/steam
:alt: Latest version released on PyPi
.. |latest| image:: https://img.shields.io/github/tag-pre/valvepython/steam.svg?label=latest&logo=steam
.. |latest| image:: https://img.shields.io/github/v/tag/ValvePython/steam?include_prereleases&sort=semver&label=release
:target: https://github.com/ValvePython/steam/releases
:alt: GitHub Releases
:alt: Latest release on Github
.. |pypipy| image:: https://img.shields.io/pypi/pyversions/steam.svg?label=%20&logo=python&logoColor=white
:alt: PyPI - Python Version
@ -113,8 +113,8 @@ IRC: irc.freenode.net / #steamkit (`join via webchat <https://webchat.freenode.n
:target: https://pypi.python.org/pypi/steam
:alt: MIT License
.. |coverage| image:: https://scrutinizer-ci.com/g/ValvePython/steam/badges/coverage.png?b=master
:target: https://scrutinizer-ci.com/g/ValvePython/steam/?branch=master
.. |coverage| image:: https://img.shields.io/coveralls/ValvePython/steam/master.svg?style=flat
:target: https://coveralls.io/r/ValvePython/steam?branch=master
:alt: Test coverage
.. |sonar_maintainability| image:: https://sonarcloud.io/api/project_badges/measure?project=ValvePython_steam&metric=sqale_rating

5
Vagrantfile

@ -6,7 +6,7 @@ Vagrant.configure("2") do |config|
vb.memory = 1024
end
config.vm.define :ubuntu do |box|
box.vm.box = "bento/ubuntu-18.04"
box.vm.box = "bento/ubuntu-20.04"
box.vm.host_name = 'ubuntu.local'
box.vm.network "private_network", ip: "192.168.50.10"
@ -17,8 +17,9 @@ Vagrant.configure("2") do |config|
box.vm.provision "shell", inline: <<-SHELL
set -x
export DEBIAN_FRONTEND='noninteractive'
sed -i 's#us.archive#archive#' /etc/apt/sources.list
apt-get -y update
apt-get -y install python-pip python-virtualenv
apt-get -y install python2 python3-pip python3-virtualenv
SHELL
box.vm.provision "shell", privileged: false, inline: <<-SHELL

13
dev_requirements.txt

@ -0,0 +1,13 @@
-r requirements.txt
vcrpy==2.0.1
PyYAML>=5.4
mock==1.3.0
coverage>=5.0; python_version == '2.7' or python_version >= '3.5'
pytest-cov>=2.7.0; python_version == '2.7' or python_version >= '3.5'
# coveralls 2.0 has removed support for Python 2.7 and 3.4
git+https://github.com/andy-maier/coveralls-python.git@andy/add-py27#egg=coveralls; python_version == '2.7'
coveralls>=2.1.2; python_version >= '3.5'

7
docs/api/steam.monkey.rst

@ -0,0 +1,7 @@
monkey
======
.. automodule:: steam.monkey
:members:
:show-inheritance:

1
docs/api/steam.rst

@ -11,6 +11,7 @@ API Reference
steam.game_servers
steam.globalid
steam.guard
steam.monkey
steam.steamid
steam.webapi
steam.webauth

5
docs/api/steam.versions_report.rst

@ -0,0 +1,5 @@
versions_report
===============
.. automodule:: steam.versions_report
:members:

36
docs/user_guide.rst

@ -153,6 +153,10 @@ SteamClient
``gevent`` based implementation for interacting with the Steam network.
The library comes with some Steam client features implemented, see :doc:`api/steam.client` for more details.
.. warning::
:class:`.SteamClient` no longer applies gevent monkey patches by default.
See :mod:`steam.monkey` for details how make stdlib gevent cooperative.
CLI example
-----------
@ -218,6 +222,38 @@ Alternatively, a callback can be registered to handle the response event every t
client.on(EMsg.ClientAddFriendResponse, handle_add_response)
Logging
-------
It is often useful to see the message that are coming in and going on.
Here is how to enable debug logging to the console.
.. code:: python
import logging
logging.basicConfig(format='[%(asctime)s] %(levelname)s %(name)s: %(message)s', level=logging.DEBUG)
For more complicated :mod:`logging` configurations, consult the python documentation.
By default the :class:`.SteamClient` will not log the contents of messages.
To enable that simply set :attr:`.SteamClient.verbose_debug` to ``True`` on your :class:`.SteamClient` instance.
.. code:: python
client = SteamClient()
client.verbose_debug = True
When there are multiple instances, they will all log under the same logger name.
We can override the default logger instances with new one and give it a different name.
.. code:: python
client1 = SteamClient()
client2 = SteamClient()
client1._LOG = logging.getLogger("SC#1")
client2._LOG = logging.getLogger("SC#2")
Web Authentication
==================

20
protobuf_list.txt

@ -1,13 +1,24 @@
https://raw.githubusercontent.com/SteamDatabase/SteamTracking/master/Protobufs/content_manifest.proto
https://raw.githubusercontent.com/SteamDatabase/SteamTracking/master/Protobufs/encrypted_app_ticket.proto
https://raw.githubusercontent.com/SteamDatabase/SteamTracking/master/Protobufs/steammessages_base.proto
https://raw.githubusercontent.com/SteamDatabase/SteamTracking/master/Protobufs/steammessages_client_objects.proto
https://raw.githubusercontent.com/SteamDatabase/SteamTracking/master/Protobufs/steammessages_clientserver.proto
https://raw.githubusercontent.com/SteamDatabase/SteamTracking/master/Protobufs/steammessages_clientserver_2.proto
https://raw.githubusercontent.com/SteamDatabase/SteamTracking/master/Protobufs/steammessages_clientserver_friends.proto
https://raw.githubusercontent.com/SteamDatabase/SteamTracking/master/Protobufs/steammessages_clientserver_login.proto
https://raw.githubusercontent.com/SteamDatabase/SteamTracking/master/Protobufs/steammessages_clientserver_appinfo.proto
https://raw.githubusercontent.com/SteamDatabase/SteamTracking/master/Protobufs/steammessages_clientserver_gameservers.proto
https://raw.githubusercontent.com/SteamDatabase/SteamTracking/master/Protobufs/steammessages_clientserver_lbs.proto
https://raw.githubusercontent.com/SteamDatabase/SteamTracking/master/Protobufs/steammessages_clientserver_mms.proto
https://raw.githubusercontent.com/SteamDatabase/SteamTracking/master/Protobufs/steammessages_clientserver_ucm.proto
https://raw.githubusercontent.com/SteamDatabase/SteamTracking/master/Protobufs/steammessages_clientserver_uds.proto
https://raw.githubusercontent.com/SteamDatabase/SteamTracking/master/Protobufs/steammessages_clientserver_ufs.proto
https://raw.githubusercontent.com/SteamDatabase/SteamTracking/master/Protobufs/steammessages_clientserver_userstats.proto
https://raw.githubusercontent.com/SteamDatabase/SteamTracking/master/Protobufs/steammessages_remoteplay.proto
https://raw.githubusercontent.com/SteamDatabase/SteamTracking/master/Protobufs/steammessages_broadcast.steamclient.proto
https://raw.githubusercontent.com/SteamDatabase/SteamTracking/master/Protobufs/steammessages_chat.steamclient.proto
https://raw.githubusercontent.com/SteamDatabase/SteamTracking/master/Protobufs/steammessages_cloud.steamclient.proto
https://raw.githubusercontent.com/SteamDatabase/SteamTracking/master/Protobufs/steammessages_contentsystem.steamclient.proto
https://raw.githubusercontent.com/SteamDatabase/SteamTracking/master/Protobufs/steammessages_credentials.steamclient.proto
https://raw.githubusercontent.com/SteamDatabase/SteamTracking/master/Protobufs/steammessages_datapublisher.steamclient.proto
https://raw.githubusercontent.com/SteamDatabase/SteamTracking/master/Protobufs/steammessages_depotbuilder.steamclient.proto
@ -18,18 +29,25 @@ https://raw.githubusercontent.com/SteamDatabase/SteamTracking/master/Protobufs/s
https://raw.githubusercontent.com/SteamDatabase/SteamTracking/master/Protobufs/steammessages_gameservers.steamclient.proto
https://raw.githubusercontent.com/SteamDatabase/SteamTracking/master/Protobufs/steammessages_inventory.steamclient.proto
https://raw.githubusercontent.com/SteamDatabase/SteamTracking/master/Protobufs/steammessages_linkfilter.steamclient.proto
https://raw.githubusercontent.com/SteamDatabase/SteamTracking/master/Protobufs/steammessages_lobbymatchmaking.steamclient.proto
https://raw.githubusercontent.com/SteamDatabase/SteamTracking/master/Protobufs/steammessages_market.steamclient.proto
https://raw.githubusercontent.com/SteamDatabase/SteamTracking/master/Protobufs/steammessages_offline.steamclient.proto
https://raw.githubusercontent.com/SteamDatabase/SteamTracking/master/Protobufs/steammessages_parental.steamclient.proto
https://raw.githubusercontent.com/SteamDatabase/SteamTracking/master/Protobufs/steammessages_parties.steamclient.proto
https://raw.githubusercontent.com/SteamDatabase/SteamTracking/master/Protobufs/steammessages_partnerapps.steamclient.proto
https://raw.githubusercontent.com/SteamDatabase/SteamTracking/master/Protobufs/steammessages_player.steamclient.proto
https://raw.githubusercontent.com/SteamDatabase/SteamTracking/master/Protobufs/steammessages_publishedfile.steamclient.proto
https://raw.githubusercontent.com/SteamDatabase/SteamTracking/master/Protobufs/steammessages_qms.steamclient.proto
https://raw.githubusercontent.com/SteamDatabase/SteamTracking/master/Protobufs/steammessages_secrets.steamclient.proto
https://raw.githubusercontent.com/SteamDatabase/SteamTracking/master/Protobufs/steammessages_shader.steamclient.proto
https://raw.githubusercontent.com/SteamDatabase/SteamTracking/master/Protobufs/steammessages_site_license.steamclient.proto
https://raw.githubusercontent.com/SteamDatabase/SteamTracking/master/Protobufs/steammessages_store.steamclient.proto
https://raw.githubusercontent.com/SteamDatabase/SteamTracking/master/Protobufs/steammessages_timedtrial.steamclient.proto
https://raw.githubusercontent.com/SteamDatabase/SteamTracking/master/Protobufs/steammessages_twofactor.steamclient.proto
https://raw.githubusercontent.com/SteamDatabase/SteamTracking/master/Protobufs/steammessages_unified_base.steamclient.proto
https://raw.githubusercontent.com/SteamDatabase/SteamTracking/master/Protobufs/steammessages_unified_test.steamclient.proto
https://raw.githubusercontent.com/SteamDatabase/SteamTracking/master/Protobufs/steammessages_useraccount.steamclient.proto
https://raw.githubusercontent.com/SteamDatabase/SteamTracking/master/Protobufs/steammessages_video.steamclient.proto
https://raw.githubusercontent.com/SteamDatabase/Protobufs/master/webui/friends.proto
https://raw.githubusercontent.com/SteamDatabase/SteamTracking/master/Protobufs/enums.proto
https://raw.githubusercontent.com/SteamDatabase/SteamTracking/master/Protobufs/enums_clientserver.proto
https://raw.githubusercontent.com/SteamDatabase/Protobufs/master/webui/friends_mobile.proto

147
protobufs/enums.proto

@ -0,0 +1,147 @@
syntax = "proto2";
import "steammessages_base.proto";
option optimize_for = SPEED;
option py_generic_services = true;
option (force_php_generation) = true;
enum EPublishedFileQueryType {
k_PublishedFileQueryType_RankedByVote = 0;
k_PublishedFileQueryType_RankedByPublicationDate = 1;
k_PublishedFileQueryType_AcceptedForGameRankedByAcceptanceDate = 2;
k_PublishedFileQueryType_RankedByTrend = 3;
k_PublishedFileQueryType_FavoritedByFriendsRankedByPublicationDate = 4;
k_PublishedFileQueryType_CreatedByFriendsRankedByPublicationDate = 5;
k_PublishedFileQueryType_RankedByNumTimesReported = 6;
k_PublishedFileQueryType_CreatedByFollowedUsersRankedByPublicationDate = 7;
k_PublishedFileQueryType_NotYetRated = 8;
k_PublishedFileQueryType_RankedByTotalUniqueSubscriptions = 9;
k_PublishedFileQueryType_RankedByTotalVotesAsc = 10;
k_PublishedFileQueryType_RankedByVotesUp = 11;
k_PublishedFileQueryType_RankedByTextSearch = 12;
k_PublishedFileQueryType_RankedByPlaytimeTrend = 13;
k_PublishedFileQueryType_RankedByTotalPlaytime = 14;
k_PublishedFileQueryType_RankedByAveragePlaytimeTrend = 15;
k_PublishedFileQueryType_RankedByLifetimeAveragePlaytime = 16;
k_PublishedFileQueryType_RankedByPlaytimeSessionsTrend = 17;
k_PublishedFileQueryType_RankedByLifetimePlaytimeSessions = 18;
k_PublishedFileQueryType_RankedByInappropriateContentRating = 19;
k_PublishedFileQueryType_RankedByBanContentCheck = 20;
k_PublishedFileQueryType_RankedByLastUpdatedDate = 21;
}
enum EPublishedFileInappropriateProvider {
k_EPublishedFileInappropriateProvider_Invalid = 0;
k_EPublishedFileInappropriateProvider_Google = 1;
k_EPublishedFileInappropriateProvider_Amazon = 2;
}
enum EPublishedFileInappropriateResult {
k_EPublishedFileInappropriateResult_NotScanned = 0;
k_EPublishedFileInappropriateResult_VeryUnlikely = 1;
k_EPublishedFileInappropriateResult_Unlikely = 30;
k_EPublishedFileInappropriateResult_Possible = 50;
k_EPublishedFileInappropriateResult_Likely = 75;
k_EPublishedFileInappropriateResult_VeryLikely = 100;
}
enum EPersonaStateFlag {
k_EPersonaStateFlag_HasRichPresence = 1;
k_EPersonaStateFlag_InJoinableGame = 2;
k_EPersonaStateFlag_Golden = 4;
k_EPersonaStateFlag_RemotePlayTogether = 8;
k_EPersonaStateFlag_ClientTypeWeb = 256;
k_EPersonaStateFlag_ClientTypeMobile = 512;
k_EPersonaStateFlag_ClientTypeTenfoot = 1024;
k_EPersonaStateFlag_ClientTypeVR = 2048;
k_EPersonaStateFlag_LaunchTypeGamepad = 4096;
k_EPersonaStateFlag_LaunchTypeCompatTool = 8192;
}
enum EContentCheckProvider {
k_EContentCheckProvider_Invalid = 0;
k_EContentCheckProvider_Google = 1;
k_EContentCheckProvider_Amazon = 2;
k_EContentCheckProvider_Local = 3;
}
enum EBanContentCheckResult {
k_EBanContentCheckResult_NotScanned = 0;
k_EBanContentCheckResult_Reset = 1;
k_EBanContentCheckResult_NeedsChecking = 2;
k_EBanContentCheckResult_VeryUnlikely = 5;
k_EBanContentCheckResult_Unlikely = 30;
k_EBanContentCheckResult_Possible = 50;
k_EBanContentCheckResult_Likely = 75;
k_EBanContentCheckResult_VeryLikely = 100;
}
enum EProfileCustomizationType {
k_EProfileCustomizationTypeInvalid = 0;
k_EProfileCustomizationTypeRareAchievementShowcase = 1;
k_EProfileCustomizationTypeGameCollector = 2;
k_EProfileCustomizationTypeItemShowcase = 3;
k_EProfileCustomizationTypeTradeShowcase = 4;
k_EProfileCustomizationTypeBadges = 5;
k_EProfileCustomizationTypeFavoriteGame = 6;
k_EProfileCustomizationTypeScreenshotShowcase = 7;
k_EProfileCustomizationTypeCustomText = 8;
k_EProfileCustomizationTypeFavoriteGroup = 9;
k_EProfileCustomizationTypeRecommendation = 10;
k_EProfileCustomizationTypeWorkshopItem = 11;
k_EProfileCustomizationTypeMyWorkshop = 12;
k_EProfileCustomizationTypeArtworkShowcase = 13;
k_EProfileCustomizationTypeVideoShowcase = 14;
k_EProfileCustomizationTypeGuides = 15;
k_EProfileCustomizationTypeMyGuides = 16;
k_EProfileCustomizationTypeAchievements = 17;
k_EProfileCustomizationTypeGreenlight = 18;
k_EProfileCustomizationTypeMyGreenlight = 19;
k_EProfileCustomizationTypeSalien = 20;
k_EProfileCustomizationTypeLoyaltyRewardReactions = 21;
k_EProfileCustomizationTypeSingleArtworkShowcase = 22;
k_EProfileCustomizationTypeAchievementsCompletionist = 23;
}
enum EPublishedFileStorageSystem {
k_EPublishedFileStorageSystemInvalid = 0;
k_EPublishedFileStorageSystemLegacyCloud = 1;
k_EPublishedFileStorageSystemDepot = 2;
k_EPublishedFileStorageSystemUGCCloud = 3;
}
enum ECloudStoragePersistState {
k_ECloudStoragePersistStatePersisted = 0;
k_ECloudStoragePersistStateForgotten = 1;
k_ECloudStoragePersistStateDeleted = 2;
}
enum EBluetoothDeviceType {
k_BluetoothDeviceType_Invalid = 0;
k_BluetoothDeviceType_Unknown = 1;
k_BluetoothDeviceType_Phone = 2;
k_BluetoothDeviceType_Computer = 3;
k_BluetoothDeviceType_Headset = 4;
k_BluetoothDeviceType_Headphones = 5;
k_BluetoothDeviceType_Speakers = 6;
k_BluetoothDeviceType_OtherAudio = 7;
k_BluetoothDeviceType_Mouse = 8;
k_BluetoothDeviceType_Joystick = 9;
k_BluetoothDeviceType_Gamepad = 10;
k_BluetoothDeviceType_Keyboard = 11;
}
enum EStorageBlockContentType {
k_EStorageBlockContentType_Invalid = 0;
k_EStorageBlockContentType_Unknown = 1;
k_EStorageBlockContentType_FileSystem = 2;
k_EStorageBlockContentType_Crypto = 3;
k_EStorageBlockContentType_Raid = 4;
}
enum EStorageBlockFileSystemType {
k_EStorageBlockFileSystemType_Invalid = 0;
k_EStorageBlockFileSystemType_Unknown = 1;
k_EStorageBlockFileSystemType_VFat = 2;
k_EStorageBlockFileSystemType_Ext4 = 3;
}

1534
protobufs/enums_clientserver.proto

File diff suppressed because it is too large

17
protobufs/steammessages_base.proto

@ -139,6 +139,7 @@ message CCDDBAppDetailCommon {
optional string friendly_name = 10;
optional string propagation = 11;
optional bool has_adult_content = 12;
optional bool is_visible_in_steam_china = 13;
}
message CMsgAppRights {
@ -158,6 +159,7 @@ message CMsgAppRights {
optional bool manage_pricing = 14;
optional bool broadcast_live = 15;
optional bool view_marketing_traffic = 16;
optional bool edit_store_display_content = 17;
}
message CCuratorPreferences {
@ -247,6 +249,10 @@ message CClanEventData {
optional uint32 rtime32_last_modified = 24;
optional fixed64 news_post_gid = 25;
optional uint32 rtime_mod_reviewed = 26;
optional uint32 featured_app_tagid = 27;
repeated uint32 referenced_appids = 28;
optional uint32 build_id = 29;
optional string build_branch = 30;
}
message CBilling_Address {
@ -261,3 +267,14 @@ message CBilling_Address {
optional int32 zip_plus4 = 9;
optional string phone = 10;
}
message CPackageReservationStatus {
optional uint32 packageid = 1;
optional int32 reservation_state = 2;
optional int32 queue_position = 3;
optional int32 total_queue_size = 4;
optional string reservation_country_code = 5;
optional bool expired = 6;
optional uint32 time_expires = 7;
optional uint32 time_reserved = 8;
}

3
protobufs/steammessages_broadcast.proto

@ -35,6 +35,7 @@ message CBroadcast_BeginBroadcastSession_Request {
optional bool thumbnail_upload = 7;
optional string client_beta = 8;
optional uint32 sysid = 9;
optional bool allow_webrtc = 10;
}
message CBroadcast_BeginBroadcastSession_Response {
@ -80,7 +81,6 @@ message CBroadcast_WatchBroadcast_Request {
optional fixed64 steamid = 1 [(description) = "broadcaster steamID."];
optional fixed64 existing_broadcast_id = 2 [(description) = "broadcast session ID (optional, rejoin if specified)."];
optional fixed64 viewer_token = 3 [(description) = "viewer token received from last WatchRequest call, from browser storage."];
optional uint32 client_ip = 4;
optional uint32 client_cell = 5;
optional .EBroadcastWatchLocation watch_location = 6 [default = k_EBroadcastWatchLocation_Invalid];
optional bool is_webrtc = 7;
@ -121,6 +121,7 @@ message CBroadcast_WatchBroadcast_Response {
optional string webrtc_turn_server = 17;
optional bool is_replay = 18;
optional int32 duration = 19;
optional string cdn_auth_url_parameters = 20;
}
message CBroadcast_HeartbeatBroadcast_Notification {

67
protobufs/steammessages_chat.proto

@ -43,6 +43,12 @@ enum EChatRoomServerMessage {
k_EChatRoomServerMsg_AppCustom = 11;
}
enum EChatRoomMessageReactionType {
k_EChatRoomMessageReactionType_Invalid = 0;
k_EChatRoomMessageReactionType_Emoticon = 1;
k_EChatRoomMessageReactionType_Sticker = 2;
}
enum EChatRoomMemberStateChange {
k_EChatRoomMemberStateChange_Invalid = 0;
k_EChatRoomMemberStateChange_Joined = 1;
@ -115,6 +121,7 @@ message CChatRoomGroupHeaderState {
optional uint64 watching_broadcast_channel_id = 23;
optional uint64 active_minigame_id = 24;
optional string avatar_ugc_url = 25;
optional bool disabled = 26;
}
message CChatRoomMember {
@ -469,12 +476,20 @@ message ServerMessage {
message CChatRoom_GetMessageHistory_Response {
message ChatMessage {
message MessageReaction {
optional .EChatRoomMessageReactionType reaction_type = 1 [default = k_EChatRoomMessageReactionType_Invalid];
optional string reaction = 2;
optional uint32 num_reactors = 3;
optional bool has_user_reacted = 4;
}
optional uint32 sender = 1;
optional uint32 server_timestamp = 2;
optional string message = 3;
optional uint32 ordinal = 4;
optional .ServerMessage server_message = 5;
optional bool deleted = 6;
repeated .CChatRoom_GetMessageHistory_Response.ChatMessage.MessageReaction reactions = 7;
}
repeated .CChatRoom_GetMessageHistory_Response.ChatMessage messages = 1;
@ -506,6 +521,7 @@ message CChatRoom_GetChatRoomGroupSummary_Response {
optional uint64 watching_broadcast_channel_id = 19;
optional uint64 active_minigame_id = 20;
optional string avatar_ugc_url = 21;
optional bool disabled = 22;
}
message CChatRoomSummaryPair {
@ -715,6 +731,34 @@ message CChatRoom_SearchMembers_Response {
optional uint32 status_flags = 2;
}
message CChatRoom_UpdateMessageReaction_Request {
optional uint64 chat_group_id = 1;
optional uint64 chat_id = 2;
optional uint32 server_timestamp = 3;
optional uint32 ordinal = 4;
optional .EChatRoomMessageReactionType reaction_type = 5 [default = k_EChatRoomMessageReactionType_Invalid];
optional string reaction = 6;
optional bool is_add = 7;
}
message CChatRoom_UpdateMessageReaction_Response {
optional uint32 num_reactors = 1;
}
message CChatRoom_GetMessageReactionReactors_Request {
optional uint64 chat_group_id = 1;
optional uint64 chat_id = 2;
optional uint32 server_timestamp = 3;
optional uint32 ordinal = 4;
optional .EChatRoomMessageReactionType reaction_type = 5 [default = k_EChatRoomMessageReactionType_Invalid];
optional string reaction = 6;
optional uint32 limit = 7;
}
message CChatRoom_GetMessageReactionReactors_Response {
repeated uint32 reactors = 1;
}
message CClanChatRooms_GetClanChatRoomInfo_Request {
optional fixed64 steamid = 1;
optional bool autocreate = 2 [default = true, (description) = "Create a default chat room if none has been created before."];
@ -826,6 +870,17 @@ message CChatRoomClient_MemberListViewUpdated_Notification {
repeated .CMsgClientPersonaState.Friend subscribed_personas = 7;
}
message CChatRoom_MessageReaction_Notification {
optional uint64 chat_group_id = 1;
optional uint64 chat_id = 2;
optional uint32 server_timestamp = 3;
optional uint32 ordinal = 4;
optional fixed64 reactor = 5;
optional .EChatRoomMessageReactionType reaction_type = 6 [default = k_EChatRoomMessageReactionType_Invalid];
optional string reaction = 7;
optional bool is_add = 8;
}
message CChatUsability_ClientUsabilityMetrics_Notification {
message Settings {
optional bool notifications_show_ingame = 1;
@ -1137,6 +1192,14 @@ service ChatRoom {
rpc SearchMembers (.CChatRoom_SearchMembers_Request) returns (.CChatRoom_SearchMembers_Response) {
option (method_description) = "Search chat room members by name.";
}
rpc UpdateMessageReaction (.CChatRoom_UpdateMessageReaction_Request) returns (.CChatRoom_UpdateMessageReaction_Response) {
option (method_description) = "Adds/removes a reaction to/from a chat room message";
}
rpc GetMessageReactionReactors (.CChatRoom_GetMessageReactionReactors_Request) returns (.CChatRoom_GetMessageReactionReactors_Response) {
option (method_description) = "Fetches a list of reactors for a specified reaction";
}
}
service ClanChatRooms {
@ -1194,6 +1257,10 @@ service ChatRoomClient {
rpc NotifyMemberListViewUpdated (.CChatRoomClient_MemberListViewUpdated_Notification) returns (.NoResponse) {
option (method_description) = "The list of members for a chat room with virtualized member list has changed on the server (or client requested)";
}
rpc NotifyMessageReaction (.CChatRoom_MessageReaction_Notification) returns (.NoResponse) {
option (method_description) = "New message reaction";
}
}
service ChatUsability {

196
protobufs/steammessages_client_objects.proto

@ -0,0 +1,196 @@
syntax = "proto2";
import "enums.proto";
option optimize_for = SPEED;
option py_generic_services = false;
enum ECloudPendingRemoteOperation {
k_ECloudPendingRemoteOperationNone = 0;
k_ECloudPendingRemoteOperationAppSessionActive = 1;
k_ECloudPendingRemoteOperationUploadInProgress = 2;
k_ECloudPendingRemoteOperationUploadPending = 3;
k_ECloudPendingRemoteOperationAppSessionSuspended = 4;
}
message SteamMessagesClientIClientForcedEnumDependencies {
optional .EBluetoothDeviceType a = 1 [default = k_BluetoothDeviceType_Invalid];
optional .EStorageBlockContentType b = 2 [default = k_EStorageBlockContentType_Invalid];
optional .EStorageBlockFileSystemType c = 3 [default = k_EStorageBlockFileSystemType_Invalid];
}
message CMsgNetworkDeviceIP4Address {
optional int32 ip = 1 [default = 0];
optional int32 netmask = 2;
}
message CMsgNetworkDeviceIP4Config {
repeated .CMsgNetworkDeviceIP4Address addresses = 1;
repeated int32 dns_ip = 2;
optional int32 gateway_ip = 3;
optional bool is_dhcp_enabled = 4;
optional bool is_default_route = 5;
optional bool is_enabled = 6 [default = false];
}
message CMsgNetworkDeviceIP6Address {
optional string ip = 1;
}
message CMsgNetworkDeviceIP6Config {
repeated .CMsgNetworkDeviceIP6Address addresses = 1;
repeated string dns_ip = 2;
optional string gateway_ip = 3;
optional bool is_dhcp_enabled = 4;
optional bool is_default_route = 5;
optional bool is_enabled = 6 [default = false];
}
message CMsgNetworkDevicesData {
message Device {
message Wired {
optional bool is_cable_present = 1 [default = false];
optional uint32 speed_mbit = 2;
optional string friendly_name = 3;
}
message Wireless {
message AP {
optional uint32 id = 1 [default = 0];
optional int32 estrength = 2;
optional string ssid = 3;
optional bool is_active = 4;
optional bool is_autoconnect = 5;
optional int32 esecurity = 6;
optional string user_name = 7;
optional string password = 8;
optional int32 strength_raw = 9;
}
repeated .CMsgNetworkDevicesData.Device.Wireless.AP aps = 1;
optional int32 esecurity_supported = 2;
}
optional uint32 id = 1 [default = 0];
optional int32 etype = 2;
optional int32 estate = 3;
optional string mac = 4;
optional string vendor = 5;
optional string product = 6;
optional .CMsgNetworkDeviceIP4Config ip4 = 7;
optional .CMsgNetworkDeviceIP6Config ip6 = 8;
optional .CMsgNetworkDevicesData.Device.Wired wired = 9;
optional .CMsgNetworkDevicesData.Device.Wireless wireless = 10;
}
repeated .CMsgNetworkDevicesData.Device devices = 1;
optional bool is_wifi_enabled = 2;
optional bool is_wifi_scanning_enabled = 3;
}
message CMsgNetworkDeviceConnect {
message KnownAP {
optional uint32 ap_id = 1;
}
message CustomAP {
optional string ssid = 1;
optional int32 esecurity = 2;
}
message Credentials {
optional string username = 1;
optional string password = 2;
}
optional uint32 device_id = 1 [default = 0];
optional .CMsgNetworkDeviceConnect.Credentials credentials = 4;
optional .CMsgNetworkDeviceIP4Config ip4 = 5;
optional .CMsgNetworkDeviceIP6Config ip6 = 6;
oneof ap_info {
.CMsgNetworkDeviceConnect.KnownAP ap_known = 2;
.CMsgNetworkDeviceConnect.CustomAP ap_custom = 3;
}
}
message CMsgStorageDevicesData {
message Drive {
optional uint32 id = 1 [default = 0];
optional string model = 2;
optional string vendor = 3;
optional string serial = 4;
optional bool is_ejectable = 5;
optional uint64 size_bytes = 6;
}
message BlockDevice {
optional uint32 id = 1 [default = 0];
optional uint32 drive_id = 2 [default = 0];
optional string path = 3;
optional string friendly_path = 4;
optional string label = 5;
optional uint64 size_bytes = 6;
optional bool is_formattable = 7;
optional bool is_read_only = 8;
optional bool is_root_device = 9;
optional .EStorageBlockContentType content_type = 10 [default = k_EStorageBlockContentType_Invalid];
optional .EStorageBlockFileSystemType filesystem_type = 11 [default = k_EStorageBlockFileSystemType_Invalid];
optional string mount_path = 12;
}
repeated .CMsgStorageDevicesData.Drive drives = 1;
repeated .CMsgStorageDevicesData.BlockDevice block_devices = 2;
}
message CCloud_PendingRemoteOperation {
optional .ECloudPendingRemoteOperation operation = 1 [default = k_ECloudPendingRemoteOperationNone];
optional string machine_name = 2;
optional uint64 client_id = 3;
optional uint32 time_last_updated = 4;
}
message CMsgCloudPendingRemoteOperations {
repeated .CCloud_PendingRemoteOperation operations = 1;
}
message CMsgBluetoothDevicesData {
message Adapter {
optional uint32 id = 1 [default = 0];
optional string mac = 2;
optional string name = 3;
optional bool is_enabled = 4;
optional bool is_discovering = 5;
}
message Device {
optional uint32 id = 1 [default = 0];
optional uint32 adapter_id = 2 [default = 0];
optional .EBluetoothDeviceType etype = 3 [default = k_BluetoothDeviceType_Invalid];
optional string mac = 4;
optional string name = 5;
optional bool is_connected = 6;
optional bool is_paired = 7;
optional int32 strength_raw = 8;
}
repeated .CMsgBluetoothDevicesData.Adapter adapters = 1;
repeated .CMsgBluetoothDevicesData.Device devices = 2;
}
message CMsgBluetoothSettings {
optional bool is_enabled = 1;
}
message CMsgSystemPerfDiagnosticEntry {
optional string name = 1;
optional string value = 2;
}
message CMsgSystemPerfDiagnosticInfo {
repeated .CMsgSystemPerfDiagnosticEntry entries = 1;
}
message CMsgSystemPerfSettings {
optional float diagnostic_update_rate = 1;
optional bool is_shark_mode = 2;
}

855
protobufs/steammessages_clientserver.proto

@ -5,31 +5,6 @@ import "encrypted_app_ticket.proto";
option optimize_for = SPEED;
option py_generic_services = false;
enum EMMSLobbyStatus {
k_EMMSLobbyStatusInvalid = 0;
k_EMMSLobbyStatusExists = 1;
k_EMMSLobbyStatusDoesNotExist = 2;
k_EMMSLobbyStatusNotAMember = 3;
}
message CMsgClientUDSP2PSessionStarted {
optional fixed64 steamid_remote = 1;
optional int32 appid = 2;
}
message CMsgClientUDSP2PSessionEnded {
optional fixed64 steamid_remote = 1;
optional int32 appid = 2;
optional int32 session_length_sec = 3;
optional int32 session_error = 4;
optional int32 nattype = 5;
optional int32 bytes_recv = 6;
optional int32 bytes_sent = 7;
optional int32 bytes_sent_relay = 8;
optional int32 bytes_recv_relay = 9;
optional int32 time_to_connect_ms = 10;
}
message CMsgClientRegisterAuthTicketWithCM {
optional uint32 protocol_version = 1;
optional bytes ticket = 3;
@ -59,7 +34,7 @@ message CMsgClientP2PConnectionInfo {
optional fixed64 steam_id_src = 2;
optional uint32 app_id = 3;
optional bytes candidate = 4;
optional fixed64 connection_id_src = 5;
optional fixed64 legacy_connection_id_src = 5;
optional bytes rendezvous = 6;
}
@ -111,42 +86,6 @@ message CMsgClientGameConnectTokens {
repeated bytes tokens = 2;
}
message CMsgGSServerType {
optional uint32 app_id_served = 1;
optional uint32 flags = 2;
optional uint32 deprecated_game_ip_address = 3;
optional uint32 game_port = 4;
optional string game_dir = 5;
optional string game_version = 6;
optional uint32 game_query_port = 7;
}
message CMsgGSStatusReply {
optional bool is_secure = 1;
}
message CMsgGSPlayerList {
message Player {
optional uint64 steam_id = 1;
optional uint32 deprecated_public_ip = 2;
optional bytes token = 3;
optional .CMsgIPAddress public_ip = 4;
}
repeated .CMsgGSPlayerList.Player players = 1;
}
message CMsgGSUserPlaying {
optional fixed64 steam_id = 1;
optional uint32 deprecated_public_ip = 2;
optional bytes token = 3;
optional .CMsgIPAddress public_ip = 4;
}
message CMsgGSDisconnectNotice {
optional fixed64 steam_id = 1;
}
message CMsgClientGamesPlayed {
message GamePlayed {
optional uint64 steam_id_gs = 1;
@ -237,82 +176,6 @@ message CMsgClientLicenseList {
repeated .CMsgClientLicenseList.License licenses = 2;
}
message CMsgClientLBSSetScore {
optional uint32 app_id = 1;
optional int32 leaderboard_id = 2;
optional int32 score = 3;
optional bytes details = 4;
optional int32 upload_score_method = 5;
}
message CMsgClientLBSSetScoreResponse {
optional int32 eresult = 1 [default = 2];
optional int32 leaderboard_entry_count = 2;
optional bool score_changed = 3;
optional int32 global_rank_previous = 4;
optional int32 global_rank_new = 5;
}
message CMsgClientLBSSetUGC {
optional uint32 app_id = 1;
optional int32 leaderboard_id = 2;
optional fixed64 ugc_id = 3;
}
message CMsgClientLBSSetUGCResponse {
optional int32 eresult = 1 [default = 2];
}
message CMsgClientLBSFindOrCreateLB {
optional uint32 app_id = 1;
optional int32 leaderboard_sort_method = 2;
optional int32 leaderboard_display_type = 3;
optional bool create_if_not_found = 4;
optional string leaderboard_name = 5;
}
message CMsgClientLBSFindOrCreateLBResponse {
optional int32 eresult = 1 [default = 2];
optional int32 leaderboard_id = 2;
optional int32 leaderboard_entry_count = 3;
optional int32 leaderboard_sort_method = 4 [default = 0];
optional int32 leaderboard_display_type = 5 [default = 0];
optional string leaderboard_name = 6;
}
message CMsgClientLBSGetLBEntries {
optional int32 app_id = 1;
optional int32 leaderboard_id = 2;
optional int32 range_start = 3;
optional int32 range_end = 4;
optional int32 leaderboard_data_request = 5;
repeated fixed64 steamids = 6;
}
message CMsgClientLBSGetLBEntriesResponse {
message Entry {
optional fixed64 steam_id_user = 1;
optional int32 global_rank = 2;
optional int32 score = 3;
optional bytes details = 4;
optional fixed64 ugc_id = 5;
}
optional int32 eresult = 1 [default = 2];
optional int32 leaderboard_entry_count = 2;
repeated .CMsgClientLBSGetLBEntriesResponse.Entry entries = 3;
}
message CMsgClientAppMinutesPlayedData {
message AppMinutesPlayedData {
optional uint32 app_id = 1;
optional int32 forever = 2;
optional int32 last_two_weeks = 3;
}
repeated .CMsgClientAppMinutesPlayedData.AppMinutesPlayedData minutes_played = 1;
}
message CMsgClientIsLimitedAccount {
optional bool bis_limited_account = 1;
optional bool bis_community_banned = 2;
@ -342,223 +205,6 @@ message CMsgClientStat2 {
repeated .CMsgClientStat2.StatDetail stat_detail = 1;
}
message CMsgClientMMSSetRatelimitPolicyOnClient {
optional uint32 app_id = 1;
optional bool enable_rate_limits = 2;
optional int32 seconds_per_message = 3;
optional int32 milliseconds_per_data_update = 4;
}
message CMsgClientMMSCreateLobby {
optional uint32 app_id = 1;
optional int32 max_members = 2;
optional int32 lobby_type = 3;
optional int32 lobby_flags = 4;
optional uint32 cell_id = 5;
optional uint32 deprecated_public_ip = 6;
optional bytes metadata = 7;
optional string persona_name_owner = 8;
optional .CMsgIPAddress public_ip = 9;
}
message CMsgClientMMSCreateLobbyResponse {
optional uint32 app_id = 1;
optional fixed64 steam_id_lobby = 2;
optional int32 eresult = 3 [default = 2];
}
message CMsgClientMMSJoinLobby {
optional uint32 app_id = 1;
optional fixed64 steam_id_lobby = 2;
optional string persona_name = 3;
}
message CMsgClientMMSJoinLobbyResponse {
message Member {
optional fixed64 steam_id = 1;
optional string persona_name = 2;
optional bytes metadata = 3;
}
optional uint32 app_id = 1;
optional fixed64 steam_id_lobby = 2;
optional int32 chat_room_enter_response = 3;
optional int32 max_members = 4;
optional int32 lobby_type = 5;
optional int32 lobby_flags = 6;
optional fixed64 steam_id_owner = 7;
optional bytes metadata = 8;
repeated .CMsgClientMMSJoinLobbyResponse.Member members = 9;
}
message CMsgClientMMSLeaveLobby {
optional uint32 app_id = 1;
optional fixed64 steam_id_lobby = 2;
}
message CMsgClientMMSLeaveLobbyResponse {
optional uint32 app_id = 1;
optional fixed64 steam_id_lobby = 2;
optional int32 eresult = 3 [default = 2];
}
message CMsgClientMMSGetLobbyList {
message Filter {
optional string key = 1;
optional string value = 2;
optional int32 comparision = 3;
optional int32 filter_type = 4;
}
optional uint32 app_id = 1;
optional int32 num_lobbies_requested = 3;
optional uint32 cell_id = 4;
optional uint32 deprecated_public_ip = 5;
repeated .CMsgClientMMSGetLobbyList.Filter filters = 6;
optional .CMsgIPAddress public_ip = 7;
}
message CMsgClientMMSGetLobbyListResponse {
message Lobby {
optional fixed64 steam_id = 1;
optional int32 max_members = 2;
optional int32 lobby_type = 3;
optional int32 lobby_flags = 4;
optional bytes metadata = 5;
optional int32 num_members = 6;
optional float distance = 7;
optional int64 weight = 8;
}
optional uint32 app_id = 1;
optional int32 eresult = 3 [default = 2];
repeated .CMsgClientMMSGetLobbyListResponse.Lobby lobbies = 4;
}
message CMsgClientMMSSetLobbyData {
optional uint32 app_id = 1;
optional fixed64 steam_id_lobby = 2;
optional fixed64 steam_id_member = 3;
optional int32 max_members = 4;
optional int32 lobby_type = 5;
optional int32 lobby_flags = 6;
optional bytes metadata = 7;
}
message CMsgClientMMSSetLobbyDataResponse {
optional uint32 app_id = 1;
optional fixed64 steam_id_lobby = 2;
optional int32 eresult = 3 [default = 2];
}
message CMsgClientMMSGetLobbyData {
optional uint32 app_id = 1;
optional fixed64 steam_id_lobby = 2;
}
message CMsgClientMMSLobbyData {
message Member {
optional fixed64 steam_id = 1;
optional string persona_name = 2;
optional bytes metadata = 3;
}
optional uint32 app_id = 1;
optional fixed64 steam_id_lobby = 2;
optional int32 num_members = 3;
optional int32 max_members = 4;
optional int32 lobby_type = 5;
optional int32 lobby_flags = 6;
optional fixed64 steam_id_owner = 7;
optional bytes metadata = 8;
repeated .CMsgClientMMSLobbyData.Member members = 9;
optional uint32 lobby_cellid = 10;
optional bool owner_should_accept_changes = 11;
}
message CMsgClientMMSSendLobbyChatMsg {
optional uint32 app_id = 1;
optional fixed64 steam_id_lobby = 2;
optional fixed64 steam_id_target = 3;
optional bytes lobby_message = 4;
}
message CMsgClientMMSLobbyChatMsg {
optional uint32 app_id = 1;
optional fixed64 steam_id_lobby = 2;
optional fixed64 steam_id_sender = 3;
optional bytes lobby_message = 4;
}
message CMsgClientMMSSetLobbyOwner {
optional uint32 app_id = 1;
optional fixed64 steam_id_lobby = 2;
optional fixed64 steam_id_new_owner = 3;
}
message CMsgClientMMSSetLobbyOwnerResponse {
optional uint32 app_id = 1;
optional fixed64 steam_id_lobby = 2;
optional int32 eresult = 3 [default = 2];
}
message CMsgClientMMSSetLobbyLinked {
optional uint32 app_id = 1;
optional fixed64 steam_id_lobby = 2;
optional fixed64 steam_id_lobby2 = 3;
}
message CMsgClientMMSSetLobbyGameServer {
optional uint32 app_id = 1;
optional fixed64 steam_id_lobby = 2;
optional uint32 deprecated_game_server_ip = 3;
optional uint32 game_server_port = 4;
optional fixed64 game_server_steam_id = 5;
optional .CMsgIPAddress game_server_ip = 6;
}
message CMsgClientMMSLobbyGameServerSet {
optional uint32 app_id = 1;
optional fixed64 steam_id_lobby = 2;
optional uint32 deprecated_game_server_ip = 3;
optional uint32 game_server_port = 4;
optional fixed64 game_server_steam_id = 5;
optional .CMsgIPAddress game_server_ip = 6;
}
message CMsgClientMMSUserJoinedLobby {
optional uint32 app_id = 1;
optional fixed64 steam_id_lobby = 2;
optional fixed64 steam_id_user = 3;
optional string persona_name = 4;
}
message CMsgClientMMSUserLeftLobby {
optional uint32 app_id = 1;
optional fixed64 steam_id_lobby = 2;
optional fixed64 steam_id_user = 3;
optional string persona_name = 4;
}
message CMsgClientMMSInviteToLobby {
optional uint32 app_id = 1;
optional fixed64 steam_id_lobby = 2;
optional fixed64 steam_id_user_invited = 3;
}
message CMsgClientMMSGetLobbyStatus {
optional uint32 app_id = 1;
optional fixed64 steam_id_lobby = 2;
optional bool claim_membership = 3;
optional bool claim_ownership = 4;
}
message CMsgClientMMSGetLobbyStatusResponse {
optional uint32 app_id = 1;
optional fixed64 steam_id_lobby = 2;
optional .EMMSLobbyStatus lobby_status = 3 [default = k_EMMSLobbyStatusInvalid];
}
message CMsgClientInviteToGame {
optional fixed64 steam_id_dest = 1;
optional fixed64 steam_id_src = 2;
@ -632,295 +278,10 @@ message CMsgClientServersAvailable {
optional uint32 server_type_for_auth_services = 2;
}
message CMsgClientGetUserStats {
optional fixed64 game_id = 1;
optional uint32 crc_stats = 2;
optional int32 schema_local_version = 3;
optional fixed64 steam_id_for_user = 4;
}
message CMsgClientGetUserStatsResponse {
message Stats {
optional uint32 stat_id = 1;
optional uint32 stat_value = 2;
}
message Achievement_Blocks {
optional uint32 achievement_id = 1;
repeated fixed32 unlock_time = 2;
}
optional fixed64 game_id = 1;
optional int32 eresult = 2 [default = 2];
optional uint32 crc_stats = 3;
optional bytes schema = 4;
repeated .CMsgClientGetUserStatsResponse.Stats stats = 5;
repeated .CMsgClientGetUserStatsResponse.Achievement_Blocks achievement_blocks = 6;
}
message CMsgClientStoreUserStatsResponse {
message Stats_Failed_Validation {
optional uint32 stat_id = 1;
optional uint32 reverted_stat_value = 2;
}
optional fixed64 game_id = 1;
optional int32 eresult = 2 [default = 2];
optional uint32 crc_stats = 3;
repeated .CMsgClientStoreUserStatsResponse.Stats_Failed_Validation stats_failed_validation = 4;
optional bool stats_out_of_date = 5;
}
message CMsgClientStoreUserStats2 {
message Stats {
optional uint32 stat_id = 1;
optional uint32 stat_value = 2;
}
optional fixed64 game_id = 1;
optional fixed64 settor_steam_id = 2;
optional fixed64 settee_steam_id = 3;
optional uint32 crc_stats = 4;
optional bool explicit_reset = 5;
repeated .CMsgClientStoreUserStats2.Stats stats = 6;
}
message CMsgClientStatsUpdated {
message Updated_Stats {
optional uint32 stat_id = 1;
optional uint32 stat_value = 2;
}
optional fixed64 steam_id = 1;
optional fixed64 game_id = 2;
optional uint32 crc_stats = 3;
repeated .CMsgClientStatsUpdated.Updated_Stats updated_stats = 4;
}
message CMsgClientStoreUserStats {
message Stats_To_Store {
optional uint32 stat_id = 1;
optional uint32 stat_value = 2;
}
optional fixed64 game_id = 1;
optional bool explicit_reset = 2;
repeated .CMsgClientStoreUserStats.Stats_To_Store stats_to_store = 3;
}
message CMsgClientGetClientDetails {
}
message CMsgClientReportOverlayDetourFailure {
repeated string failure_strings = 1;
}
message CMsgClientGetClientDetailsResponse {
message Game {
optional uint32 appid = 1;
optional string extra_info = 2;
optional uint32 time_running_sec = 3;
}
optional uint32 package_version = 1;
optional uint32 protocol_version = 8;
optional string os = 2;
optional string machine_name = 3;
optional string ip_public = 4;
optional string ip_private = 5;
optional uint64 bytes_available = 7;
repeated .CMsgClientGetClientDetailsResponse.Game games_running = 6;
}
message CMsgClientGetClientAppList {
optional bool media = 1;
optional bool tools = 2;
optional bool games = 3;
optional bool only_installed = 4;
optional bool only_changing = 5;
optional bool comics = 6;
}
message CMsgClientGetClientAppListResponse {
message App {
message DLC {
optional uint32 appid = 1;
optional bool installed = 2;
}
optional uint32 appid = 1;
optional string category = 2;
optional string app_type = 10;
optional bool favorite = 3;
optional bool installed = 4;
optional bool auto_update = 5;
optional uint64 bytes_downloaded = 6;
optional uint64 bytes_needed = 7;
optional uint32 bytes_download_rate = 8;
optional bool download_paused = 11;
optional uint32 num_downloading = 12;
optional uint32 num_paused = 13;
optional bool changing = 14;
optional bool available_on_platform = 15;
repeated .CMsgClientGetClientAppListResponse.App.DLC dlcs = 9;
}
repeated .CMsgClientGetClientAppListResponse.App apps = 1;
optional uint64 bytes_available = 2;
}
message CMsgClientInstallClientApp {
optional uint32 appid = 1;
}
message CMsgClientInstallClientAppResponse {
optional uint32 result = 1;
}
message CMsgClientUninstallClientApp {
optional uint32 appid = 1;
}
message CMsgClientUninstallClientAppResponse {
optional uint32 result = 1;
}
message CMsgClientSetClientAppUpdateState {
optional uint32 appid = 1;
optional bool update = 2;
}
message CMsgClientSetClientAppUpdateStateResponse {
optional uint32 result = 1;
}
message CMsgClientUFSUploadFileRequest {
optional uint32 app_id = 1;
optional uint32 file_size = 2;
optional uint32 raw_file_size = 3;
optional bytes sha_file = 4;
optional uint64 time_stamp = 5;
optional string file_name = 6;
optional uint32 platforms_to_sync_deprecated = 7;
optional uint32 platforms_to_sync = 8 [default = 4294967295];
optional uint32 cell_id = 9;
optional bool can_encrypt = 10;
}
message CMsgClientUFSUploadFileResponse {
optional int32 eresult = 1 [default = 2];
optional bytes sha_file = 2;
optional bool use_http = 3;
optional string http_host = 4;
optional string http_url = 5;
optional bytes kv_headers = 6;
optional bool use_https = 7;
optional bool encrypt_file = 8;
}
message CMsgClientUFSUploadCommit {
message File {
optional int32 eresult = 1 [default = 2];
optional uint32 app_id = 2;
optional bytes sha_file = 3;
optional uint32 cub_file = 4;
optional string file_name = 5;
}
repeated .CMsgClientUFSUploadCommit.File files = 1;
}
message CMsgClientUFSUploadCommitResponse {
message File {
optional int32 eresult = 1 [default = 2];
optional uint32 app_id = 2;
optional bytes sha_file = 3;
}
repeated .CMsgClientUFSUploadCommitResponse.File files = 1;
}
message CMsgClientUFSFileChunk {
optional bytes sha_file = 1;
optional uint32 file_start = 2;
optional bytes data = 3;
}
message CMsgClientUFSTransferHeartbeat {
}
message CMsgClientUFSUploadFileFinished {
optional int32 eresult = 1 [default = 2];
optional bytes sha_file = 2;
}
message CMsgClientUFSDeleteFileRequest {
optional uint32 app_id = 1;
optional string file_name = 2;
optional bool is_explicit_delete = 3;
}
message CMsgClientUFSDeleteFileResponse {
optional int32 eresult = 1 [default = 2];
optional string file_name = 2;
}
message CMsgClientUFSGetFileListForApp {
repeated uint32 apps_to_query = 1;
optional bool send_path_prefixes = 2;
}
message CMsgClientUFSGetFileListForAppResponse {
option (msgpool_soft_limit) = 8;
option (msgpool_hard_limit) = 16;
message File {
optional uint32 app_id = 1;
optional string file_name = 2;
optional bytes sha_file = 3;
optional uint64 time_stamp = 4;
optional uint32 raw_file_size = 5;
optional bool is_explicit_delete = 6;
optional uint32 platforms_to_sync = 7;
optional uint32 path_prefix_index = 8;
}
repeated .CMsgClientUFSGetFileListForAppResponse.File files = 1;
repeated string path_prefixes = 2;
}
message CMsgClientUFSDownloadRequest {
optional uint32 app_id = 1;
optional string file_name = 2;
optional bool can_handle_http = 3;
}
message CMsgClientUFSDownloadResponse {
optional int32 eresult = 1 [default = 2];
optional uint32 app_id = 2;
optional uint32 file_size = 3;
optional uint32 raw_file_size = 4;
optional bytes sha_file = 5;
optional uint64 time_stamp = 6;
optional bool is_explicit_delete = 7;
optional bool use_http = 8;
optional string http_host = 9;
optional string http_url = 10;
optional bytes kv_headers = 11;
optional bool use_https = 12;
optional bool encrypted = 13;
}
message CMsgClientUFSLoginRequest {
optional uint32 protocol_version = 1;
optional uint64 am_session_token = 2;
repeated uint32 apps = 3;
}
message CMsgClientUFSLoginResponse {
optional int32 eresult = 1 [default = 2];
}
message CMsgClientRequestEncryptedAppTicket {
optional uint32 app_id = 1;
optional bytes userdata = 2;
@ -939,209 +300,7 @@ message CMsgClientWalletInfoUpdate {
optional int32 balance_delayed = 4;
optional int64 balance64 = 5 [(php_output_always_number) = true];
optional int64 balance64_delayed = 6 [(php_output_always_number) = true];
}
message CMsgClientAppInfoUpdate {
optional uint32 last_changenumber = 1;
optional bool send_changelist = 2;
}
message CMsgClientAppInfoChanges {
optional uint32 current_change_number = 1;
optional bool force_full_update = 2;
repeated uint32 appIDs = 3;
}
message CMsgClientAppInfoRequest {
message App {
optional uint32 app_id = 1;
optional uint32 section_flags = 2;
repeated uint32 section_CRC = 3;
}
repeated .CMsgClientAppInfoRequest.App apps = 1;
optional bool supports_batches = 2 [default = false];
}
message CMsgClientAppInfoResponse {
option (msgpool_hard_limit) = 0;
message App {
message Section {
optional uint32 section_id = 1;
optional bytes section_kv = 2;
}
optional uint32 app_id = 1;
optional uint32 change_number = 2;
repeated .CMsgClientAppInfoResponse.App.Section sections = 3;
}
repeated .CMsgClientAppInfoResponse.App apps = 1;
repeated uint32 apps_unknown = 2;
optional uint32 apps_pending = 3;
}
message CMsgClientPackageInfoRequest {
repeated uint32 package_ids = 1;
optional bool meta_data_only = 2;
}
message CMsgClientPackageInfoResponse {
message Package {
optional uint32 package_id = 1;
optional uint32 change_number = 2;
optional bytes sha = 3;
optional bytes buffer = 4;
}
repeated .CMsgClientPackageInfoResponse.Package packages = 1;
repeated uint32 packages_unknown = 2;
optional uint32 packages_pending = 3;
}
message CMsgClientPICSChangesSinceRequest {
optional uint32 since_change_number = 1;
optional bool send_app_info_changes = 2;
optional bool send_package_info_changes = 3;
optional uint32 num_app_info_cached = 4;
optional uint32 num_package_info_cached = 5;
}
message CMsgClientPICSChangesSinceResponse {
message PackageChange {
optional uint32 packageid = 1;
optional uint32 change_number = 2;
optional bool needs_token = 3;
}
message AppChange {
optional uint32 appid = 1;
optional uint32 change_number = 2;
optional bool needs_token = 3;
}
optional uint32 current_change_number = 1;
optional uint32 since_change_number = 2;
optional bool force_full_update = 3;
repeated .CMsgClientPICSChangesSinceResponse.PackageChange package_changes = 4;
repeated .CMsgClientPICSChangesSinceResponse.AppChange app_changes = 5;
optional bool force_full_app_update = 6;
optional bool force_full_package_update = 7;
}
message CMsgClientPICSProductInfoRequest {
message AppInfo {
optional uint32 appid = 1;
optional uint64 access_token = 2;
optional bool only_public = 3;
}
message PackageInfo {
optional uint32 packageid = 1;
optional uint64 access_token = 2;
}
repeated .CMsgClientPICSProductInfoRequest.PackageInfo packages = 1;
repeated .CMsgClientPICSProductInfoRequest.AppInfo apps = 2;
optional bool meta_data_only = 3;
optional uint32 num_prev_failed = 4;
optional uint32 supports_package_tokens = 5;
}
message CMsgClientPICSProductInfoResponse {
option (msgpool_hard_limit) = 0;
message AppInfo {
optional uint32 appid = 1;
optional uint32 change_number = 2;
optional bool missing_token = 3;
optional bytes sha = 4;
optional bytes buffer = 5;
optional bool only_public = 6;
optional uint32 size = 7;
}
message PackageInfo {
optional uint32 packageid = 1;
optional uint32 change_number = 2;
optional bool missing_token = 3;
optional bytes sha = 4;
optional bytes buffer = 5;
optional uint32 size = 6;
}
repeated .CMsgClientPICSProductInfoResponse.AppInfo apps = 1;
repeated uint32 unknown_appids = 2;
repeated .CMsgClientPICSProductInfoResponse.PackageInfo packages = 3;
repeated uint32 unknown_packageids = 4;
optional bool meta_data_only = 5;
optional bool response_pending = 6;
optional uint32 http_min_size = 7;
optional string http_host = 8;
}
message CMsgClientPICSAccessTokenRequest {
repeated uint32 packageids = 1;
repeated uint32 appids = 2;
}
message CMsgClientPICSAccessTokenResponse {
message PackageToken {
optional uint32 packageid = 1;
optional uint64 access_token = 2;
}
message AppToken {
optional uint32 appid = 1;
optional uint64 access_token = 2;
}
repeated .CMsgClientPICSAccessTokenResponse.PackageToken package_access_tokens = 1;
repeated uint32 package_denied_tokens = 2;
repeated .CMsgClientPICSAccessTokenResponse.AppToken app_access_tokens = 3;
repeated uint32 app_denied_tokens = 4;
}
message CMsgClientUFSGetUGCDetails {
optional fixed64 hcontent = 1 [default = 18446744073709551615];
}
message CMsgClientUFSGetUGCDetailsResponse {
optional int32 eresult = 1 [default = 2];
optional string url = 2;
optional uint32 app_id = 3;
optional string filename = 4;
optional fixed64 steamid_creator = 5;
optional uint32 file_size = 6;
optional uint32 compressed_file_size = 7;
optional string rangecheck_host = 8;
optional string file_encoded_sha1 = 9;
}
message CMsgClientUFSGetSingleFileInfo {
optional uint32 app_id = 1;
optional string file_name = 2;
}
message CMsgClientUFSGetSingleFileInfoResponse {
optional int32 eresult = 1 [default = 2];
optional uint32 app_id = 2;
optional string file_name = 3;
optional bytes sha_file = 4;
optional uint64 time_stamp = 5;
optional uint32 raw_file_size = 6;
optional bool is_explicit_delete = 7;
}
message CMsgClientUFSShareFile {
optional uint32 app_id = 1;
optional string file_name = 2;
}
message CMsgClientUFSShareFileResponse {
optional int32 eresult = 1 [default = 2];
optional fixed64 hcontent = 2 [default = 18446744073709551615];
optional int32 realm = 7;
}
message CMsgClientAMGetClanOfficers {
@ -1213,13 +372,3 @@ message CMsgClientClanState {
repeated .CMsgClientClanState.Event announcements = 7;
optional bool chat_room_private = 8;
}
message CMsgClientUnsignedInstallScript {
optional uint32 app_id = 1;
optional string file_name = 2;
optional uint32 file_size = 3;
optional bool signature_broken = 4;
optional uint32 depot_id = 5;
optional uint64 manifest_id = 6;
optional uint32 file_flags = 7;
}

376
protobufs/steammessages_clientserver_2.proto

@ -4,282 +4,6 @@ import "steammessages_base.proto";
option optimize_for = SPEED;
option py_generic_services = false;
message CMsgClientUCMAddScreenshot {
message Tag {
optional string tag_name = 1;
optional string tag_value = 2;
}
optional uint32 appid = 1;
optional string filename = 2;
optional string thumbname = 3;
optional string vr_filename = 14;
optional fixed32 rtime32_created = 4;
optional uint32 width = 5;
optional uint32 height = 6;
optional uint32 permissions = 7;
optional string caption = 8;
optional string shortcut_name = 9;
repeated .CMsgClientUCMAddScreenshot.Tag tag = 10;
repeated fixed64 tagged_steamid = 11;
optional bool spoiler_tag = 12;
repeated uint64 tagged_publishedfileid = 13;
}
message CMsgClientUCMAddScreenshotResponse {
optional int32 eresult = 1 [default = 2];
optional fixed64 screenshotid = 2 [default = 18446744073709551615];
}
message CMsgClientUCMDeleteScreenshot {
optional fixed64 screenshotid = 1 [default = 18446744073709551615];
}
message CMsgClientUCMDeleteScreenshotResponse {
optional int32 eresult = 1 [default = 2];
}
message CMsgClientUCMPublishFile {
optional uint32 app_id = 1;
optional string file_name = 2;
optional string preview_file_name = 3;
optional uint32 consumer_app_id = 4;
optional string title = 5;
optional string description = 6;
repeated string tags = 8;
optional bool workshop_file = 9;
optional int32 visibility = 10;
optional uint32 file_type = 11;
optional string url = 12;
optional uint32 video_provider = 13;
optional string video_account_name = 14;
optional string video_identifier = 15;
optional bool in_progress = 16;
}
message CMsgClientUCMPublishFileResponse {
optional int32 eresult = 1 [default = 2];
optional fixed64 published_file_id = 2 [default = 18446744073709551615];
optional bool needs_workshop_legal_agreement_acceptance = 3 [default = false];
}
message CMsgClientUCMUpdatePublishedFile {
message KeyValueTag {
optional string key = 1;
optional string value = 2;
}
message AdditionalPreview {
optional string original_file_name = 1;
optional string internal_file_name = 2;
optional string videoid = 3;
optional uint32 preview_type = 4;
optional int32 update_index = 5 [default = -1];
}
optional uint32 app_id = 1;
optional fixed64 published_file_id = 2;
optional string file_name = 3;
optional string preview_file_name = 4;
optional string title = 5;
optional string description = 6;
repeated string tags = 7;
optional int32 visibility = 8;
optional bool update_file = 9;
optional bool update_preview_file = 10;
optional bool update_title = 11;
optional bool update_description = 12;
optional bool update_tags = 13;
optional bool update_visibility = 14;
optional string change_description = 15;
optional bool update_url = 16;
optional string url = 17;
optional bool update_content_manifest = 18;
optional fixed64 content_manifest = 19;
optional string metadata = 20;
optional bool update_metadata = 21;
optional int32 language = 22 [default = 0];
repeated string removed_kvtags = 23;
repeated .CMsgClientUCMUpdatePublishedFile.KeyValueTag kvtags = 24;
repeated .CMsgClientUCMUpdatePublishedFile.AdditionalPreview previews = 25;
repeated int32 previews_to_remove = 26;
optional bool clear_in_progress = 27;
optional bool remove_all_kvtags = 28;
}
message CMsgClientUCMUpdatePublishedFileResponse {
optional int32 eresult = 1 [default = 2];
optional bool needs_workshop_legal_agreement_acceptance = 2 [default = false];
}
message CMsgClientUCMDeletePublishedFile {
optional fixed64 published_file_id = 1;
optional uint32 app_id = 2;
}
message CMsgClientUCMDeletePublishedFileResponse {
optional int32 eresult = 1 [default = 2];
}
message CMsgClientUCMEnumerateUserPublishedFiles {
optional uint32 app_id = 1;
optional uint32 start_index = 2;
optional uint32 sort_order = 3;
}
message CMsgClientUCMEnumerateUserPublishedFilesResponse {
message PublishedFileId {
optional fixed64 published_file_id = 1;
}
optional int32 eresult = 1 [default = 2];
repeated .CMsgClientUCMEnumerateUserPublishedFilesResponse.PublishedFileId published_files = 2;
optional uint32 total_results = 3;
}
message CMsgClientUCMEnumerateUserSubscribedFiles {
optional uint32 app_id = 1;
optional uint32 start_index = 2;
optional uint32 list_type = 3 [default = 1];
optional uint32 matching_file_type = 4 [default = 0];
optional uint32 count = 5 [default = 50];
}
message CMsgClientUCMEnumerateUserSubscribedFilesResponse {
message PublishedFileId {
optional fixed64 published_file_id = 1;
optional fixed32 rtime32_subscribed = 2 [default = 0];
}
optional int32 eresult = 1 [default = 2];
repeated .CMsgClientUCMEnumerateUserSubscribedFilesResponse.PublishedFileId subscribed_files = 2;
optional uint32 total_results = 3;
}
message CMsgClientUCMEnumerateUserSubscribedFilesWithUpdates {
optional uint32 app_id = 1;
optional uint32 start_index = 2;
optional fixed32 start_time = 3;
optional uint32 desired_revision = 4 [default = 0];
}
message CMsgClientUCMEnumerateUserSubscribedFilesWithUpdatesResponse {
message PublishedFileId {
optional fixed64 published_file_id = 1;
optional fixed32 rtime32_subscribed = 2 [default = 0];
optional uint32 appid = 3;
optional fixed64 file_hcontent = 4;
optional uint32 file_size = 5;
optional fixed32 rtime32_last_updated = 6;
optional bool is_depot_content = 7;
}
optional int32 eresult = 1 [default = 2];
repeated .CMsgClientUCMEnumerateUserSubscribedFilesWithUpdatesResponse.PublishedFileId subscribed_files = 2;
optional uint32 total_results = 3;
}
message CMsgClientUCMPublishedFileUpdated {
optional fixed64 published_file_id = 1;
optional uint32 app_id = 2;
optional uint32 time_updated = 3;
optional fixed64 hcontent = 4;
optional fixed32 file_size = 5;
optional bool is_depot_content = 6;
optional uint32 revision = 7;
}
message CMsgClientWorkshopItemChangesRequest {
optional uint32 app_id = 1;
optional uint32 last_time_updated = 2;
optional uint32 num_items_needed = 3;
}
message CMsgClientWorkshopItemChangesResponse {
message WorkshopItemInfo {
optional fixed64 published_file_id = 1;
optional uint32 time_updated = 2;
optional fixed64 manifest_id = 3;
}
optional int32 eresult = 1 [default = 2];
optional uint32 update_time = 2;
repeated .CMsgClientWorkshopItemChangesResponse.WorkshopItemInfo workshop_items = 5;
}
message CMsgClientWorkshopItemInfoRequest {
message WorkshopItem {
optional fixed64 published_file_id = 1;
optional uint32 time_updated = 2;
}
optional uint32 app_id = 1;
optional uint32 last_time_updated = 2;
repeated .CMsgClientWorkshopItemInfoRequest.WorkshopItem workshop_items = 3;
}
message CMsgClientWorkshopItemInfoResponse {
message WorkshopItemInfo {
optional fixed64 published_file_id = 1;
optional uint32 time_updated = 2;
optional fixed64 manifest_id = 3;
optional bool is_legacy = 4;
}
optional int32 eresult = 1 [default = 2];
optional uint32 update_time = 2;
repeated .CMsgClientWorkshopItemInfoResponse.WorkshopItemInfo workshop_items = 3;
repeated fixed64 private_items = 4;
}
message CMsgClientUCMGetPublishedFilesForUser {
optional uint32 app_id = 1;
optional fixed64 creator_steam_id = 2;
repeated string required_tags = 3;
repeated string excluded_tags = 4;
optional uint32 start_index = 5;
}
message CMsgClientUCMGetPublishedFilesForUserResponse {
message PublishedFileId {
optional fixed64 published_file_id = 1;
}
optional int32 eresult = 1 [default = 2];
repeated .CMsgClientUCMGetPublishedFilesForUserResponse.PublishedFileId published_files = 2;
optional uint32 total_results = 3;
}
message CMsgClientUCMSetUserPublishedFileAction {
optional fixed64 published_file_id = 1;
optional uint32 app_id = 2;
optional int32 action = 3;
}
message CMsgClientUCMSetUserPublishedFileActionResponse {
optional int32 eresult = 1 [default = 2];
}
message CMsgClientUCMEnumeratePublishedFilesByUserAction {
optional uint32 app_id = 1;
optional uint32 start_index = 2;
optional int32 action = 3;
}
message CMsgClientUCMEnumeratePublishedFilesByUserActionResponse {
message PublishedFileId {
optional fixed64 published_file_id = 1;
optional fixed32 rtime_time_stamp = 2 [default = 0];
}
optional int32 eresult = 1 [default = 2];
repeated .CMsgClientUCMEnumeratePublishedFilesByUserActionResponse.PublishedFileId published_files = 2;
optional uint32 total_results = 3;
}
message CMsgClientScreenshotsChanged {
}
message CMsgClientUpdateUserGameInfo {
optional fixed64 steamid_idgs = 1;
optional fixed64 gameid = 2;
@ -461,12 +185,14 @@ message CMsgClientGetDepotDecryptionKeyResponse {
message CMsgClientCheckAppBetaPassword {
optional uint32 app_id = 1;
optional string betapassword = 2;
optional int32 language = 3;
}
message CMsgClientCheckAppBetaPasswordResponse {
message BetaPassword {
optional string betaname = 1;
optional string betapassword = 2;
optional string betadescription = 3;
}
optional int32 eresult = 1 [default = 2];
@ -529,6 +255,7 @@ message CMsgDownloadRateStatistics {
optional uint32 cell_id = 1;
repeated .CMsgDownloadRateStatistics.StatsInfo stats = 2;
optional uint32 throttling_kbps = 3;
optional uint32 steam_realm = 4;
}
message CMsgClientRequestAccountData {
@ -571,69 +298,6 @@ message CMsgClientUGSGetGlobalStatsResponse {
repeated .CMsgClientUGSGetGlobalStatsResponse.Day days = 4;
}
message CMsgGameServerData {
message Player {
optional fixed64 steam_id = 1;
}
optional fixed64 steam_id_gs = 1;
optional uint32 deprecated_ip = 2;
optional uint32 query_port = 3;
optional uint32 game_port = 4;
optional uint32 sourcetv_port = 5;
optional string name = 22;
optional .CMsgIPAddress game_ip_address = 23;
optional uint32 app_id = 6;
optional string gamedir = 7;
optional string version = 8;
optional string product = 9;
optional string region = 10;
repeated .CMsgGameServerData.Player players = 11;
optional uint32 max_players = 12;
optional uint32 bot_count = 13;
optional bool password = 14;
optional bool secure = 15;
optional bool dedicated = 16;
optional string os = 17;
optional string game_data = 18;
optional uint32 game_data_version = 19;
optional string game_type = 20;
optional string map = 21;
}
message CMsgGameServerRemove {
optional fixed64 steam_id = 1;
optional uint32 deprecated_ip = 2;
optional uint32 query_port = 3;
optional .CMsgIPAddress ip = 4;
}
message CMsgClientGMSServerQuery {
optional uint32 app_id = 1;
optional uint32 geo_location_ip = 2;
optional uint32 region_code = 3;
optional string filter_text = 4;
optional uint32 max_servers = 5;
}
message CMsgGMSClientServerQueryResponse {
message Server {
optional uint32 deprecated_server_ip = 1;
optional uint32 server_port = 2;
optional uint32 auth_players = 3;
optional .CMsgIPAddress server_ip = 4;
}
repeated .CMsgGMSClientServerQueryResponse.Server servers = 1;
optional string error = 2;
}
message CMsgGameServerOutOfDate {
optional fixed64 steam_id_gs = 1;
optional bool reject = 2;
optional string message = 3;
}
message CMsgClientRedeemGuestPass {
optional fixed64 guest_pass_id = 1;
}
@ -666,28 +330,6 @@ message CMsgClientOGSReportBug {
optional bytes screenshot = 3;
}
message CMsgGSAssociateWithClan {
optional fixed64 steam_id_clan = 1;
}
message CMsgGSAssociateWithClanResponse {
optional fixed64 steam_id_clan = 1;
optional uint32 eresult = 2 [default = 2];
}
message CMsgGSComputeNewPlayerCompatibility {
optional fixed64 steam_id_candidate = 1;
}
message CMsgGSComputeNewPlayerCompatibilityResponse {
optional fixed64 steam_id_candidate = 1;
optional uint32 eresult = 2 [default = 2];
optional bool is_clan_member = 3;
optional int32 ct_dont_like_you = 4;
optional int32 ct_you_dont_like = 5;
optional int32 ct_clanmembers_dont_like_you = 6;
}
message CMsgClientSentLogs {
}
@ -909,18 +551,6 @@ message CMsgCREGetUserPublishedItemVoteDetailsResponse {
repeated .CMsgCREGetUserPublishedItemVoteDetailsResponse.UserItemVoteDetail user_item_vote_details = 2;
}
message CMsgGameServerPingSample {
message Sample {
optional fixed32 ip = 1;
optional uint32 avg_ping_ms = 2;
optional uint32 stddev_ping_ms_x10 = 3;
}
optional fixed32 my_ip = 1;
optional int32 gs_app_id = 2;
repeated .CMsgGameServerPingSample.Sample gs_samples = 3;
}
message CMsgFSGetFollowerCount {
optional fixed64 steam_id = 1;
}

167
protobufs/steammessages_clientserver_appinfo.proto

@ -0,0 +1,167 @@
syntax = "proto2";
import "steammessages_base.proto";
option optimize_for = SPEED;
option py_generic_services = false;
message CMsgClientAppInfoUpdate {
optional uint32 last_changenumber = 1;
optional bool send_changelist = 2;
}
message CMsgClientAppInfoChanges {
optional uint32 current_change_number = 1;
optional bool force_full_update = 2;
repeated uint32 appIDs = 3;
}
message CMsgClientAppInfoRequest {
message App {
optional uint32 app_id = 1;
optional uint32 section_flags = 2;
repeated uint32 section_CRC = 3;
}
repeated .CMsgClientAppInfoRequest.App apps = 1;
optional bool supports_batches = 2 [default = false];
}
message CMsgClientAppInfoResponse {
option (msgpool_hard_limit) = 0;
message App {
message Section {
optional uint32 section_id = 1;
optional bytes section_kv = 2;
}
optional uint32 app_id = 1;
optional uint32 change_number = 2;
repeated .CMsgClientAppInfoResponse.App.Section sections = 3;
}
repeated .CMsgClientAppInfoResponse.App apps = 1;
repeated uint32 apps_unknown = 2;
optional uint32 apps_pending = 3;
}
message CMsgClientPackageInfoRequest {
repeated uint32 package_ids = 1;
optional bool meta_data_only = 2;
}
message CMsgClientPackageInfoResponse {
message Package {
optional uint32 package_id = 1;
optional uint32 change_number = 2;
optional bytes sha = 3;
optional bytes buffer = 4;
}
repeated .CMsgClientPackageInfoResponse.Package packages = 1;
repeated uint32 packages_unknown = 2;
optional uint32 packages_pending = 3;
}
message CMsgClientPICSChangesSinceRequest {
optional uint32 since_change_number = 1;
optional bool send_app_info_changes = 2;
optional bool send_package_info_changes = 3;
optional uint32 num_app_info_cached = 4;
optional uint32 num_package_info_cached = 5;
}
message CMsgClientPICSChangesSinceResponse {
message PackageChange {
optional uint32 packageid = 1;
optional uint32 change_number = 2;
optional bool needs_token = 3;
}
message AppChange {
optional uint32 appid = 1;
optional uint32 change_number = 2;
optional bool needs_token = 3;
}
optional uint32 current_change_number = 1;
optional uint32 since_change_number = 2;
optional bool force_full_update = 3;
repeated .CMsgClientPICSChangesSinceResponse.PackageChange package_changes = 4;
repeated .CMsgClientPICSChangesSinceResponse.AppChange app_changes = 5;
optional bool force_full_app_update = 6;
optional bool force_full_package_update = 7;
}
message CMsgClientPICSProductInfoRequest {
message AppInfo {
optional uint32 appid = 1;
optional uint64 access_token = 2;
optional bool only_public_obsolete = 3;
}
message PackageInfo {
optional uint32 packageid = 1;
optional uint64 access_token = 2;
}
repeated .CMsgClientPICSProductInfoRequest.PackageInfo packages = 1;
repeated .CMsgClientPICSProductInfoRequest.AppInfo apps = 2;
optional bool meta_data_only = 3;
optional uint32 num_prev_failed = 4;
optional uint32 supports_package_tokens = 5;
}
message CMsgClientPICSProductInfoResponse {
option (msgpool_hard_limit) = 0;
message AppInfo {
optional uint32 appid = 1;
optional uint32 change_number = 2;
optional bool missing_token = 3;
optional bytes sha = 4;
optional bytes buffer = 5;
optional bool only_public = 6;
optional uint32 size = 7;
}
message PackageInfo {
optional uint32 packageid = 1;
optional uint32 change_number = 2;
optional bool missing_token = 3;
optional bytes sha = 4;
optional bytes buffer = 5;
optional uint32 size = 6;
}
repeated .CMsgClientPICSProductInfoResponse.AppInfo apps = 1;
repeated uint32 unknown_appids = 2;
repeated .CMsgClientPICSProductInfoResponse.PackageInfo packages = 3;
repeated uint32 unknown_packageids = 4;
optional bool meta_data_only = 5;
optional bool response_pending = 6;
optional uint32 http_min_size = 7;
optional string http_host = 8;
}
message CMsgClientPICSAccessTokenRequest {
repeated uint32 packageids = 1;
repeated uint32 appids = 2;
}
message CMsgClientPICSAccessTokenResponse {
message PackageToken {
optional uint32 packageid = 1;
optional uint64 access_token = 2;
}
message AppToken {
optional uint32 appid = 1;
optional uint64 access_token = 2;
}
repeated .CMsgClientPICSAccessTokenResponse.PackageToken package_access_tokens = 1;
repeated uint32 package_denied_tokens = 2;
repeated .CMsgClientPICSAccessTokenResponse.AppToken app_access_tokens = 3;
repeated uint32 app_denied_tokens = 4;
}

6
protobufs/steammessages_clientserver_friends.proto

@ -151,6 +151,9 @@ message CMsgClientPersonaState {
optional uint32 watching_broadcast_appid = 75;
optional uint32 watching_broadcast_viewers = 76;
optional string watching_broadcast_title = 77;
optional bool is_community_banned = 78;
optional bool player_name_pending_review = 79;
optional bool avatar_pending_review = 80;
}
optional uint32 status_flags = 1;
@ -232,6 +235,7 @@ message CMsgClientEmoticonList {
optional uint32 time_last_used = 3;
optional uint32 use_count = 4;
optional uint32 time_received = 5;
optional uint32 appid = 6;
}
message Sticker {
@ -239,6 +243,8 @@ message CMsgClientEmoticonList {
optional int32 count = 2;
optional uint32 time_received = 3;
optional uint32 appid = 4;
optional uint32 time_last_used = 5;
optional uint32 use_count = 6;
}
message Effect {

158
protobufs/steammessages_clientserver_gameservers.proto

@ -0,0 +1,158 @@
syntax = "proto2";
import "steammessages_base.proto";
option optimize_for = SPEED;
option py_generic_services = false;
message CMsgGSServerType {
optional uint32 app_id_served = 1;
optional uint32 flags = 2;
optional uint32 deprecated_game_ip_address = 3;
optional uint32 game_port = 4;
optional string game_dir = 5;
optional string game_version = 6;
optional uint32 game_query_port = 7;
optional bytes sdr_logon = 8;
optional fixed32 fake_ip = 9;
}
message CMsgGSStatusReply {
optional bool is_secure = 1;
}
message CMsgGSPlayerList {
message Player {
optional uint64 steam_id = 1;
optional uint32 deprecated_public_ip = 2;
optional bytes token = 3;
optional .CMsgIPAddress public_ip = 4;
}
repeated .CMsgGSPlayerList.Player players = 1;
}
message CMsgGSUserPlaying {
optional fixed64 steam_id = 1;
optional uint32 deprecated_public_ip = 2;
optional bytes token = 3;
optional .CMsgIPAddress public_ip = 4;
}
message CMsgGSDisconnectNotice {
optional fixed64 steam_id = 1;
}
message CMsgGameServerData {
message Player {
optional fixed64 steam_id = 1;
}
optional uint32 revision = 24;
optional fixed64 steam_id_gs = 1;
optional uint32 query_port = 3;
optional uint32 game_port = 4;
optional uint32 spectator_port = 5;
optional string server_name = 22;
optional string game_description = 29;
optional string spectator_server_name = 27;
optional fixed32 fake_ip = 28;
optional uint32 app_id = 6;
optional string gamedir = 7;
optional string version = 8;
optional string product = 9;
optional string region = 10;
repeated .CMsgGameServerData.Player players = 11;
optional uint32 max_players = 12;
optional uint32 bot_count = 13;
optional bool password = 14;
optional bool secure = 15;
optional bool dedicated = 16;
optional string os = 17;
optional string game_data = 18;
optional string game_type = 20;
optional string map = 21;
}
message CMsgGameServerRemove {
optional fixed64 legacy_steam_id_gs = 1;
optional uint32 legacy_query_port = 3;
}
message CMsgClientGMSServerQuery {
optional uint32 app_id = 1;
optional uint32 geo_location_ip = 2;
optional uint32 region_code = 3;
optional string filter_text = 4;
optional uint32 max_servers = 5;
}
message CMsgGMSClientServerQueryResponse {
message Server {
optional uint32 deprecated_server_ip = 1;
optional uint32 query_port = 2;
optional uint32 auth_players = 3;
optional .CMsgIPAddress server_ip = 4;
optional fixed64 steam_id = 6;
optional uint32 revision = 7;
optional uint32 players = 8;
optional uint32 game_port = 9;
optional fixed32 sdr_popid = 10;
optional uint32 flags = 11;
optional uint32 app_id = 12;
optional uint32 max_players = 13;
optional uint32 bots = 14;
optional uint32 spectator_port = 15;
optional string gamedir_str = 16;
optional uint32 gamedir_strindex = 17;
optional string map_str = 18;
optional uint32 map_strindex = 19;
optional string name_str = 20;
optional uint32 name_strindex = 21;
optional string game_description_str = 22;
optional uint32 game_description_strindex = 23;
optional string version_str = 24;
optional uint32 version_strindex = 25;
optional string gametype_str = 26;
optional uint32 gametype_strindex = 27;
optional string spectator_name_str = 30;
optional uint32 spectator_name_strindex = 31;
}
enum EFlags {
k_EFlag_HasPassword = 1;
k_EFlag_Secure = 2;
}
repeated .CMsgGMSClientServerQueryResponse.Server servers = 1;
optional string error = 2;
optional .CMsgGMSClientServerQueryResponse.Server default_server_data = 3;
repeated string server_strings = 4;
}
message CMsgGameServerOutOfDate {
optional fixed64 steam_id_gs = 1;
optional bool reject = 2;
optional string message = 3;
}
message CMsgGSAssociateWithClan {
optional fixed64 steam_id_clan = 1;
}
message CMsgGSAssociateWithClanResponse {
optional fixed64 steam_id_clan = 1;
optional uint32 eresult = 2 [default = 2];
}
message CMsgGSComputeNewPlayerCompatibility {
optional fixed64 steam_id_candidate = 1;
}
message CMsgGSComputeNewPlayerCompatibilityResponse {
optional fixed64 steam_id_candidate = 1;
optional uint32 eresult = 2 [default = 2];
optional bool is_clan_member = 3;
optional int32 ct_dont_like_you = 4;
optional int32 ct_you_dont_like = 5;
optional int32 ct_clanmembers_dont_like_you = 6;
}

71
protobufs/steammessages_clientserver_lbs.proto

@ -0,0 +1,71 @@
syntax = "proto2";
import "steammessages_base.proto";
option optimize_for = SPEED;
option py_generic_services = false;
message CMsgClientLBSSetScore {
optional uint32 app_id = 1;
optional int32 leaderboard_id = 2;
optional int32 score = 3;
optional bytes details = 4;
optional int32 upload_score_method = 5;
}
message CMsgClientLBSSetScoreResponse {
optional int32 eresult = 1 [default = 2];
optional int32 leaderboard_entry_count = 2;
optional bool score_changed = 3;
optional int32 global_rank_previous = 4;
optional int32 global_rank_new = 5;
}
message CMsgClientLBSSetUGC {
optional uint32 app_id = 1;
optional int32 leaderboard_id = 2;
optional fixed64 ugc_id = 3;
}
message CMsgClientLBSSetUGCResponse {
optional int32 eresult = 1 [default = 2];
}
message CMsgClientLBSFindOrCreateLB {
optional uint32 app_id = 1;
optional int32 leaderboard_sort_method = 2;
optional int32 leaderboard_display_type = 3;
optional bool create_if_not_found = 4;
optional string leaderboard_name = 5;
}
message CMsgClientLBSFindOrCreateLBResponse {
optional int32 eresult = 1 [default = 2];
optional int32 leaderboard_id = 2;
optional int32 leaderboard_entry_count = 3;
optional int32 leaderboard_sort_method = 4 [default = 0];
optional int32 leaderboard_display_type = 5 [default = 0];
optional string leaderboard_name = 6;
}
message CMsgClientLBSGetLBEntries {
optional int32 app_id = 1;
optional int32 leaderboard_id = 2;
optional int32 range_start = 3;
optional int32 range_end = 4;
optional int32 leaderboard_data_request = 5;
repeated fixed64 steamids = 6;
}
message CMsgClientLBSGetLBEntriesResponse {
message Entry {
optional fixed64 steam_id_user = 1;
optional int32 global_rank = 2;
optional int32 score = 3;
optional bytes details = 4;
optional fixed64 ugc_id = 5;
}
optional int32 eresult = 1 [default = 2];
optional int32 leaderboard_entry_count = 2;
repeated .CMsgClientLBSGetLBEntriesResponse.Entry entries = 3;
}

5
protobufs/steammessages_clientserver_login.proto

@ -5,6 +5,7 @@ option optimize_for = SPEED;
option py_generic_services = false;
message CMsgClientHeartBeat {
optional bool send_reply = 1;
}
message CMsgClientServerTimestampRequest {
@ -77,6 +78,7 @@ message CMsgClientLogon {
optional string web_logon_nonce = 103;
optional int32 priority_reason = 104;
optional .CMsgClientSecret embedded_client_secret = 105;
optional bool disable_partner_autogrants = 106;
}
message CMsgClientLogonResponse {
@ -92,7 +94,7 @@ message CMsgClientLogonResponse {
optional int32 eresult_extended = 10;
optional string webapi_authenticate_user_nonce = 11;
optional uint32 cell_id_ping_threshold = 12;
optional bool use_pics = 13;
optional bool deprecated_use_pics = 13;
optional string vanity_url = 14;
optional .CMsgIPAddress public_ip = 15;
optional fixed64 client_supplied_steamid = 20;
@ -104,6 +106,7 @@ message CMsgClientLogonResponse {
optional int32 ogs_data_report_time_window = 26;
optional uint64 client_instance_id = 27;
optional bool force_client_update_check = 28;
optional string agreement_session_url = 29;
}
message CMsgClientRequestWebAPIAuthenticateUserNonce {

229
protobufs/steammessages_clientserver_mms.proto

@ -0,0 +1,229 @@
syntax = "proto2";
import "steammessages_base.proto";
option optimize_for = SPEED;
option py_generic_services = false;
enum EMMSLobbyStatus {
k_EMMSLobbyStatusInvalid = 0;
k_EMMSLobbyStatusExists = 1;
k_EMMSLobbyStatusDoesNotExist = 2;
k_EMMSLobbyStatusNotAMember = 3;
}
message CMsgClientMMSSetRatelimitPolicyOnClient {
optional uint32 app_id = 1;
optional bool enable_rate_limits = 2;
optional int32 seconds_per_message = 3;
optional int32 milliseconds_per_data_update = 4;
}
message CMsgClientMMSCreateLobby {
optional uint32 app_id = 1;
optional int32 max_members = 2;
optional int32 lobby_type = 3;
optional int32 lobby_flags = 4;
optional uint32 cell_id = 5;
optional uint32 deprecated_public_ip = 6;
optional bytes metadata = 7;
optional string persona_name_owner = 8;
optional .CMsgIPAddress public_ip = 9;
}
message CMsgClientMMSCreateLobbyResponse {
optional uint32 app_id = 1;
optional fixed64 steam_id_lobby = 2;
optional int32 eresult = 3 [default = 2];
}
message CMsgClientMMSJoinLobby {
optional uint32 app_id = 1;
optional fixed64 steam_id_lobby = 2;
optional string persona_name = 3;
}
message CMsgClientMMSJoinLobbyResponse {
message Member {
optional fixed64 steam_id = 1;
optional string persona_name = 2;
optional bytes metadata = 3;
}
optional uint32 app_id = 1;
optional fixed64 steam_id_lobby = 2;
optional int32 chat_room_enter_response = 3;
optional int32 max_members = 4;
optional int32 lobby_type = 5;
optional int32 lobby_flags = 6;
optional fixed64 steam_id_owner = 7;
optional bytes metadata = 8;
repeated .CMsgClientMMSJoinLobbyResponse.Member members = 9;
}
message CMsgClientMMSLeaveLobby {
optional uint32 app_id = 1;
optional fixed64 steam_id_lobby = 2;
}
message CMsgClientMMSLeaveLobbyResponse {
optional uint32 app_id = 1;
optional fixed64 steam_id_lobby = 2;
optional int32 eresult = 3 [default = 2];
}
message CMsgClientMMSGetLobbyList {
message Filter {
optional string key = 1;
optional string value = 2;
optional int32 comparision = 3;
optional int32 filter_type = 4;
}
optional uint32 app_id = 1;
optional int32 num_lobbies_requested = 3;
optional uint32 cell_id = 4;
optional uint32 deprecated_public_ip = 5;
repeated .CMsgClientMMSGetLobbyList.Filter filters = 6;
optional .CMsgIPAddress public_ip = 7;
}
message CMsgClientMMSGetLobbyListResponse {
message Lobby {
optional fixed64 steam_id = 1;
optional int32 max_members = 2;
optional int32 lobby_type = 3;
optional int32 lobby_flags = 4;
optional bytes metadata = 5;
optional int32 num_members = 6;
optional float distance = 7;
optional int64 weight = 8;
}
optional uint32 app_id = 1;
optional int32 eresult = 3 [default = 2];
repeated .CMsgClientMMSGetLobbyListResponse.Lobby lobbies = 4;
}
message CMsgClientMMSSetLobbyData {
optional uint32 app_id = 1;
optional fixed64 steam_id_lobby = 2;
optional fixed64 steam_id_member = 3;
optional int32 max_members = 4;
optional int32 lobby_type = 5;
optional int32 lobby_flags = 6;
optional bytes metadata = 7;
}
message CMsgClientMMSSetLobbyDataResponse {
optional uint32 app_id = 1;
optional fixed64 steam_id_lobby = 2;
optional int32 eresult = 3 [default = 2];
}
message CMsgClientMMSGetLobbyData {
optional uint32 app_id = 1;
optional fixed64 steam_id_lobby = 2;
}
message CMsgClientMMSLobbyData {
message Member {
optional fixed64 steam_id = 1;
optional string persona_name = 2;
optional bytes metadata = 3;
}
optional uint32 app_id = 1;
optional fixed64 steam_id_lobby = 2;
optional int32 num_members = 3;
optional int32 max_members = 4;
optional int32 lobby_type = 5;
optional int32 lobby_flags = 6;
optional fixed64 steam_id_owner = 7;
optional bytes metadata = 8;
repeated .CMsgClientMMSLobbyData.Member members = 9;
optional uint32 lobby_cellid = 10;
optional bool owner_should_accept_changes = 11;
}
message CMsgClientMMSSendLobbyChatMsg {
optional uint32 app_id = 1;
optional fixed64 steam_id_lobby = 2;
optional fixed64 steam_id_target = 3;
optional bytes lobby_message = 4;
}
message CMsgClientMMSLobbyChatMsg {
optional uint32 app_id = 1;
optional fixed64 steam_id_lobby = 2;
optional fixed64 steam_id_sender = 3;
optional bytes lobby_message = 4;
}
message CMsgClientMMSSetLobbyOwner {
optional uint32 app_id = 1;
optional fixed64 steam_id_lobby = 2;
optional fixed64 steam_id_new_owner = 3;
}
message CMsgClientMMSSetLobbyOwnerResponse {
optional uint32 app_id = 1;
optional fixed64 steam_id_lobby = 2;
optional int32 eresult = 3 [default = 2];
}
message CMsgClientMMSSetLobbyLinked {
optional uint32 app_id = 1;
optional fixed64 steam_id_lobby = 2;
optional fixed64 steam_id_lobby2 = 3;
}
message CMsgClientMMSSetLobbyGameServer {
optional uint32 app_id = 1;
optional fixed64 steam_id_lobby = 2;
optional uint32 deprecated_game_server_ip = 3;
optional uint32 game_server_port = 4;
optional fixed64 game_server_steam_id = 5;
optional .CMsgIPAddress game_server_ip = 6;
}
message CMsgClientMMSLobbyGameServerSet {
optional uint32 app_id = 1;
optional fixed64 steam_id_lobby = 2;
optional uint32 deprecated_game_server_ip = 3;
optional uint32 game_server_port = 4;
optional fixed64 game_server_steam_id = 5;
optional .CMsgIPAddress game_server_ip = 6;
}
message CMsgClientMMSUserJoinedLobby {
optional uint32 app_id = 1;
optional fixed64 steam_id_lobby = 2;
optional fixed64 steam_id_user = 3;
optional string persona_name = 4;
}
message CMsgClientMMSUserLeftLobby {
optional uint32 app_id = 1;
optional fixed64 steam_id_lobby = 2;
optional fixed64 steam_id_user = 3;
optional string persona_name = 4;
}
message CMsgClientMMSInviteToLobby {
optional uint32 app_id = 1;
optional fixed64 steam_id_lobby = 2;
optional fixed64 steam_id_user_invited = 3;
}
message CMsgClientMMSGetLobbyStatus {
optional uint32 app_id = 1;
optional fixed64 steam_id_lobby = 2;
optional bool claim_membership = 3;
optional bool claim_ownership = 4;
}
message CMsgClientMMSGetLobbyStatusResponse {
optional uint32 app_id = 1;
optional fixed64 steam_id_lobby = 2;
optional .EMMSLobbyStatus lobby_status = 3 [default = k_EMMSLobbyStatusInvalid];
}

203
protobufs/steammessages_clientserver_ucm.proto

@ -0,0 +1,203 @@
syntax = "proto2";
import "steammessages_base.proto";
option optimize_for = SPEED;
option py_generic_services = false;
message CMsgClientUCMAddScreenshot {
message Tag {
optional string tag_name = 1;
optional string tag_value = 2;
}
optional uint32 appid = 1;
optional string filename = 2;
optional string thumbname = 3;
optional string vr_filename = 14;
optional fixed32 rtime32_created = 4;
optional uint32 width = 5;
optional uint32 height = 6;
optional uint32 permissions = 7;
optional string caption = 8;
optional string shortcut_name = 9;
repeated .CMsgClientUCMAddScreenshot.Tag tag = 10;
repeated fixed64 tagged_steamid = 11;
optional bool spoiler_tag = 12;
repeated uint64 tagged_publishedfileid = 13;
}
message CMsgClientUCMAddScreenshotResponse {
optional int32 eresult = 1 [default = 2];
optional fixed64 screenshotid = 2 [default = 18446744073709551615];
}
message CMsgClientUCMDeleteScreenshot {
optional fixed64 screenshotid = 1 [default = 18446744073709551615];
}
message CMsgClientUCMDeleteScreenshotResponse {
optional int32 eresult = 1 [default = 2];
}
message CMsgClientUCMPublishFile {
optional uint32 app_id = 1;
optional string file_name = 2;
optional string preview_file_name = 3;
optional uint32 consumer_app_id = 4;
optional string title = 5;
optional string description = 6;
repeated string tags = 8;
optional bool workshop_file = 9;
optional int32 visibility = 10;
optional uint32 file_type = 11;
optional string url = 12;
optional uint32 video_provider = 13;
optional string video_account_name = 14;
optional string video_identifier = 15;
optional bool in_progress = 16;
}
message CMsgClientUCMPublishFileResponse {
optional int32 eresult = 1 [default = 2];
optional fixed64 published_file_id = 2 [default = 18446744073709551615];
optional bool needs_workshop_legal_agreement_acceptance = 3 [default = false];
}
message CMsgClientUCMUpdatePublishedFile {
message KeyValueTag {
optional string key = 1;
optional string value = 2;
}
message AdditionalPreview {
optional string original_file_name = 1;
optional string internal_file_name = 2;
optional string videoid = 3;
optional uint32 preview_type = 4;
optional int32 update_index = 5 [default = -1];
}
optional uint32 app_id = 1;
optional fixed64 published_file_id = 2;
optional string file_name = 3;
optional string preview_file_name = 4;
optional string title = 5;
optional string description = 6;
repeated string tags = 7;
optional int32 visibility = 8;
optional bool update_file = 9;
optional bool update_preview_file = 10;
optional bool update_title = 11;
optional bool update_description = 12;
optional bool update_tags = 13;
optional bool update_visibility = 14;
optional string change_description = 15;
optional bool update_url = 16;
optional string url = 17;
optional bool update_content_manifest = 18;
optional fixed64 content_manifest = 19;
optional string metadata = 20;
optional bool update_metadata = 21;
optional int32 language = 22 [default = 0];
repeated string removed_kvtags = 23;
repeated .CMsgClientUCMUpdatePublishedFile.KeyValueTag kvtags = 24;
repeated .CMsgClientUCMUpdatePublishedFile.AdditionalPreview previews = 25;
repeated int32 previews_to_remove = 26;
optional bool clear_in_progress = 27;
optional bool remove_all_kvtags = 28;
}
message CMsgClientUCMUpdatePublishedFileResponse {
optional int32 eresult = 1 [default = 2];
optional bool needs_workshop_legal_agreement_acceptance = 2 [default = false];
}
message CMsgClientUCMDeletePublishedFile {
optional fixed64 published_file_id = 1;
optional uint32 app_id = 2;
}
message CMsgClientUCMDeletePublishedFileResponse {
optional int32 eresult = 1 [default = 2];
}
message CMsgClientUCMEnumerateUserSubscribedFilesWithUpdates {
optional uint32 app_id = 1;
optional uint32 start_index = 2;
optional fixed32 start_time = 3;
optional uint32 desired_revision = 4 [default = 0];
}
message CMsgClientUCMEnumerateUserSubscribedFilesWithUpdatesResponse {
message PublishedFileId {
optional fixed64 published_file_id = 1;
optional fixed32 rtime32_subscribed = 2 [default = 0];
optional uint32 appid = 3;
optional fixed64 file_hcontent = 4;
optional uint32 file_size = 5;
optional fixed32 rtime32_last_updated = 6;
optional bool is_depot_content = 7;
}
optional int32 eresult = 1 [default = 2];
repeated .CMsgClientUCMEnumerateUserSubscribedFilesWithUpdatesResponse.PublishedFileId subscribed_files = 2;
optional uint32 total_results = 3;
}
message CMsgClientUCMPublishedFileUpdated {
optional fixed64 published_file_id = 1;
optional uint32 app_id = 2;
optional uint32 time_updated = 3;
optional fixed64 hcontent = 4;
optional fixed32 file_size = 5;
optional bool is_depot_content = 6;
optional uint32 revision = 7;
}
message CMsgClientWorkshopItemChangesRequest {
optional uint32 app_id = 1;
optional uint32 last_time_updated = 2;
optional uint32 num_items_needed = 3;
}
message CMsgClientWorkshopItemChangesResponse {
message WorkshopItemInfo {
optional fixed64 published_file_id = 1;
optional uint32 time_updated = 2;
optional fixed64 manifest_id = 3;
}
optional int32 eresult = 1 [default = 2];
optional uint32 update_time = 2;
repeated .CMsgClientWorkshopItemChangesResponse.WorkshopItemInfo workshop_items = 5;
}
message CMsgClientUCMSetUserPublishedFileAction {
optional fixed64 published_file_id = 1;
optional uint32 app_id = 2;
optional int32 action = 3;
}
message CMsgClientUCMSetUserPublishedFileActionResponse {
optional int32 eresult = 1 [default = 2];
}
message CMsgClientUCMEnumeratePublishedFilesByUserAction {
optional uint32 app_id = 1;
optional uint32 start_index = 2;
optional int32 action = 3;
}
message CMsgClientUCMEnumeratePublishedFilesByUserActionResponse {
message PublishedFileId {
optional fixed64 published_file_id = 1;
optional fixed32 rtime_time_stamp = 2 [default = 0];
}
optional int32 eresult = 1 [default = 2];
repeated .CMsgClientUCMEnumeratePublishedFilesByUserActionResponse.PublishedFileId published_files = 2;
optional uint32 total_results = 3;
}
message CMsgClientScreenshotsChanged {
}

105
protobufs/steammessages_clientserver_uds.proto

@ -0,0 +1,105 @@
syntax = "proto2";
import "steammessages_base.proto";
option optimize_for = SPEED;
option py_generic_services = false;
message CMsgClientUDSP2PSessionStarted {
optional fixed64 steamid_remote = 1;
optional int32 appid = 2;
}
message CMsgClientUDSP2PSessionEnded {
optional fixed64 steamid_remote = 1;
optional int32 appid = 2;
optional int32 session_length_sec = 3;
optional int32 session_error = 4;
optional int32 nattype = 5;
optional int32 bytes_recv = 6;
optional int32 bytes_sent = 7;
optional int32 bytes_sent_relay = 8;
optional int32 bytes_recv_relay = 9;
optional int32 time_to_connect_ms = 10;
}
message CMsgClientGetClientDetails {
}
message CMsgClientGetClientDetailsResponse {
message Game {
optional uint32 appid = 1;
optional string extra_info = 2;
optional uint32 time_running_sec = 3;
}
optional uint32 package_version = 1;
optional uint32 protocol_version = 8;
optional string os = 2;
optional string machine_name = 3;
optional string ip_public = 4;
optional string ip_private = 5;
optional uint64 bytes_available = 7;
repeated .CMsgClientGetClientDetailsResponse.Game games_running = 6;
}
message CMsgClientGetClientAppList {
optional bool media = 1;
optional bool tools = 2;
optional bool games = 3;
optional bool only_installed = 4;
optional bool only_changing = 5;
optional bool comics = 6;
}
message CMsgClientGetClientAppListResponse {
message App {
message DLC {
optional uint32 appid = 1;
optional bool installed = 2;
}
optional uint32 appid = 1;
optional string category = 2;
optional string app_type = 10;
optional bool favorite = 3;
optional bool installed = 4;
optional bool auto_update = 5;
optional uint64 bytes_downloaded = 6;
optional uint64 bytes_needed = 7;
optional uint32 bytes_download_rate = 8;
optional bool download_paused = 11;
optional uint32 num_downloading = 12;
optional uint32 num_paused = 13;
optional bool changing = 14;
optional bool available_on_platform = 15;
repeated .CMsgClientGetClientAppListResponse.App.DLC dlcs = 9;
}
repeated .CMsgClientGetClientAppListResponse.App apps = 1;
optional uint64 bytes_available = 2;
}
message CMsgClientInstallClientApp {
optional uint32 appid = 1;
}
message CMsgClientInstallClientAppResponse {
optional uint32 result = 1;
}
message CMsgClientUninstallClientApp {
optional uint32 appid = 1;
}
message CMsgClientUninstallClientAppResponse {
optional uint32 result = 1;
}
message CMsgClientSetClientAppUpdateState {
optional uint32 appid = 1;
optional bool update = 2;
}
message CMsgClientSetClientAppUpdateStateResponse {
optional uint32 result = 1;
}

173
protobufs/steammessages_clientserver_ufs.proto

@ -0,0 +1,173 @@
syntax = "proto2";
import "steammessages_base.proto";
option optimize_for = SPEED;
option py_generic_services = false;
message CMsgClientUFSUploadFileRequest {
optional uint32 app_id = 1;
optional uint32 file_size = 2;
optional uint32 raw_file_size = 3;
optional bytes sha_file = 4;
optional uint64 time_stamp = 5;
optional string file_name = 6;
optional uint32 platforms_to_sync_deprecated = 7;
optional uint32 platforms_to_sync = 8 [default = 4294967295];
optional uint32 cell_id = 9;
optional bool can_encrypt = 10;
}
message CMsgClientUFSUploadFileResponse {
optional int32 eresult = 1 [default = 2];
optional bytes sha_file = 2;
optional bool use_http = 3;
optional string http_host = 4;
optional string http_url = 5;
optional bytes kv_headers = 6;
optional bool use_https = 7;
optional bool encrypt_file = 8;
}
message CMsgClientUFSUploadCommit {
message File {
optional int32 eresult = 1 [default = 2];
optional uint32 app_id = 2;
optional bytes sha_file = 3;
optional uint32 cub_file = 4;
optional string file_name = 5;
}
repeated .CMsgClientUFSUploadCommit.File files = 1;
}
message CMsgClientUFSUploadCommitResponse {
message File {
optional int32 eresult = 1 [default = 2];
optional uint32 app_id = 2;
optional bytes sha_file = 3;
}
repeated .CMsgClientUFSUploadCommitResponse.File files = 1;
}
message CMsgClientUFSFileChunk {
optional bytes sha_file = 1;
optional uint32 file_start = 2;
optional bytes data = 3;
}
message CMsgClientUFSTransferHeartbeat {
}
message CMsgClientUFSUploadFileFinished {
optional int32 eresult = 1 [default = 2];
optional bytes sha_file = 2;
}
message CMsgClientUFSDeleteFileRequest {
optional uint32 app_id = 1;
optional string file_name = 2;
optional bool is_explicit_delete = 3;
}
message CMsgClientUFSDeleteFileResponse {
optional int32 eresult = 1 [default = 2];
optional string file_name = 2;
}
message CMsgClientUFSGetFileListForApp {
repeated uint32 apps_to_query = 1;
optional bool send_path_prefixes = 2;
}
message CMsgClientUFSGetFileListForAppResponse {
option (msgpool_soft_limit) = 8;
option (msgpool_hard_limit) = 16;
message File {
optional uint32 app_id = 1;
optional string file_name = 2;
optional bytes sha_file = 3;
optional uint64 time_stamp = 4;
optional uint32 raw_file_size = 5;
optional bool is_explicit_delete = 6;
optional uint32 platforms_to_sync = 7;
optional uint32 path_prefix_index = 8;
}
repeated .CMsgClientUFSGetFileListForAppResponse.File files = 1;
repeated string path_prefixes = 2;
}
message CMsgClientUFSDownloadRequest {
optional uint32 app_id = 1;
optional string file_name = 2;
optional bool can_handle_http = 3;
}
message CMsgClientUFSDownloadResponse {
optional int32 eresult = 1 [default = 2];
optional uint32 app_id = 2;
optional uint32 file_size = 3;
optional uint32 raw_file_size = 4;
optional bytes sha_file = 5;
optional uint64 time_stamp = 6;
optional bool is_explicit_delete = 7;
optional bool use_http = 8;
optional string http_host = 9;
optional string http_url = 10;
optional bytes kv_headers = 11;
optional bool use_https = 12;
optional bool encrypted = 13;
}
message CMsgClientUFSLoginRequest {
optional uint32 protocol_version = 1;
optional uint64 am_session_token = 2;
repeated uint32 apps = 3;
}
message CMsgClientUFSLoginResponse {
optional int32 eresult = 1 [default = 2];
}
message CMsgClientUFSGetUGCDetails {
optional fixed64 hcontent = 1 [default = 18446744073709551615];
}
message CMsgClientUFSGetUGCDetailsResponse {
optional int32 eresult = 1 [default = 2];
optional string url = 2;
optional uint32 app_id = 3;
optional string filename = 4;
optional fixed64 steamid_creator = 5;
optional uint32 file_size = 6;
optional uint32 compressed_file_size = 7;
optional string rangecheck_host = 8;
optional string file_encoded_sha1 = 9;
}
message CMsgClientUFSGetSingleFileInfo {
optional uint32 app_id = 1;
optional string file_name = 2;
}
message CMsgClientUFSGetSingleFileInfoResponse {
optional int32 eresult = 1 [default = 2];
optional uint32 app_id = 2;
optional string file_name = 3;
optional bytes sha_file = 4;
optional uint64 time_stamp = 5;
optional uint32 raw_file_size = 6;
optional bool is_explicit_delete = 7;
}
message CMsgClientUFSShareFile {
optional uint32 app_id = 1;
optional string file_name = 2;
}
message CMsgClientUFSShareFileResponse {
optional int32 eresult = 1 [default = 2];
optional fixed64 hcontent = 2 [default = 18446744073709551615];
}

81
protobufs/steammessages_clientserver_userstats.proto

@ -0,0 +1,81 @@
syntax = "proto2";
import "steammessages_base.proto";
option optimize_for = SPEED;
option py_generic_services = false;
message CMsgClientGetUserStats {
optional fixed64 game_id = 1;
optional uint32 crc_stats = 2;
optional int32 schema_local_version = 3;
optional fixed64 steam_id_for_user = 4;
}
message CMsgClientGetUserStatsResponse {
message Stats {
optional uint32 stat_id = 1;
optional uint32 stat_value = 2;
}
message Achievement_Blocks {
optional uint32 achievement_id = 1;
repeated fixed32 unlock_time = 2;
}
optional fixed64 game_id = 1;
optional int32 eresult = 2 [default = 2];
optional uint32 crc_stats = 3;
optional bytes schema = 4;
repeated .CMsgClientGetUserStatsResponse.Stats stats = 5;
repeated .CMsgClientGetUserStatsResponse.Achievement_Blocks achievement_blocks = 6;
}
message CMsgClientStoreUserStatsResponse {
message Stats_Failed_Validation {
optional uint32 stat_id = 1;
optional uint32 reverted_stat_value = 2;
}
optional fixed64 game_id = 1;
optional int32 eresult = 2 [default = 2];
optional uint32 crc_stats = 3;
repeated .CMsgClientStoreUserStatsResponse.Stats_Failed_Validation stats_failed_validation = 4;
optional bool stats_out_of_date = 5;
}
message CMsgClientStoreUserStats2 {
message Stats {
optional uint32 stat_id = 1;
optional uint32 stat_value = 2;
}
optional fixed64 game_id = 1;
optional fixed64 settor_steam_id = 2;
optional fixed64 settee_steam_id = 3;
optional uint32 crc_stats = 4;
optional bool explicit_reset = 5;
repeated .CMsgClientStoreUserStats2.Stats stats = 6;
}
message CMsgClientStatsUpdated {
message Updated_Stats {
optional uint32 stat_id = 1;
optional uint32 stat_value = 2;
}
optional fixed64 steam_id = 1;
optional fixed64 game_id = 2;
optional uint32 crc_stats = 3;
repeated .CMsgClientStatsUpdated.Updated_Stats updated_stats = 4;
}
message CMsgClientStoreUserStats {
message Stats_To_Store {
optional uint32 stat_id = 1;
optional uint32 stat_value = 2;
}
optional fixed64 game_id = 1;
optional bool explicit_reset = 2;
repeated .CMsgClientStoreUserStats.Stats_To_Store stats_to_store = 3;
}

182
protobufs/steammessages_cloud.proto

@ -1,5 +1,7 @@
syntax = "proto2";
import "steammessages_unified_base.proto";
import "enums.proto";
import "steammessages_client_objects.proto";
option py_generic_services = true;
@ -20,6 +22,7 @@ message CCloud_BeginHTTPUpload_Request {
repeated string platforms_to_sync = 6 [(description) = "Array of string specifying which platforms to sync; value values: all, Windows, MacOS, linux, Switch, iPhoneOS, Android."];
repeated string request_headers_names = 7 [(description) = "Names for headers you'll want to set on your upload request. May be left blank."];
repeated string request_headers_values = 8 [(description) = "Values for headers you'll want to set on your upload request. The number of names must equal the number of values."];
optional uint64 upload_batch_id = 9 [(description) = "ID of this batch returned by prior BeginAppUploadBatch call."];
}
message CCloud_BeginHTTPUpload_Response {
@ -47,6 +50,39 @@ message CCloud_CommitHTTPUpload_Response {
optional bool file_committed = 1 [(description) = "True if the file was successfully committed, false otherwise."];
}
message CCloud_BeginUGCUpload_Request {
optional uint32 appid = 1 [(description) = "App ID this UGC belongs to."];
optional uint32 file_size = 2 [(description) = "File size in bytes."];
optional string filename = 3 [(description) = "Name of the file."];
optional string file_sha = 4 [(description) = "Hex string (40 digits) representing the SHA1 digest of the file."];
optional string content_type = 5 [(description) = "MIME content type of the file"];
}
message CCloud_BeginUGCUpload_Response {
message HTTPHeaders {
optional string name = 1;
optional string value = 2;
}
optional .EPublishedFileStorageSystem storage_system = 1 [default = k_EPublishedFileStorageSystemInvalid, (description) = "UGC Storage system chosen for this file"];
optional fixed64 ugcid = 2 [(description) = "UGC ID of the uploaded file."];
optional fixed32 timestamp = 3 [(description) = "Server timestamp of file."];
optional string url_host = 4 [(description) = "Host name of server to which file should be uploaded via HTTP PUT."];
optional string url_path = 5 [(description) = "Relative path on server to which file should be uploaded."];
optional bool use_https = 6 [(description) = "If true, use https, otherwise use http."];
repeated .CCloud_BeginUGCUpload_Response.HTTPHeaders request_headers = 7 [(description) = "Name-value pairs to be sent in HTTP PUT request."];
}
message CCloud_CommitUGCUpload_Request {
optional bool transfer_succeeded = 1 [(description) = "True if the HTTP PUT to the upload URL succeeded (URL provided in response to Cloud.BeginUGCUpload), false if a failure occurred."];
optional uint32 appid = 2 [(description) = "App ID for which the file is being uploaded. Must match the app ID provided to Cloud.BeginUGCUpload."];
optional fixed64 ugcid = 3 [(description) = "UGC ID of the uploaded file."];
}
message CCloud_CommitUGCUpload_Response {
optional bool file_committed = 1 [(description) = "True if the file was successfully committed, false otherwise."];
}
message CCloud_GetFileDetails_Request {
optional uint64 ugcid = 1 [(description) = "ID of the Cloud file to get details for."];
optional uint32 appid = 2 [(description) = "App ID the file belongs to."];
@ -84,6 +120,7 @@ message CCloud_EnumerateUserFiles_Response {
message CCloud_Delete_Request {
optional string filename = 1;
optional uint32 appid = 2 [(description) = "App ID the file belongs to."];
optional uint64 upload_batch_id = 3 [(description) = "ID of this batch returned by prior BeginAppUploadBatch call."];
}
message CCloud_Delete_Response {
@ -122,6 +159,34 @@ message CCloud_ExternalStorageTransferReport_Notification {
optional bool ipv6_remote = 12;
}
message CCloud_BeginAppUploadBatch_Request {
optional uint32 appid = 1 [(description) = "App ID for this batch is for."];
optional string machine_name = 2 [(description) = "Client machine name (may be user's alias)."];
repeated string files_to_upload = 3 [(description) = "Filenames of files to upload in this batch"];
repeated string files_to_delete = 4 [(description) = "Filenames of files to delete in this batch"];
optional uint64 client_id = 5 [(description) = "Client ID number"];
}
message CCloud_BeginAppUploadBatch_Response {
optional uint64 batch_id = 1 [(description) = "ID of this batch."];
optional uint64 app_change_number = 4 [(description) = "New App Change Number"];
}
message CCloud_CompleteAppUploadBatch_Notification {
optional uint32 appid = 1 [(description) = "App ID for this batch is for."];
optional uint64 batch_id = 2 [(description) = "ID of this batch."];
optional uint32 batch_eresult = 3 [(description) = "result of this batch."];
}
message CCloud_CompleteAppUploadBatch_Request {
optional uint32 appid = 1 [(description) = "App ID for this batch is for."];
optional uint64 batch_id = 2 [(description) = "ID of this batch."];
optional uint32 batch_eresult = 3 [(description) = "result of this batch."];
}
message CCloud_CompleteAppUploadBatch_Response {
}
message CCloud_ClientBeginFileUpload_Request {
optional uint32 appid = 1 [(description) = "App ID for which the file is being uploaded."];
optional uint32 file_size = 2 [(description) = "file size as transmitted and stored in Cloud."];
@ -133,7 +198,8 @@ message CCloud_ClientBeginFileUpload_Request {
optional uint32 cell_id = 9 [(description) = "Client's cell ID so we can pick storage location."];
optional bool can_encrypt = 10 [(description) = "if true, client can encrypt the file before uploading it"];
optional bool is_shared_file = 11 [(description) = "if true, this is going to be UGC or a screenshot or some other shared file"];
optional uint32 realm = 12 [(description) = "Steam Realm"];
optional uint32 deprecated_realm = 12 [(description) = "unused"];
optional uint64 upload_batch_id = 13 [(description) = "ID of this batch."];
}
message ClientCloudFileUploadBlockDetails {
@ -198,6 +264,7 @@ message CCloud_ClientDeleteFile_Request {
optional uint32 appid = 1 [(description) = "App ID for which the file is being deleted."];
optional string filename = 2 [(description) = "Filename of file."];
optional bool is_explicit_delete = 3 [(description) = "If true, this is a 'delete'; if false, it is a 'forget'"];
optional uint64 upload_batch_id = 4 [(description) = "ID of this batch."];
}
message CCloud_ClientDeleteFile_Response {
@ -221,6 +288,70 @@ message CCloud_EnumerateUserApps_Response {
repeated .CCloud_EnumerateUserApps_Response.Apps apps = 1;
}
message CCloud_GetAppFileChangelist_Request {
optional uint32 appid = 1 [(description) = "App ID"];
optional uint64 synced_change_number = 2 [(description) = "Change Number to which local machine was last successfully synced"];
}
message CCloud_AppFileInfo {
optional string file_name = 1 [(description) = "unqualified filename"];
optional bytes sha_file = 2 [(description) = "SHA of file"];
optional uint64 time_stamp = 3 [(description) = "server timestamp of last modification"];
optional uint32 raw_file_size = 4 [(description) = "size of raw file"];
optional .ECloudStoragePersistState persist_state = 5 [default = k_ECloudStoragePersistStatePersisted, (description) = "current persist state of the file"];
optional uint32 platforms_to_sync = 6 [(description) = "ERemoteStoragePlatform bits"];
optional uint32 path_prefix_index = 7 [(description) = "index into string table of path prefixes"];
optional uint32 machine_name_index = 8 [(description) = "what machine last modified this file"];
}
message CCloud_GetAppFileChangelist_Response {
optional uint64 current_change_number = 1 [(description) = "Change Number current on server"];
repeated .CCloud_AppFileInfo files = 2 [(description) = "List of files; may be the full list of extant/deleted files, or just a delta from the client list"];
optional bool is_only_delta = 3 [(description) = "If true, 'files' omits any files that have not changed since client's change ID"];
repeated string path_prefixes = 4 [(description) = "string table of path prefixes"];
repeated string machine_names = 5 [(description) = "string table of machine names"];
}
message CCloud_AppSessionSuspend_Request {
optional uint32 appid = 1;
optional uint64 client_id = 2;
optional string machine_name = 3;
optional bool cloud_sync_completed = 4;
}
message CCloud_AppSessionSuspend_Response {
}
message CCloud_AppSessionResume_Request {
optional uint32 appid = 1;
optional uint64 client_id = 2;
}
message CCloud_AppSessionResume_Response {
}
message CCloud_AppLaunchIntent_Request {
optional uint32 appid = 1;
optional uint64 client_id = 2;
optional string machine_name = 3;
optional bool ignore_pending_operations = 4;
}
message CCloud_AppLaunchIntent_Response {
repeated .CCloud_PendingRemoteOperation pending_remote_operations = 1 [(description) = "pending remote operations you should be aware of"];
}
message CCloud_AppExitSyncDone_Notification {
optional uint32 appid = 1;
optional uint64 client_id = 2;
optional bool uploads_completed = 3;
}
message CCloud_AppCloudStateChange_Notification {
optional uint32 appid = 1 [(description) = "App which has had a change in cloud state"];
optional uint64 app_change_number = 2 [(description) = "New App Change Number"];
}
service Cloud {
option (service_description) = "A service for Steam Cloud operations.";
@ -236,6 +367,14 @@ service Cloud {
option (method_description) = "Commits a file upload initiated by BeginHTTPUpload and transferred via HTTP PUT.";
}
rpc BeginUGCUpload (.CCloud_BeginUGCUpload_Request) returns (.CCloud_BeginUGCUpload_Response) {
option (method_description) = "Begins the process of uploading a file to Steam external storage services. File should be uploaded via HTTP PUT to the returned URL, after which the upload must be finalized by a call to CommitHTTPUpload.";
}
rpc CommitUGCUpload (.CCloud_CommitUGCUpload_Request) returns (.CCloud_CommitUGCUpload_Response) {
option (method_description) = "Commits a file upload initiated by BeginUGCUpload and transferred via HTTP PUT.";
}
rpc GetFileDetails (.CCloud_GetFileDetails_Request) returns (.CCloud_GetFileDetails_Response) {
option (method_description) = "Returns details on a Cloud file.";
}
@ -260,6 +399,18 @@ service Cloud {
option (method_description) = "Reports the result of an external Cloud storage transfer.";
}
rpc BeginAppUploadBatch (.CCloud_BeginAppUploadBatch_Request) returns (.CCloud_BeginAppUploadBatch_Response) {
option (method_description) = "Indicate a batch of files that will be uploaded / deleted for an app.";
}
rpc CompleteAppUploadBatch (.CCloud_CompleteAppUploadBatch_Notification) returns (.NoResponse) {
option (method_description) = "Indicate that the batch is complete or being stopped for some other reason.";
}
rpc CompleteAppUploadBatchBlocking (.CCloud_CompleteAppUploadBatch_Request) returns (.CCloud_CompleteAppUploadBatch_Response) {
option (method_description) = "Indicate that the batch is complete or being stopped for some other reason.";
}
rpc ClientBeginFileUpload (.CCloud_ClientBeginFileUpload_Request) returns (.CCloud_ClientBeginFileUpload_Response) {
option (method_description) = "Initiate an upload to Cloud.";
}
@ -283,4 +434,33 @@ service Cloud {
rpc EnumerateUserApps (.CCloud_EnumerateUserApps_Request) returns (.CCloud_EnumerateUserApps_Response) {
option (method_description) = "Enumerates apps stroing cloud files for a user.";
}
rpc GetAppFileChangelist (.CCloud_GetAppFileChangelist_Request) returns (.CCloud_GetAppFileChangelist_Response) {
option (method_description) = "Get a list of Cloud file changes for an app given a starting Change Number.";
}
rpc SuspendAppSession (.CCloud_AppSessionSuspend_Request) returns (.CCloud_AppSessionSuspend_Response) {
option (method_description) = "An app session is being suspended";
}
rpc ResumeAppSession (.CCloud_AppSessionResume_Request) returns (.CCloud_AppSessionResume_Response) {
option (method_description) = "An app session is being resumed";
}
rpc SignalAppLaunchIntent (.CCloud_AppLaunchIntent_Request) returns (.CCloud_AppLaunchIntent_Response) {
option (method_description) = "Client intends to launch an app";
}
rpc SignalAppExitSyncDone (.CCloud_AppExitSyncDone_Notification) returns (.NoResponse) {
option (method_description) = "Client is done trying to sync after a game session";
}
}
service CloudClient {
option (service_description) = "Client notifications for Steam cloud events";
option (service_execution_site) = k_EProtoExecutionSiteSteamClient;
rpc NotifyAppStateChange (.CCloud_AppCloudStateChange_Notification) returns (.NoResponse) {
option (method_description) = "Cloud state for the given app has changed.";
}
}

77
protobufs/steammessages_contentsystem.proto

@ -0,0 +1,77 @@
syntax = "proto2";
import "steammessages_unified_base.proto";
option py_generic_services = true;
message CContentServerDirectory_GetServersForSteamPipe_Request {
optional uint32 cell_id = 1 [(description) = "client Cell ID"];
optional uint32 max_servers = 2 [default = 20, (description) = "max servers in response list"];
optional string ip_override = 3 [(description) = "client IP address"];
optional int32 launcher_type = 4 [default = 0, (description) = "launcher type"];
optional string ipv6_public = 5 [(description) = "client public ipv6 address if it knows it"];
}
message CContentServerDirectory_ServerInfo {
optional string type = 1;
optional int32 source_id = 2;
optional int32 cell_id = 3;
optional int32 load = 4;
optional float weighted_load = 5;
optional int32 num_entries_in_client_list = 6;
optional bool steam_china_only = 7;
optional string host = 8;
optional string vhost = 9;
optional bool use_as_proxy = 10;
optional string proxy_request_path_template = 11;
optional string https_support = 12;
repeated uint32 allowed_app_ids = 13;
optional bool preferred_server = 14;
}
message CContentServerDirectory_GetServersForSteamPipe_Response {
repeated .CContentServerDirectory_ServerInfo servers = 1;
}
message CContentServerDirectory_GetDepotPatchInfo_Request {
optional uint32 appid = 1;
optional uint32 depotid = 2;
optional uint64 source_manifestid = 3;
optional uint64 target_manifestid = 4;
}
message CContentServerDirectory_GetDepotPatchInfo_Response {
optional bool is_available = 1;
optional uint64 patch_size = 2;
optional uint64 patched_chunks_size = 3;
}
message CContentServerDirectory_GetClientUpdateHosts_Request {
optional string cached_signature = 1;
}
message CContentServerDirectory_GetClientUpdateHosts_Response {
optional string hosts_kv = 1;
optional uint64 valid_until_time = 2;
optional string ip_country = 3;
}
message CContentServerDirectory_GetManifestRequestCode_Request {
optional uint32 app_id = 1;
optional uint32 depot_id = 2;
optional uint64 manifest_id = 3;
optional string app_branch = 4;
optional string branch_password_hash = 5;
}
message CContentServerDirectory_GetManifestRequestCode_Response {
optional uint64 manifest_request_code = 1;
}
service ContentServerDirectory {
option (service_description) = "Content Server and CDN directory";
rpc GetServersForSteamPipe (.CContentServerDirectory_GetServersForSteamPipe_Request) returns (.CContentServerDirectory_GetServersForSteamPipe_Response);
rpc GetDepotPatchInfo (.CContentServerDirectory_GetDepotPatchInfo_Request) returns (.CContentServerDirectory_GetDepotPatchInfo_Response);
rpc GetClientUpdateHosts (.CContentServerDirectory_GetClientUpdateHosts_Request) returns (.CContentServerDirectory_GetClientUpdateHosts_Response);
rpc GetManifestRequestCode (.CContentServerDirectory_GetManifestRequestCode_Request) returns (.CContentServerDirectory_GetManifestRequestCode_Response);
}

13
protobufs/steammessages_credentials.proto

@ -1,5 +1,6 @@
syntax = "proto2";
import "steammessages_unified_base.proto";
import "steammessages_base.proto";
option py_generic_services = true;
@ -17,18 +18,20 @@ message CCredentials_GetSteamGuardDetails_Request {
optional bool include_new_authentications = 1 [default = true, (description) = "Whether or not to populate the newauthentication field in the response"];
optional string webcookie = 2 [(description) = "The user's Steam Guard machine auth cookie. If present, it'll be used to get the user's machine ID instead of the AM session."];
optional fixed32 timestamp_minimum_wanted = 3;
optional int32 ipaddress = 4;
optional int32 deprecated_ipaddress = 4;
optional .CMsgIPAddress ip_address = 5;
}
message CCredentials_GetSteamGuardDetails_Response {
message NewAuthentication {
optional fixed32 timestamp_steamguard_enabled = 1;
optional bool is_web_cookie = 2;
optional int32 ipaddress = 3;
optional int32 deprecated_ipaddress = 3;
optional string geoloc_info = 4;
optional bool is_remembered = 5;
optional string machine_name_user_supplied = 6;
optional int32 status = 7;
optional .CMsgIPAddress ip_address = 8;
}
message SessionData {
@ -73,15 +76,15 @@ message CCredentials_ValidateEmailAddress_Response {
message CCredentials_SteamGuardPhishingReport_Request {
optional string param_string = 1;
optional uint32 ipaddress_actual = 2;
optional string ipaddress_actual = 2;
}
message CCredentials_SteamGuardPhishingReport_Response {
optional uint32 ipaddress_loginattempt = 1;
optional string ipaddress_loginattempt = 1;
optional string countryname_loginattempt = 2;
optional string statename_loginattempt = 3;
optional string cityname_loginattempt = 4;
optional uint32 ipaddress_actual = 5;
optional string ipaddress_actual = 5;
optional string countryname_actual = 6;
optional string statename_actual = 7;
optional string cityname_actual = 8;

26
protobufs/steammessages_datapublisher.proto

@ -16,6 +16,31 @@ message CDataPublisher_ClientContentCorruptionReport_Notification {
optional bool oc_proxy_detected = 10 [(description) = "detected an OpenCache proxy"];
}
message CDataPublisher_ClientUpdateAppJob_Notification {
optional uint32 app_id = 1;
repeated uint32 depot_ids = 2;
optional uint32 app_state = 3;
optional uint32 job_app_error = 4;
optional string error_details = 5;
optional uint32 job_duration = 6;
optional uint32 files_validation_failed = 7;
optional uint64 job_bytes_downloaded = 8;
optional uint64 job_bytes_staged = 9;
optional uint64 bytes_comitted = 10;
optional uint32 start_app_state = 11;
optional fixed64 stats_machine_id = 12;
optional string branch_name = 13;
optional uint64 total_bytes_downloaded = 14;
optional uint64 total_bytes_staged = 15;
optional uint64 total_bytes_restored = 16;
optional bool is_borrowed = 17;
optional bool is_free_weekend = 18;
optional uint64 total_bytes_legacy = 19;
optional uint64 total_bytes_patched = 20;
optional uint64 total_bytes_saved = 21;
optional uint32 cell_id = 22;
}
message CValveHWSurvey_GetSurveySchedule_Request {
optional string surveydatetoken = 1;
optional fixed64 surveydatetokenversion = 2;
@ -30,6 +55,7 @@ service DataPublisher {
option (service_description) = "Data Publisher (DP) server services";
rpc ClientContentCorruptionReport (.CDataPublisher_ClientContentCorruptionReport_Notification) returns (.NoResponse);
rpc ClientUpdateAppJobReport (.CDataPublisher_ClientUpdateAppJob_Notification) returns (.NoResponse);
}
service ValveHWSurvey {

3
protobufs/steammessages_depotbuilder.proto

@ -8,6 +8,7 @@ message CContentBuilder_InitDepotBuild_Request {
optional uint32 depotid = 2;
optional uint64 workshop_itemid = 3;
optional bool for_local_cs = 4;
optional string target_branch = 5;
}
message CContentBuilder_InitDepotBuild_Response {
@ -20,6 +21,8 @@ message CContentBuilder_InitDepotBuild_Response {
optional uint32 offset_detection_min_clean_chunk = 7;
optional uint32 offset_detection_blast_radius_pre = 8;
optional uint32 offset_detection_blast_radius_post = 9;
optional uint32 offset_detection_max_distance_pre = 10;
optional uint32 offset_detection_max_distance_post = 11;
}
message CContentBuilder_StartDepotUpload_Request {

44
protobufs/steammessages_friendmessages.proto

@ -3,6 +3,12 @@ import "steammessages_unified_base.proto";
option py_generic_services = true;
enum EMessageReactionType {
k_EMessageReactionType_Invalid = 0;
k_EMessageReactionType_Emoticon = 1;
k_EMessageReactionType_Sticker = 2;
}
message CFriendMessages_GetRecentMessages_Request {
optional fixed64 steamid1 = 1;
optional fixed64 steamid2 = 2;
@ -17,10 +23,17 @@ message CFriendMessages_GetRecentMessages_Request {
message CFriendMessages_GetRecentMessages_Response {
message FriendMessage {
message MessageReaction {
optional .EMessageReactionType reaction_type = 1 [default = k_EMessageReactionType_Invalid];
optional string reaction = 2;
repeated uint32 reactors = 3;
}
optional uint32 accountid = 1;
optional uint32 timestamp = 2;
optional string message = 3;
optional uint32 ordinal = 4;
repeated .CFriendMessages_GetRecentMessages_Response.FriendMessage.MessageReaction reactions = 5;
}
repeated .CFriendMessages_GetRecentMessages_Response.FriendMessage messages = 1 [(description) = "Array of messages, returned newest to oldest."];
@ -75,6 +88,19 @@ message CFriendMessages_IsInFriendsUIBeta_Response {
optional bool has_used_friendsui = 2;
}
message CFriendMessages_UpdateMessageReaction_Request {
optional fixed64 steamid = 1;
optional uint32 server_timestamp = 2;
optional uint32 ordinal = 3;
optional .EMessageReactionType reaction_type = 4 [default = k_EMessageReactionType_Invalid];
optional string reaction = 5;
optional bool is_add = 6;
}
message CFriendMessages_UpdateMessageReaction_Response {
repeated uint32 reactors = 1;
}
message CFriendMessages_IncomingMessage_Notification {
optional fixed64 steamid_friend = 1;
optional int32 chat_entry_type = 2;
@ -87,6 +113,16 @@ message CFriendMessages_IncomingMessage_Notification {
optional bool low_priority = 9;
}
message CFriendMessages_MessageReaction_Notification {
optional fixed64 steamid_friend = 1;
optional uint32 server_timestamp = 2;
optional uint32 ordinal = 3;
optional fixed64 reactor = 4;
optional .EMessageReactionType reaction_type = 5 [default = k_EMessageReactionType_Invalid];
optional string reaction = 6;
optional bool is_add = 7;
}
service FriendMessages {
option (service_description) = "A service for relaying and logging friend messages (user-to-user chats and offline messaging)";
@ -109,6 +145,10 @@ service FriendMessages {
rpc IsInFriendsUIBeta (.CFriendMessages_IsInFriendsUIBeta_Request) returns (.CFriendMessages_IsInFriendsUIBeta_Response) {
option (method_description) = "See if a friend is in the friendsui beta.";
}
rpc UpdateMessageReaction (.CFriendMessages_UpdateMessageReaction_Request) returns (.CFriendMessages_UpdateMessageReaction_Response) {
option (method_description) = "Adds/removes a reaction to/from a friend message";
}
}
service FriendMessagesClient {
@ -121,4 +161,8 @@ service FriendMessagesClient {
rpc NotifyAckMessageEcho (.CFriendMessages_AckMessage_Notification) returns (.NoResponse) {
option (method_description) = "A session acked an unread message, echo to other sessions.";
}
rpc MessageReaction (.CFriendMessages_MessageReaction_Notification) returns (.NoResponse) {
option (method_description) = "New message reaction from a friend.";
}
}

33
protobufs/steammessages_lobbymatchmaking.proto

@ -0,0 +1,33 @@
syntax = "proto2";
import "steammessages_unified_base.proto";
option py_generic_services = true;
enum ELobbyStatus {
k_ELobbyStatusInvalid = 0;
k_ELobbyStatusExists = 1;
k_ELobbyStatusDoesNotExist = 2;
k_ELobbyStatusNotAMember = 3;
}
message LobbyMatchmakingLegacy_GetLobbyStatus_Request {
optional uint32 app_id = 1;
optional fixed64 steamid_lobby = 2;
optional bool claim_ownership = 3;
optional bool claim_membership = 4;
optional uint32 version_num = 5;
}
message LobbyMatchmakingLegacy_GetLobbyStatus_Response {
optional uint32 app_id = 1;
optional fixed64 steamid_lobby = 2;
optional .ELobbyStatus lobby_status = 3 [default = k_ELobbyStatusInvalid];
}
service LobbyMatchmakingLegacy {
option (service_description) = "Lobby matchmaking legacy service";
rpc GetLobbyStatus (.LobbyMatchmakingLegacy_GetLobbyStatus_Request) returns (.LobbyMatchmakingLegacy_GetLobbyStatus_Response) {
option (method_description) = "GetLobbyStatus";
}
}

26
protobufs/steammessages_market.proto

@ -0,0 +1,26 @@
syntax = "proto2";
import "steammessages_unified_base.proto";
option py_generic_services = true;
message CEconMarket_IsMarketplaceAllowed_Request {
optional string webcookie = 1 [(description) = "The user's Steam Guard machine auth cookie."];
}
message CEconMarket_IsMarketplaceAllowed_Response {
optional bool allowed = 1 [(description) = "Whether or not the user is allowed to use the market"];
optional uint32 reason = 2 [(description) = "The reason the user can't use the market, if applicable"];
optional uint32 allowed_at_time = 3 [(description) = "The time the user will be allowed to use the market"];
optional uint32 steamguard_required_days = 4 [(description) = "The number of days any user is required to have had Steam Guard before they can use the market"];
optional bool forms_requested = 7 [(description) = "Whether or not we've requested the user fill out tax forms"];
optional bool forms_require_verification = 8 [(description) = "True if we've received forms but they require verification first"];
optional uint32 new_device_cooldown_days = 9 [(description) = "The number of days after initial device authorization a user must wait before using the market on that device"];
}
service EconMarket {
option (service_description) = "A service to use market functions";
rpc IsMarketplaceAllowed (.CEconMarket_IsMarketplaceAllowed_Request) returns (.CEconMarket_IsMarketplaceAllowed_Response) {
option (method_description) = "Checks whether or not the authed account is allowed to use the market";
}
}

94
protobufs/steammessages_parties.proto

@ -0,0 +1,94 @@
syntax = "proto2";
import "steammessages_unified_base.proto";
option py_generic_services = true;
message CParties_JoinParty_Request {
optional fixed64 steamid = 1;
optional uint64 beacon_id = 2;
}
message CParties_JoinParty_Response {
optional uint64 beacon_id = 1;
optional string connect_string = 2;
}
message CParties_BeaconLocation {
optional uint32 location_type = 1;
optional uint64 location_id = 2;
}
message CParties_CreateBeacon_Request {
optional uint32 appid = 1;
optional uint32 num_open_slots = 2;
repeated .CParties_BeaconLocation locations = 3;
optional string connect_string = 4;
optional string metadata = 5;
}
message CParties_CreateBeacon_Response {
optional uint64 beacon_id = 1;
}
message CParties_OnReservationCompleted_Request {
optional uint64 beacon_id = 1;
optional fixed64 user_steamid = 2;
}
message CParties_OnReservationCompleted_Response {
optional uint64 beacon_id = 1;
}
message CParties_CancelReservation_Request {
optional uint64 beacon_id = 1;
optional fixed64 user_steamid = 2;
}
message CParties_CancelReservation_Response {
optional uint64 beacon_id = 1;
}
message CParties_ChangeNumOpenSlots_Request {
optional uint64 beacon_id = 1;
optional uint32 num_open_slots = 2;
}
message CParties_ChangeNumOpenSlots_Response {
optional uint64 beacon_id = 1;
}
message CParties_DestroyBeacon_Request {
optional uint64 beacon_id = 1;
}
message CParties_DestroyBeacon_Response {
optional uint64 beacon_id = 1;
}
service Parties {
option (service_description) = "Party-related services";
rpc JoinParty (.CParties_JoinParty_Request) returns (.CParties_JoinParty_Response) {
option (method_description) = "Request to join a Party via the given Beacon ID. If successful, will be given the necessary 'connect' string.";
}
rpc CreateBeacon (.CParties_CreateBeacon_Request) returns (.CParties_CreateBeacon_Response) {
option (method_description) = "Create a Beacon to attract people to your Party.";
}
rpc OnReservationCompleted (.CParties_OnReservationCompleted_Request) returns (.CParties_OnReservationCompleted_Response) {
option (method_description) = "Notify Steam that a user with a reservation has successfully joined.";
}
rpc CancelReservation (.CParties_CancelReservation_Request) returns (.CParties_CancelReservation_Response) {
option (method_description) = "Notify Steam that a user with a reservation either never showed up, or has left the party.";
}
rpc ChangeNumOpenSlots (.CParties_ChangeNumOpenSlots_Request) returns (.CParties_ChangeNumOpenSlots_Response) {
option (method_description) = "Change the number of open slots";
}
rpc DestroyBeacon (.CParties_DestroyBeacon_Request) returns (.CParties_DestroyBeacon_Response) {
option (method_description) = "Delete the Beacon.";
}
}

221
protobufs/steammessages_player.proto

@ -1,14 +1,37 @@
syntax = "proto2";
import "steammessages_unified_base.proto";
import "enums.proto";
option py_generic_services = true;
enum EProfileCustomizationStyle {
k_EProfileCustomizationStyleDefault = 0;
k_EProfileCustomizationStyleSelected = 1;
k_EProfileCustomizationStyleRarest = 2;
k_EProfileCustomizationStyleMostRecent = 3;
k_EProfileCustomizationStyleRandom = 4;
k_EProfileCustomizationStyleHighestRated = 5;
}
enum EAgreementType {
k_EAgreementType_Invalid = -1;
k_EAgreementType_GlobalSSA = 0;
k_EAgreementType_ChinaSSA = 1;
}
enum ENotificationSetting {
k_ENotificationSettingNotifyUseDefault = 0;
k_ENotificationSettingAlways = 1;
k_ENotificationSettingNever = 2;
}
enum ETextFilterSetting {
k_ETextFilterSettingSteamLabOptedOut = 0;
k_ETextFilterSettingEnabled = 1;
k_ETextFilterSettingEnabledAllowProfanity = 2;
k_ETextFilterSettingDisabled = 3;
}
message CPlayer_GetMutualFriendsForIncomingInvites_Request {
}
@ -27,6 +50,7 @@ message CPlayer_GetOwnedGames_Request {
optional bool include_played_free_games = 3 [(description) = "Free games are excluded by default. If this is set, free games the user has played will be returned."];
repeated uint32 appids_filter = 4 [(description) = "if set, restricts result set to the passed in apps"];
optional bool include_free_sub = 5 [(description) = "Some games are in the free sub, which are excluded by default."];
optional bool skip_unvetted_apps = 6 [default = true, (description) = "if set, skip unvetted store apps"];
}
message CPlayer_GetOwnedGames_Response {
@ -147,6 +171,8 @@ message ProfileItem {
optional uint32 item_class = 9;
optional string movie_webm = 10 [(description) = "URL to webm, if any"];
optional string movie_mp4 = 11 [(description) = "URL to mp4, if any"];
optional string movie_webm_small = 13 [(description) = "URL to small webm, if any"];
optional string movie_mp4_small = 14 [(description) = "URL to small mp4, if any"];
optional uint32 equipped_flags = 12 [(description) = "Special flags set when equipped (EProfileItemEquippedFlag)"];
}
@ -252,6 +278,7 @@ message CPlayer_GetEmoticonList_Response {
optional uint32 time_last_used = 3;
optional uint32 use_count = 4;
optional uint32 time_received = 5;
optional uint32 appid = 6;
}
repeated .CPlayer_GetEmoticonList_Response.Emoticon emoticons = 1;
@ -276,6 +303,136 @@ message CPlayer_GetAchievementsProgress_Response {
repeated .CPlayer_GetAchievementsProgress_Response.AchievementProgress achievement_progress = 1;
}
message CPlayer_GetFavoriteBadge_Request {
optional uint64 steamid = 1;
}
message CPlayer_GetFavoriteBadge_Response {
optional bool has_favorite_badge = 1;
optional uint32 badgeid = 2;
optional uint64 communityitemid = 3;
optional uint32 item_type = 4;
optional uint32 border_color = 5;
optional uint32 appid = 6;
optional uint32 level = 7;
}
message CPlayer_SetFavoriteBadge_Request {
optional uint64 communityitemid = 1;
optional uint32 badgeid = 2;
}
message CPlayer_SetFavoriteBadge_Response {
}
message CPlayer_GetProfileCustomization_Request {
optional fixed64 steamid = 1;
optional bool include_inactive_customizations = 2;
optional bool include_purchased_customizations = 3;
}
message ProfileCustomizationSlot {
optional uint32 slot = 1;
optional uint32 appid = 2;
optional uint64 publishedfileid = 3;
optional uint64 item_assetid = 4;
optional uint64 item_contextid = 5;
optional string notes = 6;
optional string title = 7;
optional uint32 accountid = 8;
optional uint32 badgeid = 9;
optional uint32 border_color = 10;
optional uint64 item_classid = 11;
optional uint64 item_instanceid = 12;
optional .EBanContentCheckResult ban_check_result = 13 [default = k_EBanContentCheckResult_NotScanned];
}
message ProfileCustomization {
optional .EProfileCustomizationType customization_type = 1 [default = k_EProfileCustomizationTypeInvalid];
optional bool large = 2;
repeated .ProfileCustomizationSlot slots = 3;
optional bool active = 4;
optional .EProfileCustomizationStyle customization_style = 5 [default = k_EProfileCustomizationStyleDefault];
optional uint64 purchaseid = 6;
optional uint32 level = 7;
}
message ProfileTheme {
optional string theme_id = 1;
optional string title = 2;
}
message ProfilePreferences {
optional bool hide_profile_awards = 1;
}
message CPlayer_GetProfileCustomization_Response {
message PurchasedCustomization {
optional uint64 purchaseid = 1;
optional .EProfileCustomizationType customization_type = 2 [default = k_EProfileCustomizationTypeInvalid];
optional uint32 level = 3;
}
repeated .ProfileCustomization customizations = 1;
optional uint32 slots_available = 2;
optional .ProfileTheme profile_theme = 3;
repeated .CPlayer_GetProfileCustomization_Response.PurchasedCustomization purchased_customizations = 4;
optional .ProfilePreferences profile_preferences = 5;
}
message CPlayer_GetPurchasedProfileCustomizations_Request {
optional fixed64 steamid = 1;
}
message CPlayer_GetPurchasedProfileCustomizations_Response {
message PurchasedCustomization {
optional uint64 purchaseid = 1;
optional .EProfileCustomizationType customization_type = 2 [default = k_EProfileCustomizationTypeInvalid];
}
repeated .CPlayer_GetPurchasedProfileCustomizations_Response.PurchasedCustomization purchased_customizations = 1;
}
message CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Request {
optional fixed64 steamid = 1;
}
message CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Response {
message PurchasedCustomization {
optional .EProfileCustomizationType customization_type = 1 [default = k_EProfileCustomizationTypeInvalid];
optional uint32 count = 2;
}
message UpgradedCustomization {
optional .EProfileCustomizationType customization_type = 1 [default = k_EProfileCustomizationTypeInvalid];
optional uint32 level = 2;
}
repeated .CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Response.PurchasedCustomization purchased_customizations = 1;
repeated .CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Response.UpgradedCustomization upgraded_customizations = 2;
}
message CPlayer_GetProfileThemesAvailable_Request {
}
message CPlayer_GetProfileThemesAvailable_Response {
repeated .ProfileTheme profile_themes = 1;
}
message CPlayer_SetProfileTheme_Request {
optional string theme_id = 1;
}
message CPlayer_SetProfileTheme_Response {
}
message CPlayer_SetProfilePreferences_Request {
optional .ProfilePreferences profile_preferences = 1;
}
message CPlayer_SetProfilePreferences_Response {
}
message CPlayer_PostStatusToFriends_Request {
optional uint32 appid = 1;
optional string status_text = 2;
@ -330,6 +487,8 @@ message CPlayer_GetLastPlayedTimes_Response {
}
message CPlayer_AcceptSSA_Request {
optional .EAgreementType agreement_type = 1 [default = k_EAgreementType_Invalid];
optional uint32 time_signed_utc = 2;
}
message CPlayer_AcceptSSA_Response {
@ -407,6 +566,9 @@ message CPlayer_CommunityPreferences {
optional bool hide_adult_content_violence = 1 [default = true];
optional bool hide_adult_content_sex = 2 [default = true];
optional bool parenthesize_nicknames = 4 [default = false];
optional .ETextFilterSetting text_filter_setting = 5 [default = k_ETextFilterSettingSteamLabOptedOut];
optional bool text_filter_ignore_friends = 6 [default = true];
optional uint32 text_filter_words_revision = 7;
optional uint32 timestamp_updated = 3;
}
@ -421,6 +583,19 @@ message CPlayer_SetCommunityPreferences_Request {
message CPlayer_SetCommunityPreferences_Response {
}
message CPlayer_GetTextFilterWords_Request {
}
message CPlayer_TextFilterWords {
repeated string text_filter_custom_banned_words = 1;
repeated string text_filter_custom_clean_words = 2;
optional uint32 text_filter_words_revision = 3;
}
message CPlayer_GetTextFilterWords_Response {
optional .CPlayer_TextFilterWords words = 1;
}
message CPlayer_GetNewSteamAnnouncementState_Request {
optional int32 language = 1;
}
@ -468,6 +643,8 @@ message CPlayer_GetDurationControl_Response {
optional bool is_steamchina_account = 4;
optional bool is_age_verified = 5;
optional uint32 seconds_allowed_today = 6;
optional bool age_verification_pending = 7;
optional bool block_minors = 8;
}
message CPlayer_LastPlayedTimes_Notification {
@ -496,6 +673,10 @@ message CPlayer_CommunityPreferencesChanged_Notification {
optional .CPlayer_CommunityPreferences preferences = 1;
}
message CPlayer_TextFilterWordsChanged_Notification {
optional .CPlayer_TextFilterWords words = 1;
}
message CPlayer_PerFriendPreferencesChanged_Notification {
optional fixed32 accountid = 1;
optional .PerFriendPreferences preferences = 2;
@ -584,6 +765,38 @@ service Player {
option (method_description) = "Gets the achievement completion stats for the specified list of apps.";
}
rpc GetFavoriteBadge (.CPlayer_GetFavoriteBadge_Request) returns (.CPlayer_GetFavoriteBadge_Response) {
option (method_description) = "Gets the badge the user has set as their favorite";
}
rpc SetFavoriteBadge (.CPlayer_SetFavoriteBadge_Request) returns (.CPlayer_SetFavoriteBadge_Response) {
option (method_description) = "Sets the badge as the users favorite";
}
rpc GetProfileCustomization (.CPlayer_GetProfileCustomization_Request) returns (.CPlayer_GetProfileCustomization_Response) {
option (method_description) = "Returns the customizations (if any) for a profile";
}
rpc GetPurchasedProfileCustomizations (.CPlayer_GetPurchasedProfileCustomizations_Request) returns (.CPlayer_GetPurchasedProfileCustomizations_Response) {
option (method_description) = "Returns the purchased profile customizations";
}
rpc GetPurchasedAndUpgradedProfileCustomizations (.CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Request) returns (.CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Response) {
option (method_description) = "Returns the purchased and upgraded profile customizations";
}
rpc GetProfileThemesAvailable (.CPlayer_GetProfileThemesAvailable_Request) returns (.CPlayer_GetProfileThemesAvailable_Response) {
option (method_description) = "Gets themes available for the user.";
}
rpc SetProfileTheme (.CPlayer_SetProfileTheme_Request) returns (.CPlayer_SetProfileTheme_Response) {
option (method_description) = "Selects a theme for the profile";
}
rpc SetProfilePreferences (.CPlayer_SetProfilePreferences_Request) returns (.CPlayer_SetProfilePreferences_Response) {
option (method_description) = "Sets profile preferences";
}
rpc PostStatusToFriends (.CPlayer_PostStatusToFriends_Request) returns (.CPlayer_PostStatusToFriends_Response) {
option (method_description) = "Posts custom status text into the blotter";
}
@ -636,6 +849,10 @@ service Player {
option (method_description) = "Sets the player's community preferences";
}
rpc GetTextFilterWords (.CPlayer_GetTextFilterWords_Request) returns (.CPlayer_GetTextFilterWords_Response) {
option (method_description) = "Get the custom text filtering dictionary for this user";
}
rpc GetNewSteamAnnouncementState (.CPlayer_GetNewSteamAnnouncementState_Request) returns (.CPlayer_GetNewSteamAnnouncementState_Response) {
option (method_description) = "Calculates and returns what to display for UI that renders new steam announcement available";
}
@ -677,6 +894,10 @@ service PlayerClient {
option (method_description) = "Notification from server to client that their community preferences have changed";
}
rpc NotifyTextFilterWordsChanged (.CPlayer_TextFilterWordsChanged_Notification) returns (.NoResponse) {
option (method_description) = "Notification from server to client that their text filtering dictionary has changed";
}
rpc NotifyPerFriendPreferencesChanged (.CPlayer_PerFriendPreferencesChanged_Notification) returns (.NoResponse) {
option (method_description) = "Notification from server that per-friend preferences have changed";
}

34
protobufs/steammessages_publishedfile.proto

@ -1,5 +1,6 @@
syntax = "proto2";
import "steammessages_unified_base.proto";
import "enums.proto";
option py_generic_services = true;
@ -95,6 +96,7 @@ message PublishedFileDetails {
message Tag {
optional string tag = 1;
optional bool adminonly = 2;
optional string display_name = 3;
}
message Preview {
@ -212,6 +214,7 @@ message PublishedFileDetails {
optional .EPublishedFileRevision revision = 68 [default = k_EPublishedFileRevision_Default, (description) = "The revision of the data returned, usually k_EPublishedFileRevision_Latest, but can be another revision/snapshot depending on the caller."];
repeated .EPublishedFileRevision available_revisions = 69 [(description) = "Available revisions"];
repeated .PublishedFileDetails.Reaction reactions = 70 [(description) = "Reactions to this item"];
optional .EBanContentCheckResult ban_text_check_result = 71 [default = k_EBanContentCheckResult_NotScanned];
}
message CPublishedFile_GetDetails_Response {
@ -225,7 +228,7 @@ message CPublishedFile_GetItemInfo_Request {
optional .EPublishedFileRevision desired_revision = 3 [default = k_EPublishedFileRevision_Default, (description) = "Return the data for the specified revision."];
}
optional uint32 app_id = 1;
optional uint32 appid = 1;
optional uint32 last_time_updated = 2;
repeated .CPublishedFile_GetItemInfo_Request.WorkshopItem workshop_items = 3;
}
@ -282,6 +285,7 @@ message CPublishedFile_GetUserFiles_Request {
optional uint32 return_playtime_stats = 31 [(description) = "Return playtime stats for the specified number of days before today."];
optional bool strip_description_bbcode = 32 [(description) = "Strips BBCode from descriptions."];
optional bool return_reactions = 35 [default = false, (description) = "If true, then reactions to items will be returned."];
optional uint32 startindex_override = 25 [(description) = "Backwards compatible for the client."];
optional .EPublishedFileRevision desired_revision = 33 [default = k_EPublishedFileRevision_Default, (description) = "Return the data for the specified revision."];
}
@ -385,6 +389,11 @@ message CPublishedFile_QueryFiles_Request {
repeated string tags = 1;
}
message DateRange {
optional uint32 timestamp_start = 1 [(description) = "(Optional) Include items with the relevant date field after this value."];
optional uint32 timestamp_end = 2 [(description) = "(Optional) Include items with the relevant date field before this value."];
}
optional uint32 query_type = 1 [(description) = "enumeration EPublishedFileQueryType in clientenums.h"];
optional uint32 page = 2 [(description) = "Current page"];
optional string cursor = 39 [(description) = "Cursor to paginate through the results (set to '*' for the first request). Prefer this over using the page parameter, as it will allow you to do deep pagination. When used, the page parameter will be ignored."];
@ -405,6 +414,8 @@ message CPublishedFile_QueryFiles_Request {
optional int32 language = 33 [default = 0, (description) = "Language to search in and also what gets returned. Defaults to English."];
repeated .CPublishedFile_QueryFiles_Request.KVTag required_kv_tags = 34 [(description) = "Required key-value tags to match on."];
repeated .CPublishedFile_QueryFiles_Request.TagGroup taggroups = 42 [(description) = "(Optional) At least one of the tags must be present on a published file to satisfy the query."];
optional .CPublishedFile_QueryFiles_Request.DateRange date_range_created = 44 [(description) = "(Optional) Filter to items created within this range."];
optional .CPublishedFile_QueryFiles_Request.DateRange date_range_updated = 45 [(description) = "(Optional) Filter to items updated within this range."];
optional bool totalonly = 16 [(description) = "(Optional) If true, only return the total number of files that satisfy this query."];
optional bool ids_only = 35 [(description) = "(Optional) If true, only return the published file ids of files that satisfy this query."];
optional bool return_vote_data = 17 [(description) = "Return vote data"];
@ -526,6 +537,23 @@ message CPublishedFile_GetUserVoteSummary_Response {
repeated .CPublishedFile_GetUserVoteSummary_Response.VoteSummary summaries = 1;
}
message CPublishedFile_GetItemChanges_Request {
optional uint32 appid = 1;
optional uint32 last_time_updated = 2;
optional uint32 num_items_max = 3;
}
message CPublishedFile_GetItemChanges_Response {
message WorkshopItemInfo {
optional fixed64 published_file_id = 1;
optional uint32 time_updated = 2;
optional fixed64 manifest_id = 3;
}
optional uint32 update_time = 1;
repeated .CPublishedFile_GetItemChanges_Response.WorkshopItemInfo workshop_items = 2;
}
message CPublishedFile_FileSubscribed_Notification {
message RevisionData {
optional .EPublishedFileRevision revision = 1 [default = k_EPublishedFileRevision_Default];
@ -647,6 +675,10 @@ service PublishedFile {
rpc GetUserVoteSummary (.CPublishedFile_GetUserVoteSummary_Request) returns (.CPublishedFile_GetUserVoteSummary_Response) {
option (method_description) = "Get user vote summary";
}
rpc GetItemChanges (.CPublishedFile_GetItemChanges_Request) returns (.CPublishedFile_GetItemChanges_Response) {
option (method_description) = "Get list of updated items since given date";
}
}
service PublishedFileClient {

125
protobufs/steammessages_qms.proto

@ -0,0 +1,125 @@
syntax = "proto2";
import "steammessages_unified_base.proto";
option py_generic_services = true;
enum EGameSearchAction {
k_EGameSearchAction_None = 0;
k_EGameSearchAction_Accept = 1;
k_EGameSearchAction_Decline = 2;
k_EGameSearchAction_Cancel = 3;
}
enum EGameSearchResult {
k_EGameSearchResult_Invalid = 0;
k_EGameSearchResult_SearchInProgress = 1;
k_EGameSearchResult_SearchFailedNoHosts = 2;
k_EGameSearchResult_SearchGameFound = 3;
k_EGameSearchResult_SearchCompleteAccepted = 4;
k_EGameSearchResult_SearchCompleteDeclined = 5;
k_EGameSearchResult_SearchCanceled = 6;
}
message GameSearchParam {
optional string key_name = 1;
repeated string value = 2;
}
message CQueuedMatchmaking_SearchForGame_Request {
optional uint32 appid = 1;
optional .EGameSearchAction action = 2 [default = k_EGameSearchAction_None];
repeated .GameSearchParam params = 3;
optional uint32 player_min = 4;
optional uint32 player_max = 5;
optional fixed64 steamidlobby = 6;
optional uint64 searchid = 7;
}
message CQueuedMatchmaking_SearchForGame_Response {
optional .EGameSearchResult gamesearchresult = 1 [default = k_EGameSearchResult_Invalid];
optional uint64 searchid = 2;
optional uint32 seconds_time_estimate = 3;
optional uint32 poll_frequency = 4;
optional uint32 count_searching = 5;
optional uint32 players_in_match = 6;
optional uint32 players_accepted = 7;
optional string connect_string = 9;
optional fixed64 steamidhost = 10;
optional uint32 rtime_match_made = 11;
optional uint32 rtime_now = 12;
optional fixed64 steamid_canceled_search = 13;
}
message CQueuedMatchmakingGameHost_SearchForPlayers_Request {
optional uint32 appid = 1;
optional .EGameSearchAction action = 2 [default = k_EGameSearchAction_None];
repeated .GameSearchParam params = 3;
optional uint32 player_min = 4;
optional uint32 player_max = 5;
optional uint32 player_max_team_size = 6;
optional string connection_string = 7;
optional uint64 searchid = 8;
}
message PlayerFound {
optional fixed64 steamid = 1;
optional .EGameSearchAction action = 2 [default = k_EGameSearchAction_None];
repeated .GameSearchParam params = 3;
optional uint32 team_number = 4;
}
message CQueuedMatchmakingGameHost_SearchForPlayers_Response {
optional .EGameSearchResult gamesearchresult = 1 [default = k_EGameSearchResult_Invalid];
optional uint64 searchid = 2;
optional uint32 poll_frequency = 3;
optional uint64 matchid = 4;
repeated .PlayerFound players = 5;
optional uint32 rtime_match_made = 6;
optional uint32 rtime_now = 7;
}
message PlayerResult {
optional fixed64 steamid = 1;
optional uint32 value = 2;
}
message CQueuedMatchmakingGameHost_SubmitPlayerResult_Request {
optional uint32 appid = 1;
optional uint64 matchid = 2;
repeated .PlayerResult player_results = 3;
}
message CQueuedMatchmakingGameHost_SubmitPlayerResult_Response {
}
message CQueuedMatchmakingGameHost_EndGame_Request {
optional uint32 appid = 1;
optional uint64 matchid = 2;
}
message CQueuedMatchmakingGameHost_EndGame_Response {
}
service QueuedMatchmaking {
option (service_description) = "Queued matchmaking service";
rpc SearchForGame (.CQueuedMatchmaking_SearchForGame_Request) returns (.CQueuedMatchmaking_SearchForGame_Response) {
option (method_description) = "Search for a game";
}
}
service QueuedMatchmakingGameHost {
option (service_description) = "Queued matchmaking host service";
rpc SearchForPlayers (.CQueuedMatchmakingGameHost_SearchForPlayers_Request) returns (.CQueuedMatchmakingGameHost_SearchForPlayers_Response) {
option (method_description) = "SearchForPlayers";
}
rpc SubmitPlayerResult (.CQueuedMatchmakingGameHost_SubmitPlayerResult_Request) returns (.CQueuedMatchmakingGameHost_SubmitPlayerResult_Response) {
option (method_description) = "SubmitPlayerResult";
}
rpc EndGame (.CQueuedMatchmakingGameHost_EndGame_Request) returns (.CQueuedMatchmakingGameHost_EndGame_Response) {
option (method_description) = "EndGame";
}
}

857
protobufs/steammessages_remoteplay.proto

@ -0,0 +1,857 @@
syntax = "proto2";
option optimize_for = SPEED;
option py_generic_services = false;
enum EStreamChannel {
k_EStreamChannelInvalid = -1;
k_EStreamChannelDiscovery = 0;
k_EStreamChannelControl = 1;
k_EStreamChannelStats = 2;
k_EStreamChannelDataChannelStart = 3;
}
enum EStreamDiscoveryMessage {
k_EStreamDiscoveryPingRequest = 1;
k_EStreamDiscoveryPingResponse = 2;
}
enum EStreamControlMessage {
k_EStreamControlAuthenticationRequest = 1;
k_EStreamControlAuthenticationResponse = 2;
k_EStreamControlNegotiationInit = 3;
k_EStreamControlNegotiationSetConfig = 4;
k_EStreamControlNegotiationComplete = 5;
k_EStreamControlClientHandshake = 6;
k_EStreamControlServerHandshake = 7;
k_EStreamControlStartNetworkTest = 8;
k_EStreamControlKeepAlive = 9;
k_EStreamControl_LAST_SETUP_MESSAGE = 15;
k_EStreamControlStartAudioData = 50;
k_EStreamControlStopAudioData = 51;
k_EStreamControlStartVideoData = 52;
k_EStreamControlStopVideoData = 53;
k_EStreamControlInputMouseMotion = 54;
k_EStreamControlInputMouseWheel = 55;
k_EStreamControlInputMouseDown = 56;
k_EStreamControlInputMouseUp = 57;
k_EStreamControlInputKeyDown = 58;
k_EStreamControlInputKeyUp = 59;
k_EStreamControlInputGamepadAttached_OBSOLETE = 60;
k_EStreamControlInputGamepadEvent_OBSOLETE = 61;
k_EStreamControlInputGamepadDetached_OBSOLETE = 62;
k_EStreamControlShowCursor = 63;
k_EStreamControlHideCursor = 64;
k_EStreamControlSetCursor = 65;
k_EStreamControlGetCursorImage = 66;
k_EStreamControlSetCursorImage = 67;
k_EStreamControlDeleteCursor = 68;
k_EStreamControlSetTargetFramerate = 69;
k_EStreamControlInputLatencyTest = 70;
k_EStreamControlGamepadRumble_OBSOLETE = 71;
k_EStreamControlOverlayEnabled = 74;
k_EStreamControlInputControllerAttached_OBSOLETE = 75;
k_EStreamControlInputControllerState_OBSOLETE = 76;
k_EStreamControlTriggerHapticPulse_OBSOLETE = 77;
k_EStreamControlInputControllerDetached_OBSOLETE = 78;
k_EStreamControlVideoDecoderInfo = 80;
k_EStreamControlSetTitle = 81;
k_EStreamControlSetIcon = 82;
k_EStreamControlQuitRequest = 83;
k_EStreamControlSetQoS = 87;
k_EStreamControlInputControllerWirelessPresence_OBSOLETE = 88;
k_EStreamControlSetGammaRamp = 89;
k_EStreamControlVideoEncoderInfo = 90;
k_EStreamControlInputControllerStateHID_OBSOLETE = 93;
k_EStreamControlSetTargetBitrate = 94;
k_EStreamControlSetControllerPairingEnabled_OBSOLETE = 95;
k_EStreamControlSetControllerPairingResult_OBSOLETE = 96;
k_EStreamControlTriggerControllerDisconnect_OBSOLETE = 97;
k_EStreamControlSetActivity = 98;
k_EStreamControlSetStreamingClientConfig = 99;
k_EStreamControlSystemSuspend = 100;
k_EStreamControlSetControllerSettings_OBSOLETE = 101;
k_EStreamControlVirtualHereRequest = 102;
k_EStreamControlVirtualHereReady = 103;
k_EStreamControlVirtualHereShareDevice = 104;
k_EStreamControlSetSpectatorMode = 105;
k_EStreamControlRemoteHID = 106;
k_EStreamControlStartMicrophoneData = 107;
k_EStreamControlStopMicrophoneData = 108;
k_EStreamControlInputText = 109;
k_EStreamControlTouchConfigActive = 110;
k_EStreamControlGetTouchConfigData = 111;
k_EStreamControlSetTouchConfigData = 112;
k_EStreamControlSaveTouchConfigLayout = 113;
k_EStreamControlTouchActionSetActive = 114;
k_EStreamControlGetTouchIconData = 115;
k_EStreamControlSetTouchIconData = 116;
k_EStreamControlInputTouchFingerDown = 117;
k_EStreamControlInputTouchFingerMotion = 118;
k_EStreamControlInputTouchFingerUp = 119;
k_EStreamControlSetCaptureSize = 120;
k_EStreamControlSetFlashState = 121;
k_EStreamControlPause = 122;
k_EStreamControlResume = 123;
k_EStreamControlEnableHighResCapture = 124;
k_EStreamControlDisableHighResCapture = 125;
k_EStreamControlToggleMagnification = 126;
k_EStreamControlSetCapslock = 127;
k_EStreamControlSetKeymap = 128;
k_EStreamControlStopRequest = 129;
k_EStreamControlTouchActionSetLayerAdded = 130;
k_EStreamControlTouchActionSetLayerRemoved = 131;
k_EStreamControlRemotePlayTogetherGroupUpdate = 132;
k_EStreamControlSetInputTemporarilyDisabled = 133;
k_EStreamControlSetQualityOverride = 134;
k_EStreamControlSetBitrateOverride = 135;
}
enum EStreamVersion {
k_EStreamVersionNone = 0;
k_EStreamVersionCurrent = 1;
}
enum EStreamAudioCodec {
k_EStreamAudioCodecNone = 0;
k_EStreamAudioCodecRaw = 1;
k_EStreamAudioCodecVorbis = 2;
k_EStreamAudioCodecOpus = 3;
k_EStreamAudioCodecMP3 = 4;
k_EStreamAudioCodecAAC = 5;
}
enum EStreamVideoCodec {
k_EStreamVideoCodecNone = 0;
k_EStreamVideoCodecRaw = 1;
k_EStreamVideoCodecVP8 = 2;
k_EStreamVideoCodecVP9 = 3;
k_EStreamVideoCodecH264 = 4;
k_EStreamVideoCodecHEVC = 5;
k_EStreamVideoCodecORBX1 = 6;
k_EStreamVideoCodecORBX2 = 7;
}
enum EStreamQualityPreference {
k_EStreamQualityAutomatic = -1;
k_EStreamQualityFast = 1;
k_EStreamQualityBalanced = 2;
k_EStreamQualityBeautiful = 3;
}
enum EStreamBitrate {
k_EStreamBitrateAutodetect = -1;
k_EStreamBitrateUnlimited = 0;
}
enum EStreamP2PScope {
k_EStreamP2PScopeAutomatic = 0;
k_EStreamP2PScopeDisabled = 1;
k_EStreamP2PScopeOnlyMe = 2;
k_EStreamP2PScopeFriends = 3;
k_EStreamP2PScopeEveryone = 4;
}
enum EStreamHostPlayAudioPreference {
k_EStreamHostPlayAudioDefault = 0;
k_EStreamHostPlayAudioAlways = 1;
}
enum EStreamingDataType {
k_EStreamingAudioData = 0;
k_EStreamingVideoData = 1;
k_EStreamingMicrophoneData = 2;
}
enum EStreamMouseButton {
k_EStreamMouseButtonLeft = 1;
k_EStreamMouseButtonRight = 2;
k_EStreamMouseButtonMiddle = 16;
k_EStreamMouseButtonX1 = 32;
k_EStreamMouseButtonX2 = 64;
k_EStreamMouseButtonUnknown = 4096;
}
enum EStreamMouseWheelDirection {
k_EStreamMouseWheelUp = 120;
k_EStreamMouseWheelDown = -120;
k_EStreamMouseWheelLeft = 3;
k_EStreamMouseWheelRight = 4;
}
enum EStreamFramerateLimiter {
k_EStreamFramerateSlowCapture = 1;
k_EStreamFramerateSlowConvert = 2;
k_EStreamFramerateSlowEncode = 4;
k_EStreamFramerateSlowNetwork = 8;
k_EStreamFramerateSlowDecode = 16;
k_EStreamFramerateSlowGame = 32;
k_EStreamFramerateSlowDisplay = 64;
}
enum EStreamActivity {
k_EStreamActivityIdle = 1;
k_EStreamActivityGame = 2;
k_EStreamActivityDesktop = 3;
k_EStreamActivitySecureDesktop = 4;
k_EStreamActivityMusic = 5;
}
enum EStreamDataMessage {
k_EStreamDataPacket = 1;
k_EStreamDataLost = 2;
}
enum EAudioFormat {
k_EAudioFormatNone = 0;
k_EAudioFormat16BitLittleEndian = 1;
k_EAudioFormatFloat = 2;
}
enum EVideoFormat {
k_EVideoFormatNone = 0;
k_EVideoFormatYV12 = 1;
k_EVideoFormatAccel = 2;
}
enum EStreamStatsMessage {
k_EStreamStatsFrameEvents = 1;
k_EStreamStatsDebugDump = 2;
k_EStreamStatsLogMessage = 3;
k_EStreamStatsLogUploadBegin = 4;
k_EStreamStatsLogUploadData = 5;
k_EStreamStatsLogUploadComplete = 6;
}
enum EStreamFrameEvent {
k_EStreamInputEventStart = 0;
k_EStreamInputEventSend = 1;
k_EStreamInputEventRecv = 2;
k_EStreamInputEventQueued = 3;
k_EStreamInputEventHandled = 4;
k_EStreamFrameEventStart = 5;
k_EStreamFrameEventCaptureBegin = 6;
k_EStreamFrameEventCaptureEnd = 7;
k_EStreamFrameEventConvertBegin = 8;
k_EStreamFrameEventConvertEnd = 9;
k_EStreamFrameEventEncodeBegin = 10;
k_EStreamFrameEventEncodeEnd = 11;
k_EStreamFrameEventSend = 12;
k_EStreamFrameEventRecv = 13;
k_EStreamFrameEventDecodeBegin = 14;
k_EStreamFrameEventDecodeEnd = 15;
k_EStreamFrameEventUploadBegin = 16;
k_EStreamFrameEventUploadEnd = 17;
k_EStreamFrameEventComplete = 18;
}
enum EStreamFrameResult {
k_EStreamFrameResultPending = 0;
k_EStreamFrameResultDisplayed = 1;
k_EStreamFrameResultDroppedNetworkSlow = 2;
k_EStreamFrameResultDroppedNetworkLost = 3;
k_EStreamFrameResultDroppedDecodeSlow = 4;
k_EStreamFrameResultDroppedDecodeCorrupt = 5;
k_EStreamFrameResultDroppedLate = 6;
k_EStreamFrameResultDroppedReset = 7;
}
enum EFrameAccumulatedStat {
k_EFrameStatFPS = 0;
k_EFrameStatCaptureDurationMS = 1;
k_EFrameStatConvertDurationMS = 2;
k_EFrameStatEncodeDurationMS = 3;
k_EFrameStatSteamDurationMS = 4;
k_EFrameStatServerDurationMS = 5;
k_EFrameStatNetworkDurationMS = 6;
k_EFrameStatDecodeDurationMS = 7;
k_EFrameStatDisplayDurationMS = 8;
k_EFrameStatClientDurationMS = 9;
k_EFrameStatFrameDurationMS = 10;
k_EFrameStatInputLatencyMS = 11;
k_EFrameStatGameLatencyMS = 12;
k_EFrameStatRoundTripLatencyMS = 13;
k_EFrameStatPingTimeMS = 14;
k_EFrameStatServerBitrateKbitPerSec = 15;
k_EFrameStatClientBitrateKbitPerSec = 16;
k_EFrameStatLinkBandwidthKbitPerSec = 17;
k_EFrameStatPacketLossPercentage = 18;
}
enum ELogFileType {
k_ELogFileSystemBoot = 0;
k_ELogFileSystemReset = 1;
k_ELogFileSystemDebug = 2;
}
message CDiscoveryPingRequest {
optional uint32 sequence = 1;
optional uint32 packet_size_requested = 2;
}
message CDiscoveryPingResponse {
optional uint32 sequence = 1;
optional uint32 packet_size_received = 2;
}
message CStreamingClientHandshakeInfo {
optional int32 network_test = 2;
}
message CClientHandshakeMsg {
required .CStreamingClientHandshakeInfo info = 1;
}
message CStreamingServerHandshakeInfo {
optional int32 mtu = 1;
}
message CServerHandshakeMsg {
required .CStreamingServerHandshakeInfo info = 1;
}
message CAuthenticationRequestMsg {
optional bytes token = 1;
optional .EStreamVersion version = 2 [default = k_EStreamVersionNone];
optional uint64 steamid = 3;
}
message CAuthenticationResponseMsg {
enum AuthenticationResult {
SUCCEEDED = 0;
FAILED = 1;
}
optional .CAuthenticationResponseMsg.AuthenticationResult result = 1 [default = SUCCEEDED];
optional .EStreamVersion version = 2 [default = k_EStreamVersionNone];
}
message CKeepAliveMsg {
}
message CStartNetworkTestMsg {
optional uint32 frames = 1;
optional uint32 framerate = 2;
optional uint32 bitrate_kbps = 3;
optional uint32 burst_bitrate_kbps = 4;
optional bool bandwidth_test = 5;
}
message CStreamVideoMode {
required uint32 width = 1;
required uint32 height = 2;
optional uint32 refresh_rate = 3;
optional uint32 refresh_rate_numerator = 4;
optional uint32 refresh_rate_denominator = 5;
}
message CStreamingClientCaps {
optional string system_info = 1;
optional bool system_can_suspend = 2;
optional int32 maximum_decode_bitrate_kbps = 3;
optional int32 maximum_burst_bitrate_kbps = 4;
optional bool supports_video_hevc = 5;
optional bool disable_steam_store = 6;
optional bool disable_client_cursor = 7;
optional bool disable_intel_hardware_encoding = 8;
optional bool disable_amd_hardware_encoding = 9;
optional bool disable_nvidia_hardware_encoding = 10;
optional int32 form_factor = 11;
}
message CStreamingClientConfig {
optional .EStreamQualityPreference quality = 1 [default = k_EStreamQualityBalanced];
optional uint32 maximum_resolution_x = 2;
optional uint32 maximum_resolution_y = 3;
optional uint32 maximum_framerate_numerator = 4;
optional uint32 maximum_framerate_denominator = 5;
optional int32 maximum_bitrate_kbps = 6 [default = -1];
optional bool enable_hardware_decoding = 7 [default = true];
optional bool enable_performance_overlay = 8 [default = false];
optional bool enable_video_streaming = 9 [default = true];
optional bool enable_audio_streaming = 10 [default = true];
optional bool enable_input_streaming = 11 [default = true];
optional int32 audio_channels = 12 [default = 2];
optional bool enable_video_hevc = 13 [default = false];
optional bool enable_performance_icons = 14 [default = true];
optional bool enable_microphone_streaming = 15 [default = false];
optional string controller_overlay_hotkey = 16;
optional bool enable_touch_controller = 17 [default = false];
optional .EStreamP2PScope p2p_scope = 19 [default = k_EStreamP2PScopeAutomatic];
}
message CStreamingServerConfig {
optional bool change_desktop_resolution = 1;
optional bool dynamically_adjust_resolution = 2;
optional bool enable_capture_nvfbc = 3;
optional bool enable_hardware_encoding_nvidia = 4;
optional bool enable_hardware_encoding_amd = 5;
optional bool enable_hardware_encoding_intel = 6;
optional int32 software_encoding_threads = 7;
optional bool enable_traffic_priority = 8;
optional .EStreamHostPlayAudioPreference host_play_audio = 9 [default = k_EStreamHostPlayAudioDefault];
}
message CNegotiatedConfig {
optional bool reliable_data = 1;
optional .EStreamAudioCodec selected_audio_codec = 2 [default = k_EStreamAudioCodecNone];
optional .EStreamVideoCodec selected_video_codec = 3 [default = k_EStreamVideoCodecNone];
repeated .CStreamVideoMode available_video_modes = 4;
optional bool enable_remote_hid = 5;
optional bool enable_touch_input = 6;
}
message CNegotiationInitMsg {
optional bool reliable_data = 1;
repeated .EStreamAudioCodec supported_audio_codecs = 2;
repeated .EStreamVideoCodec supported_video_codecs = 3;
optional bool supports_remote_hid = 4;
optional bool supports_touch_input = 5;
}
message CNegotiationSetConfigMsg {
required .CNegotiatedConfig config = 1;
optional .CStreamingClientConfig streaming_client_config = 2;
optional .CStreamingClientCaps streaming_client_caps = 3;
}
message CNegotiationCompleteMsg {
}
message CStartAudioDataMsg {
required uint32 channel = 2;
optional .EStreamAudioCodec codec = 3 [default = k_EStreamAudioCodecNone];
optional bytes codec_data = 4;
optional uint32 frequency = 5;
optional uint32 channels = 6;
}
message CStopAudioDataMsg {
}
message CStartVideoDataMsg {
required uint32 channel = 1;
optional .EStreamVideoCodec codec = 2 [default = k_EStreamVideoCodecNone];
optional bytes codec_data = 3;
optional uint32 width = 4;
optional uint32 height = 5;
}
message CStopVideoDataMsg {
}
message CRecordedInput {
optional .EStreamControlMessage type = 1 [default = k_EStreamControlAuthenticationRequest];
optional uint32 timestamp = 2;
oneof data {
.CInputTouchFingerDownMsg finger_down = 3;
.CInputTouchFingerMotionMsg finger_motion = 4;
.CInputTouchFingerUpMsg finger_up = 5;
.CInputMouseMotionMsg mouse_motion = 6;
.CInputMouseWheelMsg mouse_wheel = 7;
.CInputMouseDownMsg mouse_down = 8;
.CInputMouseUpMsg mouse_up = 9;
.CInputKeyDownMsg key_down = 10;
.CInputKeyUpMsg key_up = 11;
.CInputTextMsg text = 12;
.CRemoteHIDMsg hid = 13;
}
}
message CRecordedInputStream {
repeated .CRecordedInput entries = 1;
}
message CInputLatencyTestMsg {
required uint32 input_mark = 1;
optional uint32 color = 2;
}
message CInputTouchFingerDownMsg {
optional uint32 input_mark = 1;
optional uint64 fingerid = 2;
optional float x_normalized = 3;
optional float y_normalized = 4;
}
message CInputTouchFingerMotionMsg {
optional uint32 input_mark = 1;
optional uint64 fingerid = 2;
optional float x_normalized = 3;
optional float y_normalized = 4;
}
message CInputTouchFingerUpMsg {
optional uint32 input_mark = 1;
optional uint64 fingerid = 2;
optional float x_normalized = 3;
optional float y_normalized = 4;
}
message CInputMouseMotionMsg {
optional uint32 input_mark = 1;
optional float x_normalized = 2;
optional float y_normalized = 3;
optional int32 dx = 4;
optional int32 dy = 5;
}
message CInputMouseWheelMsg {
optional uint32 input_mark = 1;
required .EStreamMouseWheelDirection direction = 2 [default = k_EStreamMouseWheelUp];
}
message CInputMouseDownMsg {
optional uint32 input_mark = 1;
required .EStreamMouseButton button = 2 [default = k_EStreamMouseButtonLeft];
}
message CInputMouseUpMsg {
optional uint32 input_mark = 1;
required .EStreamMouseButton button = 2 [default = k_EStreamMouseButtonLeft];
}
message CInputKeyDownMsg {
optional uint32 input_mark = 1;
required uint32 scancode = 2;
}
message CInputKeyUpMsg {
optional uint32 input_mark = 1;
required uint32 scancode = 2;
}
message CInputTextMsg {
optional uint32 input_mark = 1;
required string text_utf8 = 2;
}
message CSetTitleMsg {
optional string text = 1;
}
message CSetCaptureSizeMsg {
optional int32 width = 1;
optional int32 height = 2;
}
message CSetIconMsg {
optional int32 width = 1;
optional int32 height = 2;
optional bytes image = 3;
}
message CSetFlashStateMsg {
optional uint32 flags = 1;
optional uint32 count = 2;
optional uint32 timeout_ms = 3;
}
message CShowCursorMsg {
optional float x_normalized = 1;
optional float y_normalized = 2;
}
message CHideCursorMsg {
}
message CSetCursorMsg {
required uint64 cursor_id = 1;
}
message CGetCursorImageMsg {
required uint64 cursor_id = 1;
}
message CSetCursorImageMsg {
required uint64 cursor_id = 1;
optional int32 width = 2;
optional int32 height = 3;
optional int32 hot_x = 4;
optional int32 hot_y = 5;
optional bytes image = 6;
}
message CVideoDecoderInfoMsg {
optional string info = 1;
optional int32 threads = 2;
}
message CVideoEncoderInfoMsg {
optional string info = 1;
}
message CPauseMsg {
}
message CResumeMsg {
}
message CEnableHighResCaptureMsg {
}
message CDisableHighResCaptureMsg {
}
message CToggleMagnificationMsg {
}
message CSetCapslockMsg {
optional bool pressed = 1;
}
message CStreamingKeymapEntry {
optional int32 scancode = 1;
optional int32 normal_keycode = 2;
optional int32 shift_keycode = 3;
optional int32 capslock_keycode = 4;
optional int32 shift_capslock_keycode = 5;
optional int32 altgr_keycode = 6;
optional int32 altgr_shift_keycode = 7;
optional int32 altgr_capslock_keycode = 8;
optional int32 altgr_shift_capslock_keycode = 9;
}
message CStreamingKeymap {
repeated .CStreamingKeymapEntry entries = 1;
}
message CSetKeymapMsg {
optional .CStreamingKeymap keymap = 1;
}
message CStopRequest {
}
message CQuitRequest {
}
message CDeleteCursorMsg {
required uint64 cursor_id = 1;
}
message CSetStreamingClientConfig {
required .CStreamingClientConfig config = 1;
}
message CSetQoSMsg {
required bool use_qos = 1;
}
message CSetTargetFramerateMsg {
required uint32 framerate = 1;
optional uint32 reasons = 2;
optional uint32 framerate_numerator = 3;
optional uint32 framerate_denominator = 4;
}
message CSetTargetBitrateMsg {
required int32 bitrate = 1;
}
message COverlayEnabledMsg {
required bool enabled = 1;
}
message CSetGammaRampMsg {
optional bytes gamma_ramp = 1;
}
message CSetActivityMsg {
optional .EStreamActivity activity = 1 [default = k_EStreamActivityIdle];
optional uint32 appid = 2;
optional uint64 gameid = 3;
optional string game_name = 4;
}
message CSystemSuspendMsg {
}
message CVirtualHereRequestMsg {
optional string hostname = 1;
}
message CVirtualHereReadyMsg {
optional uint32 licensed_device_count = 1;
}
message CVirtualHereShareDeviceMsg {
optional string device_address = 1;
}
message CSetSpectatorModeMsg {
optional bool enabled = 1;
}
message CRemoteHIDMsg {
optional bytes data = 1;
}
message CTouchConfigActiveMsg {
optional uint32 appid = 1;
optional uint32 revision = 2;
optional uint64 creator = 3;
}
message CGetTouchConfigDataMsg {
optional uint32 appid = 1;
}
message CSetTouchConfigDataMsg {
optional uint32 appid = 1;
optional uint32 revision = 2;
optional bytes data = 3;
optional bytes layout = 4;
optional uint64 creator = 5;
}
message CSaveTouchConfigLayoutMsg {
optional uint32 appid = 1;
optional bytes layout = 4;
}
message CTouchActionSetActiveMsg {
optional uint32 appid = 1;
optional int32 actionset_id = 2;
}
message CTouchActionSetLayerAddedMsg {
optional uint32 appid = 1;
optional int32 actionset_id = 2;
}
message CTouchActionSetLayerRemovedMsg {
optional uint32 appid = 1;
optional int32 actionset_id = 2;
}
message CGetTouchIconDataMsg {
optional uint32 appid = 1;
optional string icon = 2;
}
message CSetTouchIconDataMsg {
optional uint32 appid = 1;
optional string icon = 2;
optional bytes data = 3;
}
message CRemotePlayTogetherGroupUpdateMsg {
message Player {
optional uint32 accountid = 1;
optional uint32 guestid = 2;
optional bool keyboard_enabled = 3;
optional bool mouse_enabled = 4;
optional bool controller_enabled = 5;
repeated uint32 controller_slots = 6;
optional bytes avatar_hash = 7;
}
repeated .CRemotePlayTogetherGroupUpdateMsg.Player players = 1;
optional int32 player_index = 2;
optional string miniprofile_location = 3;
optional string game_name = 4;
optional string avatar_location = 5;
}
message CSetInputTemporarilyDisabledMsg {
optional bool disabled = 1;
}
message CSetQualityOverrideMsg {
optional int32 value = 1;
}
message CSetBitrateOverrideMsg {
optional int32 value = 1;
}
message CStreamDataLostMsg {
repeated uint32 packets = 1;
}
message CAudioFormat {
required .EAudioFormat format = 1 [default = k_EAudioFormatNone];
optional uint32 frequency = 2;
optional uint32 channels = 3;
}
message CVideoFormat {
required .EVideoFormat format = 1 [default = k_EVideoFormatNone];
optional uint32 width = 2;
optional uint32 height = 3;
}
message CFrameEvent {
required .EStreamFrameEvent event_id = 1 [default = k_EStreamInputEventStart];
required uint32 timestamp = 2;
}
message CFrameStats {
required uint32 frame_id = 1;
optional uint32 input_mark = 2;
repeated .CFrameEvent events = 3;
required .EStreamFrameResult result = 4 [default = k_EStreamFrameResultPending];
optional float frame_start_delta = 5;
optional float frame_display_delta = 6;
optional float ping_time = 7;
optional float server_bitrate = 8;
optional float client_bitrate = 9;
optional float link_bandwidth = 10;
optional float packet_loss = 11;
optional uint32 frame_size = 12;
}
message CFrameStatAccumulatedValue {
required .EFrameAccumulatedStat stat_type = 1 [default = k_EFrameStatFPS];
required int32 count = 2;
required float average = 3;
optional float stddev = 4;
}
message CFrameStatsListMsg {
required .EStreamingDataType data_type = 1 [default = k_EStreamingAudioData];
repeated .CFrameStats stats = 2;
repeated .CFrameStatAccumulatedValue accumulated_stats = 3;
required int32 latest_frame_id = 4;
}
message CStreamingSessionStats {
optional float frame_loss_percentage = 1;
optional float average_network_time_ms = 2;
optional float stddev_network_time_ms = 3;
}
message CDebugDumpMsg {
optional bytes screenshot = 1;
}
message CLogMsg {
optional int32 type = 1;
optional string message = 2;
}
message CLogUploadMsg {
optional .ELogFileType type = 1 [default = k_ELogFileSystemBoot];
optional bytes data = 3;
}
message CTransportSignalMsg {
message WebRTCMessage {
message Candidate {
optional string sdp_mid = 1;
optional int32 sdp_mline_index = 2;
optional string candidate = 3;
}
oneof msg {
bool greeting = 1;
string offer = 2;
string answer = 3;
.CTransportSignalMsg.WebRTCMessage.Candidate candidate = 4;
}
}
optional .CTransportSignalMsg.WebRTCMessage webrtc = 1;
repeated bytes sdr = 2;
}

34
protobufs/steammessages_shader.proto

@ -40,10 +40,34 @@ message CShader_GetBucketManifest_Request {
message CShader_GetBucketManifest_Response {
optional uint64 manifestid = 1;
optional uint32 depotsize = 2;
optional uint64 depotsize = 2;
optional uint64 bucketid = 3;
}
message CShader_GetStaleBucket_Request {
optional string gpu_desc = 1;
optional string driver_desc = 2;
}
message CShader_GetStaleBucket_Response {
optional uint64 bucketid = 1;
optional uint32 appid = 2;
optional uint64 manifestid = 3;
}
message CShader_ReportExternalBuild_Request {
optional uint32 appid = 1;
optional string gpu_desc = 2;
optional string driver_desc = 3;
optional uint64 manifestid = 4;
optional string source_gpu_desc = 5;
optional string source_driver_desc = 6;
optional uint64 depotsize = 7;
}
message CShader_ReportExternalBuild_Response {
}
service Shader {
option (service_description) = "Shader methods";
@ -58,4 +82,12 @@ service Shader {
rpc GetBucketManifest (.CShader_GetBucketManifest_Request) returns (.CShader_GetBucketManifest_Response) {
option (method_description) = "Client wants to know the manifest ID to fetch (if any) for a bucket's depot";
}
rpc GetStaleBucket (.CShader_GetStaleBucket_Request) returns (.CShader_GetStaleBucket_Response) {
option (method_description) = "Job to get a stale bucket given a gpu and driver desc";
}
rpc ReportExternalBuild (.CShader_ReportExternalBuild_Request) returns (.CShader_ReportExternalBuild_Response) {
option (method_description) = "Report an exernally built bucket";
}
}

17
protobufs/steammessages_store.proto

@ -9,6 +9,19 @@ enum EUserReviewScorePreference {
k_EUserReviewScorePreference_ExcludeBombs = 2;
}
message CStore_GetMostPopularTags_Request {
optional string language = 1;
}
message CStore_GetMostPopularTags_Response {
message Tag {
optional uint32 tagid = 1;
optional string name = 2;
}
repeated .CStore_GetMostPopularTags_Response.Tag tags = 1;
}
message CStore_GetLocalizedNameForTags_Request {
optional string language = 1;
repeated uint32 tagids = 2;
@ -75,6 +88,10 @@ message CStore_StorePreferencesChanged_Notification {
service Store {
option (service_description) = "A service to access store data.";
rpc GetMostPopularTags (.CStore_GetMostPopularTags_Request) returns (.CStore_GetMostPopularTags_Response) {
option (method_description) = "Get all whitelisted tags, with localized names.";
}
rpc GetLocalizedNameForTags (.CStore_GetLocalizedNameForTags_Request) returns (.CStore_GetLocalizedNameForTags_Response) {
option (method_description) = "Gets tag names in a different language";
}

50
protobufs/steammessages_timedtrial.proto

@ -0,0 +1,50 @@
syntax = "proto2";
import "steammessages_unified_base.proto";
option py_generic_services = true;
message CTimedTrial_GetTimeRemaining_Request {
optional uint32 appid = 1;
}
message CTimedTrial_GetTimeRemaining_Response {
optional uint32 seconds_played = 1;
optional uint32 seconds_allowed = 2;
optional uint32 packageid = 3;
optional uint32 mastersub_appid = 4;
}
message CTimedTrial_RecordPlaytime_Request {
optional uint32 appid = 1;
optional uint32 seconds_played = 2;
}
message CTimedTrial_RecordPlaytime_Response {
optional uint32 seconds_played = 1;
optional uint32 seconds_allowed = 2;
}
message CTimedTrial_ResetPlaytime_Request {
optional uint32 appid = 1;
}
message CTimedTrial_ResetPlaytime_Response {
optional uint32 seconds_played = 1;
optional uint32 seconds_allowed = 2;
}
service TimedTrial {
option (service_description) = "A service to get user timed trial information";
rpc GetTimeRemaining (.CTimedTrial_GetTimeRemaining_Request) returns (.CTimedTrial_GetTimeRemaining_Response) {
option (method_description) = "Returns the amount of time a user has left on a timed trial for an app";
}
rpc RecordPlaytime (.CTimedTrial_RecordPlaytime_Request) returns (.CTimedTrial_RecordPlaytime_Response) {
option (method_description) = "Updates the user's remaining playtime while in game";
}
rpc ResetPlaytime (.CTimedTrial_ResetPlaytime_Request) returns (.CTimedTrial_ResetPlaytime_Response) {
option (method_description) = "Reset the user's remaining playtime (developer only)";
}
}

831
protobufs/steammessages_webui_friends.proto

File diff suppressed because it is too large

14
requirements.txt

@ -3,13 +3,9 @@ pycryptodomex>=3.7.0
requests>=2.9.1
vdf>=3.3
gevent>=1.3.0
protobuf>=3.0.0
gevent-eventemitter>=2.1
enum34==1.1.2; python_version < '3.4'
coverage==4.0.3
pytest==3.2.1
pytest-cov==2.5.1
mock==1.3.0
PyYAML==5.1
vcrpy==2.0.1
protobuf~=3.0; python_version >= '3'
protobuf<3.18.0; python_version < '3'
gevent-eventemitter~=2.1
cachetools>=3.0.0
enum34==1.1.2; python_version < '3.4'
win-inet-pton; python_version == '2.7' and sys_platform == 'win32'

12
setup.py

@ -3,7 +3,6 @@
from setuptools import setup, find_packages
from codecs import open
from os import path
import sys
here = path.abspath(path.dirname(__file__))
with open(path.join(here, 'README.rst'), encoding='utf-8') as f:
@ -20,19 +19,19 @@ install_requires = [
'requests>=2.9.1',
'vdf>=3.3',
'cachetools>=3.0.0',
"win-inet-pton; python_version == '2.7' and sys_platform == 'win32'",
"enum34==1.1.2; python_version < '3.4'",
]
install_extras = {
'client': [
'gevent>=1.3.0',
'protobuf>=3.0.0',
'gevent-eventemitter>=2.1',
'protobuf~=3.0; python_version >= "3"',
'protobuf<3.18.0; python_version < "3"',
'gevent-eventemitter~=2.1',
],
}
if sys.version_info < (3, 4):
install_requires.append('enum34>=1.0.4')
setup(
name='steam',
version=__version__,
@ -53,6 +52,7 @@ setup(
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9',
'Programming Language :: Python :: Implementation :: PyPy',
],
keywords='valve steam steamid api webapi steamcommunity',

4
steam/__init__.py

@ -1,4 +1,4 @@
__version__ = "1.0.2"
__version__ = "1.3.0"
__author__ = "Rossen Georgiev"
version_info = (1, 0, 2)
version_info = (1, 3, 0)

16
steam/client/__init__.py

@ -1,6 +1,11 @@
"""
Implementation of Steam client based on ``gevent``
.. warning::
``steam.client`` no longer patches stdlib to make it gevent cooperative.
This provides flexibility if you want to use :class:`.SteamClient` with async or other modules.
If you want to monkey patch anyway use :meth:`steam.monkey.patch_minimal()`
.. note::
Additional features are located in separate submodules. All functionality from :mod:`.builtins` is inherited by default.
@ -8,11 +13,6 @@ Implementation of Steam client based on ``gevent``
Optional features are available as :mod:`.mixins`. This allows the client to remain light yet flexible.
"""
import gevent
import gevent.monkey
gevent.monkey.patch_socket()
gevent.monkey.patch_ssl()
import os
import json
from random import random
@ -31,7 +31,7 @@ from steam.core.crypto import sha1_hash
from steam.steamid import SteamID
from steam.exceptions import SteamError
from steam.client.builtins import BuiltinBase
from steam.utils import ip_from_int, ip_to_int
from steam.utils import ip4_from_int, ip4_to_int
from steam.utils.proto import proto_fill_from_dict
if six.PY2:
@ -174,7 +174,7 @@ class SteamClient(CMClient, BuiltinBase):
data = {
'cell_id': self.cm_servers.cell_id,
'last_updated': self.cm_servers.last_updated,
'servers': list(zip(map(ip_from_int, msg.body.cm_addresses), msg.body.cm_ports)),
'servers': list(zip(map(ip4_from_int, msg.body.cm_addresses), msg.body.cm_ports)),
}
try:
with open(filepath, 'wb') as f:
@ -539,7 +539,7 @@ class SteamClient(CMClient, BuiltinBase):
message.body.chat_mode = self.chat_mode
if login_id is None:
message.body.obfuscated_private_ip.v4 = ip_to_int(self.connection.local_address) ^ 0xF00DBAAD
message.body.obfuscated_private_ip.v4 = ip4_to_int(self.connection.local_address) ^ 0xF00DBAAD
else:
message.body.obfuscated_private_ip.v4 = login_id

63
steam/client/builtins/apps.py

@ -1,8 +1,8 @@
from binascii import hexlify
import vdf
from steam.enums import EResult, EServerType
from steam.enums.emsg import EMsg
from steam.core.msg import MsgProto
from steam.utils import ip_from_int
from steam.utils.proto import proto_fill_from_dict
@ -41,13 +41,19 @@ class Apps(object):
else:
return EResult(resp.eresult)
def get_product_info(self, apps=[], packages=[], timeout=15):
def get_product_info(self, apps=[], packages=[], meta_data_only=False, raw=False, auto_access_tokens=True, timeout=15):
"""Get product info for apps and packages
:param apps: items in the list should be either just ``app_id``, or :class:`dict`
:type apps: :class:`list`
:type apps: :class:`list`
:param packages: items in the list should be either just ``package_id``, or :class:`dict`
:type packages: :class:`list`
:type packages: :class:`list`
:param meta_data_only: only meta data will be returned in the reponse (e.g. change number, missing_token, sha1)
:type meta_data_only: :class:`bool`
:param raw: Data buffer for each app is returned as bytes in its' original form. Apps buffer is text VDF, and package buffer is binary VDF
:type raw: :class:`bool`
:param auto_access_token: automatically request and fill access tokens
:type auto_access_token: :class:`bool`
:return: dict with ``apps`` and ``packages`` containing their info, see example below
:rtype: :class:`dict`, :class:`None`
@ -90,11 +96,21 @@ class Apps(object):
if not apps and not packages:
return
if auto_access_tokens:
tokens = self.get_access_tokens(app_ids=list(map(lambda app: app['appid'] if isinstance(app, dict) else app, apps)),
package_ids=list(map(lambda pkg: pkg['packageid'] if isinstance(pkg, dict) else pkg, packages))
)
else:
tokens = None
message = MsgProto(EMsg.ClientPICSProductInfoRequest)
for app in apps:
app_info = message.body.apps.add()
app_info.only_public = False
if tokens:
app_info.access_token = tokens['apps'].get(app['appid'] if isinstance(app, dict) else app, 0)
if isinstance(app, dict):
proto_fill_from_dict(app_info, app)
else:
@ -102,12 +118,18 @@ class Apps(object):
for package in packages:
package_info = message.body.packages.add()
if tokens:
package_info.access_token = tokens['packages'].get(package['packageid'] if isinstance(package, dict) else package, 0)
if isinstance(package, dict):
proto_fill_from_dict(package_info, package)
else:
package_info.packageid = package
message.body.meta_data_only = False
message.body.meta_data_only = meta_data_only
message.body.num_prev_failed = 0
message.body.supports_package_tokens = 1
job_id = self.send_job(message)
@ -119,11 +141,32 @@ class Apps(object):
chunk = chunk[0].body
for app in chunk.apps:
data['apps'][app.appid] = vdf.loads(app.buffer[:-1].decode('utf-8', 'replace'))['appinfo']
if app.buffer and not raw:
data['apps'][app.appid] = vdf.loads(app.buffer[:-1].decode('utf-8', 'replace'))['appinfo']
else:
data['apps'][app.appid] = {}
data['apps'][app.appid]['_missing_token'] = app.missing_token
data['apps'][app.appid]['_change_number'] = app.change_number
data['apps'][app.appid]['_sha'] = hexlify(app.sha).decode('ascii')
data['apps'][app.appid]['_size'] = app.size
if app.buffer and raw:
data['apps'][app.appid]['_buffer'] = app.buffer
for pkg in chunk.packages:
data['packages'][pkg.packageid] = vdf.binary_loads(pkg.buffer[4:]).get(str(pkg.packageid), {})
if pkg.buffer and not raw:
data['packages'][pkg.packageid] = vdf.binary_loads(pkg.buffer[4:]).get(str(pkg.packageid), {})
else:
data['packages'][pkg.packageid] = {}
data['packages'][pkg.packageid]['_missing_token'] = pkg.missing_token
data['packages'][pkg.packageid]['_change_number'] = pkg.change_number
data['packages'][pkg.packageid]['_sha'] = hexlify(pkg.sha).decode('ascii')
data['packages'][pkg.packageid]['_size'] = pkg.size
if pkg.buffer and raw:
data['packages'][pkg.packageid]['_buffer'] = pkg.buffer
if not chunk.response_pending:
break
@ -163,7 +206,7 @@ class Apps(object):
{'app_id': app_id},
timeout=10
)
def get_encrypted_app_ticket(self, app_id, userdata):
"""Gets the encrypted app ticket
:param app_id: app id
@ -246,7 +289,7 @@ class Apps(object):
if resp:
return {'apps': dict(map(lambda app: (app.appid, app.access_token), resp.app_access_tokens)),
'packages': dict(map(lambda pkg: (pkg.appid, pkg.access_token), resp.package_access_tokens)),
'packages': dict(map(lambda pkg: (pkg.packageid, pkg.access_token), resp.package_access_tokens)),
}
def register_product_key(self, key):

15
steam/client/builtins/gameservers.py

@ -38,7 +38,7 @@ from steam.steamid import SteamID
from steam.core.msg import MsgProto
from steam.enums import EResult
from steam.enums.emsg import EMsg
from steam.utils import ip_to_int, ip_from_int
from steam.utils import ip4_to_int, ip4_from_int, ip6_from_bytes
from steam.utils.proto import proto_to_dict
from steam.exceptions import SteamError
@ -81,13 +81,13 @@ class SteamGameServers(object):
.. code:: python
[{'auth_players': 0, 'server_ip': '1.2.3.4', 'server_port': 27015},
{'auth_players': 6, 'server_ip': '1.2.3.4', 'server_port': 27016},
[{'auth_players': 0, 'server_ip': '1.2.3.4', 'query_port': 27015},
{'auth_players': 6, 'server_ip': '1:2:3:4::5', 'query_port': 27016},
...
]
"""
if 'geo_location_ip' in kw:
kw['geo_location_ip'] = ip_to_int(kw['geo_location_ip'])
kw['geo_location_ip'] = ip4_to_int(kw['geo_location_ip'])
kw['filter_text'] = filter_text
kw['max_servers'] = max_servers
@ -103,7 +103,12 @@ class SteamGameServers(object):
resp = proto_to_dict(resp)
for server in resp['servers']:
server['server_ip'] = ip_from_int(server['server_ip'])
server.pop('deprecated_server_ip', None) # no point returning this
if 'v4' in server['server_ip']:
server['server_ip'] = ip4_from_int(server['server_ip']['v4'])
else:
server['server_ip'] = ip6_from_bytes(server['server_ip']['v6'])
return resp['servers']

9
steam/client/builtins/leaderboards.py

@ -75,13 +75,14 @@ class SteamLeaderboard(object):
display_type = ELeaderboardDisplayType.NONE #: :class:`steam.enums.common.ELeaderboardDisplayType`
data_request = ELeaderboardDataRequest.Global #: :class:`steam.enums.common.ELeaderboardDataRequest`
def __init__(self, steam, app_id, name, data):
def __init__(self, steam, app_id, name, data=None):
self._steam = steam
self.app_id = app_id
for field in data.DESCRIPTOR.fields:
if field.name.startswith('leaderboard_'):
self.__dict__[field.name.replace('leaderboard_', '')] = getattr(data, field.name)
if data is not None:
for field in data.DESCRIPTOR.fields:
if field.name.startswith('leaderboard_'):
self.__dict__[field.name.replace('leaderboard_', '')] = getattr(data, field.name)
self.sort_method = ELeaderboardSortMethod(self.sort_method)
self.display_type = ELeaderboardDisplayType(self.display_type)

4
steam/client/builtins/user.py

@ -38,7 +38,7 @@ class User(object):
def __handle_message_incoming2(self, msg):
# new chat
if msg.body.chat_entry_type == EChatEntryType.ChatMsg:
if msg.body.chat_entry_type == EChatEntryType.ChatMsg and not msg.body.local_echo:
user = self.get_user(msg.body.steamid_friend)
self.emit("chat_message", user, msg.body.message)
@ -114,7 +114,7 @@ class User(object):
self._user_cache[steam_id] = suser
if fetch_persona_state:
self.request_persona_state([steam_id])
suser.refresh(wait=False)
return suser

154
steam/client/cdn.py

@ -3,9 +3,20 @@ The :class:`.CDNClient` class provides a simple API for downloading Steam conten
Initializing :class:`.CDNClient` requires a logged in :class:`.SteamClient` instance
.. warning::
This module uses :mod:`requests` library, which is not gevent cooperative by default.
It is high recommended that you use :meth:`steam.monkey.patch_minimal()`.
See example below
.. code:: python
import steam.monkey
steam.monkey.patch_minimal()
from steam.client import SteamClient, EMsg
from steam.client.cdn import CDNClient
mysteam = SteamClient()
mysteam.cli_login()
...
mycdn = CDNClient(mysteam)
@ -95,7 +106,7 @@ import vdf
from gevent.pool import Pool as GPool
from cachetools import LRUCache
from steam import webapi
from steam.exceptions import SteamError
from steam.exceptions import SteamError, ManifestError
from steam.core.msg import MsgProto
from steam.enums import EResult, EType
from steam.enums.emsg import EMsg
@ -466,6 +477,12 @@ class CDNClient(object):
self.load_licenses()
def clear_cache(self):
"""Cleared cached information. Next call on methods with caching will return fresh data"""
self.manifests.clear()
self.app_depots.clear()
self.beta_passwords.clear()
def load_licenses(self):
"""Read licenses from SteamClient instance, required for determining accessible content"""
self.licensed_app_ids.clear()
@ -611,7 +628,48 @@ class CDNClient(object):
return self._chunk_cache[(depot_id, chunk_id)]
def get_manifest(self, app_id, depot_id, manifest_gid, decrypt=True):
def get_manifest_request_code(self, app_id, depot_id, manifest_gid, branch='public', branch_password_hash=None):
"""Get manifest request code for authenticating manifest download
:param app_id: App ID
:type app_id: int
:param depot_id: Depot ID
:type depot_id: int
:param manifest_gid: Manifest gid
:type manifest_gid: int
:param branch: (optional) branch name
:type branch: str
:param branch_password_hash: (optional) branch password hash
:type branch_password_hash: str
:returns: manifest request code
:rtype: int
"""
body = {
"app_id": int(app_id),
"depot_id": int(depot_id),
"manifest_id": int(manifest_gid),
}
if branch and branch.lower() != 'public':
body['app_branch'] = branch
if branch_password_hash:
body['branch_password_hash'] = branch_password_hash
resp = self.steam.send_um_and_wait(
'ContentServerDirectory.GetManifestRequestCode#1',
body,
timeout=5,
)
if resp is None or resp.header.eresult != EResult.OK:
raise SteamError("Failed to get manifest code for %s, %s, %s" % (app_id, depot_id, manifest_gid),
EResult.Timeout if resp is None else EResult(resp.header.eresult))
return resp.body.manifest_request_code
def get_manifest(self, app_id, depot_id, manifest_gid, decrypt=True, manifest_request_code=0):
"""Download a manifest file
:param app_id: App ID
@ -622,11 +680,16 @@ class CDNClient(object):
:type manifest_gid: int
:param decrypt: Decrypt manifest filenames
:type decrypt: bool
:param manifest_request_code: Manifest request code, authenticates the download
:type manifest_request_code: int
:returns: manifest instance
:rtype: :class:`.CDNDepotManifest`
"""
if (app_id, depot_id, manifest_gid) not in self.manifests:
resp = self.cdn_cmd('depot', '%s/manifest/%s/5' % (depot_id, manifest_gid))
if manifest_request_code:
resp = self.cdn_cmd('depot', '%s/manifest/%s/5/%s' % (depot_id, manifest_gid, manifest_request_code))
else:
resp = self.cdn_cmd('depot', '%s/manifest/%s/5' % (depot_id, manifest_gid))
if resp.ok:
manifest = self.DepotManifestClass(self, app_id, resp.content)
@ -664,6 +727,19 @@ class CDNClient(object):
self.app_depots[app_id] = self.steam.get_product_info([app_id])['apps'][app_id]['depots']
return self.app_depots[app_id]
def has_license_for_depot(self, depot_id):
""" Check if there is license for depot
:param depot_id: depot ID
:type depot_id: int
:returns: True if we have license
:rtype: bool
"""
if depot_id in self.licensed_depot_ids or depot_id in self.licensed_app_ids:
return True
else:
return False
def get_manifests(self, app_id, branch='public', password=None, filter_func=None, decrypt=True):
"""Get a list of CDNDepotManifest for app
@ -677,7 +753,7 @@ class CDNClient(object):
Function to filter depots. ``func(depot_id, depot_info)``
:returns: list of :class:`.CDNDepotManifest`
:rtype: :class:`list` [:class:`.CDNDepotManifest`]
:raises SteamError: error message
:raises: ManifestError, SteamError
"""
depots = self.get_app_depot_info(app_id)
@ -700,9 +776,24 @@ class CDNClient(object):
if (app_id, branch) not in self.beta_passwords:
raise SteamError("Incorrect password for branch %r" % branch)
def async_fetch_manifest(app_id, depot_id, manifest_gid, decrypt, name):
manifest = self.get_manifest(app_id, depot_id, manifest_gid, decrypt)
manifest.name = name
def async_fetch_manifest(
app_id, depot_id, manifest_gid, decrypt, depot_name, branch_name, branch_pass
):
try:
manifest_code = self.get_manifest_request_code(
app_id, depot_id, int(manifest_gid), branch_name, branch_pass
)
except SteamError as exc:
return ManifestError("Failed to acquire manifest code", app_id, depot_id, manifest_gid, exc)
try:
manifest = self.get_manifest(
app_id, depot_id, manifest_gid, decrypt=decrypt, manifest_request_code=manifest_code
)
except Exception as exc:
return ManifestError("Failed download", app_id, depot_id, manifest_gid, exc)
manifest.name = depot_name
return manifest
tasks = []
@ -719,9 +810,9 @@ class CDNClient(object):
continue
# if we have no license for the depot, no point trying as we won't get depot_key
if decrypt and depot_id not in self.licensed_depot_ids:
self._LOG.debug("No license for depot %s (%s). Skipping...",
repr(depot_info['name']),
if not self.has_license_for_depot(depot_id):
self._LOG.debug("No license for depot %s (%s). Skipped",
repr(depot_info.get('name', depot_id)),
depot_id,
)
continue
@ -745,29 +836,27 @@ class CDNClient(object):
manifest_gid = depot_info.get('manifests', {}).get(branch)
if manifest_gid is not None:
tasks.append(self.gpool.spawn(async_fetch_manifest,
app_id,
depot_id,
manifest_gid,
decrypt,
depot_info['name'],
))
tasks.append(
self.gpool.spawn(
async_fetch_manifest,
app_id,
depot_id,
manifest_gid,
decrypt,
depot_info.get('name', depot_id),
branch_name=branch,
branch_pass=None, # TODO: figure out how to pass this correctly
)
)
# collect results
manifests = []
for task in tasks:
manifests.append(task.get())
# try:
# result = task.get()
# except SteamError as exp:
# self._LOG.error("Error: %s", exp)
# raise
# else:
# if isinstance(result, list):
# manifests.extend(result)
# else:
# manifests.append(result)
result = task.get()
if isinstance(result, ManifestError):
raise result
manifests.append(result)
# load shared depot manifests
for app_id, depot_ids in iteritems(shared_depots):
@ -807,7 +896,7 @@ class CDNClient(object):
:type item_id: int
:returns: manifest instance
:rtype: :class:`.CDNDepotManifest`
:raises SteamError: error message
:raises: ManifestError, SteamError
"""
resp = self.steam.send_um_and_wait('PublishedFile.GetDetails#1', {
'publishedfileids': [item_id],
@ -835,7 +924,12 @@ class CDNClient(object):
app_id = ws_app_id = wf.consumer_appid
manifest = self.get_manifest(app_id, ws_app_id, wf.hcontent_file)
try:
manifest_code = self.get_manifest_request_code(app_id, ws_app_id, int(wf.hcontent_file))
manifest = self.get_manifest(app_id, ws_app_id, wf.hcontent_file, manifest_request_code=manifest_code)
except SteamError as exc:
return ManifestError("Failed to acquire manifest", app_id, depot_id, manifest_gid, exc)
manifest.name = wf.title
return manifest

24
steam/client/user.py

@ -14,6 +14,7 @@ class SteamUser(object):
This is an internal object that can be obtained by :meth:`SteamClient.get_user`
"""
_pstate = None
_pstate_requested = False
steam_id = SteamID() #: steam id
relationship = EFriendRelationship.NONE #: friendship status
@ -30,18 +31,31 @@ class SteamUser(object):
self.state,
)
def refresh(self, wait=True):
if self._pstate_requested and self._pstate_ready.is_set():
self._pstate_requested = False
if not self._pstate_requested:
self._steam.request_persona_state([self.steam_id])
self._pstate_ready.clear()
self._pstate_requested = True
if wait:
self._pstate_ready.wait(timeout=5)
self._pstate_requested = False
def get_ps(self, field_name, wait_pstate=True):
"""Get property from PersonaState
`See full list of available fields_names <https://github.com/ValvePython/steam/blob/fa8a5127e9bb23185483930da0b6ae85e93055a7/protobufs/steammessages_clientserver_friends.proto#L125-L153>`_
"""
if not wait_pstate or self._pstate_ready.wait(timeout=5):
if self._pstate is None and wait_pstate:
self._steam.request_persona_state([self.steam_id])
self._pstate_ready.wait(timeout=5)
if not self._pstate_ready.is_set() and wait_pstate:
self.refresh()
if self._pstate is not None:
return getattr(self._pstate, field_name)
return None
else:
return None
@property
def last_logon(self):

4
steam/core/cm.py

@ -19,7 +19,7 @@ from steam.core import crypto
from steam.core.connection import TCPConnection
from steam.core.msg import Msg, MsgProto
from eventemitter import EventEmitter
from steam.utils import ip_from_int
from steam.utils import ip4_from_int
from steam.utils.proto import is_proto, clear_proto_bit
@ -392,7 +392,7 @@ class CMClient(EventEmitter):
def _handle_cm_list(self, msg):
self._LOG.debug("Updating CM list")
new_servers = zip(map(ip_from_int, msg.body.cm_addresses), msg.body.cm_ports)
new_servers = zip(map(ip4_from_int, msg.body.cm_addresses), msg.body.cm_ports)
self.cm_servers.clear()
self.cm_servers.merge_list(new_servers)
self.cm_servers.cell_id = self.cell_id

5
steam/core/crypto.py

@ -6,7 +6,7 @@ from os import urandom as random_bytes
from struct import pack
from base64 import b64decode
from Cryptodome.Hash import SHA1, HMAC
from Cryptodome.Hash import MD5, SHA1, HMAC
from Cryptodome.PublicKey.RSA import import_key as rsa_import_key, construct as rsa_construct
from Cryptodome.Cipher import PKCS1_OAEP, PKCS1_v1_5
from Cryptodome.Cipher import AES as AES
@ -96,6 +96,9 @@ def hmac_sha1(secret, data):
def sha1_hash(data):
return SHA1.new(data).digest()
def md5_hash(data):
return MD5.new(data).digest()
def rsa_publickey(mod, exp):
return rsa_construct((mod, exp))

36
steam/core/manifest.py

@ -56,6 +56,22 @@ class DepotFile(object):
:type: str
"""
return os.path.join(*self.filename_raw.split('\\'))
@property
def linktarget_raw(self):
"""Link target with null terminator and whitespaces removed
:type: str
"""
return self.file_mapping.linktarget.rstrip('\x00 \n\t')
@property
def linktarget(self):
"""Link target matching the OS
:type: str
"""
return os.path.join(*self.linktarget_raw.split('\\'))
@property
def size(self):
@ -96,6 +112,11 @@ class DepotFile(object):
""":type: bool"""
return not self.is_directory and not self.is_symlink
@property
def is_executable(self):
""":type: bool"""
return self.flags & EDepotFileFlag.Executable > 0
class DepotManifest(object):
DepotFileClass = DepotFile
@ -174,15 +195,14 @@ class DepotManifest(object):
if not self.metadata.filenames_encrypted:
return
for mapping in self.payload.mappings:
filename = b64decode(mapping.filename)
try:
filename = symmetric_decrypt(filename, depot_key)
except Exception:
raise RuntimeError("Unable to decrypt filename for depot manifest")
try:
for m in self.payload.mappings:
m.filename = symmetric_decrypt(b64decode(m.filename), depot_key)
mapping.filename = filename
if m.linktarget:
m.linktarget = symmetric_decrypt(b64decode(m.linktarget), depot_key)
except Exception:
raise RuntimeError("Unable to decrypt filename for depot manifest")
self.metadata.filenames_encrypted = False

16
steam/core/msg/__init__.py

@ -12,6 +12,14 @@ from steam.protobufs import steammessages_clientserver_pb2
from steam.protobufs import steammessages_clientserver_2_pb2
from steam.protobufs import steammessages_clientserver_friends_pb2
from steam.protobufs import steammessages_clientserver_login_pb2
from steam.protobufs import steammessages_clientserver_appinfo_pb2
from steam.protobufs import steammessages_clientserver_gameservers_pb2
from steam.protobufs import steammessages_clientserver_lbs_pb2
from steam.protobufs import steammessages_clientserver_mms_pb2
from steam.protobufs import steammessages_clientserver_ucm_pb2
from steam.protobufs import steammessages_clientserver_uds_pb2
from steam.protobufs import steammessages_clientserver_ufs_pb2
from steam.protobufs import steammessages_clientserver_userstats_pb2
cmsg_lookup_predefined = {
@ -36,6 +44,14 @@ for proto_module in [
steammessages_clientserver_2_pb2,
steammessages_clientserver_friends_pb2,
steammessages_clientserver_login_pb2,
steammessages_clientserver_appinfo_pb2,
steammessages_clientserver_gameservers_pb2,
steammessages_clientserver_lbs_pb2,
steammessages_clientserver_mms_pb2,
steammessages_clientserver_ucm_pb2,
steammessages_clientserver_uds_pb2,
steammessages_clientserver_ufs_pb2,
steammessages_clientserver_userstats_pb2,
]:
cmsg_list = proto_module.__dict__
cmsg_list = fnmatch.filter(cmsg_list, 'CMsg*')

125
steam/core/msg/unified.py

@ -1,62 +1,75 @@
import re
from importlib import import_module
service_lookup = {
'Broadcast': 'steam.protobufs.steammessages_broadcast_pb2',
'BroadcastClient': 'steam.protobufs.steammessages_broadcast_pb2',
'Chat': 'steam.protobufs.steammessages_chat_pb2',
'ChatRoom': 'steam.protobufs.steammessages_chat_pb2',
'ChatRoomClient': 'steam.protobufs.steammessages_chat_pb2',
'ChatUsability': 'steam.protobufs.steammessages_chat_pb2',
'ChatUsabilityClient': 'steam.protobufs.steammessages_chat_pb2',
'ClanChatRooms': 'steam.protobufs.steammessages_chat_pb2',
'Cloud': 'steam.protobufs.steammessages_cloud_pb2',
'Credentials': 'steam.protobufs.steammessages_credentials_pb2',
'DataPublisher': 'steam.protobufs.steammessages_datapublisher_pb2',
'ValveHWSurvey': 'steam.protobufs.steammessages_datapublisher_pb2',
'ContentBuilder': 'steam.protobufs.steammessages_depotbuilder_pb2',
'DeviceAuth': 'steam.protobufs.steammessages_deviceauth_pb2',
'Econ': 'steam.protobufs.steammessages_econ_pb2',
'FriendMessages': 'steam.protobufs.steammessages_friendmessages_pb2',
'FriendMessagesClient': 'steam.protobufs.steammessages_friendmessages_pb2',
'GameNotifications': 'steam.protobufs.steammessages_gamenotifications_pb2',
'GameNotificationsClient': 'steam.protobufs.steammessages_gamenotifications_pb2',
'GameServers': 'steam.protobufs.steammessages_gameservers_pb2',
'Inventory': 'steam.protobufs.steammessages_inventory_pb2',
'InventoryClient': 'steam.protobufs.steammessages_inventory_pb2',
'CommunityLinkFilter': 'steam.protobufs.steammessages_linkfilter_pb2',
'Offline': 'steam.protobufs.steammessages_offline_pb2',
'Parental': 'steam.protobufs.steammessages_parental_pb2',
'PartnerApps': 'steam.protobufs.steammessages_partnerapps_pb2',
'PhysicalGoods': 'steam.protobufs.steammessages_physicalgoods_pb2',
'Player': 'steam.protobufs.steammessages_player_pb2',
'PlayerClient': 'steam.protobufs.steammessages_player_pb2',
'PublishedFile': 'steam.protobufs.steammessages_publishedfile_pb2',
'PublishedFileClient': 'steam.protobufs.steammessages_publishedfile_pb2',
'Secrets': 'steam.protobufs.steammessages_secrets_pb2',
'Shader': 'steam.protobufs.steammessages_shader_pb2',
'SiteLicense': 'steam.protobufs.steammessages_site_license_pb2',
'SiteManagerClient': 'steam.protobufs.steammessages_site_license_pb2',
'Store': 'steam.protobufs.steammessages_store_pb2',
'StoreClient': 'steam.protobufs.steammessages_store_pb2',
'TwoFactor': 'steam.protobufs.steammessages_twofactor_pb2',
'AccountLinking': 'steam.protobufs.steammessages_useraccount_pb2',
'EmbeddedClient': 'steam.protobufs.steammessages_useraccount_pb2',
'UserAccount': 'steam.protobufs.steammessages_useraccount_pb2',
'FovasVideo': 'steam.protobufs.steammessages_video_pb2',
'Video': 'steam.protobufs.steammessages_video_pb2',
'VideoClient': 'steam.protobufs.steammessages_video_pb2',
'Clan': 'steam.protobufs.steammessages_webui_friends_pb2',
'Community': 'steam.protobufs.steammessages_webui_friends_pb2',
'ExperimentService': 'steam.protobufs.steammessages_webui_friends_pb2',
'FriendsList': 'steam.protobufs.steammessages_webui_friends_pb2',
'FriendsListClient': 'steam.protobufs.steammessages_webui_friends_pb2',
'SteamTV': 'steam.protobufs.steammessages_webui_friends_pb2',
'VoiceChat': 'steam.protobufs.steammessages_webui_friends_pb2',
'VoiceChatClient': 'steam.protobufs.steammessages_webui_friends_pb2',
'WebRTCClient': 'steam.protobufs.steammessages_webui_friends_pb2',
'WebRTCClientNotifications': 'steam.protobufs.steammessages_webui_friends_pb2',
}
service_lookup = { # MARK_SERVICE_START
'Broadcast': 'steam.protobufs.steammessages_broadcast_pb2',
'BroadcastClient': 'steam.protobufs.steammessages_broadcast_pb2',
'Chat': 'steam.protobufs.steammessages_chat_pb2',
'ChatRoom': 'steam.protobufs.steammessages_chat_pb2',
'ClanChatRooms': 'steam.protobufs.steammessages_chat_pb2',
'ChatRoomClient': 'steam.protobufs.steammessages_chat_pb2',
'ChatUsability': 'steam.protobufs.steammessages_chat_pb2',
'ChatUsabilityClient': 'steam.protobufs.steammessages_chat_pb2',
'Cloud': 'steam.protobufs.steammessages_cloud_pb2',
'CloudClient': 'steam.protobufs.steammessages_cloud_pb2',
'ContentServerDirectory': 'steam.protobufs.steammessages_contentsystem_pb2',
'Credentials': 'steam.protobufs.steammessages_credentials_pb2',
'DataPublisher': 'steam.protobufs.steammessages_datapublisher_pb2',
'ValveHWSurvey': 'steam.protobufs.steammessages_datapublisher_pb2',
'ContentBuilder': 'steam.protobufs.steammessages_depotbuilder_pb2',
'DeviceAuth': 'steam.protobufs.steammessages_deviceauth_pb2',
'Econ': 'steam.protobufs.steammessages_econ_pb2',
'FriendMessages': 'steam.protobufs.steammessages_friendmessages_pb2',
'FriendMessagesClient': 'steam.protobufs.steammessages_friendmessages_pb2',
'GameNotifications': 'steam.protobufs.steammessages_gamenotifications_pb2',
'GameNotificationsClient': 'steam.protobufs.steammessages_gamenotifications_pb2',
'GameServers': 'steam.protobufs.steammessages_gameservers_pb2',
'Inventory': 'steam.protobufs.steammessages_inventory_pb2',
'InventoryClient': 'steam.protobufs.steammessages_inventory_pb2',
'CommunityLinkFilter': 'steam.protobufs.steammessages_linkfilter_pb2',
'LobbyMatchmakingLegacy': 'steam.protobufs.steammessages_lobbymatchmaking_pb2',
'EconMarket': 'steam.protobufs.steammessages_market_pb2',
'Offline': 'steam.protobufs.steammessages_offline_pb2',
'Parental': 'steam.protobufs.steammessages_parental_pb2',
'ParentalClient': 'steam.protobufs.steammessages_parental_pb2',
'Parties': 'steam.protobufs.steammessages_parties_pb2',
'PartnerApps': 'steam.protobufs.steammessages_partnerapps_pb2',
'PhysicalGoods': 'steam.protobufs.steammessages_physicalgoods_pb2',
'Player': 'steam.protobufs.steammessages_player_pb2',
'PlayerClient': 'steam.protobufs.steammessages_player_pb2',
'PublishedFile': 'steam.protobufs.steammessages_publishedfile_pb2',
'PublishedFileClient': 'steam.protobufs.steammessages_publishedfile_pb2',
'QueuedMatchmaking': 'steam.protobufs.steammessages_qms_pb2',
'QueuedMatchmakingGameHost': 'steam.protobufs.steammessages_qms_pb2',
'Secrets': 'steam.protobufs.steammessages_secrets_pb2',
'Shader': 'steam.protobufs.steammessages_shader_pb2',
'SiteManagerClient': 'steam.protobufs.steammessages_site_license_pb2',
'SiteLicense': 'steam.protobufs.steammessages_site_license_pb2',
'Store': 'steam.protobufs.steammessages_store_pb2',
'StoreClient': 'steam.protobufs.steammessages_store_pb2',
'TimedTrial': 'steam.protobufs.steammessages_timedtrial_pb2',
'TwoFactor': 'steam.protobufs.steammessages_twofactor_pb2',
'TestSteamClient': 'steam.protobufs.steammessages_unified_test_pb2',
'TestServerFromClient': 'steam.protobufs.steammessages_unified_test_pb2',
'UserAccount': 'steam.protobufs.steammessages_useraccount_pb2',
'AccountLinking': 'steam.protobufs.steammessages_useraccount_pb2',
'EmbeddedClient': 'steam.protobufs.steammessages_useraccount_pb2',
'Video': 'steam.protobufs.steammessages_video_pb2',
'VideoClient': 'steam.protobufs.steammessages_video_pb2',
'FovasVideo': 'steam.protobufs.steammessages_video_pb2',
'HelpRequestLogs': 'steam.protobufs.steammessages_webui_friends_pb2',
'Community': 'steam.protobufs.steammessages_webui_friends_pb2',
'ExperimentService': 'steam.protobufs.steammessages_webui_friends_pb2',
'FriendsList': 'steam.protobufs.steammessages_webui_friends_pb2',
'FriendsListClient': 'steam.protobufs.steammessages_webui_friends_pb2',
'Clan': 'steam.protobufs.steammessages_webui_friends_pb2',
'VoiceChat': 'steam.protobufs.steammessages_webui_friends_pb2',
'VoiceChatClient': 'steam.protobufs.steammessages_webui_friends_pb2',
'WebRTCClient': 'steam.protobufs.steammessages_webui_friends_pb2',
'WebRTCClientNotifications': 'steam.protobufs.steammessages_webui_friends_pb2',
'MobilePerAccount': 'steam.protobufs.steammessages_webui_friends_pb2',
'MobileDevice': 'steam.protobufs.steammessages_webui_friends_pb2',
} # MARK_SERVICE_END
method_lookup = {}

236
steam/enums/common.py

@ -809,6 +809,242 @@ class EClientUIMode(SteamIntEnum):
Mobile = 2
Web = 3
class EPurchaseResultDetail(SteamIntEnum):
NoDetail = 0
AVSFailure = 1
InsufficientFunds = 2
ContactSupport = 3
Timeout = 4
InvalidPackage = 5
InvalidPaymentMethod = 6
InvalidData = 7
OthersInProgress = 8
AlreadyPurchased = 9
WrongPrice = 10
FraudCheckFailed = 11
CancelledByUser = 12
RestrictedCountry = 13
BadActivationCode = 14
DuplicateActivationCode = 15
UseOtherPaymentMethod = 16
UseOtherFunctionSource = 17
InvalidShippingAddress = 18
RegionNotSupported = 19
AcctIsBlocked = 20
AcctNotVerified = 21
InvalidAccount = 22
StoreBillingCountryMismatch = 23
DoesNotOwnRequiredApp = 24
CanceledByNewTransaction = 25
ForceCanceledPending = 26
FailCurrencyTransProvider = 27
FailedCyberCafe = 28
NeedsPreApproval = 29
PreApprovalDenied = 30
WalletCurrencyMismatch = 31
EmailNotValidated = 32
ExpiredCard = 33
TransactionExpired = 34
WouldExceedMaxWallet = 35
MustLoginPS3AppForPurchase = 36
CannotShipToPOBox = 37
InsufficientInventory = 38
CannotGiftShippedGoods = 39
CannotShipInternationally = 40
BillingAgreementCancelled = 41
InvalidCoupon = 42
ExpiredCoupon = 43
AccountLocked = 44
OtherAbortableInProgress = 45
ExceededSteamLimit = 46
OverlappingPackagesInCart = 47
NoWallet = 48
NoCachedPaymentMethod = 49
CannotRedeemCodeFromClient = 50
PurchaseAmountNoSupportedByProvider = 51
OverlappingPackagesInPendingTransaction = 52
RateLimited = 53
OwnsExcludedApp = 54
CreditCardBinMismatchesType = 55
CartValueTooHigh = 56
BillingAgreementAlreadyExists = 57
POSACodeNotActivated = 58
CannotShipToCountry = 59
HungTransactionCancelled = 60
PaypalInternalError = 61
UnknownGlobalCollectError = 62
InvalidTaxAddress = 63
PhysicalProductLimitExceeded = 64
PurchaseCannotBeReplayed = 65
DelayedCompletion = 66
BundleTypeCannotBeGifted = 67
BlockedByUSGov = 68
ItemsReservedForCommercialUse = 69
GiftAlreadyOwned = 70
GiftInvalidForRecipientRegion = 71
GiftPricingImbalance = 72
GiftRecipientNotSpecified = 73
ItemsNotAllowedForCommercialUse = 74
BusinessStoreCountryCodeMismatch = 75
UserAssociatedWithManyCafes = 76
UserNotAssociatedWithCafe = 77
AddressInvalid = 78
CreditCardNumberInvalid = 79
CannotShipToMilitaryPostOffice = 80
BillingNameInvalidResemblesCreditCard = 81
PaymentMethodTemporarilyUnavailable = 82
PaymentMethodNotSupportedForProduct = 83
class ELicenseFlags(SteamIntEnum):
NONE = 0
Renew = 0x01
RenewalFailed = 0x02
Pending = 0x04
Expired = 0x08
CancelledByUser = 0x10
CancelledByAdmin = 0x20
LowViolenceContent = 0x40
ImportedFromSteam2 = 0x80
ForceRunRestriction = 0x100
RegionRestrictionExpired = 0x200
CancelledByFriendlyFraudLock = 0x400
NotActivated = 0x800
class ELicenseType(SteamIntEnum):
NoLicense = 0
SinglePurchase = 1
SinglePurchaseLimitedUse = 2
RecurringCharge = 3
RecurringChargeLimitedUse = 4
RecurringChargeLimitedUseWithOverages = 5
RecurringOption = 6
LimitedUseDelayedActivation = 7
class EBillingType(SteamIntEnum):
NoCost = 0
BillOnceOnly = 1
BillMonthly = 2
ProofOfPrepurchaseOnly = 3
GuestPass = 4
HardwarePromo = 5
Gift = 6
AutoGrant = 7
OEMTicket = 8
RecurringOption = 9
BillOnceOrCDKey = 10
Repurchaseable = 11
FreeOnDemand = 12
Rental = 13
CommercialLicense = 14
FreeCommercialLicense = 15
NumBillingTypes = 16
class EPaymentMethod(SteamIntEnum):
NONE = 0
ActivationCode = 1
CreditCard = 2
Giropay = 3
PayPal = 4
Ideal = 5
PaySafeCard = 6
Sofort = 7
GuestPass = 8
WebMoney = 9
MoneyBookers = 10
AliPay = 11
Yandex = 12
Kiosk = 13
Qiwi = 14
GameStop = 15
HardwarePromo = 16
MoPay = 17
BoletoBancario = 18
BoaCompraGold = 19
BancoDoBrasilOnline = 20
ItauOnline = 21
BradescoOnline = 22
Pagseguro = 23
VisaBrazil = 24
AmexBrazil = 25
Aura = 26
Hipercard = 27
MastercardBrazil = 28
DinersCardBrazil = 29
AuthorizedDevice = 30
MOLPoints = 31
ClickAndBuy = 32
Beeline = 33
Konbini = 34
EClubPoints = 35
CreditCardJapan = 36
BankTransferJapan = 37
# PayEasyJapan = 38 removed "renamed to PayEasy"
PayEasy = 38
Zong = 39
CultureVoucher = 40
BookVoucher = 41
HappymoneyVoucher = 42
ConvenientStoreVoucher = 43
GameVoucher = 44
Multibanco = 45
Payshop = 46
# Maestro = 47 removed "renamed to MaestroBoaCompra"
MaestroBoaCompra = 47
OXXO = 48
ToditoCash = 49
Carnet = 50
SPEI = 51
ThreePay = 52
IsBank = 53
Garanti = 54
Akbank = 55
YapiKredi = 56
Halkbank = 57
BankAsya = 58
Finansbank = 59
DenizBank = 60
PTT = 61
CashU = 62
AutoGrant = 64
WebMoneyJapan = 65
OneCard = 66
PSE = 67
Exito = 68
Efecty = 69
Paloto = 70
PinValidda = 71
MangirKart = 72
BancoCreditoDePeru = 73
BBVAContinental = 74
SafetyPay = 75
PagoEfectivo = 76
Trustly = 77
UnionPay = 78
BitCoin = 79
Wallet = 128
Valve = 129
# SteamPressMaster = 130 removed "renamed to MasterComp"
MasterComp = 130
# StorePromotion = 131 removed "renamed to Promotional"
Promotional = 131
MasterSubscription = 134
Payco = 135
MobileWalletJapan = 136
OEMTicket = 256
Split = 512
Complimentary = 1024
class EPackageStatus(SteamIntEnum):
Available = 0
Preorder = 1
Unavailable = 2
Invalid = 3
# Do not remove
from enum import EnumMeta

38
steam/exceptions.py

@ -2,6 +2,7 @@
from steam.enums import EResult
class SteamError(Exception):
""" General error that also carries EResult code """
def __init__(self, message, eresult=EResult.Fail):
Exception.__init__(self, message, eresult)
self.message = message
@ -9,3 +10,40 @@ class SteamError(Exception):
def __str__(self):
return "(%s) %s" % (self.eresult, self.message)
class ManifestError(SteamError):
"""
Raised when there a problem getting a manifest by :class:`CDNClient`
Encapsulates original exception in :attr:`.error` and includes manifest details
"""
def __init__(self, message, app_id, depot_id, manifest_gid, error=None):
self.message = message
self.app_id = app_id
self.depot_id = depot_id
self.manifest_gid = manifest_gid
self.error = error
if isinstance(error, SteamError):
self.eresult = error.eresult
else:
self.eresult = EResult.Fail
def __repr__(self):
return "%s(%s, app=%s, depot=%s, manifest=%s, error=%s)" % (
self.__class__.__name__,
repr(self.message),
self.app_id,
self.depot_id,
self.manifest_gid,
repr(self.error),
)
def __str__(self):
return "(%s) %s (app=%s depot=%s manifest=%s)" % (
self.eresult,
self.message,
self.app_id,
self.depot_id,
self.manifest_gid,
)

55
steam/game_servers.py

@ -142,8 +142,11 @@ def _u(data):
class StructReader(_StructReader):
def read_cstring(self):
return _u(super(StructReader, self).read_cstring())
def read_cstring(self, binary=False):
raw = super(StructReader, self).read_cstring()
if binary:
return raw
return _u(raw)
class MSRegion(IntEnum):
@ -242,7 +245,7 @@ def _handle_a2s_response(sock):
sock.settimeout(0.3)
return _handle_a2s_multi_packet_response(sock, packet)
else:
raise RuntimeError("Invalid reponse header - %d" % header)
raise RuntimeError("Invalid response header - %d" % header)
def _handle_a2s_multi_packet_response(sock, packet):
@ -305,7 +308,7 @@ def _unpack_multipacket_header(payload_offset, packet):
raise RuntimeError("Unexpected payload_offset - %d" % payload_offset)
def a2s_info(server_addr, timeout=2, force_goldsrc=False):
def a2s_info(server_addr, timeout=2, force_goldsrc=False, challenge=0):
"""Get information from a server
.. note::
@ -320,6 +323,8 @@ def a2s_info(server_addr, timeout=2, force_goldsrc=False):
:type force_goldsrc: :class:`bool`
:param timeout: (optional) timeout in seconds
:type timeout: float
:param challenge: (optional) optionally supply a challenge in accordance to a2s protocol changes from December 2020
:type challenge: int
:raises: :class:`RuntimeError`, :class:`socket.timeout`
:returns: a dict with information or `None` on timeout
:rtype: :class:`dict`
@ -329,7 +334,11 @@ def a2s_info(server_addr, timeout=2, force_goldsrc=False):
ss.settimeout(timeout)
# request server info
ss.send(_pack('<lc', -1, b'T') + b'Source Engine Query\x00')
payload = _pack('<lc', -1, b'T') + b'Source Engine Query\x00'
if challenge not in (-1, 0): # If a valid challenge was supplied, append it to the payload
payload += _pack('<i', challenge)
ss.send(payload)
start = _time()
# handle response(s)
@ -359,8 +368,8 @@ def a2s_info(server_addr, timeout=2, force_goldsrc=False):
header, = data.unpack('<4xc')
# invalid header
if header not in b'mI':
raise RuntimeError("Invalid reponse header - %s" % repr(header))
if header not in b'mIA':
raise RuntimeError("Invalid response header - %s" % repr(header))
# GoldSrc response
elif header == b'm':
info = {
@ -445,6 +454,13 @@ def a2s_info(server_addr, timeout=2, force_goldsrc=False):
if edf & 0x01:
info['game_id'], = data.unpack('<Q')
info['app_id'] = info['game_id'] & 0xFFFFFF
# Challenge response
elif header == b'A':
if challenge not in (-1, 0):
raise RuntimeError("Invalid response header for request containing challenge answer - %s" % repr(header))
challenge = data.unpack('<l')
return a2s_info(server_addr = server_addr, timeout = timeout, force_goldsrc = force_goldsrc, challenge = challenge[0])
return info
@ -495,7 +511,7 @@ def a2s_players(server_addr, timeout=2, challenge=0):
header, num_players = data.unpack('<4xcB')
if header != b'D':
raise RuntimeError("Invalid reponse header - %s" % repr(header))
raise RuntimeError("Invalid response header - %s" % repr(header))
players = []
@ -513,7 +529,7 @@ def a2s_players(server_addr, timeout=2, challenge=0):
return players
def a2s_rules(server_addr, timeout=2, challenge=0):
def a2s_rules(server_addr, timeout=2, challenge=0, binary=False):
"""Get rules from server
:param server_addr: (ip, port) for the server
@ -522,9 +538,11 @@ def a2s_rules(server_addr, timeout=2, challenge=0):
:type timeout: float
:param challenge: (optional) challenge number
:type challenge: int
:param binary: (optional) return rules as raw bytes
:type binary: bool
:raises: :class:`RuntimeError`, :class:`socket.timeout`
:returns: a list of rules
:rtype: :class:`list`
:rtype: :class:`dict`
"""
ss = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
ss.connect(server_addr)
@ -553,18 +571,19 @@ def a2s_rules(server_addr, timeout=2, challenge=0):
header, num_rules = data.unpack('<4xcH')
if header != b'E':
raise RuntimeError("Invalid reponse header - %s" % repr(header))
raise RuntimeError("Invalid response header - %s" % repr(header))
rules = {}
while len(rules) != num_rules:
name = data.read_cstring()
value = data.read_cstring()
if _re_match(r'^\-?[0-9]+$', value):
value = int(value)
elif _re_match(r'^\-?[0-9]+\.[0-9]+$', value):
value = float(value)
name = data.read_cstring(binary=binary)
value = data.read_cstring(binary=binary)
if not binary:
if _re_match(r'^\-?[0-9]+$', value):
value = int(value)
elif _re_match(r'^\-?[0-9]+\.[0-9]+$', value):
value = float(value)
rules[name] = value

164
steam/guard.py

@ -44,6 +44,23 @@ Once authenticator is enabled all you need is the secrets to generate codes.
You can obtain the authenticator secrets from an Android device using
:func:`extract_secrets_from_android_rooted`. See the function docstring for
details on what is required for it to work.
Format of ``secrets.json`` file:
.. code:: json
{
"account_name": "<username>", # account username
"identity_secret": "<base64 encoded>", # unknown
"revocation_code": "R51234", # revocation code
"secret_1": "<base54 encoded>", # unknown
"serial_number": "1111222333344445555", # serial number
"server_time": "1600000000", # creation timestamp
"shared_secret": "<base65 encoded>", # secret used for code generation
"status": 1, # status, 1 = token active
"token_gid": "a1a1a1a1a1a1a1a1", # token gid
"uri": "otpauth://totp/Steam:<username>?secret=<base32 encoded shared seceret>&issuer=Steam"
}
"""
import json
import subprocess
@ -148,8 +165,8 @@ class SteamAuthenticator(object):
if resp is None:
raise SteamAuthenticatorError("Failed. Request timeout")
if resp.header.eresult != EResult.OK:
raise SteamAuthenticatorError("Failed: %s (%s)" % str(resp.header.error_message,
repr(resp.header.eresult)))
raise SteamAuthenticatorError("Failed: %s (%s)" % (resp.header.error_message,
repr(resp.header.eresult)))
resp = proto_to_dict(resp.body)
@ -301,88 +318,145 @@ class SteamAuthenticator(object):
def add_phone_number(self, phone_number):
"""Add phone number to account
Then confirm it via :meth:`confirm_phone_number()`
Steps:
1. Call :meth:`add_phone_number()` then check ``email_confirmation`` key in the response
i. On ``True``, user needs to click link in email, then step 2
ii. On ``False``, SMS code is sent, go to step 3
2. Confirm email via :meth:`confirm_email()`, SMS code is sent
3. Finalize phone number with SMS code :meth:`confirm_phone_number(sms_code)`
:param phone_number: phone number with country code
:type phone_number: :class:`str`
:return: success (returns ``False`` on request fail/timeout)
:rtype: :class:`bool`
:return: see example below
:rtype: :class:`dict`
.. code:: python
{'success': True,
'email_confirmation': True,
'error_text': '',
'fatal': False}
"""
sess = self._get_web_session()
try:
resp = sess.post('https://steamcommunity.com/steamguard/phoneajax',
data={
'op': 'add_phone_number',
'arg': phone_number,
'checkfortos': 0,
'skipvoip': 0,
'sessionid': sess.cookies.get('sessionid', domain='steamcommunity.com'),
},
timeout=15).json()
data={
'op': 'add_phone_number',
'arg': phone_number,
'checkfortos': 0,
'skipvoip': 0,
'sessionid': sess.cookies.get('sessionid', domain='steamcommunity.com'),
},
timeout=15).json()
except:
return {'success': False}
return resp
def confirm_email(self):
"""Confirm email confirmation. See :meth:`add_phone_number()`
.. note::
If ``email_confirmation`` is ``True``, then user hasn't clicked the link yet.
:return: see example below
:rtype: :class:`dict`
.. code:: python
{'success': True,
'email_confirmation': True,
'error_text': '',
'fatal': False}
"""
sess = self._get_web_session()
try:
resp = sess.post('https://steamcommunity.com/steamguard/phoneajax',
data={
'op': 'email_confirmation',
'arg': '',
'checkfortos': 1,
'skipvoip': 1,
'sessionid': sess.cookies.get('sessionid', domain='steamcommunity.com'),
},
timeout=15).json()
except:
return False
return {'fatal': True, 'success': False}
return (resp or {}).get('success', False)
return resp
def confirm_phone_number(self, sms_code):
"""Confirm phone number with the recieved SMS code
"""Confirm phone number with the recieved SMS code. See :meth:`add_phone_number()`
:param sms_code: sms code
:type sms_code: :class:`str`
:return: success (returns ``False`` on request fail/timeout)
:rtype: :class:`bool`
:return: see example below
:rtype: :class:`dict`
.. code:: python
{'success': True,
'error_text': '',
'fatal': False}
"""
sess = self._get_web_session()
try:
resp = sess.post('https://steamcommunity.com/steamguard/phoneajax',
data={
'op': 'check_sms_code',
'arg': sms_code,
'checkfortos': 1,
'skipvoip': 1,
'sessionid': sess.cookies.get('sessionid', domain='steamcommunity.com'),
},
timeout=15).json()
data={
'op': 'check_sms_code',
'arg': sms_code,
'checkfortos': 1,
'skipvoip': 1,
'sessionid': sess.cookies.get('sessionid', domain='steamcommunity.com'),
},
timeout=15).json()
except:
return False
return {'success': False}
return (resp or {}).get('success', False)
return resp
def has_phone_number(self):
"""Check whether the account has a verified phone number
:return: result
:rtype: :class:`bool` or :class:`None`
:return: see example below
:rtype: :class:`dict`
.. note::
Retruns `None` if the web requests fails for any reason
.. code:: python
{'success': True,
'has_phone': True,
'error_text': '',
'fatal': False}
"""
sess = self._get_web_session()
try:
resp = sess.post('https://steamcommunity.com/steamguard/phoneajax',
data={
'op': 'has_phone',
'arg': '0',
'checkfortos': 0,
'skipvoip': 1,
'sessionid': sess.cookies.get('sessionid', domain='steamcommunity.com'),
},
timeout=15).json()
data={
'op': 'has_phone',
'arg': '0',
'checkfortos': 0,
'skipvoip': 1,
'sessionid': sess.cookies.get('sessionid', domain='steamcommunity.com'),
},
timeout=15).json()
except:
raise
return {'success': False}
if resp['success'] == True:
return resp['has_phone']
return resp
def validate_phone_number(self, phone_number):
"""Test whether phone number is valid for Steam
:param phone_number: phone number with country code
:type phone_number: :class:`str`
:return: see example output below
:return: see example below
:rtype: :class:`dict`
.. code:: python
@ -404,7 +478,7 @@ class SteamAuthenticator(object):
allow_redirects=False,
timeout=15).json()
except:
resp = {}
resp = {'success': False}
return resp

26
steam/monkey.py

@ -0,0 +1,26 @@
"""
Helper moduel for calling ``gevent`` monkey patch functions.
This only need to if want to make stdlib gevent cooperative.
The patches need to be applied before any other module imports.
See :mod:`gevent.monkey` for details
.. code:: python
import steam.monkey
steam.monkey.patch_minimal()
import requests
from steam.client import SteamClient, EMsg
"""
def patch_minimal():
"""
This method needs to be called before any other imports
It calls :meth:`gevent.monkey.patch_socket()` and :meth:`gevent.monkey.patch_ssl()`
"""
import gevent.monkey
gevent.monkey.patch_socket()
gevent.monkey.patch_ssl()
gevent.monkey.patch_dns()

7688
steam/protobufs/enums_clientserver_pb2.py

File diff suppressed because one or more lines are too long

752
steam/protobufs/enums_pb2.py

File diff suppressed because one or more lines are too long

174
steam/protobufs/steammessages_base_pb2.py

File diff suppressed because one or more lines are too long

375
steam/protobufs/steammessages_broadcast_pb2.py

File diff suppressed because one or more lines are too long

1074
steam/protobufs/steammessages_chat_pb2.py

File diff suppressed because one or more lines are too long

1657
steam/protobufs/steammessages_client_objects_pb2.py

File diff suppressed because one or more lines are too long

5167
steam/protobufs/steammessages_clientserver_2_pb2.py

File diff suppressed because one or more lines are too long

1418
steam/protobufs/steammessages_clientserver_appinfo_pb2.py

File diff suppressed because one or more lines are too long

124
steam/protobufs/steammessages_clientserver_friends_pb2.py

File diff suppressed because one or more lines are too long

1288
steam/protobufs/steammessages_clientserver_gameservers_pb2.py

File diff suppressed because one or more lines are too long

596
steam/protobufs/steammessages_clientserver_lbs_pb2.py

@ -0,0 +1,596 @@
# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: steammessages_clientserver_lbs.proto
import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
# @@protoc_insertion_point(imports)
_sym_db = _symbol_database.Default()
import steam.protobufs.steammessages_base_pb2 as steammessages__base__pb2
DESCRIPTOR = _descriptor.FileDescriptor(
name='steammessages_clientserver_lbs.proto',
package='',
syntax='proto2',
serialized_options=_b('H\001\220\001\000'),
serialized_pb=_b('\n$steammessages_clientserver_lbs.proto\x1a\x18steammessages_base.proto\"|\n\x15\x43MsgClientLBSSetScore\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x16\n\x0eleaderboard_id\x18\x02 \x01(\x05\x12\r\n\x05score\x18\x03 \x01(\x05\x12\x0f\n\x07\x64\x65tails\x18\x04 \x01(\x0c\x12\x1b\n\x13upload_score_method\x18\x05 \x01(\x05\"\xa2\x01\n\x1d\x43MsgClientLBSSetScoreResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x1f\n\x17leaderboard_entry_count\x18\x02 \x01(\x05\x12\x15\n\rscore_changed\x18\x03 \x01(\x08\x12\x1c\n\x14global_rank_previous\x18\x04 \x01(\x05\x12\x17\n\x0fglobal_rank_new\x18\x05 \x01(\x05\"M\n\x13\x43MsgClientLBSSetUGC\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x16\n\x0eleaderboard_id\x18\x02 \x01(\x05\x12\x0e\n\x06ugc_id\x18\x03 \x01(\x06\"1\n\x1b\x43MsgClientLBSSetUGCResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\"\xa7\x01\n\x1b\x43MsgClientLBSFindOrCreateLB\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x1f\n\x17leaderboard_sort_method\x18\x02 \x01(\x05\x12 \n\x18leaderboard_display_type\x18\x03 \x01(\x05\x12\x1b\n\x13\x63reate_if_not_found\x18\x04 \x01(\x08\x12\x18\n\x10leaderboard_name\x18\x05 \x01(\t\"\xd5\x01\n#CMsgClientLBSFindOrCreateLBResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x16\n\x0eleaderboard_id\x18\x02 \x01(\x05\x12\x1f\n\x17leaderboard_entry_count\x18\x03 \x01(\x05\x12\"\n\x17leaderboard_sort_method\x18\x04 \x01(\x05:\x01\x30\x12#\n\x18leaderboard_display_type\x18\x05 \x01(\x05:\x01\x30\x12\x18\n\x10leaderboard_name\x18\x06 \x01(\t\"\x9f\x01\n\x19\x43MsgClientLBSGetLBEntries\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\x05\x12\x16\n\x0eleaderboard_id\x18\x02 \x01(\x05\x12\x13\n\x0brange_start\x18\x03 \x01(\x05\x12\x11\n\trange_end\x18\x04 \x01(\x05\x12 \n\x18leaderboard_data_request\x18\x05 \x01(\x05\x12\x10\n\x08steamids\x18\x06 \x03(\x06\"\xf8\x01\n!CMsgClientLBSGetLBEntriesResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x1f\n\x17leaderboard_entry_count\x18\x02 \x01(\x05\x12\x39\n\x07\x65ntries\x18\x03 \x03(\x0b\x32(.CMsgClientLBSGetLBEntriesResponse.Entry\x1a\x63\n\x05\x45ntry\x12\x15\n\rsteam_id_user\x18\x01 \x01(\x06\x12\x13\n\x0bglobal_rank\x18\x02 \x01(\x05\x12\r\n\x05score\x18\x03 \x01(\x05\x12\x0f\n\x07\x64\x65tails\x18\x04 \x01(\x0c\x12\x0e\n\x06ugc_id\x18\x05 \x01(\x06\x42\x05H\x01\x90\x01\x00')
,
dependencies=[steammessages__base__pb2.DESCRIPTOR,])
_CMSGCLIENTLBSSETSCORE = _descriptor.Descriptor(
name='CMsgClientLBSSetScore',
full_name='CMsgClientLBSSetScore',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='app_id', full_name='CMsgClientLBSSetScore.app_id', index=0,
number=1, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='leaderboard_id', full_name='CMsgClientLBSSetScore.leaderboard_id', index=1,
number=2, type=5, cpp_type=1, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='score', full_name='CMsgClientLBSSetScore.score', index=2,
number=3, type=5, cpp_type=1, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='details', full_name='CMsgClientLBSSetScore.details', index=3,
number=4, type=12, cpp_type=9, label=1,
has_default_value=False, default_value=_b(""),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='upload_score_method', full_name='CMsgClientLBSSetScore.upload_score_method', index=4,
number=5, type=5, cpp_type=1, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=66,
serialized_end=190,
)
_CMSGCLIENTLBSSETSCORERESPONSE = _descriptor.Descriptor(
name='CMsgClientLBSSetScoreResponse',
full_name='CMsgClientLBSSetScoreResponse',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='eresult', full_name='CMsgClientLBSSetScoreResponse.eresult', index=0,
number=1, type=5, cpp_type=1, label=1,
has_default_value=True, default_value=2,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='leaderboard_entry_count', full_name='CMsgClientLBSSetScoreResponse.leaderboard_entry_count', index=1,
number=2, type=5, cpp_type=1, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='score_changed', full_name='CMsgClientLBSSetScoreResponse.score_changed', index=2,
number=3, type=8, cpp_type=7, label=1,
has_default_value=False, default_value=False,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='global_rank_previous', full_name='CMsgClientLBSSetScoreResponse.global_rank_previous', index=3,
number=4, type=5, cpp_type=1, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='global_rank_new', full_name='CMsgClientLBSSetScoreResponse.global_rank_new', index=4,
number=5, type=5, cpp_type=1, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=193,
serialized_end=355,
)
_CMSGCLIENTLBSSETUGC = _descriptor.Descriptor(
name='CMsgClientLBSSetUGC',
full_name='CMsgClientLBSSetUGC',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='app_id', full_name='CMsgClientLBSSetUGC.app_id', index=0,
number=1, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='leaderboard_id', full_name='CMsgClientLBSSetUGC.leaderboard_id', index=1,
number=2, type=5, cpp_type=1, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='ugc_id', full_name='CMsgClientLBSSetUGC.ugc_id', index=2,
number=3, type=6, cpp_type=4, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=357,
serialized_end=434,
)
_CMSGCLIENTLBSSETUGCRESPONSE = _descriptor.Descriptor(
name='CMsgClientLBSSetUGCResponse',
full_name='CMsgClientLBSSetUGCResponse',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='eresult', full_name='CMsgClientLBSSetUGCResponse.eresult', index=0,
number=1, type=5, cpp_type=1, label=1,
has_default_value=True, default_value=2,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=436,
serialized_end=485,
)
_CMSGCLIENTLBSFINDORCREATELB = _descriptor.Descriptor(
name='CMsgClientLBSFindOrCreateLB',
full_name='CMsgClientLBSFindOrCreateLB',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='app_id', full_name='CMsgClientLBSFindOrCreateLB.app_id', index=0,
number=1, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='leaderboard_sort_method', full_name='CMsgClientLBSFindOrCreateLB.leaderboard_sort_method', index=1,
number=2, type=5, cpp_type=1, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='leaderboard_display_type', full_name='CMsgClientLBSFindOrCreateLB.leaderboard_display_type', index=2,
number=3, type=5, cpp_type=1, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='create_if_not_found', full_name='CMsgClientLBSFindOrCreateLB.create_if_not_found', index=3,
number=4, type=8, cpp_type=7, label=1,
has_default_value=False, default_value=False,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='leaderboard_name', full_name='CMsgClientLBSFindOrCreateLB.leaderboard_name', index=4,
number=5, type=9, cpp_type=9, label=1,
has_default_value=False, default_value=_b("").decode('utf-8'),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=488,
serialized_end=655,
)
_CMSGCLIENTLBSFINDORCREATELBRESPONSE = _descriptor.Descriptor(
name='CMsgClientLBSFindOrCreateLBResponse',
full_name='CMsgClientLBSFindOrCreateLBResponse',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='eresult', full_name='CMsgClientLBSFindOrCreateLBResponse.eresult', index=0,
number=1, type=5, cpp_type=1, label=1,
has_default_value=True, default_value=2,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='leaderboard_id', full_name='CMsgClientLBSFindOrCreateLBResponse.leaderboard_id', index=1,
number=2, type=5, cpp_type=1, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='leaderboard_entry_count', full_name='CMsgClientLBSFindOrCreateLBResponse.leaderboard_entry_count', index=2,
number=3, type=5, cpp_type=1, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='leaderboard_sort_method', full_name='CMsgClientLBSFindOrCreateLBResponse.leaderboard_sort_method', index=3,
number=4, type=5, cpp_type=1, label=1,
has_default_value=True, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='leaderboard_display_type', full_name='CMsgClientLBSFindOrCreateLBResponse.leaderboard_display_type', index=4,
number=5, type=5, cpp_type=1, label=1,
has_default_value=True, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='leaderboard_name', full_name='CMsgClientLBSFindOrCreateLBResponse.leaderboard_name', index=5,
number=6, type=9, cpp_type=9, label=1,
has_default_value=False, default_value=_b("").decode('utf-8'),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=658,
serialized_end=871,
)
_CMSGCLIENTLBSGETLBENTRIES = _descriptor.Descriptor(
name='CMsgClientLBSGetLBEntries',
full_name='CMsgClientLBSGetLBEntries',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='app_id', full_name='CMsgClientLBSGetLBEntries.app_id', index=0,
number=1, type=5, cpp_type=1, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='leaderboard_id', full_name='CMsgClientLBSGetLBEntries.leaderboard_id', index=1,
number=2, type=5, cpp_type=1, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='range_start', full_name='CMsgClientLBSGetLBEntries.range_start', index=2,
number=3, type=5, cpp_type=1, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='range_end', full_name='CMsgClientLBSGetLBEntries.range_end', index=3,
number=4, type=5, cpp_type=1, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='leaderboard_data_request', full_name='CMsgClientLBSGetLBEntries.leaderboard_data_request', index=4,
number=5, type=5, cpp_type=1, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='steamids', full_name='CMsgClientLBSGetLBEntries.steamids', index=5,
number=6, type=6, cpp_type=4, label=3,
has_default_value=False, default_value=[],
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=874,
serialized_end=1033,
)
_CMSGCLIENTLBSGETLBENTRIESRESPONSE_ENTRY = _descriptor.Descriptor(
name='Entry',
full_name='CMsgClientLBSGetLBEntriesResponse.Entry',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='steam_id_user', full_name='CMsgClientLBSGetLBEntriesResponse.Entry.steam_id_user', index=0,
number=1, type=6, cpp_type=4, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='global_rank', full_name='CMsgClientLBSGetLBEntriesResponse.Entry.global_rank', index=1,
number=2, type=5, cpp_type=1, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='score', full_name='CMsgClientLBSGetLBEntriesResponse.Entry.score', index=2,
number=3, type=5, cpp_type=1, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='details', full_name='CMsgClientLBSGetLBEntriesResponse.Entry.details', index=3,
number=4, type=12, cpp_type=9, label=1,
has_default_value=False, default_value=_b(""),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='ugc_id', full_name='CMsgClientLBSGetLBEntriesResponse.Entry.ugc_id', index=4,
number=5, type=6, cpp_type=4, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=1185,
serialized_end=1284,
)
_CMSGCLIENTLBSGETLBENTRIESRESPONSE = _descriptor.Descriptor(
name='CMsgClientLBSGetLBEntriesResponse',
full_name='CMsgClientLBSGetLBEntriesResponse',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='eresult', full_name='CMsgClientLBSGetLBEntriesResponse.eresult', index=0,
number=1, type=5, cpp_type=1, label=1,
has_default_value=True, default_value=2,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='leaderboard_entry_count', full_name='CMsgClientLBSGetLBEntriesResponse.leaderboard_entry_count', index=1,
number=2, type=5, cpp_type=1, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='entries', full_name='CMsgClientLBSGetLBEntriesResponse.entries', index=2,
number=3, type=11, cpp_type=10, label=3,
has_default_value=False, default_value=[],
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[_CMSGCLIENTLBSGETLBENTRIESRESPONSE_ENTRY, ],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=1036,
serialized_end=1284,
)
_CMSGCLIENTLBSGETLBENTRIESRESPONSE_ENTRY.containing_type = _CMSGCLIENTLBSGETLBENTRIESRESPONSE
_CMSGCLIENTLBSGETLBENTRIESRESPONSE.fields_by_name['entries'].message_type = _CMSGCLIENTLBSGETLBENTRIESRESPONSE_ENTRY
DESCRIPTOR.message_types_by_name['CMsgClientLBSSetScore'] = _CMSGCLIENTLBSSETSCORE
DESCRIPTOR.message_types_by_name['CMsgClientLBSSetScoreResponse'] = _CMSGCLIENTLBSSETSCORERESPONSE
DESCRIPTOR.message_types_by_name['CMsgClientLBSSetUGC'] = _CMSGCLIENTLBSSETUGC
DESCRIPTOR.message_types_by_name['CMsgClientLBSSetUGCResponse'] = _CMSGCLIENTLBSSETUGCRESPONSE
DESCRIPTOR.message_types_by_name['CMsgClientLBSFindOrCreateLB'] = _CMSGCLIENTLBSFINDORCREATELB
DESCRIPTOR.message_types_by_name['CMsgClientLBSFindOrCreateLBResponse'] = _CMSGCLIENTLBSFINDORCREATELBRESPONSE
DESCRIPTOR.message_types_by_name['CMsgClientLBSGetLBEntries'] = _CMSGCLIENTLBSGETLBENTRIES
DESCRIPTOR.message_types_by_name['CMsgClientLBSGetLBEntriesResponse'] = _CMSGCLIENTLBSGETLBENTRIESRESPONSE
_sym_db.RegisterFileDescriptor(DESCRIPTOR)
CMsgClientLBSSetScore = _reflection.GeneratedProtocolMessageType('CMsgClientLBSSetScore', (_message.Message,), dict(
DESCRIPTOR = _CMSGCLIENTLBSSETSCORE,
__module__ = 'steammessages_clientserver_lbs_pb2'
# @@protoc_insertion_point(class_scope:CMsgClientLBSSetScore)
))
_sym_db.RegisterMessage(CMsgClientLBSSetScore)
CMsgClientLBSSetScoreResponse = _reflection.GeneratedProtocolMessageType('CMsgClientLBSSetScoreResponse', (_message.Message,), dict(
DESCRIPTOR = _CMSGCLIENTLBSSETSCORERESPONSE,
__module__ = 'steammessages_clientserver_lbs_pb2'
# @@protoc_insertion_point(class_scope:CMsgClientLBSSetScoreResponse)
))
_sym_db.RegisterMessage(CMsgClientLBSSetScoreResponse)
CMsgClientLBSSetUGC = _reflection.GeneratedProtocolMessageType('CMsgClientLBSSetUGC', (_message.Message,), dict(
DESCRIPTOR = _CMSGCLIENTLBSSETUGC,
__module__ = 'steammessages_clientserver_lbs_pb2'
# @@protoc_insertion_point(class_scope:CMsgClientLBSSetUGC)
))
_sym_db.RegisterMessage(CMsgClientLBSSetUGC)
CMsgClientLBSSetUGCResponse = _reflection.GeneratedProtocolMessageType('CMsgClientLBSSetUGCResponse', (_message.Message,), dict(
DESCRIPTOR = _CMSGCLIENTLBSSETUGCRESPONSE,
__module__ = 'steammessages_clientserver_lbs_pb2'
# @@protoc_insertion_point(class_scope:CMsgClientLBSSetUGCResponse)
))
_sym_db.RegisterMessage(CMsgClientLBSSetUGCResponse)
CMsgClientLBSFindOrCreateLB = _reflection.GeneratedProtocolMessageType('CMsgClientLBSFindOrCreateLB', (_message.Message,), dict(
DESCRIPTOR = _CMSGCLIENTLBSFINDORCREATELB,
__module__ = 'steammessages_clientserver_lbs_pb2'
# @@protoc_insertion_point(class_scope:CMsgClientLBSFindOrCreateLB)
))
_sym_db.RegisterMessage(CMsgClientLBSFindOrCreateLB)
CMsgClientLBSFindOrCreateLBResponse = _reflection.GeneratedProtocolMessageType('CMsgClientLBSFindOrCreateLBResponse', (_message.Message,), dict(
DESCRIPTOR = _CMSGCLIENTLBSFINDORCREATELBRESPONSE,
__module__ = 'steammessages_clientserver_lbs_pb2'
# @@protoc_insertion_point(class_scope:CMsgClientLBSFindOrCreateLBResponse)
))
_sym_db.RegisterMessage(CMsgClientLBSFindOrCreateLBResponse)
CMsgClientLBSGetLBEntries = _reflection.GeneratedProtocolMessageType('CMsgClientLBSGetLBEntries', (_message.Message,), dict(
DESCRIPTOR = _CMSGCLIENTLBSGETLBENTRIES,
__module__ = 'steammessages_clientserver_lbs_pb2'
# @@protoc_insertion_point(class_scope:CMsgClientLBSGetLBEntries)
))
_sym_db.RegisterMessage(CMsgClientLBSGetLBEntries)
CMsgClientLBSGetLBEntriesResponse = _reflection.GeneratedProtocolMessageType('CMsgClientLBSGetLBEntriesResponse', (_message.Message,), dict(
Entry = _reflection.GeneratedProtocolMessageType('Entry', (_message.Message,), dict(
DESCRIPTOR = _CMSGCLIENTLBSGETLBENTRIESRESPONSE_ENTRY,
__module__ = 'steammessages_clientserver_lbs_pb2'
# @@protoc_insertion_point(class_scope:CMsgClientLBSGetLBEntriesResponse.Entry)
))
,
DESCRIPTOR = _CMSGCLIENTLBSGETLBENTRIESRESPONSE,
__module__ = 'steammessages_clientserver_lbs_pb2'
# @@protoc_insertion_point(class_scope:CMsgClientLBSGetLBEntriesResponse)
))
_sym_db.RegisterMessage(CMsgClientLBSGetLBEntriesResponse)
_sym_db.RegisterMessage(CMsgClientLBSGetLBEntriesResponse.Entry)
DESCRIPTOR._options = None
# @@protoc_insertion_point(module_scope)

83
steam/protobufs/steammessages_clientserver_login_pb2.py

File diff suppressed because one or more lines are too long

1918
steam/protobufs/steammessages_clientserver_mms_pb2.py

File diff suppressed because one or more lines are too long

8903
steam/protobufs/steammessages_clientserver_pb2.py

File diff suppressed because one or more lines are too long

1712
steam/protobufs/steammessages_clientserver_ucm_pb2.py

File diff suppressed because one or more lines are too long

902
steam/protobufs/steammessages_clientserver_uds_pb2.py

@ -0,0 +1,902 @@
# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: steammessages_clientserver_uds.proto
import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
# @@protoc_insertion_point(imports)
_sym_db = _symbol_database.Default()
import steam.protobufs.steammessages_base_pb2 as steammessages__base__pb2
DESCRIPTOR = _descriptor.FileDescriptor(
name='steammessages_clientserver_uds.proto',
package='',
syntax='proto2',
serialized_options=_b('H\001\220\001\000'),
serialized_pb=_b('\n$steammessages_clientserver_uds.proto\x1a\x18steammessages_base.proto\"G\n\x1e\x43MsgClientUDSP2PSessionStarted\x12\x16\n\x0esteamid_remote\x18\x01 \x01(\x06\x12\r\n\x05\x61ppid\x18\x02 \x01(\x05\"\x81\x02\n\x1c\x43MsgClientUDSP2PSessionEnded\x12\x16\n\x0esteamid_remote\x18\x01 \x01(\x06\x12\r\n\x05\x61ppid\x18\x02 \x01(\x05\x12\x1a\n\x12session_length_sec\x18\x03 \x01(\x05\x12\x15\n\rsession_error\x18\x04 \x01(\x05\x12\x0f\n\x07nattype\x18\x05 \x01(\x05\x12\x12\n\nbytes_recv\x18\x06 \x01(\x05\x12\x12\n\nbytes_sent\x18\x07 \x01(\x05\x12\x18\n\x10\x62ytes_sent_relay\x18\x08 \x01(\x05\x12\x18\n\x10\x62ytes_recv_relay\x18\t \x01(\x05\x12\x1a\n\x12time_to_connect_ms\x18\n \x01(\x05\"\x1c\n\x1a\x43MsgClientGetClientDetails\"\xbf\x02\n\"CMsgClientGetClientDetailsResponse\x12\x17\n\x0fpackage_version\x18\x01 \x01(\r\x12\x18\n\x10protocol_version\x18\x08 \x01(\r\x12\n\n\x02os\x18\x02 \x01(\t\x12\x14\n\x0cmachine_name\x18\x03 \x01(\t\x12\x11\n\tip_public\x18\x04 \x01(\t\x12\x12\n\nip_private\x18\x05 \x01(\t\x12\x17\n\x0f\x62ytes_available\x18\x07 \x01(\x04\x12?\n\rgames_running\x18\x06 \x03(\x0b\x32(.CMsgClientGetClientDetailsResponse.Game\x1a\x43\n\x04Game\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x12\n\nextra_info\x18\x02 \x01(\t\x12\x18\n\x10time_running_sec\x18\x03 \x01(\r\"\x88\x01\n\x1a\x43MsgClientGetClientAppList\x12\r\n\x05media\x18\x01 \x01(\x08\x12\r\n\x05tools\x18\x02 \x01(\x08\x12\r\n\x05games\x18\x03 \x01(\x08\x12\x16\n\x0eonly_installed\x18\x04 \x01(\x08\x12\x15\n\ronly_changing\x18\x05 \x01(\x08\x12\x0e\n\x06\x63omics\x18\x06 \x01(\x08\"\x91\x04\n\"CMsgClientGetClientAppListResponse\x12\x35\n\x04\x61pps\x18\x01 \x03(\x0b\x32\'.CMsgClientGetClientAppListResponse.App\x12\x17\n\x0f\x62ytes_available\x18\x02 \x01(\x04\x1a\x9a\x03\n\x03\x41pp\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x10\n\x08\x63\x61tegory\x18\x02 \x01(\t\x12\x10\n\x08\x61pp_type\x18\n \x01(\t\x12\x10\n\x08\x66\x61vorite\x18\x03 \x01(\x08\x12\x11\n\tinstalled\x18\x04 \x01(\x08\x12\x13\n\x0b\x61uto_update\x18\x05 \x01(\x08\x12\x18\n\x10\x62ytes_downloaded\x18\x06 \x01(\x04\x12\x14\n\x0c\x62ytes_needed\x18\x07 \x01(\x04\x12\x1b\n\x13\x62ytes_download_rate\x18\x08 \x01(\r\x12\x17\n\x0f\x64ownload_paused\x18\x0b \x01(\x08\x12\x17\n\x0fnum_downloading\x18\x0c \x01(\r\x12\x12\n\nnum_paused\x18\r \x01(\r\x12\x10\n\x08\x63hanging\x18\x0e \x01(\x08\x12\x1d\n\x15\x61vailable_on_platform\x18\x0f \x01(\x08\x12\x39\n\x04\x64lcs\x18\t \x03(\x0b\x32+.CMsgClientGetClientAppListResponse.App.DLC\x1a\'\n\x03\x44LC\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x11\n\tinstalled\x18\x02 \x01(\x08\"+\n\x1a\x43MsgClientInstallClientApp\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\"4\n\"CMsgClientInstallClientAppResponse\x12\x0e\n\x06result\x18\x01 \x01(\r\"-\n\x1c\x43MsgClientUninstallClientApp\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\"6\n$CMsgClientUninstallClientAppResponse\x12\x0e\n\x06result\x18\x01 \x01(\r\"B\n!CMsgClientSetClientAppUpdateState\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x0e\n\x06update\x18\x02 \x01(\x08\";\n)CMsgClientSetClientAppUpdateStateResponse\x12\x0e\n\x06result\x18\x01 \x01(\rB\x05H\x01\x90\x01\x00')
,
dependencies=[steammessages__base__pb2.DESCRIPTOR,])
_CMSGCLIENTUDSP2PSESSIONSTARTED = _descriptor.Descriptor(
name='CMsgClientUDSP2PSessionStarted',
full_name='CMsgClientUDSP2PSessionStarted',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='steamid_remote', full_name='CMsgClientUDSP2PSessionStarted.steamid_remote', index=0,
number=1, type=6, cpp_type=4, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='appid', full_name='CMsgClientUDSP2PSessionStarted.appid', index=1,
number=2, type=5, cpp_type=1, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=66,
serialized_end=137,
)
_CMSGCLIENTUDSP2PSESSIONENDED = _descriptor.Descriptor(
name='CMsgClientUDSP2PSessionEnded',
full_name='CMsgClientUDSP2PSessionEnded',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='steamid_remote', full_name='CMsgClientUDSP2PSessionEnded.steamid_remote', index=0,
number=1, type=6, cpp_type=4, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='appid', full_name='CMsgClientUDSP2PSessionEnded.appid', index=1,
number=2, type=5, cpp_type=1, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='session_length_sec', full_name='CMsgClientUDSP2PSessionEnded.session_length_sec', index=2,
number=3, type=5, cpp_type=1, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='session_error', full_name='CMsgClientUDSP2PSessionEnded.session_error', index=3,
number=4, type=5, cpp_type=1, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='nattype', full_name='CMsgClientUDSP2PSessionEnded.nattype', index=4,
number=5, type=5, cpp_type=1, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='bytes_recv', full_name='CMsgClientUDSP2PSessionEnded.bytes_recv', index=5,
number=6, type=5, cpp_type=1, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='bytes_sent', full_name='CMsgClientUDSP2PSessionEnded.bytes_sent', index=6,
number=7, type=5, cpp_type=1, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='bytes_sent_relay', full_name='CMsgClientUDSP2PSessionEnded.bytes_sent_relay', index=7,
number=8, type=5, cpp_type=1, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='bytes_recv_relay', full_name='CMsgClientUDSP2PSessionEnded.bytes_recv_relay', index=8,
number=9, type=5, cpp_type=1, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='time_to_connect_ms', full_name='CMsgClientUDSP2PSessionEnded.time_to_connect_ms', index=9,
number=10, type=5, cpp_type=1, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=140,
serialized_end=397,
)
_CMSGCLIENTGETCLIENTDETAILS = _descriptor.Descriptor(
name='CMsgClientGetClientDetails',
full_name='CMsgClientGetClientDetails',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=399,
serialized_end=427,
)
_CMSGCLIENTGETCLIENTDETAILSRESPONSE_GAME = _descriptor.Descriptor(
name='Game',
full_name='CMsgClientGetClientDetailsResponse.Game',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='appid', full_name='CMsgClientGetClientDetailsResponse.Game.appid', index=0,
number=1, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='extra_info', full_name='CMsgClientGetClientDetailsResponse.Game.extra_info', index=1,
number=2, type=9, cpp_type=9, label=1,
has_default_value=False, default_value=_b("").decode('utf-8'),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='time_running_sec', full_name='CMsgClientGetClientDetailsResponse.Game.time_running_sec', index=2,
number=3, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=682,
serialized_end=749,
)
_CMSGCLIENTGETCLIENTDETAILSRESPONSE = _descriptor.Descriptor(
name='CMsgClientGetClientDetailsResponse',
full_name='CMsgClientGetClientDetailsResponse',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='package_version', full_name='CMsgClientGetClientDetailsResponse.package_version', index=0,
number=1, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='protocol_version', full_name='CMsgClientGetClientDetailsResponse.protocol_version', index=1,
number=8, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='os', full_name='CMsgClientGetClientDetailsResponse.os', index=2,
number=2, type=9, cpp_type=9, label=1,
has_default_value=False, default_value=_b("").decode('utf-8'),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='machine_name', full_name='CMsgClientGetClientDetailsResponse.machine_name', index=3,
number=3, type=9, cpp_type=9, label=1,
has_default_value=False, default_value=_b("").decode('utf-8'),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='ip_public', full_name='CMsgClientGetClientDetailsResponse.ip_public', index=4,
number=4, type=9, cpp_type=9, label=1,
has_default_value=False, default_value=_b("").decode('utf-8'),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='ip_private', full_name='CMsgClientGetClientDetailsResponse.ip_private', index=5,
number=5, type=9, cpp_type=9, label=1,
has_default_value=False, default_value=_b("").decode('utf-8'),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='bytes_available', full_name='CMsgClientGetClientDetailsResponse.bytes_available', index=6,
number=7, type=4, cpp_type=4, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='games_running', full_name='CMsgClientGetClientDetailsResponse.games_running', index=7,
number=6, type=11, cpp_type=10, label=3,
has_default_value=False, default_value=[],
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[_CMSGCLIENTGETCLIENTDETAILSRESPONSE_GAME, ],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=430,
serialized_end=749,
)
_CMSGCLIENTGETCLIENTAPPLIST = _descriptor.Descriptor(
name='CMsgClientGetClientAppList',
full_name='CMsgClientGetClientAppList',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='media', full_name='CMsgClientGetClientAppList.media', index=0,
number=1, type=8, cpp_type=7, label=1,
has_default_value=False, default_value=False,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='tools', full_name='CMsgClientGetClientAppList.tools', index=1,
number=2, type=8, cpp_type=7, label=1,
has_default_value=False, default_value=False,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='games', full_name='CMsgClientGetClientAppList.games', index=2,
number=3, type=8, cpp_type=7, label=1,
has_default_value=False, default_value=False,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='only_installed', full_name='CMsgClientGetClientAppList.only_installed', index=3,
number=4, type=8, cpp_type=7, label=1,
has_default_value=False, default_value=False,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='only_changing', full_name='CMsgClientGetClientAppList.only_changing', index=4,
number=5, type=8, cpp_type=7, label=1,
has_default_value=False, default_value=False,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='comics', full_name='CMsgClientGetClientAppList.comics', index=5,
number=6, type=8, cpp_type=7, label=1,
has_default_value=False, default_value=False,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=752,
serialized_end=888,
)
_CMSGCLIENTGETCLIENTAPPLISTRESPONSE_APP_DLC = _descriptor.Descriptor(
name='DLC',
full_name='CMsgClientGetClientAppListResponse.App.DLC',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='appid', full_name='CMsgClientGetClientAppListResponse.App.DLC.appid', index=0,
number=1, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='installed', full_name='CMsgClientGetClientAppListResponse.App.DLC.installed', index=1,
number=2, type=8, cpp_type=7, label=1,
has_default_value=False, default_value=False,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=1381,
serialized_end=1420,
)
_CMSGCLIENTGETCLIENTAPPLISTRESPONSE_APP = _descriptor.Descriptor(
name='App',
full_name='CMsgClientGetClientAppListResponse.App',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='appid', full_name='CMsgClientGetClientAppListResponse.App.appid', index=0,
number=1, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='category', full_name='CMsgClientGetClientAppListResponse.App.category', index=1,
number=2, type=9, cpp_type=9, label=1,
has_default_value=False, default_value=_b("").decode('utf-8'),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='app_type', full_name='CMsgClientGetClientAppListResponse.App.app_type', index=2,
number=10, type=9, cpp_type=9, label=1,
has_default_value=False, default_value=_b("").decode('utf-8'),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='favorite', full_name='CMsgClientGetClientAppListResponse.App.favorite', index=3,
number=3, type=8, cpp_type=7, label=1,
has_default_value=False, default_value=False,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='installed', full_name='CMsgClientGetClientAppListResponse.App.installed', index=4,
number=4, type=8, cpp_type=7, label=1,
has_default_value=False, default_value=False,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='auto_update', full_name='CMsgClientGetClientAppListResponse.App.auto_update', index=5,
number=5, type=8, cpp_type=7, label=1,
has_default_value=False, default_value=False,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='bytes_downloaded', full_name='CMsgClientGetClientAppListResponse.App.bytes_downloaded', index=6,
number=6, type=4, cpp_type=4, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='bytes_needed', full_name='CMsgClientGetClientAppListResponse.App.bytes_needed', index=7,
number=7, type=4, cpp_type=4, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='bytes_download_rate', full_name='CMsgClientGetClientAppListResponse.App.bytes_download_rate', index=8,
number=8, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='download_paused', full_name='CMsgClientGetClientAppListResponse.App.download_paused', index=9,
number=11, type=8, cpp_type=7, label=1,
has_default_value=False, default_value=False,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='num_downloading', full_name='CMsgClientGetClientAppListResponse.App.num_downloading', index=10,
number=12, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='num_paused', full_name='CMsgClientGetClientAppListResponse.App.num_paused', index=11,
number=13, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='changing', full_name='CMsgClientGetClientAppListResponse.App.changing', index=12,
number=14, type=8, cpp_type=7, label=1,
has_default_value=False, default_value=False,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='available_on_platform', full_name='CMsgClientGetClientAppListResponse.App.available_on_platform', index=13,
number=15, type=8, cpp_type=7, label=1,
has_default_value=False, default_value=False,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='dlcs', full_name='CMsgClientGetClientAppListResponse.App.dlcs', index=14,
number=9, type=11, cpp_type=10, label=3,
has_default_value=False, default_value=[],
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[_CMSGCLIENTGETCLIENTAPPLISTRESPONSE_APP_DLC, ],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=1010,
serialized_end=1420,
)
_CMSGCLIENTGETCLIENTAPPLISTRESPONSE = _descriptor.Descriptor(
name='CMsgClientGetClientAppListResponse',
full_name='CMsgClientGetClientAppListResponse',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='apps', full_name='CMsgClientGetClientAppListResponse.apps', index=0,
number=1, type=11, cpp_type=10, label=3,
has_default_value=False, default_value=[],
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='bytes_available', full_name='CMsgClientGetClientAppListResponse.bytes_available', index=1,
number=2, type=4, cpp_type=4, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[_CMSGCLIENTGETCLIENTAPPLISTRESPONSE_APP, ],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=891,
serialized_end=1420,
)
_CMSGCLIENTINSTALLCLIENTAPP = _descriptor.Descriptor(
name='CMsgClientInstallClientApp',
full_name='CMsgClientInstallClientApp',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='appid', full_name='CMsgClientInstallClientApp.appid', index=0,
number=1, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=1422,
serialized_end=1465,
)
_CMSGCLIENTINSTALLCLIENTAPPRESPONSE = _descriptor.Descriptor(
name='CMsgClientInstallClientAppResponse',
full_name='CMsgClientInstallClientAppResponse',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='result', full_name='CMsgClientInstallClientAppResponse.result', index=0,
number=1, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=1467,
serialized_end=1519,
)
_CMSGCLIENTUNINSTALLCLIENTAPP = _descriptor.Descriptor(
name='CMsgClientUninstallClientApp',
full_name='CMsgClientUninstallClientApp',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='appid', full_name='CMsgClientUninstallClientApp.appid', index=0,
number=1, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=1521,
serialized_end=1566,
)
_CMSGCLIENTUNINSTALLCLIENTAPPRESPONSE = _descriptor.Descriptor(
name='CMsgClientUninstallClientAppResponse',
full_name='CMsgClientUninstallClientAppResponse',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='result', full_name='CMsgClientUninstallClientAppResponse.result', index=0,
number=1, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=1568,
serialized_end=1622,
)
_CMSGCLIENTSETCLIENTAPPUPDATESTATE = _descriptor.Descriptor(
name='CMsgClientSetClientAppUpdateState',
full_name='CMsgClientSetClientAppUpdateState',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='appid', full_name='CMsgClientSetClientAppUpdateState.appid', index=0,
number=1, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='update', full_name='CMsgClientSetClientAppUpdateState.update', index=1,
number=2, type=8, cpp_type=7, label=1,
has_default_value=False, default_value=False,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=1624,
serialized_end=1690,
)
_CMSGCLIENTSETCLIENTAPPUPDATESTATERESPONSE = _descriptor.Descriptor(
name='CMsgClientSetClientAppUpdateStateResponse',
full_name='CMsgClientSetClientAppUpdateStateResponse',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='result', full_name='CMsgClientSetClientAppUpdateStateResponse.result', index=0,
number=1, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=1692,
serialized_end=1751,
)
_CMSGCLIENTGETCLIENTDETAILSRESPONSE_GAME.containing_type = _CMSGCLIENTGETCLIENTDETAILSRESPONSE
_CMSGCLIENTGETCLIENTDETAILSRESPONSE.fields_by_name['games_running'].message_type = _CMSGCLIENTGETCLIENTDETAILSRESPONSE_GAME
_CMSGCLIENTGETCLIENTAPPLISTRESPONSE_APP_DLC.containing_type = _CMSGCLIENTGETCLIENTAPPLISTRESPONSE_APP
_CMSGCLIENTGETCLIENTAPPLISTRESPONSE_APP.fields_by_name['dlcs'].message_type = _CMSGCLIENTGETCLIENTAPPLISTRESPONSE_APP_DLC
_CMSGCLIENTGETCLIENTAPPLISTRESPONSE_APP.containing_type = _CMSGCLIENTGETCLIENTAPPLISTRESPONSE
_CMSGCLIENTGETCLIENTAPPLISTRESPONSE.fields_by_name['apps'].message_type = _CMSGCLIENTGETCLIENTAPPLISTRESPONSE_APP
DESCRIPTOR.message_types_by_name['CMsgClientUDSP2PSessionStarted'] = _CMSGCLIENTUDSP2PSESSIONSTARTED
DESCRIPTOR.message_types_by_name['CMsgClientUDSP2PSessionEnded'] = _CMSGCLIENTUDSP2PSESSIONENDED
DESCRIPTOR.message_types_by_name['CMsgClientGetClientDetails'] = _CMSGCLIENTGETCLIENTDETAILS
DESCRIPTOR.message_types_by_name['CMsgClientGetClientDetailsResponse'] = _CMSGCLIENTGETCLIENTDETAILSRESPONSE
DESCRIPTOR.message_types_by_name['CMsgClientGetClientAppList'] = _CMSGCLIENTGETCLIENTAPPLIST
DESCRIPTOR.message_types_by_name['CMsgClientGetClientAppListResponse'] = _CMSGCLIENTGETCLIENTAPPLISTRESPONSE
DESCRIPTOR.message_types_by_name['CMsgClientInstallClientApp'] = _CMSGCLIENTINSTALLCLIENTAPP
DESCRIPTOR.message_types_by_name['CMsgClientInstallClientAppResponse'] = _CMSGCLIENTINSTALLCLIENTAPPRESPONSE
DESCRIPTOR.message_types_by_name['CMsgClientUninstallClientApp'] = _CMSGCLIENTUNINSTALLCLIENTAPP
DESCRIPTOR.message_types_by_name['CMsgClientUninstallClientAppResponse'] = _CMSGCLIENTUNINSTALLCLIENTAPPRESPONSE
DESCRIPTOR.message_types_by_name['CMsgClientSetClientAppUpdateState'] = _CMSGCLIENTSETCLIENTAPPUPDATESTATE
DESCRIPTOR.message_types_by_name['CMsgClientSetClientAppUpdateStateResponse'] = _CMSGCLIENTSETCLIENTAPPUPDATESTATERESPONSE
_sym_db.RegisterFileDescriptor(DESCRIPTOR)
CMsgClientUDSP2PSessionStarted = _reflection.GeneratedProtocolMessageType('CMsgClientUDSP2PSessionStarted', (_message.Message,), dict(
DESCRIPTOR = _CMSGCLIENTUDSP2PSESSIONSTARTED,
__module__ = 'steammessages_clientserver_uds_pb2'
# @@protoc_insertion_point(class_scope:CMsgClientUDSP2PSessionStarted)
))
_sym_db.RegisterMessage(CMsgClientUDSP2PSessionStarted)
CMsgClientUDSP2PSessionEnded = _reflection.GeneratedProtocolMessageType('CMsgClientUDSP2PSessionEnded', (_message.Message,), dict(
DESCRIPTOR = _CMSGCLIENTUDSP2PSESSIONENDED,
__module__ = 'steammessages_clientserver_uds_pb2'
# @@protoc_insertion_point(class_scope:CMsgClientUDSP2PSessionEnded)
))
_sym_db.RegisterMessage(CMsgClientUDSP2PSessionEnded)
CMsgClientGetClientDetails = _reflection.GeneratedProtocolMessageType('CMsgClientGetClientDetails', (_message.Message,), dict(
DESCRIPTOR = _CMSGCLIENTGETCLIENTDETAILS,
__module__ = 'steammessages_clientserver_uds_pb2'
# @@protoc_insertion_point(class_scope:CMsgClientGetClientDetails)
))
_sym_db.RegisterMessage(CMsgClientGetClientDetails)
CMsgClientGetClientDetailsResponse = _reflection.GeneratedProtocolMessageType('CMsgClientGetClientDetailsResponse', (_message.Message,), dict(
Game = _reflection.GeneratedProtocolMessageType('Game', (_message.Message,), dict(
DESCRIPTOR = _CMSGCLIENTGETCLIENTDETAILSRESPONSE_GAME,
__module__ = 'steammessages_clientserver_uds_pb2'
# @@protoc_insertion_point(class_scope:CMsgClientGetClientDetailsResponse.Game)
))
,
DESCRIPTOR = _CMSGCLIENTGETCLIENTDETAILSRESPONSE,
__module__ = 'steammessages_clientserver_uds_pb2'
# @@protoc_insertion_point(class_scope:CMsgClientGetClientDetailsResponse)
))
_sym_db.RegisterMessage(CMsgClientGetClientDetailsResponse)
_sym_db.RegisterMessage(CMsgClientGetClientDetailsResponse.Game)
CMsgClientGetClientAppList = _reflection.GeneratedProtocolMessageType('CMsgClientGetClientAppList', (_message.Message,), dict(
DESCRIPTOR = _CMSGCLIENTGETCLIENTAPPLIST,
__module__ = 'steammessages_clientserver_uds_pb2'
# @@protoc_insertion_point(class_scope:CMsgClientGetClientAppList)
))
_sym_db.RegisterMessage(CMsgClientGetClientAppList)
CMsgClientGetClientAppListResponse = _reflection.GeneratedProtocolMessageType('CMsgClientGetClientAppListResponse', (_message.Message,), dict(
App = _reflection.GeneratedProtocolMessageType('App', (_message.Message,), dict(
DLC = _reflection.GeneratedProtocolMessageType('DLC', (_message.Message,), dict(
DESCRIPTOR = _CMSGCLIENTGETCLIENTAPPLISTRESPONSE_APP_DLC,
__module__ = 'steammessages_clientserver_uds_pb2'
# @@protoc_insertion_point(class_scope:CMsgClientGetClientAppListResponse.App.DLC)
))
,
DESCRIPTOR = _CMSGCLIENTGETCLIENTAPPLISTRESPONSE_APP,
__module__ = 'steammessages_clientserver_uds_pb2'
# @@protoc_insertion_point(class_scope:CMsgClientGetClientAppListResponse.App)
))
,
DESCRIPTOR = _CMSGCLIENTGETCLIENTAPPLISTRESPONSE,
__module__ = 'steammessages_clientserver_uds_pb2'
# @@protoc_insertion_point(class_scope:CMsgClientGetClientAppListResponse)
))
_sym_db.RegisterMessage(CMsgClientGetClientAppListResponse)
_sym_db.RegisterMessage(CMsgClientGetClientAppListResponse.App)
_sym_db.RegisterMessage(CMsgClientGetClientAppListResponse.App.DLC)
CMsgClientInstallClientApp = _reflection.GeneratedProtocolMessageType('CMsgClientInstallClientApp', (_message.Message,), dict(
DESCRIPTOR = _CMSGCLIENTINSTALLCLIENTAPP,
__module__ = 'steammessages_clientserver_uds_pb2'
# @@protoc_insertion_point(class_scope:CMsgClientInstallClientApp)
))
_sym_db.RegisterMessage(CMsgClientInstallClientApp)
CMsgClientInstallClientAppResponse = _reflection.GeneratedProtocolMessageType('CMsgClientInstallClientAppResponse', (_message.Message,), dict(
DESCRIPTOR = _CMSGCLIENTINSTALLCLIENTAPPRESPONSE,
__module__ = 'steammessages_clientserver_uds_pb2'
# @@protoc_insertion_point(class_scope:CMsgClientInstallClientAppResponse)
))
_sym_db.RegisterMessage(CMsgClientInstallClientAppResponse)
CMsgClientUninstallClientApp = _reflection.GeneratedProtocolMessageType('CMsgClientUninstallClientApp', (_message.Message,), dict(
DESCRIPTOR = _CMSGCLIENTUNINSTALLCLIENTAPP,
__module__ = 'steammessages_clientserver_uds_pb2'
# @@protoc_insertion_point(class_scope:CMsgClientUninstallClientApp)
))
_sym_db.RegisterMessage(CMsgClientUninstallClientApp)
CMsgClientUninstallClientAppResponse = _reflection.GeneratedProtocolMessageType('CMsgClientUninstallClientAppResponse', (_message.Message,), dict(
DESCRIPTOR = _CMSGCLIENTUNINSTALLCLIENTAPPRESPONSE,
__module__ = 'steammessages_clientserver_uds_pb2'
# @@protoc_insertion_point(class_scope:CMsgClientUninstallClientAppResponse)
))
_sym_db.RegisterMessage(CMsgClientUninstallClientAppResponse)
CMsgClientSetClientAppUpdateState = _reflection.GeneratedProtocolMessageType('CMsgClientSetClientAppUpdateState', (_message.Message,), dict(
DESCRIPTOR = _CMSGCLIENTSETCLIENTAPPUPDATESTATE,
__module__ = 'steammessages_clientserver_uds_pb2'
# @@protoc_insertion_point(class_scope:CMsgClientSetClientAppUpdateState)
))
_sym_db.RegisterMessage(CMsgClientSetClientAppUpdateState)
CMsgClientSetClientAppUpdateStateResponse = _reflection.GeneratedProtocolMessageType('CMsgClientSetClientAppUpdateStateResponse', (_message.Message,), dict(
DESCRIPTOR = _CMSGCLIENTSETCLIENTAPPUPDATESTATERESPONSE,
__module__ = 'steammessages_clientserver_uds_pb2'
# @@protoc_insertion_point(class_scope:CMsgClientSetClientAppUpdateStateResponse)
))
_sym_db.RegisterMessage(CMsgClientSetClientAppUpdateStateResponse)
DESCRIPTOR._options = None
# @@protoc_insertion_point(module_scope)

1457
steam/protobufs/steammessages_clientserver_ufs_pb2.py

File diff suppressed because one or more lines are too long

704
steam/protobufs/steammessages_clientserver_userstats_pb2.py

@ -0,0 +1,704 @@
# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: steammessages_clientserver_userstats.proto
import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
# @@protoc_insertion_point(imports)
_sym_db = _symbol_database.Default()
import steam.protobufs.steammessages_base_pb2 as steammessages__base__pb2
DESCRIPTOR = _descriptor.FileDescriptor(
name='steammessages_clientserver_userstats.proto',
package='',
syntax='proto2',
serialized_options=_b('H\001\220\001\000'),
serialized_pb=_b('\n*steammessages_clientserver_userstats.proto\x1a\x18steammessages_base.proto\"u\n\x16\x43MsgClientGetUserStats\x12\x0f\n\x07game_id\x18\x01 \x01(\x06\x12\x11\n\tcrc_stats\x18\x02 \x01(\r\x12\x1c\n\x14schema_local_version\x18\x03 \x01(\x05\x12\x19\n\x11steam_id_for_user\x18\x04 \x01(\x06\"\xdf\x02\n\x1e\x43MsgClientGetUserStatsResponse\x12\x0f\n\x07game_id\x18\x01 \x01(\x06\x12\x12\n\x07\x65result\x18\x02 \x01(\x05:\x01\x32\x12\x11\n\tcrc_stats\x18\x03 \x01(\r\x12\x0e\n\x06schema\x18\x04 \x01(\x0c\x12\x34\n\x05stats\x18\x05 \x03(\x0b\x32%.CMsgClientGetUserStatsResponse.Stats\x12N\n\x12\x61\x63hievement_blocks\x18\x06 \x03(\x0b\x32\x32.CMsgClientGetUserStatsResponse.Achievement_Blocks\x1a,\n\x05Stats\x12\x0f\n\x07stat_id\x18\x01 \x01(\r\x12\x12\n\nstat_value\x18\x02 \x01(\r\x1a\x41\n\x12\x41\x63hievement_Blocks\x12\x16\n\x0e\x61\x63hievement_id\x18\x01 \x01(\r\x12\x13\n\x0bunlock_time\x18\x02 \x03(\x07\"\x9a\x02\n CMsgClientStoreUserStatsResponse\x12\x0f\n\x07game_id\x18\x01 \x01(\x06\x12\x12\n\x07\x65result\x18\x02 \x01(\x05:\x01\x32\x12\x11\n\tcrc_stats\x18\x03 \x01(\r\x12Z\n\x17stats_failed_validation\x18\x04 \x03(\x0b\x32\x39.CMsgClientStoreUserStatsResponse.Stats_Failed_Validation\x12\x19\n\x11stats_out_of_date\x18\x05 \x01(\x08\x1aG\n\x17Stats_Failed_Validation\x12\x0f\n\x07stat_id\x18\x01 \x01(\r\x12\x1b\n\x13reverted_stat_value\x18\x02 \x01(\r\"\xe8\x01\n\x19\x43MsgClientStoreUserStats2\x12\x0f\n\x07game_id\x18\x01 \x01(\x06\x12\x17\n\x0fsettor_steam_id\x18\x02 \x01(\x06\x12\x17\n\x0fsettee_steam_id\x18\x03 \x01(\x06\x12\x11\n\tcrc_stats\x18\x04 \x01(\r\x12\x16\n\x0e\x65xplicit_reset\x18\x05 \x01(\x08\x12/\n\x05stats\x18\x06 \x03(\x0b\x32 .CMsgClientStoreUserStats2.Stats\x1a,\n\x05Stats\x12\x0f\n\x07stat_id\x18\x01 \x01(\r\x12\x12\n\nstat_value\x18\x02 \x01(\r\"\xc2\x01\n\x16\x43MsgClientStatsUpdated\x12\x10\n\x08steam_id\x18\x01 \x01(\x06\x12\x0f\n\x07game_id\x18\x02 \x01(\x06\x12\x11\n\tcrc_stats\x18\x03 \x01(\r\x12<\n\rupdated_stats\x18\x04 \x03(\x0b\x32%.CMsgClientStatsUpdated.Updated_Stats\x1a\x34\n\rUpdated_Stats\x12\x0f\n\x07stat_id\x18\x01 \x01(\r\x12\x12\n\nstat_value\x18\x02 \x01(\r\"\xbc\x01\n\x18\x43MsgClientStoreUserStats\x12\x0f\n\x07game_id\x18\x01 \x01(\x06\x12\x16\n\x0e\x65xplicit_reset\x18\x02 \x01(\x08\x12@\n\x0estats_to_store\x18\x03 \x03(\x0b\x32(.CMsgClientStoreUserStats.Stats_To_Store\x1a\x35\n\x0eStats_To_Store\x12\x0f\n\x07stat_id\x18\x01 \x01(\r\x12\x12\n\nstat_value\x18\x02 \x01(\rB\x05H\x01\x90\x01\x00')
,
dependencies=[steammessages__base__pb2.DESCRIPTOR,])
_CMSGCLIENTGETUSERSTATS = _descriptor.Descriptor(
name='CMsgClientGetUserStats',
full_name='CMsgClientGetUserStats',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='game_id', full_name='CMsgClientGetUserStats.game_id', index=0,
number=1, type=6, cpp_type=4, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='crc_stats', full_name='CMsgClientGetUserStats.crc_stats', index=1,
number=2, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='schema_local_version', full_name='CMsgClientGetUserStats.schema_local_version', index=2,
number=3, type=5, cpp_type=1, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='steam_id_for_user', full_name='CMsgClientGetUserStats.steam_id_for_user', index=3,
number=4, type=6, cpp_type=4, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=72,
serialized_end=189,
)
_CMSGCLIENTGETUSERSTATSRESPONSE_STATS = _descriptor.Descriptor(
name='Stats',
full_name='CMsgClientGetUserStatsResponse.Stats',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='stat_id', full_name='CMsgClientGetUserStatsResponse.Stats.stat_id', index=0,
number=1, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='stat_value', full_name='CMsgClientGetUserStatsResponse.Stats.stat_value', index=1,
number=2, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=432,
serialized_end=476,
)
_CMSGCLIENTGETUSERSTATSRESPONSE_ACHIEVEMENT_BLOCKS = _descriptor.Descriptor(
name='Achievement_Blocks',
full_name='CMsgClientGetUserStatsResponse.Achievement_Blocks',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='achievement_id', full_name='CMsgClientGetUserStatsResponse.Achievement_Blocks.achievement_id', index=0,
number=1, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='unlock_time', full_name='CMsgClientGetUserStatsResponse.Achievement_Blocks.unlock_time', index=1,
number=2, type=7, cpp_type=3, label=3,
has_default_value=False, default_value=[],
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=478,
serialized_end=543,
)
_CMSGCLIENTGETUSERSTATSRESPONSE = _descriptor.Descriptor(
name='CMsgClientGetUserStatsResponse',
full_name='CMsgClientGetUserStatsResponse',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='game_id', full_name='CMsgClientGetUserStatsResponse.game_id', index=0,
number=1, type=6, cpp_type=4, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='eresult', full_name='CMsgClientGetUserStatsResponse.eresult', index=1,
number=2, type=5, cpp_type=1, label=1,
has_default_value=True, default_value=2,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='crc_stats', full_name='CMsgClientGetUserStatsResponse.crc_stats', index=2,
number=3, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='schema', full_name='CMsgClientGetUserStatsResponse.schema', index=3,
number=4, type=12, cpp_type=9, label=1,
has_default_value=False, default_value=_b(""),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='stats', full_name='CMsgClientGetUserStatsResponse.stats', index=4,
number=5, type=11, cpp_type=10, label=3,
has_default_value=False, default_value=[],
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='achievement_blocks', full_name='CMsgClientGetUserStatsResponse.achievement_blocks', index=5,
number=6, type=11, cpp_type=10, label=3,
has_default_value=False, default_value=[],
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[_CMSGCLIENTGETUSERSTATSRESPONSE_STATS, _CMSGCLIENTGETUSERSTATSRESPONSE_ACHIEVEMENT_BLOCKS, ],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=192,
serialized_end=543,
)
_CMSGCLIENTSTOREUSERSTATSRESPONSE_STATS_FAILED_VALIDATION = _descriptor.Descriptor(
name='Stats_Failed_Validation',
full_name='CMsgClientStoreUserStatsResponse.Stats_Failed_Validation',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='stat_id', full_name='CMsgClientStoreUserStatsResponse.Stats_Failed_Validation.stat_id', index=0,
number=1, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='reverted_stat_value', full_name='CMsgClientStoreUserStatsResponse.Stats_Failed_Validation.reverted_stat_value', index=1,
number=2, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=757,
serialized_end=828,
)
_CMSGCLIENTSTOREUSERSTATSRESPONSE = _descriptor.Descriptor(
name='CMsgClientStoreUserStatsResponse',
full_name='CMsgClientStoreUserStatsResponse',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='game_id', full_name='CMsgClientStoreUserStatsResponse.game_id', index=0,
number=1, type=6, cpp_type=4, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='eresult', full_name='CMsgClientStoreUserStatsResponse.eresult', index=1,
number=2, type=5, cpp_type=1, label=1,
has_default_value=True, default_value=2,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='crc_stats', full_name='CMsgClientStoreUserStatsResponse.crc_stats', index=2,
number=3, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='stats_failed_validation', full_name='CMsgClientStoreUserStatsResponse.stats_failed_validation', index=3,
number=4, type=11, cpp_type=10, label=3,
has_default_value=False, default_value=[],
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='stats_out_of_date', full_name='CMsgClientStoreUserStatsResponse.stats_out_of_date', index=4,
number=5, type=8, cpp_type=7, label=1,
has_default_value=False, default_value=False,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[_CMSGCLIENTSTOREUSERSTATSRESPONSE_STATS_FAILED_VALIDATION, ],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=546,
serialized_end=828,
)
_CMSGCLIENTSTOREUSERSTATS2_STATS = _descriptor.Descriptor(
name='Stats',
full_name='CMsgClientStoreUserStats2.Stats',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='stat_id', full_name='CMsgClientStoreUserStats2.Stats.stat_id', index=0,
number=1, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='stat_value', full_name='CMsgClientStoreUserStats2.Stats.stat_value', index=1,
number=2, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=432,
serialized_end=476,
)
_CMSGCLIENTSTOREUSERSTATS2 = _descriptor.Descriptor(
name='CMsgClientStoreUserStats2',
full_name='CMsgClientStoreUserStats2',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='game_id', full_name='CMsgClientStoreUserStats2.game_id', index=0,
number=1, type=6, cpp_type=4, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='settor_steam_id', full_name='CMsgClientStoreUserStats2.settor_steam_id', index=1,
number=2, type=6, cpp_type=4, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='settee_steam_id', full_name='CMsgClientStoreUserStats2.settee_steam_id', index=2,
number=3, type=6, cpp_type=4, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='crc_stats', full_name='CMsgClientStoreUserStats2.crc_stats', index=3,
number=4, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='explicit_reset', full_name='CMsgClientStoreUserStats2.explicit_reset', index=4,
number=5, type=8, cpp_type=7, label=1,
has_default_value=False, default_value=False,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='stats', full_name='CMsgClientStoreUserStats2.stats', index=5,
number=6, type=11, cpp_type=10, label=3,
has_default_value=False, default_value=[],
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[_CMSGCLIENTSTOREUSERSTATS2_STATS, ],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=831,
serialized_end=1063,
)
_CMSGCLIENTSTATSUPDATED_UPDATED_STATS = _descriptor.Descriptor(
name='Updated_Stats',
full_name='CMsgClientStatsUpdated.Updated_Stats',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='stat_id', full_name='CMsgClientStatsUpdated.Updated_Stats.stat_id', index=0,
number=1, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='stat_value', full_name='CMsgClientStatsUpdated.Updated_Stats.stat_value', index=1,
number=2, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=1208,
serialized_end=1260,
)
_CMSGCLIENTSTATSUPDATED = _descriptor.Descriptor(
name='CMsgClientStatsUpdated',
full_name='CMsgClientStatsUpdated',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='steam_id', full_name='CMsgClientStatsUpdated.steam_id', index=0,
number=1, type=6, cpp_type=4, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='game_id', full_name='CMsgClientStatsUpdated.game_id', index=1,
number=2, type=6, cpp_type=4, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='crc_stats', full_name='CMsgClientStatsUpdated.crc_stats', index=2,
number=3, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='updated_stats', full_name='CMsgClientStatsUpdated.updated_stats', index=3,
number=4, type=11, cpp_type=10, label=3,
has_default_value=False, default_value=[],
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[_CMSGCLIENTSTATSUPDATED_UPDATED_STATS, ],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=1066,
serialized_end=1260,
)
_CMSGCLIENTSTOREUSERSTATS_STATS_TO_STORE = _descriptor.Descriptor(
name='Stats_To_Store',
full_name='CMsgClientStoreUserStats.Stats_To_Store',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='stat_id', full_name='CMsgClientStoreUserStats.Stats_To_Store.stat_id', index=0,
number=1, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='stat_value', full_name='CMsgClientStoreUserStats.Stats_To_Store.stat_value', index=1,
number=2, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=1398,
serialized_end=1451,
)
_CMSGCLIENTSTOREUSERSTATS = _descriptor.Descriptor(
name='CMsgClientStoreUserStats',
full_name='CMsgClientStoreUserStats',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='game_id', full_name='CMsgClientStoreUserStats.game_id', index=0,
number=1, type=6, cpp_type=4, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='explicit_reset', full_name='CMsgClientStoreUserStats.explicit_reset', index=1,
number=2, type=8, cpp_type=7, label=1,
has_default_value=False, default_value=False,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='stats_to_store', full_name='CMsgClientStoreUserStats.stats_to_store', index=2,
number=3, type=11, cpp_type=10, label=3,
has_default_value=False, default_value=[],
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[_CMSGCLIENTSTOREUSERSTATS_STATS_TO_STORE, ],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=1263,
serialized_end=1451,
)
_CMSGCLIENTGETUSERSTATSRESPONSE_STATS.containing_type = _CMSGCLIENTGETUSERSTATSRESPONSE
_CMSGCLIENTGETUSERSTATSRESPONSE_ACHIEVEMENT_BLOCKS.containing_type = _CMSGCLIENTGETUSERSTATSRESPONSE
_CMSGCLIENTGETUSERSTATSRESPONSE.fields_by_name['stats'].message_type = _CMSGCLIENTGETUSERSTATSRESPONSE_STATS
_CMSGCLIENTGETUSERSTATSRESPONSE.fields_by_name['achievement_blocks'].message_type = _CMSGCLIENTGETUSERSTATSRESPONSE_ACHIEVEMENT_BLOCKS
_CMSGCLIENTSTOREUSERSTATSRESPONSE_STATS_FAILED_VALIDATION.containing_type = _CMSGCLIENTSTOREUSERSTATSRESPONSE
_CMSGCLIENTSTOREUSERSTATSRESPONSE.fields_by_name['stats_failed_validation'].message_type = _CMSGCLIENTSTOREUSERSTATSRESPONSE_STATS_FAILED_VALIDATION
_CMSGCLIENTSTOREUSERSTATS2_STATS.containing_type = _CMSGCLIENTSTOREUSERSTATS2
_CMSGCLIENTSTOREUSERSTATS2.fields_by_name['stats'].message_type = _CMSGCLIENTSTOREUSERSTATS2_STATS
_CMSGCLIENTSTATSUPDATED_UPDATED_STATS.containing_type = _CMSGCLIENTSTATSUPDATED
_CMSGCLIENTSTATSUPDATED.fields_by_name['updated_stats'].message_type = _CMSGCLIENTSTATSUPDATED_UPDATED_STATS
_CMSGCLIENTSTOREUSERSTATS_STATS_TO_STORE.containing_type = _CMSGCLIENTSTOREUSERSTATS
_CMSGCLIENTSTOREUSERSTATS.fields_by_name['stats_to_store'].message_type = _CMSGCLIENTSTOREUSERSTATS_STATS_TO_STORE
DESCRIPTOR.message_types_by_name['CMsgClientGetUserStats'] = _CMSGCLIENTGETUSERSTATS
DESCRIPTOR.message_types_by_name['CMsgClientGetUserStatsResponse'] = _CMSGCLIENTGETUSERSTATSRESPONSE
DESCRIPTOR.message_types_by_name['CMsgClientStoreUserStatsResponse'] = _CMSGCLIENTSTOREUSERSTATSRESPONSE
DESCRIPTOR.message_types_by_name['CMsgClientStoreUserStats2'] = _CMSGCLIENTSTOREUSERSTATS2
DESCRIPTOR.message_types_by_name['CMsgClientStatsUpdated'] = _CMSGCLIENTSTATSUPDATED
DESCRIPTOR.message_types_by_name['CMsgClientStoreUserStats'] = _CMSGCLIENTSTOREUSERSTATS
_sym_db.RegisterFileDescriptor(DESCRIPTOR)
CMsgClientGetUserStats = _reflection.GeneratedProtocolMessageType('CMsgClientGetUserStats', (_message.Message,), dict(
DESCRIPTOR = _CMSGCLIENTGETUSERSTATS,
__module__ = 'steammessages_clientserver_userstats_pb2'
# @@protoc_insertion_point(class_scope:CMsgClientGetUserStats)
))
_sym_db.RegisterMessage(CMsgClientGetUserStats)
CMsgClientGetUserStatsResponse = _reflection.GeneratedProtocolMessageType('CMsgClientGetUserStatsResponse', (_message.Message,), dict(
Stats = _reflection.GeneratedProtocolMessageType('Stats', (_message.Message,), dict(
DESCRIPTOR = _CMSGCLIENTGETUSERSTATSRESPONSE_STATS,
__module__ = 'steammessages_clientserver_userstats_pb2'
# @@protoc_insertion_point(class_scope:CMsgClientGetUserStatsResponse.Stats)
))
,
Achievement_Blocks = _reflection.GeneratedProtocolMessageType('Achievement_Blocks', (_message.Message,), dict(
DESCRIPTOR = _CMSGCLIENTGETUSERSTATSRESPONSE_ACHIEVEMENT_BLOCKS,
__module__ = 'steammessages_clientserver_userstats_pb2'
# @@protoc_insertion_point(class_scope:CMsgClientGetUserStatsResponse.Achievement_Blocks)
))
,
DESCRIPTOR = _CMSGCLIENTGETUSERSTATSRESPONSE,
__module__ = 'steammessages_clientserver_userstats_pb2'
# @@protoc_insertion_point(class_scope:CMsgClientGetUserStatsResponse)
))
_sym_db.RegisterMessage(CMsgClientGetUserStatsResponse)
_sym_db.RegisterMessage(CMsgClientGetUserStatsResponse.Stats)
_sym_db.RegisterMessage(CMsgClientGetUserStatsResponse.Achievement_Blocks)
CMsgClientStoreUserStatsResponse = _reflection.GeneratedProtocolMessageType('CMsgClientStoreUserStatsResponse', (_message.Message,), dict(
Stats_Failed_Validation = _reflection.GeneratedProtocolMessageType('Stats_Failed_Validation', (_message.Message,), dict(
DESCRIPTOR = _CMSGCLIENTSTOREUSERSTATSRESPONSE_STATS_FAILED_VALIDATION,
__module__ = 'steammessages_clientserver_userstats_pb2'
# @@protoc_insertion_point(class_scope:CMsgClientStoreUserStatsResponse.Stats_Failed_Validation)
))
,
DESCRIPTOR = _CMSGCLIENTSTOREUSERSTATSRESPONSE,
__module__ = 'steammessages_clientserver_userstats_pb2'
# @@protoc_insertion_point(class_scope:CMsgClientStoreUserStatsResponse)
))
_sym_db.RegisterMessage(CMsgClientStoreUserStatsResponse)
_sym_db.RegisterMessage(CMsgClientStoreUserStatsResponse.Stats_Failed_Validation)
CMsgClientStoreUserStats2 = _reflection.GeneratedProtocolMessageType('CMsgClientStoreUserStats2', (_message.Message,), dict(
Stats = _reflection.GeneratedProtocolMessageType('Stats', (_message.Message,), dict(
DESCRIPTOR = _CMSGCLIENTSTOREUSERSTATS2_STATS,
__module__ = 'steammessages_clientserver_userstats_pb2'
# @@protoc_insertion_point(class_scope:CMsgClientStoreUserStats2.Stats)
))
,
DESCRIPTOR = _CMSGCLIENTSTOREUSERSTATS2,
__module__ = 'steammessages_clientserver_userstats_pb2'
# @@protoc_insertion_point(class_scope:CMsgClientStoreUserStats2)
))
_sym_db.RegisterMessage(CMsgClientStoreUserStats2)
_sym_db.RegisterMessage(CMsgClientStoreUserStats2.Stats)
CMsgClientStatsUpdated = _reflection.GeneratedProtocolMessageType('CMsgClientStatsUpdated', (_message.Message,), dict(
Updated_Stats = _reflection.GeneratedProtocolMessageType('Updated_Stats', (_message.Message,), dict(
DESCRIPTOR = _CMSGCLIENTSTATSUPDATED_UPDATED_STATS,
__module__ = 'steammessages_clientserver_userstats_pb2'
# @@protoc_insertion_point(class_scope:CMsgClientStatsUpdated.Updated_Stats)
))
,
DESCRIPTOR = _CMSGCLIENTSTATSUPDATED,
__module__ = 'steammessages_clientserver_userstats_pb2'
# @@protoc_insertion_point(class_scope:CMsgClientStatsUpdated)
))
_sym_db.RegisterMessage(CMsgClientStatsUpdated)
_sym_db.RegisterMessage(CMsgClientStatsUpdated.Updated_Stats)
CMsgClientStoreUserStats = _reflection.GeneratedProtocolMessageType('CMsgClientStoreUserStats', (_message.Message,), dict(
Stats_To_Store = _reflection.GeneratedProtocolMessageType('Stats_To_Store', (_message.Message,), dict(
DESCRIPTOR = _CMSGCLIENTSTOREUSERSTATS_STATS_TO_STORE,
__module__ = 'steammessages_clientserver_userstats_pb2'
# @@protoc_insertion_point(class_scope:CMsgClientStoreUserStats.Stats_To_Store)
))
,
DESCRIPTOR = _CMSGCLIENTSTOREUSERSTATS,
__module__ = 'steammessages_clientserver_userstats_pb2'
# @@protoc_insertion_point(class_scope:CMsgClientStoreUserStats)
))
_sym_db.RegisterMessage(CMsgClientStoreUserStats)
_sym_db.RegisterMessage(CMsgClientStoreUserStats.Stats_To_Store)
DESCRIPTOR._options = None
# @@protoc_insertion_point(module_scope)

1667
steam/protobufs/steammessages_cloud_pb2.py

File diff suppressed because one or more lines are too long

651
steam/protobufs/steammessages_contentsystem_pb2.py

@ -0,0 +1,651 @@
# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: steammessages_contentsystem.proto
import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
from google.protobuf import service as _service
from google.protobuf import service_reflection
# @@protoc_insertion_point(imports)
_sym_db = _symbol_database.Default()
import steam.protobufs.steammessages_unified_base_pb2 as steammessages__unified__base__pb2
DESCRIPTOR = _descriptor.FileDescriptor(
name='steammessages_contentsystem.proto',
package='',
syntax='proto2',
serialized_options=_b('\220\001\001'),
serialized_pb=_b('\n!steammessages_contentsystem.proto\x1a steammessages_unified_base.proto\"\xb5\x02\n6CContentServerDirectory_GetServersForSteamPipe_Request\x12#\n\x07\x63\x65ll_id\x18\x01 \x01(\rB\x12\x82\xb5\x18\x0e\x63lient Cell ID\x12\x39\n\x0bmax_servers\x18\x02 \x01(\r:\x02\x32\x30\x42 \x82\xb5\x18\x1cmax servers in response list\x12*\n\x0bip_override\x18\x03 \x01(\tB\x15\x82\xb5\x18\x11\x63lient IP address\x12+\n\rlauncher_type\x18\x04 \x01(\x05:\x01\x30\x42\x11\x82\xb5\x18\rlauncher type\x12\x42\n\x0bipv6_public\x18\x05 \x01(\tB-\x82\xb5\x18)client public ipv6 address if it knows it\"\xdb\x02\n\"CContentServerDirectory_ServerInfo\x12\x0c\n\x04type\x18\x01 \x01(\t\x12\x11\n\tsource_id\x18\x02 \x01(\x05\x12\x0f\n\x07\x63\x65ll_id\x18\x03 \x01(\x05\x12\x0c\n\x04load\x18\x04 \x01(\x05\x12\x15\n\rweighted_load\x18\x05 \x01(\x02\x12\"\n\x1anum_entries_in_client_list\x18\x06 \x01(\x05\x12\x18\n\x10steam_china_only\x18\x07 \x01(\x08\x12\x0c\n\x04host\x18\x08 \x01(\t\x12\r\n\x05vhost\x18\t \x01(\t\x12\x14\n\x0cuse_as_proxy\x18\n \x01(\x08\x12#\n\x1bproxy_request_path_template\x18\x0b \x01(\t\x12\x15\n\rhttps_support\x18\x0c \x01(\t\x12\x17\n\x0f\x61llowed_app_ids\x18\r \x03(\r\x12\x18\n\x10preferred_server\x18\x0e \x01(\x08\"o\n7CContentServerDirectory_GetServersForSteamPipe_Response\x12\x34\n\x07servers\x18\x01 \x03(\x0b\x32#.CContentServerDirectory_ServerInfo\"\x89\x01\n1CContentServerDirectory_GetDepotPatchInfo_Request\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x0f\n\x07\x64\x65potid\x18\x02 \x01(\r\x12\x19\n\x11source_manifestid\x18\x03 \x01(\x04\x12\x19\n\x11target_manifestid\x18\x04 \x01(\x04\"{\n2CContentServerDirectory_GetDepotPatchInfo_Response\x12\x14\n\x0cis_available\x18\x01 \x01(\x08\x12\x12\n\npatch_size\x18\x02 \x01(\x04\x12\x1b\n\x13patched_chunks_size\x18\x03 \x01(\x04\"P\n4CContentServerDirectory_GetClientUpdateHosts_Request\x12\x18\n\x10\x63\x61\x63hed_signature\x18\x01 \x01(\t\"w\n5CContentServerDirectory_GetClientUpdateHosts_Response\x12\x10\n\x08hosts_kv\x18\x01 \x01(\t\x12\x18\n\x10valid_until_time\x18\x02 \x01(\x04\x12\x12\n\nip_country\x18\x03 \x01(\t\"\xa1\x01\n6CContentServerDirectory_GetManifestRequestCode_Request\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x10\n\x08\x64\x65pot_id\x18\x02 \x01(\r\x12\x13\n\x0bmanifest_id\x18\x03 \x01(\x04\x12\x12\n\napp_branch\x18\x04 \x01(\t\x12\x1c\n\x14\x62ranch_password_hash\x18\x05 \x01(\t\"X\n7CContentServerDirectory_GetManifestRequestCode_Response\x12\x1d\n\x15manifest_request_code\x18\x01 \x01(\x04\x32\xe0\x04\n\x16\x43ontentServerDirectory\x12\x8b\x01\n\x16GetServersForSteamPipe\x12\x37.CContentServerDirectory_GetServersForSteamPipe_Request\x1a\x38.CContentServerDirectory_GetServersForSteamPipe_Response\x12|\n\x11GetDepotPatchInfo\x12\x32.CContentServerDirectory_GetDepotPatchInfo_Request\x1a\x33.CContentServerDirectory_GetDepotPatchInfo_Response\x12\x85\x01\n\x14GetClientUpdateHosts\x12\x35.CContentServerDirectory_GetClientUpdateHosts_Request\x1a\x36.CContentServerDirectory_GetClientUpdateHosts_Response\x12\x8b\x01\n\x16GetManifestRequestCode\x12\x37.CContentServerDirectory_GetManifestRequestCode_Request\x1a\x38.CContentServerDirectory_GetManifestRequestCode_Response\x1a$\x82\xb5\x18 Content Server and CDN directoryB\x03\x90\x01\x01')
,
dependencies=[steammessages__unified__base__pb2.DESCRIPTOR,])
_CCONTENTSERVERDIRECTORY_GETSERVERSFORSTEAMPIPE_REQUEST = _descriptor.Descriptor(
name='CContentServerDirectory_GetServersForSteamPipe_Request',
full_name='CContentServerDirectory_GetServersForSteamPipe_Request',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='cell_id', full_name='CContentServerDirectory_GetServersForSteamPipe_Request.cell_id', index=0,
number=1, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=_b('\202\265\030\016client Cell ID'), file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='max_servers', full_name='CContentServerDirectory_GetServersForSteamPipe_Request.max_servers', index=1,
number=2, type=13, cpp_type=3, label=1,
has_default_value=True, default_value=20,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=_b('\202\265\030\034max servers in response list'), file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='ip_override', full_name='CContentServerDirectory_GetServersForSteamPipe_Request.ip_override', index=2,
number=3, type=9, cpp_type=9, label=1,
has_default_value=False, default_value=_b("").decode('utf-8'),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=_b('\202\265\030\021client IP address'), file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='launcher_type', full_name='CContentServerDirectory_GetServersForSteamPipe_Request.launcher_type', index=3,
number=4, type=5, cpp_type=1, label=1,
has_default_value=True, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=_b('\202\265\030\rlauncher type'), file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='ipv6_public', full_name='CContentServerDirectory_GetServersForSteamPipe_Request.ipv6_public', index=4,
number=5, type=9, cpp_type=9, label=1,
has_default_value=False, default_value=_b("").decode('utf-8'),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=_b('\202\265\030)client public ipv6 address if it knows it'), file=DESCRIPTOR),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=72,
serialized_end=381,
)
_CCONTENTSERVERDIRECTORY_SERVERINFO = _descriptor.Descriptor(
name='CContentServerDirectory_ServerInfo',
full_name='CContentServerDirectory_ServerInfo',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='type', full_name='CContentServerDirectory_ServerInfo.type', index=0,
number=1, type=9, cpp_type=9, label=1,
has_default_value=False, default_value=_b("").decode('utf-8'),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='source_id', full_name='CContentServerDirectory_ServerInfo.source_id', index=1,
number=2, type=5, cpp_type=1, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='cell_id', full_name='CContentServerDirectory_ServerInfo.cell_id', index=2,
number=3, type=5, cpp_type=1, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='load', full_name='CContentServerDirectory_ServerInfo.load', index=3,
number=4, type=5, cpp_type=1, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='weighted_load', full_name='CContentServerDirectory_ServerInfo.weighted_load', index=4,
number=5, type=2, cpp_type=6, label=1,
has_default_value=False, default_value=float(0),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='num_entries_in_client_list', full_name='CContentServerDirectory_ServerInfo.num_entries_in_client_list', index=5,
number=6, type=5, cpp_type=1, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='steam_china_only', full_name='CContentServerDirectory_ServerInfo.steam_china_only', index=6,
number=7, type=8, cpp_type=7, label=1,
has_default_value=False, default_value=False,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='host', full_name='CContentServerDirectory_ServerInfo.host', index=7,
number=8, type=9, cpp_type=9, label=1,
has_default_value=False, default_value=_b("").decode('utf-8'),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='vhost', full_name='CContentServerDirectory_ServerInfo.vhost', index=8,
number=9, type=9, cpp_type=9, label=1,
has_default_value=False, default_value=_b("").decode('utf-8'),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='use_as_proxy', full_name='CContentServerDirectory_ServerInfo.use_as_proxy', index=9,
number=10, type=8, cpp_type=7, label=1,
has_default_value=False, default_value=False,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='proxy_request_path_template', full_name='CContentServerDirectory_ServerInfo.proxy_request_path_template', index=10,
number=11, type=9, cpp_type=9, label=1,
has_default_value=False, default_value=_b("").decode('utf-8'),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='https_support', full_name='CContentServerDirectory_ServerInfo.https_support', index=11,
number=12, type=9, cpp_type=9, label=1,
has_default_value=False, default_value=_b("").decode('utf-8'),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='allowed_app_ids', full_name='CContentServerDirectory_ServerInfo.allowed_app_ids', index=12,
number=13, type=13, cpp_type=3, label=3,
has_default_value=False, default_value=[],
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='preferred_server', full_name='CContentServerDirectory_ServerInfo.preferred_server', index=13,
number=14, type=8, cpp_type=7, label=1,
has_default_value=False, default_value=False,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=384,
serialized_end=731,
)
_CCONTENTSERVERDIRECTORY_GETSERVERSFORSTEAMPIPE_RESPONSE = _descriptor.Descriptor(
name='CContentServerDirectory_GetServersForSteamPipe_Response',
full_name='CContentServerDirectory_GetServersForSteamPipe_Response',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='servers', full_name='CContentServerDirectory_GetServersForSteamPipe_Response.servers', index=0,
number=1, type=11, cpp_type=10, label=3,
has_default_value=False, default_value=[],
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=733,
serialized_end=844,
)
_CCONTENTSERVERDIRECTORY_GETDEPOTPATCHINFO_REQUEST = _descriptor.Descriptor(
name='CContentServerDirectory_GetDepotPatchInfo_Request',
full_name='CContentServerDirectory_GetDepotPatchInfo_Request',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='appid', full_name='CContentServerDirectory_GetDepotPatchInfo_Request.appid', index=0,
number=1, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='depotid', full_name='CContentServerDirectory_GetDepotPatchInfo_Request.depotid', index=1,
number=2, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='source_manifestid', full_name='CContentServerDirectory_GetDepotPatchInfo_Request.source_manifestid', index=2,
number=3, type=4, cpp_type=4, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='target_manifestid', full_name='CContentServerDirectory_GetDepotPatchInfo_Request.target_manifestid', index=3,
number=4, type=4, cpp_type=4, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=847,
serialized_end=984,
)
_CCONTENTSERVERDIRECTORY_GETDEPOTPATCHINFO_RESPONSE = _descriptor.Descriptor(
name='CContentServerDirectory_GetDepotPatchInfo_Response',
full_name='CContentServerDirectory_GetDepotPatchInfo_Response',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='is_available', full_name='CContentServerDirectory_GetDepotPatchInfo_Response.is_available', index=0,
number=1, type=8, cpp_type=7, label=1,
has_default_value=False, default_value=False,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='patch_size', full_name='CContentServerDirectory_GetDepotPatchInfo_Response.patch_size', index=1,
number=2, type=4, cpp_type=4, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='patched_chunks_size', full_name='CContentServerDirectory_GetDepotPatchInfo_Response.patched_chunks_size', index=2,
number=3, type=4, cpp_type=4, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=986,
serialized_end=1109,
)
_CCONTENTSERVERDIRECTORY_GETCLIENTUPDATEHOSTS_REQUEST = _descriptor.Descriptor(
name='CContentServerDirectory_GetClientUpdateHosts_Request',
full_name='CContentServerDirectory_GetClientUpdateHosts_Request',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='cached_signature', full_name='CContentServerDirectory_GetClientUpdateHosts_Request.cached_signature', index=0,
number=1, type=9, cpp_type=9, label=1,
has_default_value=False, default_value=_b("").decode('utf-8'),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=1111,
serialized_end=1191,
)
_CCONTENTSERVERDIRECTORY_GETCLIENTUPDATEHOSTS_RESPONSE = _descriptor.Descriptor(
name='CContentServerDirectory_GetClientUpdateHosts_Response',
full_name='CContentServerDirectory_GetClientUpdateHosts_Response',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='hosts_kv', full_name='CContentServerDirectory_GetClientUpdateHosts_Response.hosts_kv', index=0,
number=1, type=9, cpp_type=9, label=1,
has_default_value=False, default_value=_b("").decode('utf-8'),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='valid_until_time', full_name='CContentServerDirectory_GetClientUpdateHosts_Response.valid_until_time', index=1,
number=2, type=4, cpp_type=4, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='ip_country', full_name='CContentServerDirectory_GetClientUpdateHosts_Response.ip_country', index=2,
number=3, type=9, cpp_type=9, label=1,
has_default_value=False, default_value=_b("").decode('utf-8'),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=1193,
serialized_end=1312,
)
_CCONTENTSERVERDIRECTORY_GETMANIFESTREQUESTCODE_REQUEST = _descriptor.Descriptor(
name='CContentServerDirectory_GetManifestRequestCode_Request',
full_name='CContentServerDirectory_GetManifestRequestCode_Request',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='app_id', full_name='CContentServerDirectory_GetManifestRequestCode_Request.app_id', index=0,
number=1, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='depot_id', full_name='CContentServerDirectory_GetManifestRequestCode_Request.depot_id', index=1,
number=2, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='manifest_id', full_name='CContentServerDirectory_GetManifestRequestCode_Request.manifest_id', index=2,
number=3, type=4, cpp_type=4, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='app_branch', full_name='CContentServerDirectory_GetManifestRequestCode_Request.app_branch', index=3,
number=4, type=9, cpp_type=9, label=1,
has_default_value=False, default_value=_b("").decode('utf-8'),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='branch_password_hash', full_name='CContentServerDirectory_GetManifestRequestCode_Request.branch_password_hash', index=4,
number=5, type=9, cpp_type=9, label=1,
has_default_value=False, default_value=_b("").decode('utf-8'),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=1315,
serialized_end=1476,
)
_CCONTENTSERVERDIRECTORY_GETMANIFESTREQUESTCODE_RESPONSE = _descriptor.Descriptor(
name='CContentServerDirectory_GetManifestRequestCode_Response',
full_name='CContentServerDirectory_GetManifestRequestCode_Response',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='manifest_request_code', full_name='CContentServerDirectory_GetManifestRequestCode_Response.manifest_request_code', index=0,
number=1, type=4, cpp_type=4, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=1478,
serialized_end=1566,
)
_CCONTENTSERVERDIRECTORY_GETSERVERSFORSTEAMPIPE_RESPONSE.fields_by_name['servers'].message_type = _CCONTENTSERVERDIRECTORY_SERVERINFO
DESCRIPTOR.message_types_by_name['CContentServerDirectory_GetServersForSteamPipe_Request'] = _CCONTENTSERVERDIRECTORY_GETSERVERSFORSTEAMPIPE_REQUEST
DESCRIPTOR.message_types_by_name['CContentServerDirectory_ServerInfo'] = _CCONTENTSERVERDIRECTORY_SERVERINFO
DESCRIPTOR.message_types_by_name['CContentServerDirectory_GetServersForSteamPipe_Response'] = _CCONTENTSERVERDIRECTORY_GETSERVERSFORSTEAMPIPE_RESPONSE
DESCRIPTOR.message_types_by_name['CContentServerDirectory_GetDepotPatchInfo_Request'] = _CCONTENTSERVERDIRECTORY_GETDEPOTPATCHINFO_REQUEST
DESCRIPTOR.message_types_by_name['CContentServerDirectory_GetDepotPatchInfo_Response'] = _CCONTENTSERVERDIRECTORY_GETDEPOTPATCHINFO_RESPONSE
DESCRIPTOR.message_types_by_name['CContentServerDirectory_GetClientUpdateHosts_Request'] = _CCONTENTSERVERDIRECTORY_GETCLIENTUPDATEHOSTS_REQUEST
DESCRIPTOR.message_types_by_name['CContentServerDirectory_GetClientUpdateHosts_Response'] = _CCONTENTSERVERDIRECTORY_GETCLIENTUPDATEHOSTS_RESPONSE
DESCRIPTOR.message_types_by_name['CContentServerDirectory_GetManifestRequestCode_Request'] = _CCONTENTSERVERDIRECTORY_GETMANIFESTREQUESTCODE_REQUEST
DESCRIPTOR.message_types_by_name['CContentServerDirectory_GetManifestRequestCode_Response'] = _CCONTENTSERVERDIRECTORY_GETMANIFESTREQUESTCODE_RESPONSE
_sym_db.RegisterFileDescriptor(DESCRIPTOR)
CContentServerDirectory_GetServersForSteamPipe_Request = _reflection.GeneratedProtocolMessageType('CContentServerDirectory_GetServersForSteamPipe_Request', (_message.Message,), dict(
DESCRIPTOR = _CCONTENTSERVERDIRECTORY_GETSERVERSFORSTEAMPIPE_REQUEST,
__module__ = 'steammessages_contentsystem_pb2'
# @@protoc_insertion_point(class_scope:CContentServerDirectory_GetServersForSteamPipe_Request)
))
_sym_db.RegisterMessage(CContentServerDirectory_GetServersForSteamPipe_Request)
CContentServerDirectory_ServerInfo = _reflection.GeneratedProtocolMessageType('CContentServerDirectory_ServerInfo', (_message.Message,), dict(
DESCRIPTOR = _CCONTENTSERVERDIRECTORY_SERVERINFO,
__module__ = 'steammessages_contentsystem_pb2'
# @@protoc_insertion_point(class_scope:CContentServerDirectory_ServerInfo)
))
_sym_db.RegisterMessage(CContentServerDirectory_ServerInfo)
CContentServerDirectory_GetServersForSteamPipe_Response = _reflection.GeneratedProtocolMessageType('CContentServerDirectory_GetServersForSteamPipe_Response', (_message.Message,), dict(
DESCRIPTOR = _CCONTENTSERVERDIRECTORY_GETSERVERSFORSTEAMPIPE_RESPONSE,
__module__ = 'steammessages_contentsystem_pb2'
# @@protoc_insertion_point(class_scope:CContentServerDirectory_GetServersForSteamPipe_Response)
))
_sym_db.RegisterMessage(CContentServerDirectory_GetServersForSteamPipe_Response)
CContentServerDirectory_GetDepotPatchInfo_Request = _reflection.GeneratedProtocolMessageType('CContentServerDirectory_GetDepotPatchInfo_Request', (_message.Message,), dict(
DESCRIPTOR = _CCONTENTSERVERDIRECTORY_GETDEPOTPATCHINFO_REQUEST,
__module__ = 'steammessages_contentsystem_pb2'
# @@protoc_insertion_point(class_scope:CContentServerDirectory_GetDepotPatchInfo_Request)
))
_sym_db.RegisterMessage(CContentServerDirectory_GetDepotPatchInfo_Request)
CContentServerDirectory_GetDepotPatchInfo_Response = _reflection.GeneratedProtocolMessageType('CContentServerDirectory_GetDepotPatchInfo_Response', (_message.Message,), dict(
DESCRIPTOR = _CCONTENTSERVERDIRECTORY_GETDEPOTPATCHINFO_RESPONSE,
__module__ = 'steammessages_contentsystem_pb2'
# @@protoc_insertion_point(class_scope:CContentServerDirectory_GetDepotPatchInfo_Response)
))
_sym_db.RegisterMessage(CContentServerDirectory_GetDepotPatchInfo_Response)
CContentServerDirectory_GetClientUpdateHosts_Request = _reflection.GeneratedProtocolMessageType('CContentServerDirectory_GetClientUpdateHosts_Request', (_message.Message,), dict(
DESCRIPTOR = _CCONTENTSERVERDIRECTORY_GETCLIENTUPDATEHOSTS_REQUEST,
__module__ = 'steammessages_contentsystem_pb2'
# @@protoc_insertion_point(class_scope:CContentServerDirectory_GetClientUpdateHosts_Request)
))
_sym_db.RegisterMessage(CContentServerDirectory_GetClientUpdateHosts_Request)
CContentServerDirectory_GetClientUpdateHosts_Response = _reflection.GeneratedProtocolMessageType('CContentServerDirectory_GetClientUpdateHosts_Response', (_message.Message,), dict(
DESCRIPTOR = _CCONTENTSERVERDIRECTORY_GETCLIENTUPDATEHOSTS_RESPONSE,
__module__ = 'steammessages_contentsystem_pb2'
# @@protoc_insertion_point(class_scope:CContentServerDirectory_GetClientUpdateHosts_Response)
))
_sym_db.RegisterMessage(CContentServerDirectory_GetClientUpdateHosts_Response)
CContentServerDirectory_GetManifestRequestCode_Request = _reflection.GeneratedProtocolMessageType('CContentServerDirectory_GetManifestRequestCode_Request', (_message.Message,), dict(
DESCRIPTOR = _CCONTENTSERVERDIRECTORY_GETMANIFESTREQUESTCODE_REQUEST,
__module__ = 'steammessages_contentsystem_pb2'
# @@protoc_insertion_point(class_scope:CContentServerDirectory_GetManifestRequestCode_Request)
))
_sym_db.RegisterMessage(CContentServerDirectory_GetManifestRequestCode_Request)
CContentServerDirectory_GetManifestRequestCode_Response = _reflection.GeneratedProtocolMessageType('CContentServerDirectory_GetManifestRequestCode_Response', (_message.Message,), dict(
DESCRIPTOR = _CCONTENTSERVERDIRECTORY_GETMANIFESTREQUESTCODE_RESPONSE,
__module__ = 'steammessages_contentsystem_pb2'
# @@protoc_insertion_point(class_scope:CContentServerDirectory_GetManifestRequestCode_Response)
))
_sym_db.RegisterMessage(CContentServerDirectory_GetManifestRequestCode_Response)
DESCRIPTOR._options = None
_CCONTENTSERVERDIRECTORY_GETSERVERSFORSTEAMPIPE_REQUEST.fields_by_name['cell_id']._options = None
_CCONTENTSERVERDIRECTORY_GETSERVERSFORSTEAMPIPE_REQUEST.fields_by_name['max_servers']._options = None
_CCONTENTSERVERDIRECTORY_GETSERVERSFORSTEAMPIPE_REQUEST.fields_by_name['ip_override']._options = None
_CCONTENTSERVERDIRECTORY_GETSERVERSFORSTEAMPIPE_REQUEST.fields_by_name['launcher_type']._options = None
_CCONTENTSERVERDIRECTORY_GETSERVERSFORSTEAMPIPE_REQUEST.fields_by_name['ipv6_public']._options = None
_CONTENTSERVERDIRECTORY = _descriptor.ServiceDescriptor(
name='ContentServerDirectory',
full_name='ContentServerDirectory',
file=DESCRIPTOR,
index=0,
serialized_options=_b('\202\265\030 Content Server and CDN directory'),
serialized_start=1569,
serialized_end=2177,
methods=[
_descriptor.MethodDescriptor(
name='GetServersForSteamPipe',
full_name='ContentServerDirectory.GetServersForSteamPipe',
index=0,
containing_service=None,
input_type=_CCONTENTSERVERDIRECTORY_GETSERVERSFORSTEAMPIPE_REQUEST,
output_type=_CCONTENTSERVERDIRECTORY_GETSERVERSFORSTEAMPIPE_RESPONSE,
serialized_options=None,
),
_descriptor.MethodDescriptor(
name='GetDepotPatchInfo',
full_name='ContentServerDirectory.GetDepotPatchInfo',
index=1,
containing_service=None,
input_type=_CCONTENTSERVERDIRECTORY_GETDEPOTPATCHINFO_REQUEST,
output_type=_CCONTENTSERVERDIRECTORY_GETDEPOTPATCHINFO_RESPONSE,
serialized_options=None,
),
_descriptor.MethodDescriptor(
name='GetClientUpdateHosts',
full_name='ContentServerDirectory.GetClientUpdateHosts',
index=2,
containing_service=None,
input_type=_CCONTENTSERVERDIRECTORY_GETCLIENTUPDATEHOSTS_REQUEST,
output_type=_CCONTENTSERVERDIRECTORY_GETCLIENTUPDATEHOSTS_RESPONSE,
serialized_options=None,
),
_descriptor.MethodDescriptor(
name='GetManifestRequestCode',
full_name='ContentServerDirectory.GetManifestRequestCode',
index=3,
containing_service=None,
input_type=_CCONTENTSERVERDIRECTORY_GETMANIFESTREQUESTCODE_REQUEST,
output_type=_CCONTENTSERVERDIRECTORY_GETMANIFESTREQUESTCODE_RESPONSE,
serialized_options=None,
),
])
_sym_db.RegisterServiceDescriptor(_CONTENTSERVERDIRECTORY)
DESCRIPTOR.services_by_name['ContentServerDirectory'] = _CONTENTSERVERDIRECTORY
ContentServerDirectory = service_reflection.GeneratedServiceType('ContentServerDirectory', (_service.Service,), dict(
DESCRIPTOR = _CONTENTSERVERDIRECTORY,
__module__ = 'steammessages_contentsystem_pb2'
))
ContentServerDirectory_Stub = service_reflection.GeneratedServiceStubType('ContentServerDirectory_Stub', (ContentServerDirectory,), dict(
DESCRIPTOR = _CONTENTSERVERDIRECTORY,
__module__ = 'steammessages_contentsystem_pb2'
))
# @@protoc_insertion_point(module_scope)

105
steam/protobufs/steammessages_credentials_pb2.py

File diff suppressed because one or more lines are too long

213
steam/protobufs/steammessages_datapublisher_pb2.py

@ -23,7 +23,7 @@ DESCRIPTOR = _descriptor.FileDescriptor(
package='',
syntax='proto2',
serialized_options=_b('\220\001\001'),
serialized_pb=_b('\n!steammessages_datapublisher.proto\x1a steammessages_unified_base.proto\"\xfd\x03\n9CDataPublisher_ClientContentCorruptionReport_Notification\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x0f\n\x07\x64\x65potid\x18\x02 \x01(\r\x12\x39\n\x0f\x64ownload_source\x18\x03 \x01(\tB \x82\xb5\x18\x1chost name of download source\x12.\n\x08objectid\x18\x04 \x01(\tB\x1c\x82\xb5\x18\x18\x43hunk SHA or Manifest ID\x12\"\n\x06\x63\x65llid\x18\x05 \x01(\rB\x12\x82\xb5\x18\x0e\x43lient Cell ID\x12>\n\x0bis_manifest\x18\x06 \x01(\x08\x42)\x82\xb5\x18%The object is a manifest, not a chunk\x12-\n\x0bobject_size\x18\x07 \x01(\x04\x42\x18\x82\xb5\x18\x14object size in bytes\x12\x37\n\x0f\x63orruption_type\x18\x08 \x01(\rB\x1e\x82\xb5\x18\x1aSee EContentCorruptionType\x12-\n\nused_https\x18\t \x01(\x08\x42\x19\x82\xb5\x18\x15the request was HTTPS\x12:\n\x11oc_proxy_detected\x18\n \x01(\x08\x42\x1f\x82\xb5\x18\x1b\x64\x65tected an OpenCache proxy\"c\n(CValveHWSurvey_GetSurveySchedule_Request\x12\x17\n\x0fsurveydatetoken\x18\x01 \x01(\t\x12\x1e\n\x16surveydatetokenversion\x18\x02 \x01(\x06\"d\n)CValveHWSurvey_GetSurveySchedule_Response\x12\x17\n\x0fsurveydatetoken\x18\x01 \x01(\r\x12\x1e\n\x16surveydatetokenversion\x18\x02 \x01(\x06\x32\xa2\x01\n\rDataPublisher\x12h\n\x1d\x43lientContentCorruptionReport\x12:.CDataPublisher_ClientContentCorruptionReport_Notification\x1a\x0b.NoResponse\x1a\'\x82\xb5\x18#Data Publisher (DP) server services2\xac\x01\n\rValveHWSurvey\x12\x87\x01\n\x11GetSurveySchedule\x12).CValveHWSurvey_GetSurveySchedule_Request\x1a*.CValveHWSurvey_GetSurveySchedule_Response\"\x1b\x82\xb5\x18\x17Should I run the survey\x1a\x11\x82\xb5\x18\rValveHWSurveyB\x03\x90\x01\x01')
serialized_pb=_b('\n!steammessages_datapublisher.proto\x1a steammessages_unified_base.proto\"\xfd\x03\n9CDataPublisher_ClientContentCorruptionReport_Notification\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x0f\n\x07\x64\x65potid\x18\x02 \x01(\r\x12\x39\n\x0f\x64ownload_source\x18\x03 \x01(\tB \x82\xb5\x18\x1chost name of download source\x12.\n\x08objectid\x18\x04 \x01(\tB\x1c\x82\xb5\x18\x18\x43hunk SHA or Manifest ID\x12\"\n\x06\x63\x65llid\x18\x05 \x01(\rB\x12\x82\xb5\x18\x0e\x43lient Cell ID\x12>\n\x0bis_manifest\x18\x06 \x01(\x08\x42)\x82\xb5\x18%The object is a manifest, not a chunk\x12-\n\x0bobject_size\x18\x07 \x01(\x04\x42\x18\x82\xb5\x18\x14object size in bytes\x12\x37\n\x0f\x63orruption_type\x18\x08 \x01(\rB\x1e\x82\xb5\x18\x1aSee EContentCorruptionType\x12-\n\nused_https\x18\t \x01(\x08\x42\x19\x82\xb5\x18\x15the request was HTTPS\x12:\n\x11oc_proxy_detected\x18\n \x01(\x08\x42\x1f\x82\xb5\x18\x1b\x64\x65tected an OpenCache proxy\"\xd0\x04\n.CDataPublisher_ClientUpdateAppJob_Notification\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x11\n\tdepot_ids\x18\x02 \x03(\r\x12\x11\n\tapp_state\x18\x03 \x01(\r\x12\x15\n\rjob_app_error\x18\x04 \x01(\r\x12\x15\n\rerror_details\x18\x05 \x01(\t\x12\x14\n\x0cjob_duration\x18\x06 \x01(\r\x12\x1f\n\x17\x66iles_validation_failed\x18\x07 \x01(\r\x12\x1c\n\x14job_bytes_downloaded\x18\x08 \x01(\x04\x12\x18\n\x10job_bytes_staged\x18\t \x01(\x04\x12\x16\n\x0e\x62ytes_comitted\x18\n \x01(\x04\x12\x17\n\x0fstart_app_state\x18\x0b \x01(\r\x12\x18\n\x10stats_machine_id\x18\x0c \x01(\x06\x12\x13\n\x0b\x62ranch_name\x18\r \x01(\t\x12\x1e\n\x16total_bytes_downloaded\x18\x0e \x01(\x04\x12\x1a\n\x12total_bytes_staged\x18\x0f \x01(\x04\x12\x1c\n\x14total_bytes_restored\x18\x10 \x01(\x04\x12\x13\n\x0bis_borrowed\x18\x11 \x01(\x08\x12\x17\n\x0fis_free_weekend\x18\x12 \x01(\x08\x12\x1a\n\x12total_bytes_legacy\x18\x13 \x01(\x04\x12\x1b\n\x13total_bytes_patched\x18\x14 \x01(\x04\x12\x19\n\x11total_bytes_saved\x18\x15 \x01(\x04\x12\x0f\n\x07\x63\x65ll_id\x18\x16 \x01(\r\"c\n(CValveHWSurvey_GetSurveySchedule_Request\x12\x17\n\x0fsurveydatetoken\x18\x01 \x01(\t\x12\x1e\n\x16surveydatetokenversion\x18\x02 \x01(\x06\"d\n)CValveHWSurvey_GetSurveySchedule_Response\x12\x17\n\x0fsurveydatetoken\x18\x01 \x01(\r\x12\x1e\n\x16surveydatetokenversion\x18\x02 \x01(\x06\x32\xfc\x01\n\rDataPublisher\x12h\n\x1d\x43lientContentCorruptionReport\x12:.CDataPublisher_ClientContentCorruptionReport_Notification\x1a\x0b.NoResponse\x12X\n\x18\x43lientUpdateAppJobReport\x12/.CDataPublisher_ClientUpdateAppJob_Notification\x1a\x0b.NoResponse\x1a\'\x82\xb5\x18#Data Publisher (DP) server services2\xac\x01\n\rValveHWSurvey\x12\x87\x01\n\x11GetSurveySchedule\x12).CValveHWSurvey_GetSurveySchedule_Request\x1a*.CValveHWSurvey_GetSurveySchedule_Response\"\x1b\x82\xb5\x18\x17Should I run the survey\x1a\x11\x82\xb5\x18\rValveHWSurveyB\x03\x90\x01\x01')
,
dependencies=[steammessages__unified__base__pb2.DESCRIPTOR,])
@ -124,6 +124,184 @@ _CDATAPUBLISHER_CLIENTCONTENTCORRUPTIONREPORT_NOTIFICATION = _descriptor.Descrip
)
_CDATAPUBLISHER_CLIENTUPDATEAPPJOB_NOTIFICATION = _descriptor.Descriptor(
name='CDataPublisher_ClientUpdateAppJob_Notification',
full_name='CDataPublisher_ClientUpdateAppJob_Notification',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='app_id', full_name='CDataPublisher_ClientUpdateAppJob_Notification.app_id', index=0,
number=1, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='depot_ids', full_name='CDataPublisher_ClientUpdateAppJob_Notification.depot_ids', index=1,
number=2, type=13, cpp_type=3, label=3,
has_default_value=False, default_value=[],
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='app_state', full_name='CDataPublisher_ClientUpdateAppJob_Notification.app_state', index=2,
number=3, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='job_app_error', full_name='CDataPublisher_ClientUpdateAppJob_Notification.job_app_error', index=3,
number=4, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='error_details', full_name='CDataPublisher_ClientUpdateAppJob_Notification.error_details', index=4,
number=5, type=9, cpp_type=9, label=1,
has_default_value=False, default_value=_b("").decode('utf-8'),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='job_duration', full_name='CDataPublisher_ClientUpdateAppJob_Notification.job_duration', index=5,
number=6, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='files_validation_failed', full_name='CDataPublisher_ClientUpdateAppJob_Notification.files_validation_failed', index=6,
number=7, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='job_bytes_downloaded', full_name='CDataPublisher_ClientUpdateAppJob_Notification.job_bytes_downloaded', index=7,
number=8, type=4, cpp_type=4, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='job_bytes_staged', full_name='CDataPublisher_ClientUpdateAppJob_Notification.job_bytes_staged', index=8,
number=9, type=4, cpp_type=4, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='bytes_comitted', full_name='CDataPublisher_ClientUpdateAppJob_Notification.bytes_comitted', index=9,
number=10, type=4, cpp_type=4, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='start_app_state', full_name='CDataPublisher_ClientUpdateAppJob_Notification.start_app_state', index=10,
number=11, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='stats_machine_id', full_name='CDataPublisher_ClientUpdateAppJob_Notification.stats_machine_id', index=11,
number=12, type=6, cpp_type=4, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='branch_name', full_name='CDataPublisher_ClientUpdateAppJob_Notification.branch_name', index=12,
number=13, type=9, cpp_type=9, label=1,
has_default_value=False, default_value=_b("").decode('utf-8'),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='total_bytes_downloaded', full_name='CDataPublisher_ClientUpdateAppJob_Notification.total_bytes_downloaded', index=13,
number=14, type=4, cpp_type=4, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='total_bytes_staged', full_name='CDataPublisher_ClientUpdateAppJob_Notification.total_bytes_staged', index=14,
number=15, type=4, cpp_type=4, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='total_bytes_restored', full_name='CDataPublisher_ClientUpdateAppJob_Notification.total_bytes_restored', index=15,
number=16, type=4, cpp_type=4, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='is_borrowed', full_name='CDataPublisher_ClientUpdateAppJob_Notification.is_borrowed', index=16,
number=17, type=8, cpp_type=7, label=1,
has_default_value=False, default_value=False,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='is_free_weekend', full_name='CDataPublisher_ClientUpdateAppJob_Notification.is_free_weekend', index=17,
number=18, type=8, cpp_type=7, label=1,
has_default_value=False, default_value=False,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='total_bytes_legacy', full_name='CDataPublisher_ClientUpdateAppJob_Notification.total_bytes_legacy', index=18,
number=19, type=4, cpp_type=4, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='total_bytes_patched', full_name='CDataPublisher_ClientUpdateAppJob_Notification.total_bytes_patched', index=19,
number=20, type=4, cpp_type=4, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='total_bytes_saved', full_name='CDataPublisher_ClientUpdateAppJob_Notification.total_bytes_saved', index=20,
number=21, type=4, cpp_type=4, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='cell_id', full_name='CDataPublisher_ClientUpdateAppJob_Notification.cell_id', index=21,
number=22, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=584,
serialized_end=1176,
)
_CVALVEHWSURVEY_GETSURVEYSCHEDULE_REQUEST = _descriptor.Descriptor(
name='CValveHWSurvey_GetSurveySchedule_Request',
full_name='CValveHWSurvey_GetSurveySchedule_Request',
@ -157,8 +335,8 @@ _CVALVEHWSURVEY_GETSURVEYSCHEDULE_REQUEST = _descriptor.Descriptor(
extension_ranges=[],
oneofs=[
],
serialized_start=583,
serialized_end=682,
serialized_start=1178,
serialized_end=1277,
)
@ -195,11 +373,12 @@ _CVALVEHWSURVEY_GETSURVEYSCHEDULE_RESPONSE = _descriptor.Descriptor(
extension_ranges=[],
oneofs=[
],
serialized_start=684,
serialized_end=784,
serialized_start=1279,
serialized_end=1379,
)
DESCRIPTOR.message_types_by_name['CDataPublisher_ClientContentCorruptionReport_Notification'] = _CDATAPUBLISHER_CLIENTCONTENTCORRUPTIONREPORT_NOTIFICATION
DESCRIPTOR.message_types_by_name['CDataPublisher_ClientUpdateAppJob_Notification'] = _CDATAPUBLISHER_CLIENTUPDATEAPPJOB_NOTIFICATION
DESCRIPTOR.message_types_by_name['CValveHWSurvey_GetSurveySchedule_Request'] = _CVALVEHWSURVEY_GETSURVEYSCHEDULE_REQUEST
DESCRIPTOR.message_types_by_name['CValveHWSurvey_GetSurveySchedule_Response'] = _CVALVEHWSURVEY_GETSURVEYSCHEDULE_RESPONSE
_sym_db.RegisterFileDescriptor(DESCRIPTOR)
@ -211,6 +390,13 @@ CDataPublisher_ClientContentCorruptionReport_Notification = _reflection.Generate
))
_sym_db.RegisterMessage(CDataPublisher_ClientContentCorruptionReport_Notification)
CDataPublisher_ClientUpdateAppJob_Notification = _reflection.GeneratedProtocolMessageType('CDataPublisher_ClientUpdateAppJob_Notification', (_message.Message,), dict(
DESCRIPTOR = _CDATAPUBLISHER_CLIENTUPDATEAPPJOB_NOTIFICATION,
__module__ = 'steammessages_datapublisher_pb2'
# @@protoc_insertion_point(class_scope:CDataPublisher_ClientUpdateAppJob_Notification)
))
_sym_db.RegisterMessage(CDataPublisher_ClientUpdateAppJob_Notification)
CValveHWSurvey_GetSurveySchedule_Request = _reflection.GeneratedProtocolMessageType('CValveHWSurvey_GetSurveySchedule_Request', (_message.Message,), dict(
DESCRIPTOR = _CVALVEHWSURVEY_GETSURVEYSCHEDULE_REQUEST,
__module__ = 'steammessages_datapublisher_pb2'
@ -242,8 +428,8 @@ _DATAPUBLISHER = _descriptor.ServiceDescriptor(
file=DESCRIPTOR,
index=0,
serialized_options=_b('\202\265\030#Data Publisher (DP) server services'),
serialized_start=787,
serialized_end=949,
serialized_start=1382,
serialized_end=1634,
methods=[
_descriptor.MethodDescriptor(
name='ClientContentCorruptionReport',
@ -254,6 +440,15 @@ _DATAPUBLISHER = _descriptor.ServiceDescriptor(
output_type=steammessages__unified__base__pb2._NORESPONSE,
serialized_options=None,
),
_descriptor.MethodDescriptor(
name='ClientUpdateAppJobReport',
full_name='DataPublisher.ClientUpdateAppJobReport',
index=1,
containing_service=None,
input_type=_CDATAPUBLISHER_CLIENTUPDATEAPPJOB_NOTIFICATION,
output_type=steammessages__unified__base__pb2._NORESPONSE,
serialized_options=None,
),
])
_sym_db.RegisterServiceDescriptor(_DATAPUBLISHER)
@ -266,8 +461,8 @@ _VALVEHWSURVEY = _descriptor.ServiceDescriptor(
file=DESCRIPTOR,
index=1,
serialized_options=_b('\202\265\030\rValveHWSurvey'),
serialized_start=952,
serialized_end=1124,
serialized_start=1637,
serialized_end=1809,
methods=[
_descriptor.MethodDescriptor(
name='GetSurveySchedule',

83
steam/protobufs/steammessages_depotbuilder_pb2.py

@ -23,7 +23,7 @@ DESCRIPTOR = _descriptor.FileDescriptor(
package='',
syntax='proto2',
serialized_options=_b('\220\001\001'),
serialized_pb=_b('\n steammessages_depotbuilder.proto\x1a steammessages_unified_base.proto\"w\n&CContentBuilder_InitDepotBuild_Request\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x0f\n\x07\x64\x65potid\x18\x02 \x01(\r\x12\x17\n\x0fworkshop_itemid\x18\x03 \x01(\x04\x12\x14\n\x0c\x66or_local_cs\x18\x04 \x01(\x08\"\xb1\x02\n\'CContentBuilder_InitDepotBuild_Response\x12\x1b\n\x13\x62\x61seline_manifestid\x18\x01 \x01(\x04\x12\x12\n\nchunk_size\x18\x02 \x01(\r\x12\x0f\n\x07\x61\x65s_key\x18\x03 \x01(\x0c\x12\x0f\n\x07rsa_key\x18\x04 \x01(\x0c\x12\x10\n\x08url_host\x18\x05 \x01(\t\x12 \n\x18offset_detection_enabled\x18\x06 \x01(\x08\x12(\n offset_detection_min_clean_chunk\x18\x07 \x01(\r\x12)\n!offset_detection_blast_radius_pre\x18\x08 \x01(\r\x12*\n\"offset_detection_blast_radius_post\x18\t \x01(\r\"\xad\x01\n(CContentBuilder_StartDepotUpload_Request\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x0f\n\x07\x64\x65potid\x18\x02 \x01(\r\x12\x17\n\x0fworkshop_itemid\x18\x03 \x01(\x04\x12\x14\n\x0c\x66or_local_cs\x18\x04 \x01(\x08\x12\x1b\n\x13\x62\x61seline_manifestid\x18\x05 \x01(\x04\x12\x15\n\rmanifest_size\x18\x06 \x01(\r\"G\n)CContentBuilder_StartDepotUpload_Response\x12\x1a\n\x12\x64\x65pot_build_handle\x18\x01 \x01(\x04\"Z\n-CContentBuilder_GetMissingDepotChunks_Request\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x1a\n\x12\x64\x65pot_build_handle\x18\x02 \x01(\x04\"\xd2\x01\n.CContentBuilder_GetMissingDepotChunks_Response\x12N\n\x0emissing_chunks\x18\x01 \x03(\x0b\x32\x36.CContentBuilder_GetMissingDepotChunks_Response.Chunks\x12\x1c\n\x14total_missing_chunks\x18\x02 \x01(\r\x12\x1b\n\x13total_missing_bytes\x18\x03 \x01(\x04\x1a\x15\n\x06\x43hunks\x12\x0b\n\x03sha\x18\x01 \x01(\x0c\"V\n)CContentBuilder_FinishDepotUpload_Request\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x1a\n\x12\x64\x65pot_build_handle\x18\x02 \x01(\x04\"U\n*CContentBuilder_FinishDepotUpload_Response\x12\x12\n\nmanifestid\x18\x01 \x01(\x04\x12\x13\n\x0bprev_reused\x18\x02 \x01(\x08\"\xd9\x01\n&CContentBuilder_CommitAppBuild_Request\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12G\n\x0f\x64\x65pot_manifests\x18\x02 \x03(\x0b\x32..CContentBuilder_CommitAppBuild_Request.Depots\x12\x13\n\x0b\x62uild_notes\x18\x04 \x01(\t\x12\x13\n\x0blive_branch\x18\x05 \x01(\t\x1a-\n\x06\x44\x65pots\x12\x0f\n\x07\x64\x65potid\x18\x01 \x01(\r\x12\x12\n\nmanifestid\x18\x02 \x01(\x04\":\n\'CContentBuilder_CommitAppBuild_Response\x12\x0f\n\x07\x62uildid\x18\x01 \x01(\r\"c\n)CContentBuilder_SignInstallScript_Request\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x0f\n\x07\x64\x65potid\x18\x02 \x01(\r\x12\x16\n\x0einstall_script\x18\x03 \x01(\t\"K\n*CContentBuilder_SignInstallScript_Response\x12\x1d\n\x15signed_install_script\x18\x01 \x01(\t2\x92\x08\n\x0e\x43ontentBuilder\x12\x98\x01\n\x0eInitDepotBuild\x12\'.CContentBuilder_InitDepotBuild_Request\x1a(.CContentBuilder_InitDepotBuild_Response\"3\x82\xb5\x18/Get inital parameters to start building a depot\x12\x9e\x01\n\x10StartDepotUpload\x12).CContentBuilder_StartDepotUpload_Request\x1a*.CContentBuilder_StartDepotUpload_Response\"3\x82\xb5\x18/Start uploading manifest and chunks for a depot\x12\xa9\x01\n\x15GetMissingDepotChunks\x12..CContentBuilder_GetMissingDepotChunks_Request\x1a/.CContentBuilder_GetMissingDepotChunks_Response\"/\x82\xb5\x18+Get list of missing chunks for depot upload\x12\xb1\x01\n\x11\x46inishDepotUpload\x12*.CContentBuilder_FinishDepotUpload_Request\x1a+.CContentBuilder_FinishDepotUpload_Response\"C\x82\xb5\x18?Commit a depot build after manifest and all chunks are uploaded\x12\xa7\x01\n\x0e\x43ommitAppBuild\x12\'.CContentBuilder_CommitAppBuild_Request\x1a(.CContentBuilder_CommitAppBuild_Response\"B\x82\xb5\x18>Combine previous depot uploads into an app build and commit it\x12\x88\x01\n\x11SignInstallScript\x12*.CContentBuilder_SignInstallScript_Request\x1a+.CContentBuilder_SignInstallScript_Response\"\x1a\x82\xb5\x18\x16Sign an install script\x1a/\x82\xb5\x18+Interface to build and upload depot contentB\x03\x90\x01\x01')
serialized_pb=_b('\n steammessages_depotbuilder.proto\x1a steammessages_unified_base.proto\"\x8e\x01\n&CContentBuilder_InitDepotBuild_Request\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x0f\n\x07\x64\x65potid\x18\x02 \x01(\r\x12\x17\n\x0fworkshop_itemid\x18\x03 \x01(\x04\x12\x14\n\x0c\x66or_local_cs\x18\x04 \x01(\x08\x12\x15\n\rtarget_branch\x18\x05 \x01(\t\"\x88\x03\n\'CContentBuilder_InitDepotBuild_Response\x12\x1b\n\x13\x62\x61seline_manifestid\x18\x01 \x01(\x04\x12\x12\n\nchunk_size\x18\x02 \x01(\r\x12\x0f\n\x07\x61\x65s_key\x18\x03 \x01(\x0c\x12\x0f\n\x07rsa_key\x18\x04 \x01(\x0c\x12\x10\n\x08url_host\x18\x05 \x01(\t\x12 \n\x18offset_detection_enabled\x18\x06 \x01(\x08\x12(\n offset_detection_min_clean_chunk\x18\x07 \x01(\r\x12)\n!offset_detection_blast_radius_pre\x18\x08 \x01(\r\x12*\n\"offset_detection_blast_radius_post\x18\t \x01(\r\x12)\n!offset_detection_max_distance_pre\x18\n \x01(\r\x12*\n\"offset_detection_max_distance_post\x18\x0b \x01(\r\"\xad\x01\n(CContentBuilder_StartDepotUpload_Request\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x0f\n\x07\x64\x65potid\x18\x02 \x01(\r\x12\x17\n\x0fworkshop_itemid\x18\x03 \x01(\x04\x12\x14\n\x0c\x66or_local_cs\x18\x04 \x01(\x08\x12\x1b\n\x13\x62\x61seline_manifestid\x18\x05 \x01(\x04\x12\x15\n\rmanifest_size\x18\x06 \x01(\r\"G\n)CContentBuilder_StartDepotUpload_Response\x12\x1a\n\x12\x64\x65pot_build_handle\x18\x01 \x01(\x04\"Z\n-CContentBuilder_GetMissingDepotChunks_Request\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x1a\n\x12\x64\x65pot_build_handle\x18\x02 \x01(\x04\"\xd2\x01\n.CContentBuilder_GetMissingDepotChunks_Response\x12N\n\x0emissing_chunks\x18\x01 \x03(\x0b\x32\x36.CContentBuilder_GetMissingDepotChunks_Response.Chunks\x12\x1c\n\x14total_missing_chunks\x18\x02 \x01(\r\x12\x1b\n\x13total_missing_bytes\x18\x03 \x01(\x04\x1a\x15\n\x06\x43hunks\x12\x0b\n\x03sha\x18\x01 \x01(\x0c\"V\n)CContentBuilder_FinishDepotUpload_Request\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x1a\n\x12\x64\x65pot_build_handle\x18\x02 \x01(\x04\"U\n*CContentBuilder_FinishDepotUpload_Response\x12\x12\n\nmanifestid\x18\x01 \x01(\x04\x12\x13\n\x0bprev_reused\x18\x02 \x01(\x08\"\xd9\x01\n&CContentBuilder_CommitAppBuild_Request\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12G\n\x0f\x64\x65pot_manifests\x18\x02 \x03(\x0b\x32..CContentBuilder_CommitAppBuild_Request.Depots\x12\x13\n\x0b\x62uild_notes\x18\x04 \x01(\t\x12\x13\n\x0blive_branch\x18\x05 \x01(\t\x1a-\n\x06\x44\x65pots\x12\x0f\n\x07\x64\x65potid\x18\x01 \x01(\r\x12\x12\n\nmanifestid\x18\x02 \x01(\x04\":\n\'CContentBuilder_CommitAppBuild_Response\x12\x0f\n\x07\x62uildid\x18\x01 \x01(\r\"c\n)CContentBuilder_SignInstallScript_Request\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x0f\n\x07\x64\x65potid\x18\x02 \x01(\r\x12\x16\n\x0einstall_script\x18\x03 \x01(\t\"K\n*CContentBuilder_SignInstallScript_Response\x12\x1d\n\x15signed_install_script\x18\x01 \x01(\t2\x92\x08\n\x0e\x43ontentBuilder\x12\x98\x01\n\x0eInitDepotBuild\x12\'.CContentBuilder_InitDepotBuild_Request\x1a(.CContentBuilder_InitDepotBuild_Response\"3\x82\xb5\x18/Get inital parameters to start building a depot\x12\x9e\x01\n\x10StartDepotUpload\x12).CContentBuilder_StartDepotUpload_Request\x1a*.CContentBuilder_StartDepotUpload_Response\"3\x82\xb5\x18/Start uploading manifest and chunks for a depot\x12\xa9\x01\n\x15GetMissingDepotChunks\x12..CContentBuilder_GetMissingDepotChunks_Request\x1a/.CContentBuilder_GetMissingDepotChunks_Response\"/\x82\xb5\x18+Get list of missing chunks for depot upload\x12\xb1\x01\n\x11\x46inishDepotUpload\x12*.CContentBuilder_FinishDepotUpload_Request\x1a+.CContentBuilder_FinishDepotUpload_Response\"C\x82\xb5\x18?Commit a depot build after manifest and all chunks are uploaded\x12\xa7\x01\n\x0e\x43ommitAppBuild\x12\'.CContentBuilder_CommitAppBuild_Request\x1a(.CContentBuilder_CommitAppBuild_Response\"B\x82\xb5\x18>Combine previous depot uploads into an app build and commit it\x12\x88\x01\n\x11SignInstallScript\x12*.CContentBuilder_SignInstallScript_Request\x1a+.CContentBuilder_SignInstallScript_Response\"\x1a\x82\xb5\x18\x16Sign an install script\x1a/\x82\xb5\x18+Interface to build and upload depot contentB\x03\x90\x01\x01')
,
dependencies=[steammessages__unified__base__pb2.DESCRIPTOR,])
@ -65,6 +65,13 @@ _CCONTENTBUILDER_INITDEPOTBUILD_REQUEST = _descriptor.Descriptor(
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='target_branch', full_name='CContentBuilder_InitDepotBuild_Request.target_branch', index=4,
number=5, type=9, cpp_type=9, label=1,
has_default_value=False, default_value=_b("").decode('utf-8'),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
],
extensions=[
],
@ -77,8 +84,8 @@ _CCONTENTBUILDER_INITDEPOTBUILD_REQUEST = _descriptor.Descriptor(
extension_ranges=[],
oneofs=[
],
serialized_start=70,
serialized_end=189,
serialized_start=71,
serialized_end=213,
)
@ -152,6 +159,20 @@ _CCONTENTBUILDER_INITDEPOTBUILD_RESPONSE = _descriptor.Descriptor(
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='offset_detection_max_distance_pre', full_name='CContentBuilder_InitDepotBuild_Response.offset_detection_max_distance_pre', index=9,
number=10, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='offset_detection_max_distance_post', full_name='CContentBuilder_InitDepotBuild_Response.offset_detection_max_distance_post', index=10,
number=11, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
],
extensions=[
],
@ -164,8 +185,8 @@ _CCONTENTBUILDER_INITDEPOTBUILD_RESPONSE = _descriptor.Descriptor(
extension_ranges=[],
oneofs=[
],
serialized_start=192,
serialized_end=497,
serialized_start=216,
serialized_end=608,
)
@ -230,8 +251,8 @@ _CCONTENTBUILDER_STARTDEPOTUPLOAD_REQUEST = _descriptor.Descriptor(
extension_ranges=[],
oneofs=[
],
serialized_start=500,
serialized_end=673,
serialized_start=611,
serialized_end=784,
)
@ -261,8 +282,8 @@ _CCONTENTBUILDER_STARTDEPOTUPLOAD_RESPONSE = _descriptor.Descriptor(
extension_ranges=[],
oneofs=[
],
serialized_start=675,
serialized_end=746,
serialized_start=786,
serialized_end=857,
)
@ -299,8 +320,8 @@ _CCONTENTBUILDER_GETMISSINGDEPOTCHUNKS_REQUEST = _descriptor.Descriptor(
extension_ranges=[],
oneofs=[
],
serialized_start=748,
serialized_end=838,
serialized_start=859,
serialized_end=949,
)
@ -330,8 +351,8 @@ _CCONTENTBUILDER_GETMISSINGDEPOTCHUNKS_RESPONSE_CHUNKS = _descriptor.Descriptor(
extension_ranges=[],
oneofs=[
],
serialized_start=1030,
serialized_end=1051,
serialized_start=1141,
serialized_end=1162,
)
_CCONTENTBUILDER_GETMISSINGDEPOTCHUNKS_RESPONSE = _descriptor.Descriptor(
@ -374,8 +395,8 @@ _CCONTENTBUILDER_GETMISSINGDEPOTCHUNKS_RESPONSE = _descriptor.Descriptor(
extension_ranges=[],
oneofs=[
],
serialized_start=841,
serialized_end=1051,
serialized_start=952,
serialized_end=1162,
)
@ -412,8 +433,8 @@ _CCONTENTBUILDER_FINISHDEPOTUPLOAD_REQUEST = _descriptor.Descriptor(
extension_ranges=[],
oneofs=[
],
serialized_start=1053,
serialized_end=1139,
serialized_start=1164,
serialized_end=1250,
)
@ -450,8 +471,8 @@ _CCONTENTBUILDER_FINISHDEPOTUPLOAD_RESPONSE = _descriptor.Descriptor(
extension_ranges=[],
oneofs=[
],
serialized_start=1141,
serialized_end=1226,
serialized_start=1252,
serialized_end=1337,
)
@ -488,8 +509,8 @@ _CCONTENTBUILDER_COMMITAPPBUILD_REQUEST_DEPOTS = _descriptor.Descriptor(
extension_ranges=[],
oneofs=[
],
serialized_start=1401,
serialized_end=1446,
serialized_start=1512,
serialized_end=1557,
)
_CCONTENTBUILDER_COMMITAPPBUILD_REQUEST = _descriptor.Descriptor(
@ -539,8 +560,8 @@ _CCONTENTBUILDER_COMMITAPPBUILD_REQUEST = _descriptor.Descriptor(
extension_ranges=[],
oneofs=[
],
serialized_start=1229,
serialized_end=1446,
serialized_start=1340,
serialized_end=1557,
)
@ -570,8 +591,8 @@ _CCONTENTBUILDER_COMMITAPPBUILD_RESPONSE = _descriptor.Descriptor(
extension_ranges=[],
oneofs=[
],
serialized_start=1448,
serialized_end=1506,
serialized_start=1559,
serialized_end=1617,
)
@ -615,8 +636,8 @@ _CCONTENTBUILDER_SIGNINSTALLSCRIPT_REQUEST = _descriptor.Descriptor(
extension_ranges=[],
oneofs=[
],
serialized_start=1508,
serialized_end=1607,
serialized_start=1619,
serialized_end=1718,
)
@ -646,8 +667,8 @@ _CCONTENTBUILDER_SIGNINSTALLSCRIPT_RESPONSE = _descriptor.Descriptor(
extension_ranges=[],
oneofs=[
],
serialized_start=1609,
serialized_end=1684,
serialized_start=1720,
serialized_end=1795,
)
_CCONTENTBUILDER_GETMISSINGDEPOTCHUNKS_RESPONSE_CHUNKS.containing_type = _CCONTENTBUILDER_GETMISSINGDEPOTCHUNKS_RESPONSE
@ -777,8 +798,8 @@ _CONTENTBUILDER = _descriptor.ServiceDescriptor(
file=DESCRIPTOR,
index=0,
serialized_options=_b('\202\265\030+Interface to build and upload depot content'),
serialized_start=1687,
serialized_end=2729,
serialized_start=1798,
serialized_end=2840,
methods=[
_descriptor.MethodDescriptor(
name='InitDepotBuild',

362
steam/protobufs/steammessages_friendmessages_pb2.py

File diff suppressed because one or more lines are too long

229
steam/protobufs/steammessages_lobbymatchmaking_pb2.py

@ -0,0 +1,229 @@
# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: steammessages_lobbymatchmaking.proto
import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf.internal import enum_type_wrapper
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
from google.protobuf import service as _service
from google.protobuf import service_reflection
# @@protoc_insertion_point(imports)
_sym_db = _symbol_database.Default()
import steam.protobufs.steammessages_unified_base_pb2 as steammessages__unified__base__pb2
DESCRIPTOR = _descriptor.FileDescriptor(
name='steammessages_lobbymatchmaking.proto',
package='',
syntax='proto2',
serialized_options=_b('\220\001\001'),
serialized_pb=_b('\n$steammessages_lobbymatchmaking.proto\x1a steammessages_unified_base.proto\"\x9e\x01\n-LobbyMatchmakingLegacy_GetLobbyStatus_Request\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x15\n\rsteamid_lobby\x18\x02 \x01(\x06\x12\x17\n\x0f\x63laim_ownership\x18\x03 \x01(\x08\x12\x18\n\x10\x63laim_membership\x18\x04 \x01(\x08\x12\x13\n\x0bversion_num\x18\x05 \x01(\r\"\x93\x01\n.LobbyMatchmakingLegacy_GetLobbyStatus_Response\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x15\n\rsteamid_lobby\x18\x02 \x01(\x06\x12:\n\x0clobby_status\x18\x03 \x01(\x0e\x32\r.ELobbyStatus:\x15k_ELobbyStatusInvalid*\x81\x01\n\x0c\x45LobbyStatus\x12\x19\n\x15k_ELobbyStatusInvalid\x10\x00\x12\x18\n\x14k_ELobbyStatusExists\x10\x01\x12\x1e\n\x1ak_ELobbyStatusDoesNotExist\x10\x02\x12\x1c\n\x18k_ELobbyStatusNotAMember\x10\x03\x32\xc6\x01\n\x16LobbyMatchmakingLegacy\x12\x85\x01\n\x0eGetLobbyStatus\x12..LobbyMatchmakingLegacy_GetLobbyStatus_Request\x1a/.LobbyMatchmakingLegacy_GetLobbyStatus_Response\"\x12\x82\xb5\x18\x0eGetLobbyStatus\x1a$\x82\xb5\x18 Lobby matchmaking legacy serviceB\x03\x90\x01\x01')
,
dependencies=[steammessages__unified__base__pb2.DESCRIPTOR,])
_ELOBBYSTATUS = _descriptor.EnumDescriptor(
name='ELobbyStatus',
full_name='ELobbyStatus',
filename=None,
file=DESCRIPTOR,
values=[
_descriptor.EnumValueDescriptor(
name='k_ELobbyStatusInvalid', index=0, number=0,
serialized_options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='k_ELobbyStatusExists', index=1, number=1,
serialized_options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='k_ELobbyStatusDoesNotExist', index=2, number=2,
serialized_options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='k_ELobbyStatusNotAMember', index=3, number=3,
serialized_options=None,
type=None),
],
containing_type=None,
serialized_options=None,
serialized_start=386,
serialized_end=515,
)
_sym_db.RegisterEnumDescriptor(_ELOBBYSTATUS)
ELobbyStatus = enum_type_wrapper.EnumTypeWrapper(_ELOBBYSTATUS)
k_ELobbyStatusInvalid = 0
k_ELobbyStatusExists = 1
k_ELobbyStatusDoesNotExist = 2
k_ELobbyStatusNotAMember = 3
_LOBBYMATCHMAKINGLEGACY_GETLOBBYSTATUS_REQUEST = _descriptor.Descriptor(
name='LobbyMatchmakingLegacy_GetLobbyStatus_Request',
full_name='LobbyMatchmakingLegacy_GetLobbyStatus_Request',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='app_id', full_name='LobbyMatchmakingLegacy_GetLobbyStatus_Request.app_id', index=0,
number=1, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='steamid_lobby', full_name='LobbyMatchmakingLegacy_GetLobbyStatus_Request.steamid_lobby', index=1,
number=2, type=6, cpp_type=4, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='claim_ownership', full_name='LobbyMatchmakingLegacy_GetLobbyStatus_Request.claim_ownership', index=2,
number=3, type=8, cpp_type=7, label=1,
has_default_value=False, default_value=False,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='claim_membership', full_name='LobbyMatchmakingLegacy_GetLobbyStatus_Request.claim_membership', index=3,
number=4, type=8, cpp_type=7, label=1,
has_default_value=False, default_value=False,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='version_num', full_name='LobbyMatchmakingLegacy_GetLobbyStatus_Request.version_num', index=4,
number=5, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=75,
serialized_end=233,
)
_LOBBYMATCHMAKINGLEGACY_GETLOBBYSTATUS_RESPONSE = _descriptor.Descriptor(
name='LobbyMatchmakingLegacy_GetLobbyStatus_Response',
full_name='LobbyMatchmakingLegacy_GetLobbyStatus_Response',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='app_id', full_name='LobbyMatchmakingLegacy_GetLobbyStatus_Response.app_id', index=0,
number=1, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='steamid_lobby', full_name='LobbyMatchmakingLegacy_GetLobbyStatus_Response.steamid_lobby', index=1,
number=2, type=6, cpp_type=4, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='lobby_status', full_name='LobbyMatchmakingLegacy_GetLobbyStatus_Response.lobby_status', index=2,
number=3, type=14, cpp_type=8, label=1,
has_default_value=True, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=236,
serialized_end=383,
)
_LOBBYMATCHMAKINGLEGACY_GETLOBBYSTATUS_RESPONSE.fields_by_name['lobby_status'].enum_type = _ELOBBYSTATUS
DESCRIPTOR.message_types_by_name['LobbyMatchmakingLegacy_GetLobbyStatus_Request'] = _LOBBYMATCHMAKINGLEGACY_GETLOBBYSTATUS_REQUEST
DESCRIPTOR.message_types_by_name['LobbyMatchmakingLegacy_GetLobbyStatus_Response'] = _LOBBYMATCHMAKINGLEGACY_GETLOBBYSTATUS_RESPONSE
DESCRIPTOR.enum_types_by_name['ELobbyStatus'] = _ELOBBYSTATUS
_sym_db.RegisterFileDescriptor(DESCRIPTOR)
LobbyMatchmakingLegacy_GetLobbyStatus_Request = _reflection.GeneratedProtocolMessageType('LobbyMatchmakingLegacy_GetLobbyStatus_Request', (_message.Message,), dict(
DESCRIPTOR = _LOBBYMATCHMAKINGLEGACY_GETLOBBYSTATUS_REQUEST,
__module__ = 'steammessages_lobbymatchmaking_pb2'
# @@protoc_insertion_point(class_scope:LobbyMatchmakingLegacy_GetLobbyStatus_Request)
))
_sym_db.RegisterMessage(LobbyMatchmakingLegacy_GetLobbyStatus_Request)
LobbyMatchmakingLegacy_GetLobbyStatus_Response = _reflection.GeneratedProtocolMessageType('LobbyMatchmakingLegacy_GetLobbyStatus_Response', (_message.Message,), dict(
DESCRIPTOR = _LOBBYMATCHMAKINGLEGACY_GETLOBBYSTATUS_RESPONSE,
__module__ = 'steammessages_lobbymatchmaking_pb2'
# @@protoc_insertion_point(class_scope:LobbyMatchmakingLegacy_GetLobbyStatus_Response)
))
_sym_db.RegisterMessage(LobbyMatchmakingLegacy_GetLobbyStatus_Response)
DESCRIPTOR._options = None
_LOBBYMATCHMAKINGLEGACY = _descriptor.ServiceDescriptor(
name='LobbyMatchmakingLegacy',
full_name='LobbyMatchmakingLegacy',
file=DESCRIPTOR,
index=0,
serialized_options=_b('\202\265\030 Lobby matchmaking legacy service'),
serialized_start=518,
serialized_end=716,
methods=[
_descriptor.MethodDescriptor(
name='GetLobbyStatus',
full_name='LobbyMatchmakingLegacy.GetLobbyStatus',
index=0,
containing_service=None,
input_type=_LOBBYMATCHMAKINGLEGACY_GETLOBBYSTATUS_REQUEST,
output_type=_LOBBYMATCHMAKINGLEGACY_GETLOBBYSTATUS_RESPONSE,
serialized_options=_b('\202\265\030\016GetLobbyStatus'),
),
])
_sym_db.RegisterServiceDescriptor(_LOBBYMATCHMAKINGLEGACY)
DESCRIPTOR.services_by_name['LobbyMatchmakingLegacy'] = _LOBBYMATCHMAKINGLEGACY
LobbyMatchmakingLegacy = service_reflection.GeneratedServiceType('LobbyMatchmakingLegacy', (_service.Service,), dict(
DESCRIPTOR = _LOBBYMATCHMAKINGLEGACY,
__module__ = 'steammessages_lobbymatchmaking_pb2'
))
LobbyMatchmakingLegacy_Stub = service_reflection.GeneratedServiceStubType('LobbyMatchmakingLegacy_Stub', (LobbyMatchmakingLegacy,), dict(
DESCRIPTOR = _LOBBYMATCHMAKINGLEGACY,
__module__ = 'steammessages_lobbymatchmaking_pb2'
))
# @@protoc_insertion_point(module_scope)

199
steam/protobufs/steammessages_market_pb2.py

@ -0,0 +1,199 @@
# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: steammessages_market.proto
import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
from google.protobuf import service as _service
from google.protobuf import service_reflection
# @@protoc_insertion_point(imports)
_sym_db = _symbol_database.Default()
import steam.protobufs.steammessages_unified_base_pb2 as steammessages__unified__base__pb2
DESCRIPTOR = _descriptor.FileDescriptor(
name='steammessages_market.proto',
package='',
syntax='proto2',
serialized_options=_b('\220\001\001'),
serialized_pb=_b('\n\x1asteammessages_market.proto\x1a steammessages_unified_base.proto\"n\n(CEconMarket_IsMarketplaceAllowed_Request\x12\x42\n\twebcookie\x18\x01 \x01(\tB/\x82\xb5\x18+The user\'s Steam Guard machine auth cookie.\"\xf5\x05\n)CEconMarket_IsMarketplaceAllowed_Response\x12I\n\x07\x61llowed\x18\x01 \x01(\x08\x42\x38\x82\xb5\x18\x34Whether or not the user is allowed to use the market\x12K\n\x06reason\x18\x02 \x01(\rB;\x82\xb5\x18\x37The reason the user can\'t use the market, if applicable\x12P\n\x0f\x61llowed_at_time\x18\x03 \x01(\rB7\x82\xb5\x18\x33The time the user will be allowed to use the market\x12\x84\x01\n\x18steamguard_required_days\x18\x04 \x01(\rBb\x82\xb5\x18^The number of days any user is required to have had Steam Guard before they can use the market\x12W\n\x0f\x66orms_requested\x18\x07 \x01(\x08\x42>\x82\xb5\x18:Whether or not we\'ve requested the user fill out tax forms\x12h\n\x1a\x66orms_require_verification\x18\x08 \x01(\x08\x42\x44\x82\xb5\x18@True if we\'ve received forms but they require verification first\x12\x93\x01\n\x18new_device_cooldown_days\x18\t \x01(\rBq\x82\xb5\x18mThe number of days after initial device authorization a user must wait before using the market on that device2\xee\x01\n\nEconMarket\x12\xb8\x01\n\x14IsMarketplaceAllowed\x12).CEconMarket_IsMarketplaceAllowed_Request\x1a*.CEconMarket_IsMarketplaceAllowed_Response\"I\x82\xb5\x18\x45\x43hecks whether or not the authed account is allowed to use the market\x1a%\x82\xb5\x18!A service to use market functionsB\x03\x90\x01\x01')
,
dependencies=[steammessages__unified__base__pb2.DESCRIPTOR,])
_CECONMARKET_ISMARKETPLACEALLOWED_REQUEST = _descriptor.Descriptor(
name='CEconMarket_IsMarketplaceAllowed_Request',
full_name='CEconMarket_IsMarketplaceAllowed_Request',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='webcookie', full_name='CEconMarket_IsMarketplaceAllowed_Request.webcookie', index=0,
number=1, type=9, cpp_type=9, label=1,
has_default_value=False, default_value=_b("").decode('utf-8'),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=_b('\202\265\030+The user\'s Steam Guard machine auth cookie.'), file=DESCRIPTOR),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=64,
serialized_end=174,
)
_CECONMARKET_ISMARKETPLACEALLOWED_RESPONSE = _descriptor.Descriptor(
name='CEconMarket_IsMarketplaceAllowed_Response',
full_name='CEconMarket_IsMarketplaceAllowed_Response',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='allowed', full_name='CEconMarket_IsMarketplaceAllowed_Response.allowed', index=0,
number=1, type=8, cpp_type=7, label=1,
has_default_value=False, default_value=False,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=_b('\202\265\0304Whether or not the user is allowed to use the market'), file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='reason', full_name='CEconMarket_IsMarketplaceAllowed_Response.reason', index=1,
number=2, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=_b('\202\265\0307The reason the user can\'t use the market, if applicable'), file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='allowed_at_time', full_name='CEconMarket_IsMarketplaceAllowed_Response.allowed_at_time', index=2,
number=3, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=_b('\202\265\0303The time the user will be allowed to use the market'), file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='steamguard_required_days', full_name='CEconMarket_IsMarketplaceAllowed_Response.steamguard_required_days', index=3,
number=4, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=_b('\202\265\030^The number of days any user is required to have had Steam Guard before they can use the market'), file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='forms_requested', full_name='CEconMarket_IsMarketplaceAllowed_Response.forms_requested', index=4,
number=7, type=8, cpp_type=7, label=1,
has_default_value=False, default_value=False,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=_b('\202\265\030:Whether or not we\'ve requested the user fill out tax forms'), file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='forms_require_verification', full_name='CEconMarket_IsMarketplaceAllowed_Response.forms_require_verification', index=5,
number=8, type=8, cpp_type=7, label=1,
has_default_value=False, default_value=False,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=_b('\202\265\030@True if we\'ve received forms but they require verification first'), file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='new_device_cooldown_days', full_name='CEconMarket_IsMarketplaceAllowed_Response.new_device_cooldown_days', index=6,
number=9, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=_b('\202\265\030mThe number of days after initial device authorization a user must wait before using the market on that device'), file=DESCRIPTOR),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=177,
serialized_end=934,
)
DESCRIPTOR.message_types_by_name['CEconMarket_IsMarketplaceAllowed_Request'] = _CECONMARKET_ISMARKETPLACEALLOWED_REQUEST
DESCRIPTOR.message_types_by_name['CEconMarket_IsMarketplaceAllowed_Response'] = _CECONMARKET_ISMARKETPLACEALLOWED_RESPONSE
_sym_db.RegisterFileDescriptor(DESCRIPTOR)
CEconMarket_IsMarketplaceAllowed_Request = _reflection.GeneratedProtocolMessageType('CEconMarket_IsMarketplaceAllowed_Request', (_message.Message,), dict(
DESCRIPTOR = _CECONMARKET_ISMARKETPLACEALLOWED_REQUEST,
__module__ = 'steammessages_market_pb2'
# @@protoc_insertion_point(class_scope:CEconMarket_IsMarketplaceAllowed_Request)
))
_sym_db.RegisterMessage(CEconMarket_IsMarketplaceAllowed_Request)
CEconMarket_IsMarketplaceAllowed_Response = _reflection.GeneratedProtocolMessageType('CEconMarket_IsMarketplaceAllowed_Response', (_message.Message,), dict(
DESCRIPTOR = _CECONMARKET_ISMARKETPLACEALLOWED_RESPONSE,
__module__ = 'steammessages_market_pb2'
# @@protoc_insertion_point(class_scope:CEconMarket_IsMarketplaceAllowed_Response)
))
_sym_db.RegisterMessage(CEconMarket_IsMarketplaceAllowed_Response)
DESCRIPTOR._options = None
_CECONMARKET_ISMARKETPLACEALLOWED_REQUEST.fields_by_name['webcookie']._options = None
_CECONMARKET_ISMARKETPLACEALLOWED_RESPONSE.fields_by_name['allowed']._options = None
_CECONMARKET_ISMARKETPLACEALLOWED_RESPONSE.fields_by_name['reason']._options = None
_CECONMARKET_ISMARKETPLACEALLOWED_RESPONSE.fields_by_name['allowed_at_time']._options = None
_CECONMARKET_ISMARKETPLACEALLOWED_RESPONSE.fields_by_name['steamguard_required_days']._options = None
_CECONMARKET_ISMARKETPLACEALLOWED_RESPONSE.fields_by_name['forms_requested']._options = None
_CECONMARKET_ISMARKETPLACEALLOWED_RESPONSE.fields_by_name['forms_require_verification']._options = None
_CECONMARKET_ISMARKETPLACEALLOWED_RESPONSE.fields_by_name['new_device_cooldown_days']._options = None
_ECONMARKET = _descriptor.ServiceDescriptor(
name='EconMarket',
full_name='EconMarket',
file=DESCRIPTOR,
index=0,
serialized_options=_b('\202\265\030!A service to use market functions'),
serialized_start=937,
serialized_end=1175,
methods=[
_descriptor.MethodDescriptor(
name='IsMarketplaceAllowed',
full_name='EconMarket.IsMarketplaceAllowed',
index=0,
containing_service=None,
input_type=_CECONMARKET_ISMARKETPLACEALLOWED_REQUEST,
output_type=_CECONMARKET_ISMARKETPLACEALLOWED_RESPONSE,
serialized_options=_b('\202\265\030EChecks whether or not the authed account is allowed to use the market'),
),
])
_sym_db.RegisterServiceDescriptor(_ECONMARKET)
DESCRIPTOR.services_by_name['EconMarket'] = _ECONMARKET
EconMarket = service_reflection.GeneratedServiceType('EconMarket', (_service.Service,), dict(
DESCRIPTOR = _ECONMARKET,
__module__ = 'steammessages_market_pb2'
))
EconMarket_Stub = service_reflection.GeneratedServiceStubType('EconMarket_Stub', (EconMarket,), dict(
DESCRIPTOR = _ECONMARKET,
__module__ = 'steammessages_market_pb2'
))
# @@protoc_insertion_point(module_scope)

694
steam/protobufs/steammessages_parties_pb2.py

@ -0,0 +1,694 @@
# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: steammessages_parties.proto
import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
from google.protobuf import service as _service
from google.protobuf import service_reflection
# @@protoc_insertion_point(imports)
_sym_db = _symbol_database.Default()
import steam.protobufs.steammessages_unified_base_pb2 as steammessages__unified__base__pb2
DESCRIPTOR = _descriptor.FileDescriptor(
name='steammessages_parties.proto',
package='',
syntax='proto2',
serialized_options=_b('\220\001\001'),
serialized_pb=_b('\n\x1bsteammessages_parties.proto\x1a steammessages_unified_base.proto\"@\n\x1a\x43Parties_JoinParty_Request\x12\x0f\n\x07steamid\x18\x01 \x01(\x06\x12\x11\n\tbeacon_id\x18\x02 \x01(\x04\"H\n\x1b\x43Parties_JoinParty_Response\x12\x11\n\tbeacon_id\x18\x01 \x01(\x04\x12\x16\n\x0e\x63onnect_string\x18\x02 \x01(\t\"E\n\x17\x43Parties_BeaconLocation\x12\x15\n\rlocation_type\x18\x01 \x01(\r\x12\x13\n\x0blocation_id\x18\x02 \x01(\x04\"\x9d\x01\n\x1d\x43Parties_CreateBeacon_Request\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x16\n\x0enum_open_slots\x18\x02 \x01(\r\x12+\n\tlocations\x18\x03 \x03(\x0b\x32\x18.CParties_BeaconLocation\x12\x16\n\x0e\x63onnect_string\x18\x04 \x01(\t\x12\x10\n\x08metadata\x18\x05 \x01(\t\"3\n\x1e\x43Parties_CreateBeacon_Response\x12\x11\n\tbeacon_id\x18\x01 \x01(\x04\"R\n\'CParties_OnReservationCompleted_Request\x12\x11\n\tbeacon_id\x18\x01 \x01(\x04\x12\x14\n\x0cuser_steamid\x18\x02 \x01(\x06\"=\n(CParties_OnReservationCompleted_Response\x12\x11\n\tbeacon_id\x18\x01 \x01(\x04\"M\n\"CParties_CancelReservation_Request\x12\x11\n\tbeacon_id\x18\x01 \x01(\x04\x12\x14\n\x0cuser_steamid\x18\x02 \x01(\x06\"8\n#CParties_CancelReservation_Response\x12\x11\n\tbeacon_id\x18\x01 \x01(\x04\"P\n#CParties_ChangeNumOpenSlots_Request\x12\x11\n\tbeacon_id\x18\x01 \x01(\x04\x12\x16\n\x0enum_open_slots\x18\x02 \x01(\r\"9\n$CParties_ChangeNumOpenSlots_Response\x12\x11\n\tbeacon_id\x18\x01 \x01(\x04\"3\n\x1e\x43Parties_DestroyBeacon_Request\x12\x11\n\tbeacon_id\x18\x01 \x01(\x04\"4\n\x1f\x43Parties_DestroyBeacon_Response\x12\x11\n\tbeacon_id\x18\x01 \x01(\x04\x32\xd9\x07\n\x07Parties\x12\xb9\x01\n\tJoinParty\x12\x1b.CParties_JoinParty_Request\x1a\x1c.CParties_JoinParty_Response\"q\x82\xb5\x18mRequest to join a Party via the given Beacon ID. If successful, will be given the necessary \'connect\' string.\x12\x85\x01\n\x0c\x43reateBeacon\x12\x1e.CParties_CreateBeacon_Request\x1a\x1f.CParties_CreateBeacon_Response\"4\x82\xb5\x18\x30\x43reate a Beacon to attract people to your Party.\x12\xb7\x01\n\x16OnReservationCompleted\x12(.CParties_OnReservationCompleted_Request\x1a).CParties_OnReservationCompleted_Response\"H\x82\xb5\x18\x44Notify Steam that a user with a reservation has successfully joined.\x12\xbe\x01\n\x11\x43\x61ncelReservation\x12#.CParties_CancelReservation_Request\x1a$.CParties_CancelReservation_Response\"^\x82\xb5\x18ZNotify Steam that a user with a reservation either never showed up, or has left the party.\x12\x86\x01\n\x12\x43hangeNumOpenSlots\x12$.CParties_ChangeNumOpenSlots_Request\x1a%.CParties_ChangeNumOpenSlots_Response\"#\x82\xb5\x18\x1f\x43hange the number of open slots\x12j\n\rDestroyBeacon\x12\x1f.CParties_DestroyBeacon_Request\x1a .CParties_DestroyBeacon_Response\"\x16\x82\xb5\x18\x12\x44\x65lete the Beacon.\x1a\x1a\x82\xb5\x18\x16Party-related servicesB\x03\x90\x01\x01')
,
dependencies=[steammessages__unified__base__pb2.DESCRIPTOR,])
_CPARTIES_JOINPARTY_REQUEST = _descriptor.Descriptor(
name='CParties_JoinParty_Request',
full_name='CParties_JoinParty_Request',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='steamid', full_name='CParties_JoinParty_Request.steamid', index=0,
number=1, type=6, cpp_type=4, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='beacon_id', full_name='CParties_JoinParty_Request.beacon_id', index=1,
number=2, type=4, cpp_type=4, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=65,
serialized_end=129,
)
_CPARTIES_JOINPARTY_RESPONSE = _descriptor.Descriptor(
name='CParties_JoinParty_Response',
full_name='CParties_JoinParty_Response',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='beacon_id', full_name='CParties_JoinParty_Response.beacon_id', index=0,
number=1, type=4, cpp_type=4, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='connect_string', full_name='CParties_JoinParty_Response.connect_string', index=1,
number=2, type=9, cpp_type=9, label=1,
has_default_value=False, default_value=_b("").decode('utf-8'),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=131,
serialized_end=203,
)
_CPARTIES_BEACONLOCATION = _descriptor.Descriptor(
name='CParties_BeaconLocation',
full_name='CParties_BeaconLocation',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='location_type', full_name='CParties_BeaconLocation.location_type', index=0,
number=1, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='location_id', full_name='CParties_BeaconLocation.location_id', index=1,
number=2, type=4, cpp_type=4, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=205,
serialized_end=274,
)
_CPARTIES_CREATEBEACON_REQUEST = _descriptor.Descriptor(
name='CParties_CreateBeacon_Request',
full_name='CParties_CreateBeacon_Request',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='appid', full_name='CParties_CreateBeacon_Request.appid', index=0,
number=1, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='num_open_slots', full_name='CParties_CreateBeacon_Request.num_open_slots', index=1,
number=2, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='locations', full_name='CParties_CreateBeacon_Request.locations', index=2,
number=3, type=11, cpp_type=10, label=3,
has_default_value=False, default_value=[],
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='connect_string', full_name='CParties_CreateBeacon_Request.connect_string', index=3,
number=4, type=9, cpp_type=9, label=1,
has_default_value=False, default_value=_b("").decode('utf-8'),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='metadata', full_name='CParties_CreateBeacon_Request.metadata', index=4,
number=5, type=9, cpp_type=9, label=1,
has_default_value=False, default_value=_b("").decode('utf-8'),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=277,
serialized_end=434,
)
_CPARTIES_CREATEBEACON_RESPONSE = _descriptor.Descriptor(
name='CParties_CreateBeacon_Response',
full_name='CParties_CreateBeacon_Response',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='beacon_id', full_name='CParties_CreateBeacon_Response.beacon_id', index=0,
number=1, type=4, cpp_type=4, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=436,
serialized_end=487,
)
_CPARTIES_ONRESERVATIONCOMPLETED_REQUEST = _descriptor.Descriptor(
name='CParties_OnReservationCompleted_Request',
full_name='CParties_OnReservationCompleted_Request',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='beacon_id', full_name='CParties_OnReservationCompleted_Request.beacon_id', index=0,
number=1, type=4, cpp_type=4, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='user_steamid', full_name='CParties_OnReservationCompleted_Request.user_steamid', index=1,
number=2, type=6, cpp_type=4, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=489,
serialized_end=571,
)
_CPARTIES_ONRESERVATIONCOMPLETED_RESPONSE = _descriptor.Descriptor(
name='CParties_OnReservationCompleted_Response',
full_name='CParties_OnReservationCompleted_Response',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='beacon_id', full_name='CParties_OnReservationCompleted_Response.beacon_id', index=0,
number=1, type=4, cpp_type=4, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=573,
serialized_end=634,
)
_CPARTIES_CANCELRESERVATION_REQUEST = _descriptor.Descriptor(
name='CParties_CancelReservation_Request',
full_name='CParties_CancelReservation_Request',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='beacon_id', full_name='CParties_CancelReservation_Request.beacon_id', index=0,
number=1, type=4, cpp_type=4, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='user_steamid', full_name='CParties_CancelReservation_Request.user_steamid', index=1,
number=2, type=6, cpp_type=4, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=636,
serialized_end=713,
)
_CPARTIES_CANCELRESERVATION_RESPONSE = _descriptor.Descriptor(
name='CParties_CancelReservation_Response',
full_name='CParties_CancelReservation_Response',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='beacon_id', full_name='CParties_CancelReservation_Response.beacon_id', index=0,
number=1, type=4, cpp_type=4, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=715,
serialized_end=771,
)
_CPARTIES_CHANGENUMOPENSLOTS_REQUEST = _descriptor.Descriptor(
name='CParties_ChangeNumOpenSlots_Request',
full_name='CParties_ChangeNumOpenSlots_Request',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='beacon_id', full_name='CParties_ChangeNumOpenSlots_Request.beacon_id', index=0,
number=1, type=4, cpp_type=4, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
_descriptor.FieldDescriptor(
name='num_open_slots', full_name='CParties_ChangeNumOpenSlots_Request.num_open_slots', index=1,
number=2, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=773,
serialized_end=853,
)
_CPARTIES_CHANGENUMOPENSLOTS_RESPONSE = _descriptor.Descriptor(
name='CParties_ChangeNumOpenSlots_Response',
full_name='CParties_ChangeNumOpenSlots_Response',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='beacon_id', full_name='CParties_ChangeNumOpenSlots_Response.beacon_id', index=0,
number=1, type=4, cpp_type=4, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=855,
serialized_end=912,
)
_CPARTIES_DESTROYBEACON_REQUEST = _descriptor.Descriptor(
name='CParties_DestroyBeacon_Request',
full_name='CParties_DestroyBeacon_Request',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='beacon_id', full_name='CParties_DestroyBeacon_Request.beacon_id', index=0,
number=1, type=4, cpp_type=4, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=914,
serialized_end=965,
)
_CPARTIES_DESTROYBEACON_RESPONSE = _descriptor.Descriptor(
name='CParties_DestroyBeacon_Response',
full_name='CParties_DestroyBeacon_Response',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='beacon_id', full_name='CParties_DestroyBeacon_Response.beacon_id', index=0,
number=1, type=4, cpp_type=4, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
serialized_options=None, file=DESCRIPTOR),
],
extensions=[
],
nested_types=[],
enum_types=[
],
serialized_options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=967,
serialized_end=1019,
)
_CPARTIES_CREATEBEACON_REQUEST.fields_by_name['locations'].message_type = _CPARTIES_BEACONLOCATION
DESCRIPTOR.message_types_by_name['CParties_JoinParty_Request'] = _CPARTIES_JOINPARTY_REQUEST
DESCRIPTOR.message_types_by_name['CParties_JoinParty_Response'] = _CPARTIES_JOINPARTY_RESPONSE
DESCRIPTOR.message_types_by_name['CParties_BeaconLocation'] = _CPARTIES_BEACONLOCATION
DESCRIPTOR.message_types_by_name['CParties_CreateBeacon_Request'] = _CPARTIES_CREATEBEACON_REQUEST
DESCRIPTOR.message_types_by_name['CParties_CreateBeacon_Response'] = _CPARTIES_CREATEBEACON_RESPONSE
DESCRIPTOR.message_types_by_name['CParties_OnReservationCompleted_Request'] = _CPARTIES_ONRESERVATIONCOMPLETED_REQUEST
DESCRIPTOR.message_types_by_name['CParties_OnReservationCompleted_Response'] = _CPARTIES_ONRESERVATIONCOMPLETED_RESPONSE
DESCRIPTOR.message_types_by_name['CParties_CancelReservation_Request'] = _CPARTIES_CANCELRESERVATION_REQUEST
DESCRIPTOR.message_types_by_name['CParties_CancelReservation_Response'] = _CPARTIES_CANCELRESERVATION_RESPONSE
DESCRIPTOR.message_types_by_name['CParties_ChangeNumOpenSlots_Request'] = _CPARTIES_CHANGENUMOPENSLOTS_REQUEST
DESCRIPTOR.message_types_by_name['CParties_ChangeNumOpenSlots_Response'] = _CPARTIES_CHANGENUMOPENSLOTS_RESPONSE
DESCRIPTOR.message_types_by_name['CParties_DestroyBeacon_Request'] = _CPARTIES_DESTROYBEACON_REQUEST
DESCRIPTOR.message_types_by_name['CParties_DestroyBeacon_Response'] = _CPARTIES_DESTROYBEACON_RESPONSE
_sym_db.RegisterFileDescriptor(DESCRIPTOR)
CParties_JoinParty_Request = _reflection.GeneratedProtocolMessageType('CParties_JoinParty_Request', (_message.Message,), dict(
DESCRIPTOR = _CPARTIES_JOINPARTY_REQUEST,
__module__ = 'steammessages_parties_pb2'
# @@protoc_insertion_point(class_scope:CParties_JoinParty_Request)
))
_sym_db.RegisterMessage(CParties_JoinParty_Request)
CParties_JoinParty_Response = _reflection.GeneratedProtocolMessageType('CParties_JoinParty_Response', (_message.Message,), dict(
DESCRIPTOR = _CPARTIES_JOINPARTY_RESPONSE,
__module__ = 'steammessages_parties_pb2'
# @@protoc_insertion_point(class_scope:CParties_JoinParty_Response)
))
_sym_db.RegisterMessage(CParties_JoinParty_Response)
CParties_BeaconLocation = _reflection.GeneratedProtocolMessageType('CParties_BeaconLocation', (_message.Message,), dict(
DESCRIPTOR = _CPARTIES_BEACONLOCATION,
__module__ = 'steammessages_parties_pb2'
# @@protoc_insertion_point(class_scope:CParties_BeaconLocation)
))
_sym_db.RegisterMessage(CParties_BeaconLocation)
CParties_CreateBeacon_Request = _reflection.GeneratedProtocolMessageType('CParties_CreateBeacon_Request', (_message.Message,), dict(
DESCRIPTOR = _CPARTIES_CREATEBEACON_REQUEST,
__module__ = 'steammessages_parties_pb2'
# @@protoc_insertion_point(class_scope:CParties_CreateBeacon_Request)
))
_sym_db.RegisterMessage(CParties_CreateBeacon_Request)
CParties_CreateBeacon_Response = _reflection.GeneratedProtocolMessageType('CParties_CreateBeacon_Response', (_message.Message,), dict(
DESCRIPTOR = _CPARTIES_CREATEBEACON_RESPONSE,
__module__ = 'steammessages_parties_pb2'
# @@protoc_insertion_point(class_scope:CParties_CreateBeacon_Response)
))
_sym_db.RegisterMessage(CParties_CreateBeacon_Response)
CParties_OnReservationCompleted_Request = _reflection.GeneratedProtocolMessageType('CParties_OnReservationCompleted_Request', (_message.Message,), dict(
DESCRIPTOR = _CPARTIES_ONRESERVATIONCOMPLETED_REQUEST,
__module__ = 'steammessages_parties_pb2'
# @@protoc_insertion_point(class_scope:CParties_OnReservationCompleted_Request)
))
_sym_db.RegisterMessage(CParties_OnReservationCompleted_Request)
CParties_OnReservationCompleted_Response = _reflection.GeneratedProtocolMessageType('CParties_OnReservationCompleted_Response', (_message.Message,), dict(
DESCRIPTOR = _CPARTIES_ONRESERVATIONCOMPLETED_RESPONSE,
__module__ = 'steammessages_parties_pb2'
# @@protoc_insertion_point(class_scope:CParties_OnReservationCompleted_Response)
))
_sym_db.RegisterMessage(CParties_OnReservationCompleted_Response)
CParties_CancelReservation_Request = _reflection.GeneratedProtocolMessageType('CParties_CancelReservation_Request', (_message.Message,), dict(
DESCRIPTOR = _CPARTIES_CANCELRESERVATION_REQUEST,
__module__ = 'steammessages_parties_pb2'
# @@protoc_insertion_point(class_scope:CParties_CancelReservation_Request)
))
_sym_db.RegisterMessage(CParties_CancelReservation_Request)
CParties_CancelReservation_Response = _reflection.GeneratedProtocolMessageType('CParties_CancelReservation_Response', (_message.Message,), dict(
DESCRIPTOR = _CPARTIES_CANCELRESERVATION_RESPONSE,
__module__ = 'steammessages_parties_pb2'
# @@protoc_insertion_point(class_scope:CParties_CancelReservation_Response)
))
_sym_db.RegisterMessage(CParties_CancelReservation_Response)
CParties_ChangeNumOpenSlots_Request = _reflection.GeneratedProtocolMessageType('CParties_ChangeNumOpenSlots_Request', (_message.Message,), dict(
DESCRIPTOR = _CPARTIES_CHANGENUMOPENSLOTS_REQUEST,
__module__ = 'steammessages_parties_pb2'
# @@protoc_insertion_point(class_scope:CParties_ChangeNumOpenSlots_Request)
))
_sym_db.RegisterMessage(CParties_ChangeNumOpenSlots_Request)
CParties_ChangeNumOpenSlots_Response = _reflection.GeneratedProtocolMessageType('CParties_ChangeNumOpenSlots_Response', (_message.Message,), dict(
DESCRIPTOR = _CPARTIES_CHANGENUMOPENSLOTS_RESPONSE,
__module__ = 'steammessages_parties_pb2'
# @@protoc_insertion_point(class_scope:CParties_ChangeNumOpenSlots_Response)
))
_sym_db.RegisterMessage(CParties_ChangeNumOpenSlots_Response)
CParties_DestroyBeacon_Request = _reflection.GeneratedProtocolMessageType('CParties_DestroyBeacon_Request', (_message.Message,), dict(
DESCRIPTOR = _CPARTIES_DESTROYBEACON_REQUEST,
__module__ = 'steammessages_parties_pb2'
# @@protoc_insertion_point(class_scope:CParties_DestroyBeacon_Request)
))
_sym_db.RegisterMessage(CParties_DestroyBeacon_Request)
CParties_DestroyBeacon_Response = _reflection.GeneratedProtocolMessageType('CParties_DestroyBeacon_Response', (_message.Message,), dict(
DESCRIPTOR = _CPARTIES_DESTROYBEACON_RESPONSE,
__module__ = 'steammessages_parties_pb2'
# @@protoc_insertion_point(class_scope:CParties_DestroyBeacon_Response)
))
_sym_db.RegisterMessage(CParties_DestroyBeacon_Response)
DESCRIPTOR._options = None
_PARTIES = _descriptor.ServiceDescriptor(
name='Parties',
full_name='Parties',
file=DESCRIPTOR,
index=0,
serialized_options=_b('\202\265\030\026Party-related services'),
serialized_start=1022,
serialized_end=2007,
methods=[
_descriptor.MethodDescriptor(
name='JoinParty',
full_name='Parties.JoinParty',
index=0,
containing_service=None,
input_type=_CPARTIES_JOINPARTY_REQUEST,
output_type=_CPARTIES_JOINPARTY_RESPONSE,
serialized_options=_b('\202\265\030mRequest to join a Party via the given Beacon ID. If successful, will be given the necessary \'connect\' string.'),
),
_descriptor.MethodDescriptor(
name='CreateBeacon',
full_name='Parties.CreateBeacon',
index=1,
containing_service=None,
input_type=_CPARTIES_CREATEBEACON_REQUEST,
output_type=_CPARTIES_CREATEBEACON_RESPONSE,
serialized_options=_b('\202\265\0300Create a Beacon to attract people to your Party.'),
),
_descriptor.MethodDescriptor(
name='OnReservationCompleted',
full_name='Parties.OnReservationCompleted',
index=2,
containing_service=None,
input_type=_CPARTIES_ONRESERVATIONCOMPLETED_REQUEST,
output_type=_CPARTIES_ONRESERVATIONCOMPLETED_RESPONSE,
serialized_options=_b('\202\265\030DNotify Steam that a user with a reservation has successfully joined.'),
),
_descriptor.MethodDescriptor(
name='CancelReservation',
full_name='Parties.CancelReservation',
index=3,
containing_service=None,
input_type=_CPARTIES_CANCELRESERVATION_REQUEST,
output_type=_CPARTIES_CANCELRESERVATION_RESPONSE,
serialized_options=_b('\202\265\030ZNotify Steam that a user with a reservation either never showed up, or has left the party.'),
),
_descriptor.MethodDescriptor(
name='ChangeNumOpenSlots',
full_name='Parties.ChangeNumOpenSlots',
index=4,
containing_service=None,
input_type=_CPARTIES_CHANGENUMOPENSLOTS_REQUEST,
output_type=_CPARTIES_CHANGENUMOPENSLOTS_RESPONSE,
serialized_options=_b('\202\265\030\037Change the number of open slots'),
),
_descriptor.MethodDescriptor(
name='DestroyBeacon',
full_name='Parties.DestroyBeacon',
index=5,
containing_service=None,
input_type=_CPARTIES_DESTROYBEACON_REQUEST,
output_type=_CPARTIES_DESTROYBEACON_RESPONSE,
serialized_options=_b('\202\265\030\022Delete the Beacon.'),
),
])
_sym_db.RegisterServiceDescriptor(_PARTIES)
DESCRIPTOR.services_by_name['Parties'] = _PARTIES
Parties = service_reflection.GeneratedServiceType('Parties', (_service.Service,), dict(
DESCRIPTOR = _PARTIES,
__module__ = 'steammessages_parties_pb2'
))
Parties_Stub = service_reflection.GeneratedServiceStubType('Parties_Stub', (Parties,), dict(
DESCRIPTOR = _PARTIES,
__module__ = 'steammessages_parties_pb2'
))
# @@protoc_insertion_point(module_scope)

2386
steam/protobufs/steammessages_player_pb2.py

File diff suppressed because one or more lines are too long

592
steam/protobufs/steammessages_publishedfile_pb2.py

File diff suppressed because one or more lines are too long

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save