arizona-forum-api-async 1.1.2__py3-none-any.whl → 1.2__py3-none-any.whl

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.
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: arizona-forum-api-async
3
- Version: 1.1.2
3
+ Version: 1.2
4
4
  Summary: Асинхронная Python библиотека для взаимодействия с форумом Arizona RP (forum.arizona-rp.com) без необходимости получения API ключа.
5
5
  Home-page: https://github.com/fakelag28/Arizona-Forum-API-Async
6
6
  Author: fakelag28
@@ -15,6 +15,15 @@ Requires-Dist: aiohttp-socks
15
15
  Requires-Dist: beautifulsoup4
16
16
  Requires-Dist: dukpy
17
17
  Requires-Dist: lxml
18
+ Dynamic: author
19
+ Dynamic: author-email
20
+ Dynamic: classifier
21
+ Dynamic: description
22
+ Dynamic: description-content-type
23
+ Dynamic: home-page
24
+ Dynamic: requires-dist
25
+ Dynamic: requires-python
26
+ Dynamic: summary
18
27
 
19
28
  # Arizona Forum API Async
20
29
 
@@ -68,8 +77,7 @@ pip install arizona-forum-api-async
68
77
 
69
78
  ## Документация и примеры
70
79
 
71
- * **[Wiki (Расширенная документация синхронной версии)](https://github.com/fakelag28/Arizona-Forum-API-Extended/wiki/Основная-документация):** Подробная документация для другой [расширенной синхронной версии](https://github.com/fakelag28/Arizona-Forum-API-Extended/).
72
- * **[Документация оригинальной библиотеки](https://tastybread123.github.io/Arizona-API/arz_api.html):** Документация для оригинальной синхронной библиотеки.
80
+ * **[Официальная документация](https://docs.fakelag.tech/arz_forum_api/general-info):** Полное руководство по использованию асинхронной версии API.
73
81
  * **[Папка с примерами](https://github.com/fakelag28/Arizona-Forum-API-Async/tree/main/examples):** Практические примеры, демонстрирующие различные возможности библиотеки.
74
82
 
75
83
  ---
@@ -1,5 +1,5 @@
1
1
  arizona_forum_async/__init__.py,sha256=LJfbSfw1rC8SKOl5AON1KYPnuKA8CamlgEaNRbMybI4,68
2
- arizona_forum_async/api.py,sha256=1xZ_ZP9mZ_JrfoC9GVZ41PaUMmqAADjyWrU576Js6SQ,94874
2
+ arizona_forum_async/api.py,sha256=E1J1kqV_M3C50F0jOqSFjXG-bxo8cy0LPvZTLThRmAc,95837
3
3
  arizona_forum_async/consts.py,sha256=AlYiIL9Z5t_HvZfaPKfQc72yg6cbl_VHvEs3GYIo3JU,527
4
4
  arizona_forum_async/exceptions.py,sha256=mcWTrRgl1m5ljMYK2-WlNXWnnKSzI5K7fd_EYxJ6-eo,563
5
5
  arizona_forum_async/bypass_antibot/__init__.py,sha256=8FaH5DlQ4acb-sjj-CUYmLsm1Y2zrB2zPVWayybokGo,21
@@ -10,7 +10,7 @@ arizona_forum_async/models/member_object.py,sha256=8DpJ-IbQkMnEQZAD9hWGRJT4rXECG
10
10
  arizona_forum_async/models/other.py,sha256=hC9Hg749RRSULUpZ_l_cT5VwpsrG1MOFGZ8MyP3nuCc,536
11
11
  arizona_forum_async/models/post_object.py,sha256=eJ3YrO1QbYtpCcErV1jfRfGFuXNmpXYwaIZT0h5sjVM,6097
12
12
  arizona_forum_async/models/thread_object.py,sha256=pCrv1yRY01EYEMEbQES6TUeR5yfJGPE0oaS17nTsmxI,5737
13
- arizona_forum_api_async-1.1.2.dist-info/METADATA,sha256=AfP0fY_pqGnzw5BrWU5sQjS4VMyI8RQgz1gGkdympMQ,5035
14
- arizona_forum_api_async-1.1.2.dist-info/WHEEL,sha256=A3WOREP4zgxI0fKrHUG8DC8013e3dK3n7a6HDbcEIwE,91
15
- arizona_forum_api_async-1.1.2.dist-info/top_level.txt,sha256=a9GRkw-bNV0GUAHWG7S7n5lGQvBuNu6dfXWF5WqEw6A,20
16
- arizona_forum_api_async-1.1.2.dist-info/RECORD,,
13
+ arizona_forum_api_async-1.2.dist-info/METADATA,sha256=D7WbqWOJGjlpNPO-gkJJ1EXQSBCbYzyu7qfHTd-Mm0o,4834
14
+ arizona_forum_api_async-1.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
15
+ arizona_forum_api_async-1.2.dist-info/top_level.txt,sha256=a9GRkw-bNV0GUAHWG7S7n5lGQvBuNu6dfXWF5WqEw6A,20
16
+ arizona_forum_api_async-1.2.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.7.0)
2
+ Generator: setuptools (80.9.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -148,6 +148,8 @@ class ArizonaAPI:
148
148
  params = {'_xfResponseType': 'json', '_xfToken': token}
149
149
  try:
150
150
  async with self._session.get(url, params=params) as response:
151
+ if response.status == 403:
152
+ return Member(self, user_id, None, None, None, [], 0, 0, 0, '#fff')
151
153
  response.raise_for_status()
152
154
  data = await response.json()
153
155
 
@@ -170,7 +172,7 @@ class ArizonaAPI:
170
172
  roles_container = soup.find('div', {'class': 'memberHeader-banners'})
171
173
  if roles_container:
172
174
  for i in roles_container.children:
173
- if i.text != '\n': roles.append(i.text.strip()) # Added strip()
175
+ if i.text != '\n': roles.append(i.text.strip())
174
176
 
175
177
  try:
176
178
  user_title_tag = soup.find('span', {'class': 'userTitle'})
@@ -207,6 +209,11 @@ class ArizonaAPI:
207
209
 
208
210
  return Member(self, user_id, username, user_title, avatar, roles, messages_count, reactions_count, trophies_count, username_color)
209
211
 
212
+ except aiohttp.ClientResponseError as e:
213
+ if e.status == 403:
214
+ return Member(self, user_id, None, None, None, [], 0, 0, 0, '#fff')
215
+ print(f"Ошибка сети при получении пользователя {user_id}: {e}")
216
+ return None
210
217
  except aiohttp.ClientError as e:
211
218
  print(f"Ошибка сети при получении пользователя {user_id}: {e}")
212
219
  return None
@@ -259,7 +266,13 @@ class ArizonaAPI:
259
266
 
260
267
 
261
268
  create_date_tag = content_soup.find('time')
262
- create_date = int(create_date_tag['data-time']) if create_date_tag and create_date_tag.has_attr('data-time') else 0
269
+ create_date = 0
270
+ if create_date_tag and create_date_tag.has_attr('data-time'):
271
+ data_time_value = create_date_tag['data-time']
272
+ if data_time_value.isdigit():
273
+ create_date = int(data_time_value)
274
+ else:
275
+ create_date = 0
263
276
 
264
277
  prefix_tag = content_h1_soup.find('span', {'class': 'label'})
265
278
  if prefix_tag:
@@ -314,11 +327,10 @@ class ArizonaAPI:
314
327
  try:
315
328
  creator = await self.get_member(creator_id)
316
329
  except Exception as e:
317
- print(f"Ошибка получения создателя ({creator_id}) для поста {post_id}: {e}")
330
+ creator = Member(self, creator_id, None, None, None, None, None, None, None, None)
318
331
  if not creator:
319
332
  creator = Member(self, creator_id, creator_info_tag.text, None, None, None, None, None, None, None)
320
333
  else:
321
- print(f"Не удалось найти информацию о создателе для поста {post_id}")
322
334
  return None
323
335
 
324
336
  thread = None
@@ -334,7 +346,13 @@ class ArizonaAPI:
334
346
  return None
335
347
 
336
348
  create_date_tag = post_article.find('time', {'class': 'u-dt'})
337
- create_date = int(create_date_tag['data-time']) if create_date_tag and create_date_tag.has_attr('data-time') else 0
349
+ create_date = 0
350
+ if create_date_tag and create_date_tag.has_attr('data-time'):
351
+ data_time_value = create_date_tag['data-time']
352
+ if data_time_value.isdigit():
353
+ create_date = int(data_time_value)
354
+ else:
355
+ create_date = 0
338
356
 
339
357
  html_content_tag = post_article.find('div', {'class': 'bbWrapper'})
340
358
  html_content = str(html_content_tag) if html_content_tag else ""
@@ -368,12 +386,13 @@ class ArizonaAPI:
368
386
  creator_tag = post_article.find('a', {'class': 'username'})
369
387
  if creator_tag and creator_tag.has_attr('data-user-id'):
370
388
  creator_id = int(creator_tag['data-user-id'])
371
- creator = await self.get_member(creator_id)
389
+ try:
390
+ creator = await self.get_member(creator_id)
391
+ except Exception as e:
392
+ creator = Member(self, creator_id, None, None, None, [], 0, 0, 0, '#fff')
372
393
  if not creator:
373
- print(f"Не удалось получить создателя ({creator_id}) для поста профиля {post_id}")
374
394
  return None
375
395
  else:
376
- print(f"Не удалось найти ID создателя для поста профиля {post_id}")
377
396
  return None
378
397
 
379
398
  profile_owner = None
@@ -392,7 +411,14 @@ class ArizonaAPI:
392
411
  return None
393
412
 
394
413
  create_date_tag = post_article.find('time')
395
- create_date = int(create_date_tag['data-time']) if create_date_tag and create_date_tag.has_attr('data-time') else 0
414
+ create_date = 0
415
+ if create_date_tag and create_date_tag.has_attr('data-time'):
416
+ data_time_value = create_date_tag['data-time']
417
+ if data_time_value.isdigit():
418
+ create_date = int(data_time_value)
419
+ else:
420
+ create_date = 0
421
+
396
422
 
397
423
  html_content_tag = post_article.find('div', {'class': 'bbWrapper'})
398
424
  html_content = str(html_content_tag) if html_content_tag else ""
@@ -450,9 +476,12 @@ class ArizonaAPI:
450
476
  latest_member_link = latest_member_dl.find('a', {'data-user-id': True})
451
477
  if latest_member_link and latest_member_link.has_attr('data-user-id'):
452
478
  last_user_id = int(latest_member_link['data-user-id'])
453
- last_register_member = await self.get_member(last_user_id)
479
+ try:
480
+ last_register_member = await self.get_member(last_user_id)
481
+ except Exception as e:
482
+ last_register_member = Member(self, last_user_id, None, None, None, [], 0, 0, 0, '#fff')
454
483
  except (AttributeError, ValueError, Exception) as e:
455
- print(f"Ошибка получения последнего зарегистрированного пользователя: {e}")
484
+ pass
456
485
 
457
486
 
458
487
  return Statistic(self, threads_count, posts_count, users_count, last_register_member)
@@ -672,7 +701,10 @@ class ArizonaAPI:
672
701
  return None
673
702
 
674
703
  parent_category_id = int(parent_category_id_str)
675
- return await self.get_category(parent_category_id)
704
+ try:
705
+ return await self.get_category(parent_category_id)
706
+ except Exception as e:
707
+ return None
676
708
  except aiohttp.ClientError as e:
677
709
  print(f"Ошибка сети при получении родительской категории для {category_id}: {e}")
678
710
  return None