tf2-data 0.2.0__tar.gz → 1.0.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- tf2_data-1.0.0/.gitignore +174 -0
- tf2_data-1.0.0/.vscode/settings.json +9 -0
- {tf2_data-0.2.0 → tf2_data-1.0.0}/PKG-INFO +8 -6
- {tf2_data-0.2.0 → tf2_data-1.0.0}/README.md +6 -4
- tf2_data-1.0.0/example.env +1 -0
- tf2_data-1.0.0/src/tf2_data/__init__.py +11 -0
- tf2_data-0.2.0/src/tf2_data/static.py → tf2_data-1.0.0/src/tf2_data/constants.py +9 -0
- {tf2_data-0.2.0 → tf2_data-1.0.0}/src/tf2_data/files.py +8 -0
- tf2_data-1.0.0/src/tf2_data/iecon_items.py +67 -0
- {tf2_data-0.2.0 → tf2_data-1.0.0}/src/tf2_data/json/defindex_full_names.json +216 -8
- {tf2_data-0.2.0 → tf2_data-1.0.0}/src/tf2_data/json/defindex_names.json +240 -34
- {tf2_data-0.2.0 → tf2_data-1.0.0}/src/tf2_data/json/effects.json +45 -12
- {tf2_data-0.2.0 → tf2_data-1.0.0}/src/tf2_data/json/schema_items.json +3134 -702
- tf2_data-1.0.0/src/tf2_data/schema.py +52 -0
- tf2_data-1.0.0/src/tf2_data/schema_items.py +82 -0
- {tf2_data-0.2.0 → tf2_data-1.0.0}/src/tf2_data/utils.py +4 -3
- {tf2_data-0.2.0 → tf2_data-1.0.0}/src/tf2_data.egg-info/PKG-INFO +8 -6
- {tf2_data-0.2.0 → tf2_data-1.0.0}/src/tf2_data.egg-info/SOURCES.txt +8 -2
- tf2_data-1.0.0/tests/test_constants.py +16 -0
- tf2_data-1.0.0/tests/test_files.py +19 -0
- tf2_data-1.0.0/update_items.py +21 -0
- tf2_data-0.2.0/.gitignore +0 -3
- tf2_data-0.2.0/src/tf2_data/__init__.py +0 -16
- tf2_data-0.2.0/src/tf2_data/schema.py +0 -202
- tf2_data-0.2.0/tests/test_static.py +0 -19
- {tf2_data-0.2.0 → tf2_data-1.0.0}/.flake8 +0 -0
- {tf2_data-0.2.0 → tf2_data-1.0.0}/.github/workflows/publish.yml +0 -0
- {tf2_data-0.2.0 → tf2_data-1.0.0}/LICENSE +0 -0
- {tf2_data-0.2.0 → tf2_data-1.0.0}/pyproject.toml +0 -0
- {tf2_data-0.2.0 → tf2_data-1.0.0}/setup.cfg +0 -0
- {tf2_data-0.2.0 → tf2_data-1.0.0}/setup.py +0 -0
- {tf2_data-0.2.0 → tf2_data-1.0.0}/src/tf2_data/json/colors.json +0 -0
- {tf2_data-0.2.0 → tf2_data-1.0.0}/src/tf2_data/json/item_nameids.json +0 -0
- {tf2_data-0.2.0 → tf2_data-1.0.0}/src/tf2_data/json/killstreaks.json +0 -0
- {tf2_data-0.2.0 → tf2_data-1.0.0}/src/tf2_data/json/qualities.json +0 -0
- {tf2_data-0.2.0 → tf2_data-1.0.0}/src/tf2_data/json/schema_overview.json +0 -0
- {tf2_data-0.2.0 → tf2_data-1.0.0}/src/tf2_data/json/wears.json +0 -0
- {tf2_data-0.2.0 → tf2_data-1.0.0}/src/tf2_data.egg-info/dependency_links.txt +0 -0
- {tf2_data-0.2.0 → tf2_data-1.0.0}/src/tf2_data.egg-info/requires.txt +0 -0
- {tf2_data-0.2.0 → tf2_data-1.0.0}/src/tf2_data.egg-info/top_level.txt +0 -0
- {tf2_data-0.2.0 → tf2_data-1.0.0}/tests/__init__.py +0 -0
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
# Byte-compiled / optimized / DLL files
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*$py.class
|
|
5
|
+
|
|
6
|
+
# C extensions
|
|
7
|
+
*.so
|
|
8
|
+
|
|
9
|
+
# Distribution / packaging
|
|
10
|
+
.Python
|
|
11
|
+
build/
|
|
12
|
+
develop-eggs/
|
|
13
|
+
dist/
|
|
14
|
+
downloads/
|
|
15
|
+
eggs/
|
|
16
|
+
.eggs/
|
|
17
|
+
lib/
|
|
18
|
+
lib64/
|
|
19
|
+
parts/
|
|
20
|
+
sdist/
|
|
21
|
+
var/
|
|
22
|
+
wheels/
|
|
23
|
+
share/python-wheels/
|
|
24
|
+
*.egg-info/
|
|
25
|
+
.installed.cfg
|
|
26
|
+
*.egg
|
|
27
|
+
MANIFEST
|
|
28
|
+
|
|
29
|
+
# PyInstaller
|
|
30
|
+
# Usually these files are written by a python script from a template
|
|
31
|
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
|
32
|
+
*.manifest
|
|
33
|
+
*.spec
|
|
34
|
+
|
|
35
|
+
# Installer logs
|
|
36
|
+
pip-log.txt
|
|
37
|
+
pip-delete-this-directory.txt
|
|
38
|
+
|
|
39
|
+
# Unit test / coverage reports
|
|
40
|
+
htmlcov/
|
|
41
|
+
.tox/
|
|
42
|
+
.nox/
|
|
43
|
+
.coverage
|
|
44
|
+
.coverage.*
|
|
45
|
+
.cache
|
|
46
|
+
nosetests.xml
|
|
47
|
+
coverage.xml
|
|
48
|
+
*.cover
|
|
49
|
+
*.py,cover
|
|
50
|
+
.hypothesis/
|
|
51
|
+
.pytest_cache/
|
|
52
|
+
cover/
|
|
53
|
+
|
|
54
|
+
# Translations
|
|
55
|
+
*.mo
|
|
56
|
+
*.pot
|
|
57
|
+
|
|
58
|
+
# Django stuff:
|
|
59
|
+
*.log
|
|
60
|
+
local_settings.py
|
|
61
|
+
db.sqlite3
|
|
62
|
+
db.sqlite3-journal
|
|
63
|
+
|
|
64
|
+
# Flask stuff:
|
|
65
|
+
instance/
|
|
66
|
+
.webassets-cache
|
|
67
|
+
|
|
68
|
+
# Scrapy stuff:
|
|
69
|
+
.scrapy
|
|
70
|
+
|
|
71
|
+
# Sphinx documentation
|
|
72
|
+
docs/_build/
|
|
73
|
+
|
|
74
|
+
# PyBuilder
|
|
75
|
+
.pybuilder/
|
|
76
|
+
target/
|
|
77
|
+
|
|
78
|
+
# Jupyter Notebook
|
|
79
|
+
.ipynb_checkpoints
|
|
80
|
+
|
|
81
|
+
# IPython
|
|
82
|
+
profile_default/
|
|
83
|
+
ipython_config.py
|
|
84
|
+
|
|
85
|
+
# pyenv
|
|
86
|
+
# For a library or package, you might want to ignore these files since the code is
|
|
87
|
+
# intended to run in multiple environments; otherwise, check them in:
|
|
88
|
+
# .python-version
|
|
89
|
+
|
|
90
|
+
# pipenv
|
|
91
|
+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
|
92
|
+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
|
93
|
+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
|
94
|
+
# install all needed dependencies.
|
|
95
|
+
#Pipfile.lock
|
|
96
|
+
|
|
97
|
+
# UV
|
|
98
|
+
# Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
|
|
99
|
+
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
|
100
|
+
# commonly ignored for libraries.
|
|
101
|
+
#uv.lock
|
|
102
|
+
|
|
103
|
+
# poetry
|
|
104
|
+
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
|
|
105
|
+
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
|
106
|
+
# commonly ignored for libraries.
|
|
107
|
+
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
|
|
108
|
+
#poetry.lock
|
|
109
|
+
|
|
110
|
+
# pdm
|
|
111
|
+
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
|
|
112
|
+
#pdm.lock
|
|
113
|
+
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
|
|
114
|
+
# in version control.
|
|
115
|
+
# https://pdm.fming.dev/latest/usage/project/#working-with-version-control
|
|
116
|
+
.pdm.toml
|
|
117
|
+
.pdm-python
|
|
118
|
+
.pdm-build/
|
|
119
|
+
|
|
120
|
+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
|
|
121
|
+
__pypackages__/
|
|
122
|
+
|
|
123
|
+
# Celery stuff
|
|
124
|
+
celerybeat-schedule
|
|
125
|
+
celerybeat.pid
|
|
126
|
+
|
|
127
|
+
# SageMath parsed files
|
|
128
|
+
*.sage.py
|
|
129
|
+
|
|
130
|
+
# Environments
|
|
131
|
+
.env
|
|
132
|
+
.venv
|
|
133
|
+
env/
|
|
134
|
+
venv/
|
|
135
|
+
ENV/
|
|
136
|
+
env.bak/
|
|
137
|
+
venv.bak/
|
|
138
|
+
|
|
139
|
+
# Spyder project settings
|
|
140
|
+
.spyderproject
|
|
141
|
+
.spyproject
|
|
142
|
+
|
|
143
|
+
# Rope project settings
|
|
144
|
+
.ropeproject
|
|
145
|
+
|
|
146
|
+
# mkdocs documentation
|
|
147
|
+
/site
|
|
148
|
+
|
|
149
|
+
# mypy
|
|
150
|
+
.mypy_cache/
|
|
151
|
+
.dmypy.json
|
|
152
|
+
dmypy.json
|
|
153
|
+
|
|
154
|
+
# Pyre type checker
|
|
155
|
+
.pyre/
|
|
156
|
+
|
|
157
|
+
# pytype static type analyzer
|
|
158
|
+
.pytype/
|
|
159
|
+
|
|
160
|
+
# Cython debug symbols
|
|
161
|
+
cython_debug/
|
|
162
|
+
|
|
163
|
+
# PyCharm
|
|
164
|
+
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
|
|
165
|
+
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
|
|
166
|
+
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
|
167
|
+
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
|
168
|
+
#.idea/
|
|
169
|
+
|
|
170
|
+
# Ruff stuff:
|
|
171
|
+
.ruff_cache/
|
|
172
|
+
|
|
173
|
+
# PyPI configuration file
|
|
174
|
+
.pypirc
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.2
|
|
2
2
|
Name: tf2-data
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 1.0.0
|
|
4
4
|
Summary: Item schemas, unusual effects, SKUs and more useful data for TF2 trading
|
|
5
5
|
Author-email: offish <overutilization@gmail.com>
|
|
6
6
|
Project-URL: Homepage, https://github.com/offish/tf2-data
|
|
@@ -15,12 +15,14 @@ License-File: LICENSE
|
|
|
15
15
|
Requires-Dist: requests
|
|
16
16
|
|
|
17
17
|
# tf2-data
|
|
18
|
-
[](https://github.com/offish/tf2-data/blob/master/LICENSE)
|
|
19
18
|
[](https://github.com/offish/tf2-data/stargazers)
|
|
20
19
|
[](https://github.com/offish/tf2-data/issues)
|
|
21
20
|
[](https://github.com/offish/tf2-data)
|
|
22
21
|
[](https://discord.gg/t8nHSvA)
|
|
22
|
+
[](https://pypi.org/project/tf2-data/)
|
|
23
23
|
[](https://github.com/psf/black)
|
|
24
|
+
[](https://github.com/astral-sh/ruff)
|
|
25
|
+
|
|
24
26
|
|
|
25
27
|
Item schemas, unusual effects, SKUs and more which can be useful for TF2 trading. Implemented by [tf2-utils](https://github.com/offish/tf2-utils).
|
|
26
28
|
|
|
@@ -46,14 +48,14 @@ python -m pip install --upgrade tf2-data
|
|
|
46
48
|
## Testing
|
|
47
49
|
```bash
|
|
48
50
|
# tf2-data/
|
|
49
|
-
|
|
51
|
+
pytest
|
|
50
52
|
```
|
|
51
53
|
|
|
52
54
|
## Update files after new update
|
|
53
|
-
|
|
55
|
+
If the package is not up-to-date, run this snippet to update your local files.
|
|
54
56
|
|
|
55
57
|
```python
|
|
56
|
-
from tf2_data
|
|
58
|
+
from tf2_data import Schema, SchemaItems, IEconItems
|
|
57
59
|
|
|
58
60
|
api_key = "STEAM_API_KEY"
|
|
59
61
|
schema = Schema(api_key=api_key)
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
# tf2-data
|
|
2
|
-
[](https://github.com/offish/tf2-data/blob/master/LICENSE)
|
|
3
2
|
[](https://github.com/offish/tf2-data/stargazers)
|
|
4
3
|
[](https://github.com/offish/tf2-data/issues)
|
|
5
4
|
[](https://github.com/offish/tf2-data)
|
|
6
5
|
[](https://discord.gg/t8nHSvA)
|
|
6
|
+
[](https://pypi.org/project/tf2-data/)
|
|
7
7
|
[](https://github.com/psf/black)
|
|
8
|
+
[](https://github.com/astral-sh/ruff)
|
|
9
|
+
|
|
8
10
|
|
|
9
11
|
Item schemas, unusual effects, SKUs and more which can be useful for TF2 trading. Implemented by [tf2-utils](https://github.com/offish/tf2-utils).
|
|
10
12
|
|
|
@@ -30,14 +32,14 @@ python -m pip install --upgrade tf2-data
|
|
|
30
32
|
## Testing
|
|
31
33
|
```bash
|
|
32
34
|
# tf2-data/
|
|
33
|
-
|
|
35
|
+
pytest
|
|
34
36
|
```
|
|
35
37
|
|
|
36
38
|
## Update files after new update
|
|
37
|
-
|
|
39
|
+
If the package is not up-to-date, run this snippet to update your local files.
|
|
38
40
|
|
|
39
41
|
```python
|
|
40
|
-
from tf2_data
|
|
42
|
+
from tf2_data import Schema, SchemaItems, IEconItems
|
|
41
43
|
|
|
42
44
|
api_key = "STEAM_API_KEY"
|
|
43
45
|
schema = Schema(api_key=api_key)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
STEAM_API_KEY=YOUR_STEAM_API_KEY
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# flake8: noqa
|
|
2
|
+
__title__ = "tf2-data"
|
|
3
|
+
__author__ = "offish"
|
|
4
|
+
__version__ = "1.0.0"
|
|
5
|
+
__license__ = "MIT"
|
|
6
|
+
|
|
7
|
+
from .constants import COLORS, EXTERIORS, KILLSTREAKS, QUALITIES, QUALITY_COLORS, WEARS
|
|
8
|
+
from .files import *
|
|
9
|
+
from .iecon_items import IEconItems
|
|
10
|
+
from .schema import Schema
|
|
11
|
+
from .schema_items import SchemaItems
|
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
from .utils import get_json_path
|
|
2
|
+
|
|
3
|
+
DEFINDEX_FULL_NAMES_PATH = get_json_path("defindex_full_names")
|
|
4
|
+
SCHEMA_OVERVIEW_PATH = get_json_path("schema_overview")
|
|
5
|
+
DEFINDEX_NAMES_PATH = get_json_path("defindex_names")
|
|
6
|
+
SCHEMA_ITEMS_PATH = get_json_path("schema_items")
|
|
7
|
+
QUALITIES_PATH = get_json_path("qualities")
|
|
8
|
+
EFFECTS_PATH = get_json_path("effects")
|
|
9
|
+
|
|
1
10
|
QUALITIES = {
|
|
2
11
|
"Normal": 0,
|
|
3
12
|
"0": "Normal",
|
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
from .utils import read_lib_json_file
|
|
2
2
|
|
|
3
|
+
__all__ = [
|
|
4
|
+
"EFFECTS",
|
|
5
|
+
"SCHEMA_ITEMS",
|
|
6
|
+
"ITEM_NAME_IDS",
|
|
7
|
+
"DEFINDEX_NAMES",
|
|
8
|
+
"DEFINDEX_FULL_NAMES",
|
|
9
|
+
]
|
|
10
|
+
|
|
3
11
|
EFFECTS = read_lib_json_file("effects")
|
|
4
12
|
SCHEMA_ITEMS = read_lib_json_file("schema_items")
|
|
5
13
|
ITEM_NAME_IDS = read_lib_json_file("item_nameids")
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import time
|
|
2
|
+
|
|
3
|
+
import requests
|
|
4
|
+
|
|
5
|
+
from .constants import SCHEMA_ITEMS_PATH, SCHEMA_OVERVIEW_PATH
|
|
6
|
+
from .utils import write_json_file
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class IEconItems:
|
|
10
|
+
API_URL = "https://api.steampowered.com/IEconItems_440"
|
|
11
|
+
SCHEMA_OVERVIEW = API_URL + "/GetSchemaOverview/v0001"
|
|
12
|
+
PLAYER_ITEMS = API_URL + "/GetPlayerItems/v0001"
|
|
13
|
+
SCHEMA_ITEMS = API_URL + "/GetSchemaItems/v1"
|
|
14
|
+
STORE_DATA = API_URL + "/GetStoreMetaData/v1"
|
|
15
|
+
SCHEMA_URL = API_URL + "/GetSchemaURL/v1"
|
|
16
|
+
|
|
17
|
+
def __init__(self, api_key: str) -> None:
|
|
18
|
+
self.__api_key = api_key
|
|
19
|
+
|
|
20
|
+
def _get(self, url: str, params: dict = {}) -> dict:
|
|
21
|
+
params["key"] = self.__api_key
|
|
22
|
+
|
|
23
|
+
res = requests.get(url, params=params)
|
|
24
|
+
|
|
25
|
+
try:
|
|
26
|
+
return res.json()
|
|
27
|
+
except Exception:
|
|
28
|
+
return {}
|
|
29
|
+
|
|
30
|
+
def get_player_items(self, steamid: str) -> dict:
|
|
31
|
+
return self._get(self.PLAYER_ITEMS, {"steamid": steamid})
|
|
32
|
+
|
|
33
|
+
def get_schema_items(self, start: int = 0, language: str = "en") -> dict:
|
|
34
|
+
return self._get(
|
|
35
|
+
self.SCHEMA_ITEMS, {"language": language.lower(), "start": start}
|
|
36
|
+
)
|
|
37
|
+
|
|
38
|
+
def get_all_schema_items(self, language: str = "en", sleep: float = 5.0) -> list:
|
|
39
|
+
items = []
|
|
40
|
+
start = 0
|
|
41
|
+
|
|
42
|
+
while start is not None:
|
|
43
|
+
response = self.get_schema_items(start, language=language)["result"]
|
|
44
|
+
items += response.get("items", [])
|
|
45
|
+
start = response.get("next") # None if not found
|
|
46
|
+
time.sleep(sleep)
|
|
47
|
+
|
|
48
|
+
return items
|
|
49
|
+
|
|
50
|
+
def get_schema_overview(self, language: str = "en") -> dict:
|
|
51
|
+
return self._get(self.SCHEMA_OVERVIEW, {"language": language.lower()})
|
|
52
|
+
|
|
53
|
+
def get_schema_url(self) -> dict:
|
|
54
|
+
return self._get(self.SCHEMA_URL, {})
|
|
55
|
+
|
|
56
|
+
def get_store_meta_data(self, language: str = "en") -> dict:
|
|
57
|
+
return self._get(self.STORE_DATA, {"language": language.lower()})
|
|
58
|
+
|
|
59
|
+
def set_schema_overview(self, language: str = "en") -> dict:
|
|
60
|
+
schema = self.get_schema_overview(language)
|
|
61
|
+
write_json_file(SCHEMA_OVERVIEW_PATH, schema)
|
|
62
|
+
return schema
|
|
63
|
+
|
|
64
|
+
def set_all_schema_items(self, language: str = "en", sleep: float = 5.0) -> list:
|
|
65
|
+
items = self.get_all_schema_items(language, sleep)
|
|
66
|
+
write_json_file(SCHEMA_ITEMS_PATH, items)
|
|
67
|
+
return items
|
|
@@ -5299,6 +5299,10 @@
|
|
|
5299
5299
|
"Map Token Bundle 26": [
|
|
5300
5300
|
2175
|
|
5301
5301
|
],
|
|
5302
|
+
"2176": "Map Token Bundle 27",
|
|
5303
|
+
"Map Token Bundle 27": [
|
|
5304
|
+
2176
|
|
5305
|
+
],
|
|
5302
5306
|
"2500": "Map Token Perks",
|
|
5303
5307
|
"Map Token Perks": [
|
|
5304
5308
|
2500
|
|
@@ -5455,6 +5459,30 @@
|
|
|
5455
5459
|
"Map Token Blazehattan": [
|
|
5456
5460
|
2538
|
|
5457
5461
|
],
|
|
5462
|
+
"2539": "Map Token Overcast",
|
|
5463
|
+
"Map Token Overcast": [
|
|
5464
|
+
2539
|
|
5465
|
+
],
|
|
5466
|
+
"2540": "Map Token Fortezza",
|
|
5467
|
+
"Map Token Fortezza": [
|
|
5468
|
+
2540
|
|
5469
|
+
],
|
|
5470
|
+
"2541": "Map Token Penguin Peak",
|
|
5471
|
+
"Map Token Penguin Peak": [
|
|
5472
|
+
2541
|
|
5473
|
+
],
|
|
5474
|
+
"2542": "Map Token Patagonia",
|
|
5475
|
+
"Map Token Patagonia": [
|
|
5476
|
+
2542
|
|
5477
|
+
],
|
|
5478
|
+
"2543": "Map Token Cutter",
|
|
5479
|
+
"Map Token Cutter": [
|
|
5480
|
+
2543
|
|
5481
|
+
],
|
|
5482
|
+
"2544": "Map Token Maul",
|
|
5483
|
+
"Map Token Maul": [
|
|
5484
|
+
2544
|
|
5485
|
+
],
|
|
5458
5486
|
"5000": "Craft Bar Level 1",
|
|
5459
5487
|
"Craft Bar Level 1": [
|
|
5460
5488
|
5000
|
|
@@ -7043,6 +7071,18 @@
|
|
|
7043
7071
|
"Scream Fortress 2024 War Paint Dummy": [
|
|
7044
7072
|
5965
|
|
7045
7073
|
],
|
|
7074
|
+
"5966": "Self Gift - Stocking Stuffer 2024",
|
|
7075
|
+
"Self Gift - Stocking Stuffer 2024": [
|
|
7076
|
+
5966
|
|
7077
|
+
],
|
|
7078
|
+
"5967": "Winter 2024 Cosmetic Key",
|
|
7079
|
+
"Winter 2024 Cosmetic Key": [
|
|
7080
|
+
5967
|
|
7081
|
+
],
|
|
7082
|
+
"5968": "Winter 2024 Cosmetic Case",
|
|
7083
|
+
"Winter 2024 Cosmetic Case": [
|
|
7084
|
+
5968
|
|
7085
|
+
],
|
|
7046
7086
|
"5999": "Strange Part (Armory)",
|
|
7047
7087
|
"Strange Part (Armory)": [
|
|
7048
7088
|
5999
|
|
@@ -7871,6 +7911,30 @@
|
|
|
7871
7911
|
"Strange Filter: Blazehattan (Community)": [
|
|
7872
7912
|
6655
|
|
7873
7913
|
],
|
|
7914
|
+
"6656": "Strange Filter: Overcast (Community)",
|
|
7915
|
+
"Strange Filter: Overcast (Community)": [
|
|
7916
|
+
6656
|
|
7917
|
+
],
|
|
7918
|
+
"6657": "Strange Filter: Fortezza (Community)",
|
|
7919
|
+
"Strange Filter: Fortezza (Community)": [
|
|
7920
|
+
6657
|
|
7921
|
+
],
|
|
7922
|
+
"6658": "Strange Filter: Penguin Peak (Community)",
|
|
7923
|
+
"Strange Filter: Penguin Peak (Community)": [
|
|
7924
|
+
6658
|
|
7925
|
+
],
|
|
7926
|
+
"6659": "Strange Filter: Patagonia (Community)",
|
|
7927
|
+
"Strange Filter: Patagonia (Community)": [
|
|
7928
|
+
6659
|
|
7929
|
+
],
|
|
7930
|
+
"6660": "Strange Filter: Cutter (Community)",
|
|
7931
|
+
"Strange Filter: Cutter (Community)": [
|
|
7932
|
+
6660
|
|
7933
|
+
],
|
|
7934
|
+
"6661": "Strange Filter: Maul (Community)",
|
|
7935
|
+
"Strange Filter: Maul (Community)": [
|
|
7936
|
+
6661
|
|
7937
|
+
],
|
|
7874
7938
|
"8000": "UGC Highlander 1st Place North American Platinum Season 6",
|
|
7875
7939
|
"UGC Highlander 1st Place North American Platinum Season 6": [
|
|
7876
7940
|
8000
|
|
@@ -30531,20 +30595,20 @@
|
|
|
30531
30595
|
"RGLgg 6v6 Advanced Participant Season 13": [
|
|
30532
30596
|
13723
|
|
30533
30597
|
],
|
|
30534
|
-
"13724": "RGLgg 6v6
|
|
30535
|
-
"RGLgg 6v6
|
|
30598
|
+
"13724": "RGLgg 6v6 Division 1 Champions Season 13",
|
|
30599
|
+
"RGLgg 6v6 Division 1 Champions Season 13": [
|
|
30536
30600
|
13724
|
|
30537
30601
|
],
|
|
30538
|
-
"13725": "RGLgg 6v6
|
|
30539
|
-
"RGLgg 6v6
|
|
30602
|
+
"13725": "RGLgg 6v6 Division 1 2nd Place Season 13",
|
|
30603
|
+
"RGLgg 6v6 Division 1 2nd Place Season 13": [
|
|
30540
30604
|
13725
|
|
30541
30605
|
],
|
|
30542
|
-
"13726": "RGLgg 6v6
|
|
30543
|
-
"RGLgg 6v6
|
|
30606
|
+
"13726": "RGLgg 6v6 Division 1 3rd Place Season 13",
|
|
30607
|
+
"RGLgg 6v6 Division 1 3rd Place Season 13": [
|
|
30544
30608
|
13726
|
|
30545
30609
|
],
|
|
30546
|
-
"13727": "RGLgg 6v6
|
|
30547
|
-
"RGLgg 6v6
|
|
30610
|
+
"13727": "RGLgg 6v6 Division 1 Participant Season 13",
|
|
30611
|
+
"RGLgg 6v6 Division 1 Participant Season 13": [
|
|
30548
30612
|
13727
|
|
30549
30613
|
],
|
|
30550
30614
|
"13728": "RGLgg 6v6 Intermediate Champions Season 13",
|
|
@@ -32675,6 +32739,46 @@
|
|
|
32675
32739
|
"ozfortress Highlander Main Participant Season 8": [
|
|
32676
32740
|
14260
|
|
32677
32741
|
],
|
|
32742
|
+
"14261": "Ghoulish Gambit Corrupted Crystal 2024",
|
|
32743
|
+
"Ghoulish Gambit Corrupted Crystal 2024": [
|
|
32744
|
+
14261
|
|
32745
|
+
],
|
|
32746
|
+
"14262": "Ghoulish Gambit Uncorrupted Crystal 2024",
|
|
32747
|
+
"Ghoulish Gambit Uncorrupted Crystal 2024": [
|
|
32748
|
+
14262
|
|
32749
|
+
],
|
|
32750
|
+
"14263": "Ghoulish Gambit Mostly-Corrupted Crystal 2024",
|
|
32751
|
+
"Ghoulish Gambit Mostly-Corrupted Crystal 2024": [
|
|
32752
|
+
14263
|
|
32753
|
+
],
|
|
32754
|
+
"14264": "Ghoulish Gambit Haunted Tank 2024",
|
|
32755
|
+
"Ghoulish Gambit Haunted Tank 2024": [
|
|
32756
|
+
14264
|
|
32757
|
+
],
|
|
32758
|
+
"14265": "Ghoulish Gambit Poisonous Potato 2024",
|
|
32759
|
+
"Ghoulish Gambit Poisonous Potato 2024": [
|
|
32760
|
+
14265
|
|
32761
|
+
],
|
|
32762
|
+
"14266": "AsiaFortress Liquid.tf Newbie Cup 9 1st Place",
|
|
32763
|
+
"AsiaFortress Liquid.tf Newbie Cup 9 1st Place": [
|
|
32764
|
+
14266
|
|
32765
|
+
],
|
|
32766
|
+
"14267": "AsiaFortress Liquid.tf Newbie Cup 9 2nd Place",
|
|
32767
|
+
"AsiaFortress Liquid.tf Newbie Cup 9 2nd Place": [
|
|
32768
|
+
14267
|
|
32769
|
+
],
|
|
32770
|
+
"14268": "AsiaFortress Liquid.tf Newbie Cup 9 3rd Place",
|
|
32771
|
+
"AsiaFortress Liquid.tf Newbie Cup 9 3rd Place": [
|
|
32772
|
+
14268
|
|
32773
|
+
],
|
|
32774
|
+
"14269": "AsiaFortress Liquid.tf Newbie Cup 9 Participant",
|
|
32775
|
+
"AsiaFortress Liquid.tf Newbie Cup 9 Participant": [
|
|
32776
|
+
14269
|
|
32777
|
+
],
|
|
32778
|
+
"14270": "AsiaFortress Liquid.tf Newbie Cup 9 Coach",
|
|
32779
|
+
"AsiaFortress Liquid.tf Newbie Cup 9 Coach": [
|
|
32780
|
+
14270
|
|
32781
|
+
],
|
|
32678
32782
|
"15000": "concealedkiller_sniperrifle_nightowl",
|
|
32679
32783
|
"concealedkiller_sniperrifle_nightowl": [
|
|
32680
32784
|
15000
|
|
@@ -39334,5 +39438,109 @@
|
|
|
39334
39438
|
"31489": "Defaced Detonator",
|
|
39335
39439
|
"Defaced Detonator": [
|
|
39336
39440
|
31489
|
|
39441
|
+
],
|
|
39442
|
+
"31491": "Taunt: Curtain Call",
|
|
39443
|
+
"Taunt: Curtain Call": [
|
|
39444
|
+
31491
|
|
39445
|
+
],
|
|
39446
|
+
"31492": "Taunt: Peace!",
|
|
39447
|
+
"Taunt: Peace!": [
|
|
39448
|
+
31492
|
|
39449
|
+
],
|
|
39450
|
+
"31493": "Taunt: Fore-Head Slice",
|
|
39451
|
+
"Taunt: Fore-Head Slice": [
|
|
39452
|
+
31493
|
|
39453
|
+
],
|
|
39454
|
+
"31494": "Dapper Noel",
|
|
39455
|
+
"Dapper Noel": [
|
|
39456
|
+
31494
|
|
39457
|
+
],
|
|
39458
|
+
"31495": "The Necroprancer",
|
|
39459
|
+
"The Necroprancer": [
|
|
39460
|
+
31495
|
|
39461
|
+
],
|
|
39462
|
+
"31496": "The Battle Music",
|
|
39463
|
+
"The Battle Music": [
|
|
39464
|
+
31496
|
|
39465
|
+
],
|
|
39466
|
+
"31497": "Hot Spaniel",
|
|
39467
|
+
"Hot Spaniel": [
|
|
39468
|
+
31497
|
|
39469
|
+
],
|
|
39470
|
+
"31498": "Frostbite Fit",
|
|
39471
|
+
"Frostbite Fit": [
|
|
39472
|
+
31498
|
|
39473
|
+
],
|
|
39474
|
+
"31499": "L'aire Filteure",
|
|
39475
|
+
"L'aire Filteure": [
|
|
39476
|
+
31499
|
|
39477
|
+
],
|
|
39478
|
+
"31500": "Poleur Voyeur",
|
|
39479
|
+
"Poleur Voyeur": [
|
|
39480
|
+
31500
|
|
39481
|
+
],
|
|
39482
|
+
"31501": "Le Frosteaux",
|
|
39483
|
+
"Le Frosteaux": [
|
|
39484
|
+
31501
|
|
39485
|
+
],
|
|
39486
|
+
"31502": "Scrooge McDoc",
|
|
39487
|
+
"Scrooge McDoc": [
|
|
39488
|
+
31502
|
|
39489
|
+
],
|
|
39490
|
+
"31503": "The Checkered Past",
|
|
39491
|
+
"The Checkered Past": [
|
|
39492
|
+
31503
|
|
39493
|
+
],
|
|
39494
|
+
"31504": "Consigliere's Coverup",
|
|
39495
|
+
"Consigliere's Coverup": [
|
|
39496
|
+
31504
|
|
39497
|
+
],
|
|
39498
|
+
"31505": "The Crimbo Cap",
|
|
39499
|
+
"The Crimbo Cap": [
|
|
39500
|
+
31505
|
|
39501
|
+
],
|
|
39502
|
+
"31506": "The Triple Jumper",
|
|
39503
|
+
"The Triple Jumper": [
|
|
39504
|
+
31506
|
|
39505
|
+
],
|
|
39506
|
+
"31507": "Polar Charger",
|
|
39507
|
+
"Polar Charger": [
|
|
39508
|
+
31507
|
|
39509
|
+
],
|
|
39510
|
+
"31508": "Field Fatigues",
|
|
39511
|
+
"Field Fatigues": [
|
|
39512
|
+
31508
|
|
39513
|
+
],
|
|
39514
|
+
"31509": "Cossack Camo",
|
|
39515
|
+
"Cossack Camo": [
|
|
39516
|
+
31509
|
|
39517
|
+
],
|
|
39518
|
+
"31510": "Battle Balaclava",
|
|
39519
|
+
"Battle Balaclava": [
|
|
39520
|
+
31510
|
|
39521
|
+
],
|
|
39522
|
+
"31511": "The Top Brass",
|
|
39523
|
+
"The Top Brass": [
|
|
39524
|
+
31511
|
|
39525
|
+
],
|
|
39526
|
+
"31512": "Commanding Presence",
|
|
39527
|
+
"Commanding Presence": [
|
|
39528
|
+
31512
|
|
39529
|
+
],
|
|
39530
|
+
"31513": "Mine Sweepers",
|
|
39531
|
+
"Mine Sweepers": [
|
|
39532
|
+
31513
|
|
39533
|
+
],
|
|
39534
|
+
"31514": "Buck's Brim",
|
|
39535
|
+
"Buck's Brim": [
|
|
39536
|
+
31514
|
|
39537
|
+
],
|
|
39538
|
+
"31515": "The Westcoat",
|
|
39539
|
+
"The Westcoat": [
|
|
39540
|
+
31515
|
|
39541
|
+
],
|
|
39542
|
+
"31516": "Snug Sharpshooter",
|
|
39543
|
+
"Snug Sharpshooter": [
|
|
39544
|
+
31516
|
|
39337
39545
|
]
|
|
39338
39546
|
}
|