TornAPIWrapper 2.10.0__tar.gz → 2.11.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.
Files changed (41) hide show
  1. {tornapiwrapper-2.10.0/src/TornAPIWrapper.egg-info → tornapiwrapper-2.11.0}/PKG-INFO +2 -2
  2. {tornapiwrapper-2.10.0 → tornapiwrapper-2.11.0}/README.md +1 -1
  3. {tornapiwrapper-2.10.0 → tornapiwrapper-2.11.0}/src/TornAPIWrapper/__init__.py +2 -2
  4. {tornapiwrapper-2.10.0 → tornapiwrapper-2.11.0}/src/TornAPIWrapper/endpoints/company.py +10 -10
  5. {tornapiwrapper-2.10.0 → tornapiwrapper-2.11.0}/src/TornAPIWrapper/endpoints/faction.py +2 -2
  6. {tornapiwrapper-2.10.0 → tornapiwrapper-2.11.0}/src/TornAPIWrapper/endpoints/forum.py +5 -5
  7. {tornapiwrapper-2.10.0 → tornapiwrapper-2.11.0}/src/TornAPIWrapper/endpoints/property.py +3 -3
  8. {tornapiwrapper-2.10.0 → tornapiwrapper-2.11.0}/src/TornAPIWrapper/endpoints/torn.py +11 -0
  9. {tornapiwrapper-2.10.0 → tornapiwrapper-2.11.0}/src/TornAPIWrapper/endpoints/user.py +14 -0
  10. {tornapiwrapper-2.10.0 → tornapiwrapper-2.11.0}/src/TornAPIWrapper/endpoints_async/company.py +10 -10
  11. {tornapiwrapper-2.10.0 → tornapiwrapper-2.11.0}/src/TornAPIWrapper/endpoints_async/faction.py +2 -2
  12. {tornapiwrapper-2.10.0 → tornapiwrapper-2.11.0}/src/TornAPIWrapper/endpoints_async/forum.py +5 -5
  13. {tornapiwrapper-2.10.0 → tornapiwrapper-2.11.0}/src/TornAPIWrapper/endpoints_async/property.py +3 -3
  14. {tornapiwrapper-2.10.0 → tornapiwrapper-2.11.0}/src/TornAPIWrapper/endpoints_async/torn.py +11 -0
  15. {tornapiwrapper-2.10.0 → tornapiwrapper-2.11.0}/src/TornAPIWrapper/endpoints_async/user.py +14 -0
  16. tornapiwrapper-2.11.0/src/TornAPIWrapper/text_response_endpoints.py +1 -0
  17. {tornapiwrapper-2.10.0 → tornapiwrapper-2.11.0/src/TornAPIWrapper.egg-info}/PKG-INFO +2 -2
  18. tornapiwrapper-2.10.0/src/TornAPIWrapper/text_response_endpoints.py +0 -1
  19. {tornapiwrapper-2.10.0 → tornapiwrapper-2.11.0}/LICENSE +0 -0
  20. {tornapiwrapper-2.10.0 → tornapiwrapper-2.11.0}/pyproject.toml +0 -0
  21. {tornapiwrapper-2.10.0 → tornapiwrapper-2.11.0}/setup.cfg +0 -0
  22. {tornapiwrapper-2.10.0 → tornapiwrapper-2.11.0}/src/TornAPIWrapper/__main__.py +0 -0
  23. {tornapiwrapper-2.10.0 → tornapiwrapper-2.11.0}/src/TornAPIWrapper/client.py +0 -0
  24. {tornapiwrapper-2.10.0 → tornapiwrapper-2.11.0}/src/TornAPIWrapper/client_async.py +0 -0
  25. {tornapiwrapper-2.10.0 → tornapiwrapper-2.11.0}/src/TornAPIWrapper/endpoints/__init__.py +0 -0
  26. {tornapiwrapper-2.10.0 → tornapiwrapper-2.11.0}/src/TornAPIWrapper/endpoints/key.py +0 -0
  27. {tornapiwrapper-2.10.0 → tornapiwrapper-2.11.0}/src/TornAPIWrapper/endpoints/market.py +0 -0
  28. {tornapiwrapper-2.10.0 → tornapiwrapper-2.11.0}/src/TornAPIWrapper/endpoints/racing.py +0 -0
  29. {tornapiwrapper-2.10.0 → tornapiwrapper-2.11.0}/src/TornAPIWrapper/endpoints_async/__init__.py +0 -0
  30. {tornapiwrapper-2.10.0 → tornapiwrapper-2.11.0}/src/TornAPIWrapper/endpoints_async/key.py +0 -0
  31. {tornapiwrapper-2.10.0 → tornapiwrapper-2.11.0}/src/TornAPIWrapper/endpoints_async/market.py +0 -0
  32. {tornapiwrapper-2.10.0 → tornapiwrapper-2.11.0}/src/TornAPIWrapper/endpoints_async/racing.py +0 -0
  33. {tornapiwrapper-2.10.0 → tornapiwrapper-2.11.0}/src/TornAPIWrapper/errors.py +0 -0
  34. {tornapiwrapper-2.10.0 → tornapiwrapper-2.11.0}/src/TornAPIWrapper/params/__init__.py +0 -0
  35. {tornapiwrapper-2.10.0 → tornapiwrapper-2.11.0}/src/TornAPIWrapper/params/builders.py +0 -0
  36. {tornapiwrapper-2.10.0 → tornapiwrapper-2.11.0}/src/TornAPIWrapper/params/map.py +0 -0
  37. {tornapiwrapper-2.10.0 → tornapiwrapper-2.11.0}/src/TornAPIWrapper/type_hints.py +0 -0
  38. {tornapiwrapper-2.10.0 → tornapiwrapper-2.11.0}/src/TornAPIWrapper.egg-info/SOURCES.txt +0 -0
  39. {tornapiwrapper-2.10.0 → tornapiwrapper-2.11.0}/src/TornAPIWrapper.egg-info/dependency_links.txt +0 -0
  40. {tornapiwrapper-2.10.0 → tornapiwrapper-2.11.0}/src/TornAPIWrapper.egg-info/requires.txt +0 -0
  41. {tornapiwrapper-2.10.0 → tornapiwrapper-2.11.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.10.0
3
+ Version: 2.11.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-16.07.2026-c4c4c4?cacheSeconds=300></a>
56
+ <a href="https://www.torn.com/api.html#:~:text=Patch%20Notes"><img src=https://img.shields.io/badge/patch-27.07.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-16.07.2026-c4c4c4?cacheSeconds=300></a>
9
+ <a href="https://www.torn.com/api.html#:~:text=Patch%20Notes"><img src=https://img.shields.io/badge/patch-27.07.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,8 +26,8 @@ __author__ = "cxdzc"
26
26
  __copyright__ = "Copyright 2023-Present cxdzc"
27
27
  __license__ = "MIT"
28
28
  __title__ = "TornAPIWrapper"
29
- __version__ = "2.10.0"
30
- __patch__ = "16.07.2026"
29
+ __version__ = "2.11.0"
30
+ __patch__ = "27.07.2026"
31
31
 
32
32
  from .errors import (
33
33
  WrapperError,
@@ -40,7 +40,7 @@ class Company:
40
40
  def __init__(self, api: TornAPIWrapper):
41
41
  self.api = api
42
42
 
43
- def get_applications(self, timestamp: int = None, comment: str = None):
43
+ def get_applications(self, timestamp: int = None, comment: str = None) -> dict:
44
44
  """
45
45
  Get your company's applications.
46
46
  API key (Limited).
@@ -51,7 +51,7 @@ class Company:
51
51
  """
52
52
  return self.api.request("/company/applications", build_params(self.get_applications, locals()))
53
53
 
54
- def get_employees(self, company_id: int = None, striptags: bool = True, timestamp: int = None, comment: str = None):
54
+ def get_employees(self, company_id: int = None, striptags: bool = True, timestamp: int = None, comment: str = None) -> dict:
55
55
  """
56
56
  Get my company's employees.
57
57
  API key (Public).
@@ -65,7 +65,7 @@ class Company:
65
65
  """
66
66
  return self.api.request("/company/employees", build_params(self.get_employees, locals()))
67
67
 
68
- def get_news(self, news_category: CpnyNewsCatOptions, striptags: bool = False, limit: int = 100, sort: SortOptions = "DESC", to: int = None, from_: int = None, timestamp: int = None, comment: str = None):
68
+ def get_news(self, news_category: CpnyNewsCatOptions, striptags: bool = False, limit: int = 100, sort: SortOptions = "DESC", to: int = None, from_: int = None, timestamp: int = None, comment: str = None) -> dict:
69
69
  """
70
70
  Get your company's news details.
71
71
  API key (Minimal).
@@ -82,7 +82,7 @@ class Company:
82
82
  """
83
83
  return self.api.request("/company/news", build_params(self.get_news, locals()))
84
84
 
85
- def get_companies(self, company_type_id: int, striptags: bool = True, limit: int = 20, offset: int = None, timestamp: int = None, comment: str = None):
85
+ def get_companies(self, company_type_id: int, striptags: bool = True, limit: int = 20, offset: int = None, timestamp: int = None, comment: str = None) -> dict:
86
86
  """
87
87
  Get a list of companies for a specific company type.
88
88
  API key (Public).
@@ -97,7 +97,7 @@ class Company:
97
97
  """
98
98
  return self.api.request("/company/companies", build_params(self.get_companies, locals()))
99
99
 
100
- def get_profile(self, company_id: int = None, striptags: bool = True, timestamp: int = None, comment: str = None):
100
+ def get_profile(self, company_id: int = None, striptags: bool = True, timestamp: int = None, comment: str = None) -> dict:
101
101
  """
102
102
  Get a company's profile.
103
103
  API key (Public).
@@ -127,7 +127,7 @@ class Company:
127
127
  """
128
128
  return self.api.request("/company/search", build_params(self.get_search, locals()))
129
129
 
130
- def get_snapshot(self, timestamp: int = None, comment: str = None):
130
+ def get_snapshot(self, timestamp: int = None, comment: str = None) -> str:
131
131
  """
132
132
  Get daily companies snapshot CSV.
133
133
  API key (Public).
@@ -137,11 +137,11 @@ class Company:
137
137
  :param timestamp: Timestamp to bypass cache or get the data in specific point in time.
138
138
  :param comment: Comment for your tool/service/bot/website to be visible in the logs.
139
139
  :return: API response data.
140
- :rtype: dict
140
+ :rtype: str
141
141
  """
142
142
  return self.api.request("/company/snapshot", build_params(self.get_snapshot, locals()))
143
143
 
144
- def get_stock(self, timestamp: int = None, comment: str = None):
144
+ def get_stock(self, timestamp: int = None, comment: str = None) -> dict:
145
145
  """
146
146
  Get your company's stock.
147
147
  API key (Limited).
@@ -152,7 +152,7 @@ class Company:
152
152
  """
153
153
  return self.api.request("/company/stock", build_params(self.get_stock, locals()))
154
154
 
155
- def get_lookup(self, timestamp: int = None, comment: str = None):
155
+ def get_lookup(self, timestamp: int = None, comment: str = None) -> dict:
156
156
  """
157
157
  API key (Public).
158
158
  :param timestamp: Timestamp to bypass cache.
@@ -162,7 +162,7 @@ class Company:
162
162
  """
163
163
  return self.api.request("/company/lookup", build_params(self.get_lookup, locals()))
164
164
 
165
- def get_timestamp(self, timestamp: int = None, comment: str = None):
165
+ def get_timestamp(self, timestamp: int = None, comment: str = None) -> dict:
166
166
  """
167
167
  Get current server time.
168
168
  API key (Public).
@@ -402,7 +402,7 @@ class Faction:
402
402
  """
403
403
  return self.api.request("/faction/search", build_params(self.get_search, locals()))
404
404
 
405
- def get_snapshot(self, timestamp: int = None, comment: str = None) -> dict:
405
+ def get_snapshot(self, timestamp: int = None, comment: str = None) -> str:
406
406
  """
407
407
  Get daily factions snapshot CSV.
408
408
  API key (Public).
@@ -412,7 +412,7 @@ class Faction:
412
412
  :param timestamp: Timestamp to bypass cache.
413
413
  :param comment: Comment for your tool/service/bot/website to be visible in the logs.
414
414
  :return: API response data.
415
- :rtype: dict
415
+ :rtype: str
416
416
  """
417
417
  return self.api.request("/faction/snapshot", build_params(self.get_snapshot, locals()))
418
418
 
@@ -40,7 +40,7 @@ class Forum:
40
40
  def __init__(self, api: TornAPIWrapper):
41
41
  self.api = api
42
42
 
43
- def get_categories(self, timestamp: int = None, comment: str = None):
43
+ def get_categories(self, timestamp: int = None, comment: str = None) -> dict:
44
44
  """
45
45
  Get publicly available forum categories.
46
46
  API key (Public).
@@ -51,7 +51,7 @@ class Forum:
51
51
  """
52
52
  return self.api.request("/forum/categories", build_params(self.get_categories, locals()))
53
53
 
54
- def get_posts(self, thread_id: int, striptags: bool = True, offset: int = None, sort: SortOptions = None, to: int = None, from_: int = None, timestamp: int = None, comment: str = None):
54
+ def get_posts(self, thread_id: int, striptags: bool = True, offset: int = None, sort: SortOptions = None, to: int = None, from_: int = None, timestamp: int = None, comment: str = None) -> dict:
55
55
  """
56
56
  Get specific forum thread posts.
57
57
  API key (Public).
@@ -70,7 +70,7 @@ class Forum:
70
70
  """
71
71
  return self.api.request("/forum/posts", build_params(self.get_posts, locals()))
72
72
 
73
- def get_thread(self, thread_id: int, timestamp: int = None, comment: str = None):
73
+ def get_thread(self, thread_id: int, timestamp: int = None, comment: str = None) -> dict:
74
74
  """
75
75
  Get specific thread details.
76
76
  API key (Public).
@@ -83,7 +83,7 @@ class Forum:
83
83
  """
84
84
  return self.api.request("/forum/thread", build_params(self.get_thread, locals()))
85
85
 
86
- def get_threads(self, category_ids: list[int] = None, limit: int = 100, sort: SortOptions = None, to: int = None, from_: int = None, timestamp: int = None, comment: str = None):
86
+ def get_threads(self, category_ids: list[int] = None, limit: int = 100, sort: SortOptions = None, to: int = None, from_: int = None, timestamp: int = None, comment: str = None) -> dict:
87
87
  """
88
88
  Get threads across all forum categories or for specific public forum category or categories.
89
89
  API key (Public).
@@ -99,7 +99,7 @@ class Forum:
99
99
  """
100
100
  return self.api.request("/forum/threads", build_params(self.get_threads, locals()))
101
101
 
102
- def get_lookup(self, timestamp: int = None, comment: str = None):
102
+ def get_lookup(self, timestamp: int = None, comment: str = None) -> dict:
103
103
  """
104
104
  Get all available forum selections.
105
105
  API key (Public).
@@ -39,7 +39,7 @@ class Property:
39
39
  def __init__(self, api: TornAPIWrapper):
40
40
  self.api = api
41
41
 
42
- def get_property(self, property_id: int, timestamp: int = None, comment: str = None):
42
+ def get_property(self, property_id: int, timestamp: int = None, comment: str = None) -> dict:
43
43
  """
44
44
  Get a specific property.
45
45
  API key (Public).
@@ -51,7 +51,7 @@ class Property:
51
51
  """
52
52
  return self.api.request("/property/property", build_params(self.get_property, locals()))
53
53
 
54
- def get_lookup(self, timestamp: int = None, comment: str = None):
54
+ def get_lookup(self, timestamp: int = None, comment: str = None) -> dict:
55
55
  """
56
56
  Get all available property selections.
57
57
  API key (Public).
@@ -62,7 +62,7 @@ class Property:
62
62
  """
63
63
  return self.api.request("/property/lookup", build_params(self.get_lookup, locals()))
64
64
 
65
- def get_timestamp(self, timestamp: int = None, comment: str = None):
65
+ def get_timestamp(self, timestamp: int = None, comment: str = None) -> dict:
66
66
  """
67
67
  Get current server time.
68
68
  API key (Public).
@@ -278,6 +278,17 @@ class Torn:
278
278
  """
279
279
  return self.api.request("/torn/merits", build_params(self.get_merits, locals()))
280
280
 
281
+ def get_museum(self, timestamp: int = None, comment: str = None) -> dict:
282
+ """
283
+ Get all museum sets.
284
+ API key (Public).
285
+ :param timestamp: Timestamp to bypass cache or get the data in specific point in time.
286
+ :param comment: Comment for your tool/service/bot/website to be visible in the logs.
287
+ :return: API response data.
288
+ :rtype: dict
289
+ """
290
+ return self.api.request("/torn/museum", build_params(self.get_museum, locals()))
291
+
281
292
  def get_organizedcrimes(self, timestamp: int = None, comment: str = None) -> dict:
282
293
  """
283
294
  Get organized crimes information.
@@ -765,6 +765,20 @@ class User:
765
765
  """
766
766
  return self.api.request("/user/skills", build_params(self.get_skills, locals()))
767
767
 
768
+ def get_snapshot(self, timestamp: int = None, comment: str = None) -> str:
769
+ """
770
+ Get daily active players snapshot CSV.
771
+ API key (Public).
772
+ Returns a CSV daily snapshot of active players.
773
+ This selection is standalone and cannot be used together with other selections.
774
+ CSV columns: id, name, gender, role, signed_up, last_action, level, rank, donator, networth, faction, company, spouse, display_case, bazaar, location, fed, fed_reason
775
+ :param timestamp: Timestamp to bypass cache or get the data in specific point in time.
776
+ :param comment: Comment for your tool/service/bot/website to be visible in the logs.
777
+ :return: API response data.
778
+ :rtype: str
779
+ """
780
+ return self.api.request("/user/snapshot", build_params(self.get_snapshot, locals()))
781
+
768
782
  def get_stocks(self, timestamp: int = None, comment: str = None) -> dict:
769
783
  """
770
784
  Get your stocks.
@@ -40,7 +40,7 @@ class Company:
40
40
  def __init__(self, api: TornAPIWrapperAsync):
41
41
  self.api = api
42
42
 
43
- async def get_applications(self, timestamp: int = None, comment: str = None):
43
+ async def get_applications(self, timestamp: int = None, comment: str = None) -> dict:
44
44
  """
45
45
  Get your company's applications.
46
46
  API key (Limited).
@@ -51,7 +51,7 @@ class Company:
51
51
  """
52
52
  return await self.api.request("/company/applications", build_params(self.get_applications, locals()))
53
53
 
54
- async def get_employees(self, company_id: int = None, striptags: bool = True, timestamp: int = None, comment: str = None):
54
+ async def get_employees(self, company_id: int = None, striptags: bool = True, timestamp: int = None, comment: str = None) -> dict:
55
55
  """
56
56
  Get my company's employees.
57
57
  API key (Public).
@@ -65,7 +65,7 @@ class Company:
65
65
  """
66
66
  return await self.api.request("/company/employees", build_params(self.get_employees, locals()))
67
67
 
68
- async def get_news(self, news_category: CpnyNewsCatOptions, striptags: bool = False, limit: int = 100, sort: SortOptions = "DESC", to: int = None, from_: int = None, timestamp: int = None, comment: str = None):
68
+ async def get_news(self, news_category: CpnyNewsCatOptions, striptags: bool = False, limit: int = 100, sort: SortOptions = "DESC", to: int = None, from_: int = None, timestamp: int = None, comment: str = None) -> dict:
69
69
  """
70
70
  Get your company's news details.
71
71
  API key (Minimal).
@@ -82,7 +82,7 @@ class Company:
82
82
  """
83
83
  return await self.api.request("/company/news", build_params(self.get_news, locals()))
84
84
 
85
- async def get_companies(self, company_type_id: int, striptags: bool = True, limit: int = 20, offset: int = None, timestamp: int = None, comment: str = None):
85
+ async def get_companies(self, company_type_id: int, striptags: bool = True, limit: int = 20, offset: int = None, timestamp: int = None, comment: str = None) -> dict:
86
86
  """
87
87
  Get a list of companies for a specific company type.
88
88
  API key (Public).
@@ -97,7 +97,7 @@ class Company:
97
97
  """
98
98
  return await self.api.request("/company/companies", build_params(self.get_companies, locals()))
99
99
 
100
- async def get_profile(self, company_id: int = None, striptags: bool = True, timestamp: int = None, comment: str = None):
100
+ async def get_profile(self, company_id: int = None, striptags: bool = True, timestamp: int = None, comment: str = None) -> dict:
101
101
  """
102
102
  Get a company's profile.
103
103
  API key (Public).
@@ -127,7 +127,7 @@ class Company:
127
127
  """
128
128
  return await self.api.request("/company/search", build_params(self.get_search, locals()))
129
129
 
130
- async def get_snapshot(self, timestamp: int = None, comment: str = None):
130
+ async def get_snapshot(self, timestamp: int = None, comment: str = None) -> str:
131
131
  """
132
132
  Get daily companies snapshot CSV.
133
133
  API key (Public).
@@ -137,11 +137,11 @@ class Company:
137
137
  :param timestamp: Timestamp to bypass cache or get the data in specific point in time.
138
138
  :param comment: Comment for your tool/service/bot/website to be visible in the logs.
139
139
  :return: API response data.
140
- :rtype: dict
140
+ :rtype: str
141
141
  """
142
142
  return await self.api.request("/company/snapshot", build_params(self.get_snapshot, locals()))
143
143
 
144
- async def get_stock(self, timestamp: int = None, comment: str = None):
144
+ async def get_stock(self, timestamp: int = None, comment: str = None) -> dict:
145
145
  """
146
146
  Get your company's stock.
147
147
  API key (Limited).
@@ -152,7 +152,7 @@ class Company:
152
152
  """
153
153
  return await self.api.request("/company/stock", build_params(self.get_stock, locals()))
154
154
 
155
- async def get_lookup(self, timestamp: int = None, comment: str = None):
155
+ async def get_lookup(self, timestamp: int = None, comment: str = None) -> dict:
156
156
  """
157
157
  API key (Public).
158
158
  :param timestamp: Timestamp to bypass cache.
@@ -162,7 +162,7 @@ class Company:
162
162
  """
163
163
  return await self.api.request("/company/lookup", build_params(self.get_lookup, locals()))
164
164
 
165
- async def get_timestamp(self, timestamp: int = None, comment: str = None):
165
+ async def get_timestamp(self, timestamp: int = None, comment: str = None) -> dict:
166
166
  """
167
167
  Get current server time.
168
168
  API key (Public).
@@ -402,7 +402,7 @@ class Faction:
402
402
  """
403
403
  return await self.api.request("/faction/search", build_params(self.get_search, locals()))
404
404
 
405
- async def get_snapshot(self, timestamp: int = None, comment: str = None) -> dict:
405
+ async def get_snapshot(self, timestamp: int = None, comment: str = None) -> str:
406
406
  """
407
407
  Get daily factions snapshot CSV.
408
408
  API key (Public).
@@ -412,7 +412,7 @@ class Faction:
412
412
  :param timestamp: Timestamp to bypass cache.
413
413
  :param comment: Comment for your tool/service/bot/website to be visible in the logs.
414
414
  :return: API response data.
415
- :rtype: dict
415
+ :rtype: str
416
416
  """
417
417
  return await self.api.request("/faction/snapshot", build_params(self.get_snapshot, locals()))
418
418
 
@@ -40,7 +40,7 @@ class Forum:
40
40
  def __init__(self, api: TornAPIWrapperAsync):
41
41
  self.api = api
42
42
 
43
- async def get_categories(self, timestamp: int = None, comment: str = None):
43
+ async def get_categories(self, timestamp: int = None, comment: str = None) -> dict:
44
44
  """
45
45
  Get publicly available forum categories.
46
46
  API key (Public).
@@ -51,7 +51,7 @@ class Forum:
51
51
  """
52
52
  return await self.api.request("/forum/categories", build_params(self.get_categories, locals()))
53
53
 
54
- async def get_posts(self, thread_id: int, striptags: bool = True, offset: int = None, sort: SortOptions = None, to: int = None, from_: int = None, timestamp: int = None, comment: str = None):
54
+ async def get_posts(self, thread_id: int, striptags: bool = True, offset: int = None, sort: SortOptions = None, to: int = None, from_: int = None, timestamp: int = None, comment: str = None) -> dict:
55
55
  """
56
56
  Get specific forum thread posts.
57
57
  API key (Public).
@@ -70,7 +70,7 @@ class Forum:
70
70
  """
71
71
  return await self.api.request("/forum/posts", build_params(self.get_posts, locals()))
72
72
 
73
- async def get_thread(self, thread_id: int, timestamp: int = None, comment: str = None):
73
+ async def get_thread(self, thread_id: int, timestamp: int = None, comment: str = None) -> dict:
74
74
  """
75
75
  Get specific thread details.
76
76
  API key (Public).
@@ -83,7 +83,7 @@ class Forum:
83
83
  """
84
84
  return await self.api.request("/forum/thread", build_params(self.get_thread, locals()))
85
85
 
86
- async def get_threads(self, category_ids: list[int] = None, limit: int = 100, sort: SortOptions = None, to: int = None, from_: int = None, timestamp: int = None, comment: str = None):
86
+ async def get_threads(self, category_ids: list[int] = None, limit: int = 100, sort: SortOptions = None, to: int = None, from_: int = None, timestamp: int = None, comment: str = None) -> dict:
87
87
  """
88
88
  Get threads across all forum categories or for specific public forum category or categories.
89
89
  API key (Public).
@@ -99,7 +99,7 @@ class Forum:
99
99
  """
100
100
  return await self.api.request("/forum/threads", build_params(self.get_threads, locals()))
101
101
 
102
- async def get_lookup(self, timestamp: int = None, comment: str = None):
102
+ async def get_lookup(self, timestamp: int = None, comment: str = None) -> dict:
103
103
  """
104
104
  Get all available forum selections.
105
105
  API key (Public).
@@ -39,7 +39,7 @@ class Property:
39
39
  def __init__(self, api: TornAPIWrapperAsync):
40
40
  self.api = api
41
41
 
42
- async def get_property(self, property_id: int, timestamp: int = None, comment: str = None):
42
+ async def get_property(self, property_id: int, timestamp: int = None, comment: str = None) -> dict:
43
43
  """
44
44
  Get a specific property.
45
45
  API key (Public).
@@ -51,7 +51,7 @@ class Property:
51
51
  """
52
52
  return await self.api.request("/property/property", build_params(self.get_property, locals()))
53
53
 
54
- async def get_lookup(self, timestamp: int = None, comment: str = None):
54
+ async def get_lookup(self, timestamp: int = None, comment: str = None) -> dict:
55
55
  """
56
56
  Get all available property selections.
57
57
  API key (Public).
@@ -62,7 +62,7 @@ class Property:
62
62
  """
63
63
  return await self.api.request("/property/lookup", build_params(self.get_lookup, locals()))
64
64
 
65
- async def get_timestamp(self, timestamp: int = None, comment: str = None):
65
+ async def get_timestamp(self, timestamp: int = None, comment: str = None) -> dict:
66
66
  """
67
67
  Get current server time.
68
68
  API key (Public).
@@ -278,6 +278,17 @@ class Torn:
278
278
  """
279
279
  return await self.api.request("/torn/merits", build_params(self.get_merits, locals()))
280
280
 
281
+ async def get_museum(self, timestamp: int = None, comment: str = None) -> dict:
282
+ """
283
+ Get all museum sets.
284
+ API key (Public).
285
+ :param timestamp: Timestamp to bypass cache or get the data in specific point in time.
286
+ :param comment: Comment for your tool/service/bot/website to be visible in the logs.
287
+ :return: API response data.
288
+ :rtype: dict
289
+ """
290
+ return await self.api.request("/torn/museum", build_params(self.get_museum, locals()))
291
+
281
292
  async def get_organizedcrimes(self, timestamp: int = None, comment: str = None) -> dict:
282
293
  """
283
294
  Get organized crimes information.
@@ -765,6 +765,20 @@ class User:
765
765
  """
766
766
  return await self.api.request("/user/skills", build_params(self.get_skills, locals()))
767
767
 
768
+ async def get_snapshot(self, timestamp: int = None, comment: str = None) -> str:
769
+ """
770
+ Get daily active players snapshot CSV.
771
+ API key (Public).
772
+ Returns a CSV daily snapshot of active players.
773
+ This selection is standalone and cannot be used together with other selections.
774
+ CSV columns: id, name, gender, role, signed_up, last_action, level, rank, donator, networth, faction, company, spouse, display_case, bazaar, location, fed, fed_reason
775
+ :param timestamp: Timestamp to bypass cache or get the data in specific point in time.
776
+ :param comment: Comment for your tool/service/bot/website to be visible in the logs.
777
+ :return: API response data.
778
+ :rtype: str
779
+ """
780
+ return await self.api.request("/user/snapshot", build_params(self.get_snapshot, locals()))
781
+
768
782
  async def get_stocks(self, timestamp: int = None, comment: str = None) -> dict:
769
783
  """
770
784
  Get your stocks.
@@ -0,0 +1 @@
1
+ text_response_endpoints = {"/user/snapshot", "/faction/snapshot", "/company/snapshot"}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: TornAPIWrapper
3
- Version: 2.10.0
3
+ Version: 2.11.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-16.07.2026-c4c4c4?cacheSeconds=300></a>
56
+ <a href="https://www.torn.com/api.html#:~:text=Patch%20Notes"><img src=https://img.shields.io/badge/patch-27.07.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
 
@@ -1 +0,0 @@
1
- text_response_endpoints = {"/company/snapshot"}
File without changes