TornAPIWrapper 2.15.0__tar.gz → 2.17.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.
- {tornapiwrapper-2.15.0/src/TornAPIWrapper.egg-info → tornapiwrapper-2.17.0}/PKG-INFO +2 -2
- {tornapiwrapper-2.15.0 → tornapiwrapper-2.17.0}/README.md +1 -1
- {tornapiwrapper-2.15.0 → tornapiwrapper-2.17.0}/src/TornAPIWrapper/__init__.py +6 -4
- {tornapiwrapper-2.15.0 → tornapiwrapper-2.17.0}/src/TornAPIWrapper/client.py +1 -2
- {tornapiwrapper-2.15.0 → tornapiwrapper-2.17.0}/src/TornAPIWrapper/client_async.py +1 -2
- {tornapiwrapper-2.15.0 → tornapiwrapper-2.17.0}/src/TornAPIWrapper/endpoints/faction.py +28 -1
- {tornapiwrapper-2.15.0 → tornapiwrapper-2.17.0}/src/TornAPIWrapper/endpoints/torn.py +37 -3
- {tornapiwrapper-2.15.0 → tornapiwrapper-2.17.0}/src/TornAPIWrapper/endpoints_async/faction.py +28 -1
- {tornapiwrapper-2.15.0 → tornapiwrapper-2.17.0}/src/TornAPIWrapper/errors.py +8 -2
- {tornapiwrapper-2.15.0 → tornapiwrapper-2.17.0}/src/TornAPIWrapper/params/map.py +1 -0
- {tornapiwrapper-2.15.0 → tornapiwrapper-2.17.0}/src/TornAPIWrapper/type_hints.py +1 -0
- {tornapiwrapper-2.15.0 → tornapiwrapper-2.17.0/src/TornAPIWrapper.egg-info}/PKG-INFO +2 -2
- {tornapiwrapper-2.15.0 → tornapiwrapper-2.17.0}/src/TornAPIWrapper.egg-info/SOURCES.txt +0 -1
- tornapiwrapper-2.15.0/src/TornAPIWrapper/text_response_endpoints.py +0 -1
- {tornapiwrapper-2.15.0 → tornapiwrapper-2.17.0}/LICENSE +0 -0
- {tornapiwrapper-2.15.0 → tornapiwrapper-2.17.0}/pyproject.toml +0 -0
- {tornapiwrapper-2.15.0 → tornapiwrapper-2.17.0}/setup.cfg +0 -0
- {tornapiwrapper-2.15.0 → tornapiwrapper-2.17.0}/src/TornAPIWrapper/__main__.py +0 -0
- {tornapiwrapper-2.15.0 → tornapiwrapper-2.17.0}/src/TornAPIWrapper/endpoints/__init__.py +0 -0
- {tornapiwrapper-2.15.0 → tornapiwrapper-2.17.0}/src/TornAPIWrapper/endpoints/company.py +0 -0
- {tornapiwrapper-2.15.0 → tornapiwrapper-2.17.0}/src/TornAPIWrapper/endpoints/forum.py +0 -0
- {tornapiwrapper-2.15.0 → tornapiwrapper-2.17.0}/src/TornAPIWrapper/endpoints/key.py +0 -0
- {tornapiwrapper-2.15.0 → tornapiwrapper-2.17.0}/src/TornAPIWrapper/endpoints/market.py +0 -0
- {tornapiwrapper-2.15.0 → tornapiwrapper-2.17.0}/src/TornAPIWrapper/endpoints/property.py +0 -0
- {tornapiwrapper-2.15.0 → tornapiwrapper-2.17.0}/src/TornAPIWrapper/endpoints/racing.py +0 -0
- {tornapiwrapper-2.15.0 → tornapiwrapper-2.17.0}/src/TornAPIWrapper/endpoints/user.py +0 -0
- {tornapiwrapper-2.15.0 → tornapiwrapper-2.17.0}/src/TornAPIWrapper/endpoints_async/__init__.py +0 -0
- {tornapiwrapper-2.15.0 → tornapiwrapper-2.17.0}/src/TornAPIWrapper/endpoints_async/company.py +0 -0
- {tornapiwrapper-2.15.0 → tornapiwrapper-2.17.0}/src/TornAPIWrapper/endpoints_async/forum.py +0 -0
- {tornapiwrapper-2.15.0 → tornapiwrapper-2.17.0}/src/TornAPIWrapper/endpoints_async/key.py +0 -0
- {tornapiwrapper-2.15.0 → tornapiwrapper-2.17.0}/src/TornAPIWrapper/endpoints_async/market.py +0 -0
- {tornapiwrapper-2.15.0 → tornapiwrapper-2.17.0}/src/TornAPIWrapper/endpoints_async/property.py +0 -0
- {tornapiwrapper-2.15.0 → tornapiwrapper-2.17.0}/src/TornAPIWrapper/endpoints_async/racing.py +0 -0
- {tornapiwrapper-2.15.0 → tornapiwrapper-2.17.0}/src/TornAPIWrapper/endpoints_async/torn.py +0 -0
- {tornapiwrapper-2.15.0 → tornapiwrapper-2.17.0}/src/TornAPIWrapper/endpoints_async/user.py +0 -0
- {tornapiwrapper-2.15.0 → tornapiwrapper-2.17.0}/src/TornAPIWrapper/params/__init__.py +0 -0
- {tornapiwrapper-2.15.0 → tornapiwrapper-2.17.0}/src/TornAPIWrapper/params/builders.py +0 -0
- {tornapiwrapper-2.15.0 → tornapiwrapper-2.17.0}/src/TornAPIWrapper.egg-info/dependency_links.txt +0 -0
- {tornapiwrapper-2.15.0 → tornapiwrapper-2.17.0}/src/TornAPIWrapper.egg-info/requires.txt +0 -0
- {tornapiwrapper-2.15.0 → tornapiwrapper-2.17.0}/src/TornAPIWrapper.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: TornAPIWrapper
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.17.0
|
|
4
4
|
Summary: A Python wrapper for the Torn City API, providing access to Torn City data.
|
|
5
5
|
Author: cxdzc
|
|
6
6
|
License: The MIT License (MIT)
|
|
@@ -53,7 +53,7 @@ Dynamic: license-file
|
|
|
53
53
|
<a href="https://pypi.org/project/TornAPIWrapper/"><img src=https://img.shields.io/pypi/v/tornapiwrapper?cacheSeconds=300></a>
|
|
54
54
|
<a href="https://pypi.org/project/TornAPIWrapper/"><img src=https://img.shields.io/pypi/pyversions/tornapiwrapper?cacheSeconds=300></a>
|
|
55
55
|
<a href="https://pypi.org/project/TornAPIWrapper/"><img src=https://img.shields.io/pepy/dt/tornapiwrapper?color=blue&cacheSeconds=300></a>
|
|
56
|
-
<a href="https://www.torn.com/api.html#:~:text=Patch%20Notes"><img src=https://img.shields.io/badge/patch-
|
|
56
|
+
<a href="https://www.torn.com/api.html#:~:text=Patch%20Notes"><img src=https://img.shields.io/badge/patch-21.08.2026-c4c4c4?cacheSeconds=300></a>
|
|
57
57
|
<a rel="license" href="https://github.com/cxdzc/TornAPIWrapper/blob/main/LICENSE"><img alt="MIT License" src="https://img.shields.io/badge/license-MIT-ab1436"/></a>
|
|
58
58
|
</div>
|
|
59
59
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<a href="https://pypi.org/project/TornAPIWrapper/"><img src=https://img.shields.io/pypi/v/tornapiwrapper?cacheSeconds=300></a>
|
|
7
7
|
<a href="https://pypi.org/project/TornAPIWrapper/"><img src=https://img.shields.io/pypi/pyversions/tornapiwrapper?cacheSeconds=300></a>
|
|
8
8
|
<a href="https://pypi.org/project/TornAPIWrapper/"><img src=https://img.shields.io/pepy/dt/tornapiwrapper?color=blue&cacheSeconds=300></a>
|
|
9
|
-
<a href="https://www.torn.com/api.html#:~:text=Patch%20Notes"><img src=https://img.shields.io/badge/patch-
|
|
9
|
+
<a href="https://www.torn.com/api.html#:~:text=Patch%20Notes"><img src=https://img.shields.io/badge/patch-21.08.2026-c4c4c4?cacheSeconds=300></a>
|
|
10
10
|
<a rel="license" href="https://github.com/cxdzc/TornAPIWrapper/blob/main/LICENSE"><img alt="MIT License" src="https://img.shields.io/badge/license-MIT-ab1436"/></a>
|
|
11
11
|
</div>
|
|
12
12
|
|
|
@@ -26,9 +26,11 @@ __author__ = "cxdzc"
|
|
|
26
26
|
__copyright__ = "Copyright 2023-Present cxdzc"
|
|
27
27
|
__license__ = "MIT"
|
|
28
28
|
__title__ = "TornAPIWrapper"
|
|
29
|
-
__version__ = "2.
|
|
30
|
-
__patch__ = "
|
|
29
|
+
__version__ = "2.17.0"
|
|
30
|
+
__patch__ = "21.08.2026"
|
|
31
31
|
|
|
32
|
+
from .client import TornAPIWrapper
|
|
33
|
+
from .client_async import TornAPIWrapperAsync
|
|
32
34
|
from .errors import (
|
|
33
35
|
WrapperError,
|
|
34
36
|
UnhandledAPIError,
|
|
@@ -63,9 +65,8 @@ from .errors import (
|
|
|
63
65
|
MigrationRequiredOC2,
|
|
64
66
|
InvalidLogId,
|
|
65
67
|
InvalidInteractionLogCategory,
|
|
68
|
+
FileDoesNotExist,
|
|
66
69
|
)
|
|
67
|
-
from .client import TornAPIWrapper
|
|
68
|
-
from .client_async import TornAPIWrapperAsync
|
|
69
70
|
|
|
70
71
|
__all__ = [
|
|
71
72
|
"TornAPIWrapper",
|
|
@@ -105,4 +106,5 @@ __all__ = [
|
|
|
105
106
|
"MigrationRequiredOC2",
|
|
106
107
|
"InvalidLogId",
|
|
107
108
|
"InvalidInteractionLogCategory",
|
|
109
|
+
"FileDoesNotExist",
|
|
108
110
|
]
|
|
@@ -35,7 +35,6 @@ from .endpoints.racing import Racing
|
|
|
35
35
|
from .endpoints.torn import Torn
|
|
36
36
|
from .endpoints.user import User
|
|
37
37
|
from .errors import TornAPIErrorHandler
|
|
38
|
-
from .text_response_endpoints import text_response_endpoints
|
|
39
38
|
|
|
40
39
|
|
|
41
40
|
class TornAPIWrapper:
|
|
@@ -71,7 +70,7 @@ class TornAPIWrapper:
|
|
|
71
70
|
"""
|
|
72
71
|
api_request = self.session.get(url=f"{self.BASE_URL}{endpoint}", params=params, timeout=self.request_timeout)
|
|
73
72
|
api_request.raise_for_status()
|
|
74
|
-
if
|
|
73
|
+
if api_request.headers.get("Content-Type", None) == "text/csv":
|
|
75
74
|
return api_request.text
|
|
76
75
|
api_request_json = api_request.json()
|
|
77
76
|
api_request_error = api_request_json.get("error")
|
|
@@ -35,7 +35,6 @@ from .endpoints_async.racing import Racing
|
|
|
35
35
|
from .endpoints_async.torn import Torn
|
|
36
36
|
from .endpoints_async.user import User
|
|
37
37
|
from .errors import TornAPIErrorHandler
|
|
38
|
-
from .text_response_endpoints import text_response_endpoints
|
|
39
38
|
|
|
40
39
|
|
|
41
40
|
class TornAPIWrapperAsync:
|
|
@@ -77,7 +76,7 @@ class TornAPIWrapperAsync:
|
|
|
77
76
|
"""
|
|
78
77
|
async with self.session.get(url=f"{self.BASE_URL}{endpoint}", params=params) as api_request:
|
|
79
78
|
api_request.raise_for_status()
|
|
80
|
-
if
|
|
79
|
+
if api_request.headers.get("Content-Type", None) == "text/csv":
|
|
81
80
|
return await api_request.text()
|
|
82
81
|
api_request_json = await api_request.json()
|
|
83
82
|
api_request_error = api_request_json.get("error")
|
|
@@ -28,7 +28,8 @@ from typing import TYPE_CHECKING
|
|
|
28
28
|
|
|
29
29
|
from ..params.builders import build_params
|
|
30
30
|
from ..type_hints import SortOptions, FacScopeCatOptions, AttackFiltersOptions, FacContributorsStatOptions, \
|
|
31
|
-
FacCrimesCatOptions, FacCrimesFiltersOptions, FacNewsCatOptions, ReportCatOptions, FacWarChainsCatOptions
|
|
31
|
+
FacCrimesCatOptions, FacCrimesFiltersOptions, FacNewsCatOptions, ReportCatOptions, FacWarChainsCatOptions, \
|
|
32
|
+
FacInventoryCatOptions
|
|
32
33
|
|
|
33
34
|
if TYPE_CHECKING:
|
|
34
35
|
from ..client import TornAPIWrapper
|
|
@@ -170,6 +171,17 @@ class Faction:
|
|
|
170
171
|
"""
|
|
171
172
|
return self.api.request("/faction/contributors", build_params(self.get_contributors, locals()))
|
|
172
173
|
|
|
174
|
+
def get_crimeexp(self, timestamp: int = None, comment: str = None) -> dict:
|
|
175
|
+
"""
|
|
176
|
+
Get your faction members crime experience.
|
|
177
|
+
API key (Minimal).
|
|
178
|
+
:param timestamp: Timestamp to bypass cache.
|
|
179
|
+
:param comment: Comment for your tool/service/bot/website to be visible in the logs.
|
|
180
|
+
:return: API response data.
|
|
181
|
+
:rtype: dict
|
|
182
|
+
"""
|
|
183
|
+
return self.api.request("/faction/crimeexp", build_params(self.get_crimeexp, locals()))
|
|
184
|
+
|
|
173
185
|
def get_crimes(self, crimes_category: FacCrimesCatOptions = "all", crimes_filter: FacCrimesFiltersOptions = None, limit: int = 20, offset: int = 0, sort: SortOptions = "DESC", to: int = None, from_: int = None, timestamp: int = None, comment: str = None) -> dict:
|
|
174
186
|
"""
|
|
175
187
|
Get your faction's organized crimes.
|
|
@@ -230,6 +242,21 @@ class Faction:
|
|
|
230
242
|
"""
|
|
231
243
|
return self.api.request("/faction/hof", build_params(self.get_hof, locals()))
|
|
232
244
|
|
|
245
|
+
def get_inventory(self, armory_category: FacInventoryCatOptions, limit: int = 20, offset: int = 0, timestamp: int = None, comment: str = None) -> dict:
|
|
246
|
+
"""
|
|
247
|
+
Get your faction's inventory items.
|
|
248
|
+
API key (Limited).
|
|
249
|
+
Cached selection (1 hour, all items cached at once).
|
|
250
|
+
:param armory_category: Armory category.
|
|
251
|
+
:param limit: Number of results to return.
|
|
252
|
+
:param offset: Number of rows to skip before returning results.
|
|
253
|
+
:param timestamp: Timestamp to bypass cache.
|
|
254
|
+
:param comment: Comment for your tool/service/bot/website to be visible in the logs.
|
|
255
|
+
:return: API response data.
|
|
256
|
+
:rtype: dict
|
|
257
|
+
"""
|
|
258
|
+
return self.api.request("/faction/inventory", build_params(self.get_inventory, locals()))
|
|
259
|
+
|
|
233
260
|
def get_members(self, faction_id: int = None, striptags: bool = True, timestamp: int = None, comment: str = None) -> dict:
|
|
234
261
|
"""
|
|
235
262
|
Get a list of members for your faction or a specific faction.
|
|
@@ -247,11 +247,11 @@ class Torn:
|
|
|
247
247
|
"""
|
|
248
248
|
return self.api.request("/torn/itemammo", build_params(self.get_itemammo, locals()))
|
|
249
249
|
|
|
250
|
-
def get_itemdetails(self,
|
|
250
|
+
def get_itemdetails(self, item_ids: list[int], timestamp: int = None, comment: str = None) -> dict:
|
|
251
251
|
"""
|
|
252
|
-
Get
|
|
252
|
+
Get details for specific item(s).
|
|
253
253
|
API key (Public).
|
|
254
|
-
:param
|
|
254
|
+
:param item_ids: Item uid or a list of item uids (comma separated), 25 uids maximum.
|
|
255
255
|
:param timestamp: Timestamp to bypass cache.
|
|
256
256
|
:param comment: Comment for your tool/service/bot/website to be visible in the logs.
|
|
257
257
|
:return: API response data.
|
|
@@ -270,6 +270,18 @@ class Torn:
|
|
|
270
270
|
"""
|
|
271
271
|
return self.api.request("/torn/itemmods", build_params(self.get_itemmods, locals()))
|
|
272
272
|
|
|
273
|
+
def get_itemstats(self, item_ids: list[int], timestamp: int = None, comment: str = None) -> dict:
|
|
274
|
+
"""
|
|
275
|
+
Get specific item(s) stats.
|
|
276
|
+
API key (Public).
|
|
277
|
+
:param item_ids: Item uid or a list of item uids (comma separated), 25 uids maximum.
|
|
278
|
+
:param timestamp: Timestamp to bypass cache.
|
|
279
|
+
:param comment: Comment for your tool/service/bot/website to be visible in the logs.
|
|
280
|
+
:return: API response data.
|
|
281
|
+
:rtype: dict
|
|
282
|
+
"""
|
|
283
|
+
return self.api.request("/torn/itemstats", build_params(self.get_itemstats, locals()))
|
|
284
|
+
|
|
273
285
|
def get_items(self, item_ids: list[int] = None, item_category: TornItemsCatOptions = None, sort: SortOptions = "ASC", timestamp: int = None, comment: str = None) -> dict:
|
|
274
286
|
"""
|
|
275
287
|
Get information about items.
|
|
@@ -378,6 +390,17 @@ class Torn:
|
|
|
378
390
|
"""
|
|
379
391
|
return self.api.request("/torn/properties", build_params(self.get_properties, locals()))
|
|
380
392
|
|
|
393
|
+
def get_rockpaperscissors(self, timestamp: int = None, comment: str = None) -> dict:
|
|
394
|
+
"""
|
|
395
|
+
Get rock paper scissors competition stats.
|
|
396
|
+
API key (Public).
|
|
397
|
+
:param timestamp: Timestamp to bypass cache.
|
|
398
|
+
:param comment: Comment for your tool/service/bot/website to be visible in the logs.
|
|
399
|
+
:return: API response data.
|
|
400
|
+
:rtype: dict
|
|
401
|
+
"""
|
|
402
|
+
return self.api.request("/torn/rockpaperscissors", build_params(self.get_rockpaperscissors, locals()))
|
|
403
|
+
|
|
381
404
|
def get_searchforcash(self, timestamp: int = None, comment: str = None) -> dict:
|
|
382
405
|
"""
|
|
383
406
|
Get search for cash crime statuses.
|
|
@@ -400,6 +423,17 @@ class Torn:
|
|
|
400
423
|
"""
|
|
401
424
|
return self.api.request("/torn/shoplifting", build_params(self.get_shoplifting, locals()))
|
|
402
425
|
|
|
426
|
+
def get_stats(self, timestamp: int = None, comment: str = None) -> dict:
|
|
427
|
+
"""
|
|
428
|
+
Get daily city stats.
|
|
429
|
+
API key (Public).
|
|
430
|
+
:param timestamp: Timestamp to bypass cache.
|
|
431
|
+
:param comment: Comment for your tool/service/bot/website to be visible in the logs.
|
|
432
|
+
:return: API response data.
|
|
433
|
+
:rtype: dict
|
|
434
|
+
"""
|
|
435
|
+
return self.api.request("/torn/stats", build_params(self.get_stats, locals()))
|
|
436
|
+
|
|
403
437
|
def get_stocks(self, stock_id: int = None, timestamp: int = None, comment: str = None) -> dict:
|
|
404
438
|
"""
|
|
405
439
|
Get all stocks or specific stock with chart history.
|
{tornapiwrapper-2.15.0 → tornapiwrapper-2.17.0}/src/TornAPIWrapper/endpoints_async/faction.py
RENAMED
|
@@ -28,7 +28,8 @@ from typing import TYPE_CHECKING
|
|
|
28
28
|
|
|
29
29
|
from ..params.builders import build_params
|
|
30
30
|
from ..type_hints import SortOptions, FacScopeCatOptions, AttackFiltersOptions, FacContributorsStatOptions, \
|
|
31
|
-
FacCrimesCatOptions, FacCrimesFiltersOptions, FacNewsCatOptions, ReportCatOptions, FacWarChainsCatOptions
|
|
31
|
+
FacCrimesCatOptions, FacCrimesFiltersOptions, FacNewsCatOptions, ReportCatOptions, FacWarChainsCatOptions, \
|
|
32
|
+
FacInventoryCatOptions
|
|
32
33
|
|
|
33
34
|
if TYPE_CHECKING:
|
|
34
35
|
from ..client_async import TornAPIWrapperAsync
|
|
@@ -170,6 +171,17 @@ class Faction:
|
|
|
170
171
|
"""
|
|
171
172
|
return await self.api.request("/faction/contributors", build_params(self.get_contributors, locals()))
|
|
172
173
|
|
|
174
|
+
async def get_crimeexp(self, timestamp: int = None, comment: str = None) -> dict:
|
|
175
|
+
"""
|
|
176
|
+
Get your faction members crime experience.
|
|
177
|
+
API key (Minimal).
|
|
178
|
+
:param timestamp: Timestamp to bypass cache.
|
|
179
|
+
:param comment: Comment for your tool/service/bot/website to be visible in the logs.
|
|
180
|
+
:return: API response data.
|
|
181
|
+
:rtype: dict
|
|
182
|
+
"""
|
|
183
|
+
return await self.api.request("/faction/crimeexp", build_params(self.get_crimeexp, locals()))
|
|
184
|
+
|
|
173
185
|
async def get_crimes(self, crimes_category: FacCrimesCatOptions = "all", crimes_filter: FacCrimesFiltersOptions = None, limit: int = 20, offset: int = 0, sort: SortOptions = "DESC", to: int = None, from_: int = None, timestamp: int = None, comment: str = None) -> dict:
|
|
174
186
|
"""
|
|
175
187
|
Get your faction's organized crimes.
|
|
@@ -230,6 +242,21 @@ class Faction:
|
|
|
230
242
|
"""
|
|
231
243
|
return await self.api.request("/faction/hof", build_params(self.get_hof, locals()))
|
|
232
244
|
|
|
245
|
+
async def get_inventory(self, armory_category: FacInventoryCatOptions, limit: int = 20, offset: int = 0, timestamp: int = None, comment: str = None) -> dict:
|
|
246
|
+
"""
|
|
247
|
+
Get your faction's inventory items.
|
|
248
|
+
API key (Limited).
|
|
249
|
+
Cached selection (1 hour, all items cached at once).
|
|
250
|
+
:param armory_category: Armory category.
|
|
251
|
+
:param limit: Number of results to return.
|
|
252
|
+
:param offset: Number of rows to skip before returning results.
|
|
253
|
+
:param timestamp: Timestamp to bypass cache.
|
|
254
|
+
:param comment: Comment for your tool/service/bot/website to be visible in the logs.
|
|
255
|
+
:return: API response data.
|
|
256
|
+
:rtype: dict
|
|
257
|
+
"""
|
|
258
|
+
return await self.api.request("/faction/inventory", build_params(self.get_inventory, locals()))
|
|
259
|
+
|
|
233
260
|
async def get_members(self, faction_id: int = None, striptags: bool = True, timestamp: int = None, comment: str = None) -> dict:
|
|
234
261
|
"""
|
|
235
262
|
Get a list of members for your faction or a specific faction.
|
|
@@ -260,7 +260,6 @@ class MigrationRequiredOC2(APIError):
|
|
|
260
260
|
"""
|
|
261
261
|
pass
|
|
262
262
|
|
|
263
|
-
|
|
264
263
|
class InvalidLogId(APIError):
|
|
265
264
|
"""
|
|
266
265
|
28
|
|
@@ -268,7 +267,6 @@ class InvalidLogId(APIError):
|
|
|
268
267
|
"""
|
|
269
268
|
pass
|
|
270
269
|
|
|
271
|
-
|
|
272
270
|
class InvalidInteractionLogCategory(APIError):
|
|
273
271
|
"""
|
|
274
272
|
29
|
|
@@ -276,6 +274,13 @@ class InvalidInteractionLogCategory(APIError):
|
|
|
276
274
|
"""
|
|
277
275
|
pass
|
|
278
276
|
|
|
277
|
+
class FileDoesNotExist(APIError):
|
|
278
|
+
"""
|
|
279
|
+
30
|
|
280
|
+
File does not exist.
|
|
281
|
+
"""
|
|
282
|
+
pass
|
|
283
|
+
|
|
279
284
|
class TornAPIErrorHandler:
|
|
280
285
|
"""
|
|
281
286
|
Handle Torn API error codes and raise appropriate exceptions.
|
|
@@ -311,6 +316,7 @@ class TornAPIErrorHandler:
|
|
|
311
316
|
27: (MigrationRequiredOC2, "Must be migrated to organized crimes 2.0."),
|
|
312
317
|
28: (InvalidLogId, "Incorrect log ID."),
|
|
313
318
|
29: (InvalidInteractionLogCategory, "Category selection is not available for interaction logs."),
|
|
319
|
+
30: (FileDoesNotExist, "File does not exist."),
|
|
314
320
|
}
|
|
315
321
|
|
|
316
322
|
def raise_code(self, error_code: int):
|
|
@@ -40,6 +40,7 @@ FacScopeCatOptions = Literal["all", "current"]
|
|
|
40
40
|
FacWarChainsCatOptions = Literal["active", "complete"]
|
|
41
41
|
FacCrimesFiltersOptions = Literal["created_at", "executed_at", "ready_at", "expired_at"]
|
|
42
42
|
FacCrimesCatOptions = Literal["all", "recruiting", "planning", "failure", "successful", "expired", "available", "completed"]
|
|
43
|
+
FacInventoryCatOptions = Literal["weapons", "armor", "temporary", "medical", "consumables", "drugs", "boosters", "utilities", "loot"]
|
|
43
44
|
FacNewsCatOptions = Literal["main", "attack", "armoryDeposit", "armoryAction", "territoryWar", "rankedWar", "territoryGain", "chain", "crime", "membership", "depositFunds", "giveFunds"]
|
|
44
45
|
FacContributorsStatOptions = Literal["medicalitemsused", "criminaloffences", "organisedcrimerespect", "organisedcrimemoney", "organisedcrimesuccess", "organisedcrimefail", "attackswon", "attackslost", "attackschain", "attacksleave", "attacksmug", "attackshosp", "bestchain", "busts", "revives", "jails", "hosps", "medicalitemrecovery", "medicalcooldownused", "gymtrains", "gymstrength", "gymspeed", "gymenergy", "gymdefense", "gymdexterity", "candyused", "alcoholused", "energydrinkused", "drugsused", "drugoverdoses", "rehabs", "caymaninterest", "traveltimes", "traveltime", "hunting", "attacksdamagehits", "attacksdamage", "hosptimegiven", "hosptimereceived", "attacksdamaging", "attacksrunaway", "highestterritories", "territoryrespect", "membersamount", "factionage", "upgradesamount"]
|
|
45
46
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: TornAPIWrapper
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.17.0
|
|
4
4
|
Summary: A Python wrapper for the Torn City API, providing access to Torn City data.
|
|
5
5
|
Author: cxdzc
|
|
6
6
|
License: The MIT License (MIT)
|
|
@@ -53,7 +53,7 @@ Dynamic: license-file
|
|
|
53
53
|
<a href="https://pypi.org/project/TornAPIWrapper/"><img src=https://img.shields.io/pypi/v/tornapiwrapper?cacheSeconds=300></a>
|
|
54
54
|
<a href="https://pypi.org/project/TornAPIWrapper/"><img src=https://img.shields.io/pypi/pyversions/tornapiwrapper?cacheSeconds=300></a>
|
|
55
55
|
<a href="https://pypi.org/project/TornAPIWrapper/"><img src=https://img.shields.io/pepy/dt/tornapiwrapper?color=blue&cacheSeconds=300></a>
|
|
56
|
-
<a href="https://www.torn.com/api.html#:~:text=Patch%20Notes"><img src=https://img.shields.io/badge/patch-
|
|
56
|
+
<a href="https://www.torn.com/api.html#:~:text=Patch%20Notes"><img src=https://img.shields.io/badge/patch-21.08.2026-c4c4c4?cacheSeconds=300></a>
|
|
57
57
|
<a rel="license" href="https://github.com/cxdzc/TornAPIWrapper/blob/main/LICENSE"><img alt="MIT License" src="https://img.shields.io/badge/license-MIT-ab1436"/></a>
|
|
58
58
|
</div>
|
|
59
59
|
|
|
@@ -6,7 +6,6 @@ src/TornAPIWrapper/__main__.py
|
|
|
6
6
|
src/TornAPIWrapper/client.py
|
|
7
7
|
src/TornAPIWrapper/client_async.py
|
|
8
8
|
src/TornAPIWrapper/errors.py
|
|
9
|
-
src/TornAPIWrapper/text_response_endpoints.py
|
|
10
9
|
src/TornAPIWrapper/type_hints.py
|
|
11
10
|
src/TornAPIWrapper.egg-info/PKG-INFO
|
|
12
11
|
src/TornAPIWrapper.egg-info/SOURCES.txt
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
text_response_endpoints = {"/user/snapshot", "/faction/snapshot", "/company/snapshot"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tornapiwrapper-2.15.0 → tornapiwrapper-2.17.0}/src/TornAPIWrapper/endpoints_async/__init__.py
RENAMED
|
File without changes
|
{tornapiwrapper-2.15.0 → tornapiwrapper-2.17.0}/src/TornAPIWrapper/endpoints_async/company.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tornapiwrapper-2.15.0 → tornapiwrapper-2.17.0}/src/TornAPIWrapper/endpoints_async/market.py
RENAMED
|
File without changes
|
{tornapiwrapper-2.15.0 → tornapiwrapper-2.17.0}/src/TornAPIWrapper/endpoints_async/property.py
RENAMED
|
File without changes
|
{tornapiwrapper-2.15.0 → tornapiwrapper-2.17.0}/src/TornAPIWrapper/endpoints_async/racing.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tornapiwrapper-2.15.0 → tornapiwrapper-2.17.0}/src/TornAPIWrapper.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|