funpaybotengine 0.3.4__tar.gz → 0.3.6__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 (118) hide show
  1. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/PKG-INFO +3 -3
  2. funpaybotengine-0.3.6/comments.json +1 -0
  3. funpaybotengine-0.3.6/examples/temp.py +34 -0
  4. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/examples/with_redis_storage.py +1 -1
  5. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/client/bot.py +2 -2
  6. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/methods/get_offer_fields.py +1 -1
  7. funpaybotengine-0.3.6/html.html +209 -0
  8. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/pyproject.toml +3 -3
  9. funpaybotengine-0.3.4/temp.py +0 -20
  10. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/.github/CODEOWNERS +0 -0
  11. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/.gitignore +0 -0
  12. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/.pre-commit-config.yaml +0 -0
  13. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/LICENSE +0 -0
  14. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/Makefile +0 -0
  15. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/README.md +0 -0
  16. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/examples/basic.py +0 -0
  17. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/__init__.py +0 -0
  18. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/base.py +0 -0
  19. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/client/__init__.py +0 -0
  20. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/client/default_hooks.py +0 -0
  21. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/client/session/__init__.py +0 -0
  22. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/client/session/aiohttp_session.py +0 -0
  23. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/client/session/base.py +0 -0
  24. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/client/session/http_methods.py +0 -0
  25. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/dispatching/__init__.py +0 -0
  26. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/dispatching/events/__init__.py +0 -0
  27. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/dispatching/events/base.py +0 -0
  28. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/dispatching/events/builtin_events.py +0 -0
  29. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/dispatching/filters/__init__.py +0 -0
  30. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/dispatching/filters/base.py +0 -0
  31. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/dispatching/filters/message_filters.py +0 -0
  32. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/dispatching/filters/order_filters.py +0 -0
  33. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/dispatching/handlers/__init__.py +0 -0
  34. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/dispatching/handlers/handler_manager.py +0 -0
  35. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/dispatching/routers/__init__.py +0 -0
  36. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/dispatching/routers/base.py +0 -0
  37. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/dispatching/routers/dispatcher.py +0 -0
  38. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/exceptions/__init__.py +0 -0
  39. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/exceptions/action_exceptions.py +0 -0
  40. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/exceptions/base.py +0 -0
  41. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/exceptions/bot_exceptions.py +0 -0
  42. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/exceptions/message_check_errors.py +0 -0
  43. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/exceptions/runner_exceptions.py +0 -0
  44. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/exceptions/session_exceptions.py +0 -0
  45. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/loggers.py +0 -0
  46. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/methods/__init__.py +0 -0
  47. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/methods/base.py +0 -0
  48. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/methods/calc_chips.py +0 -0
  49. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/methods/calc_lots.py +0 -0
  50. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/methods/check_banned.py +0 -0
  51. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/methods/delete_review.py +0 -0
  52. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/methods/get_2fa_status.py +0 -0
  53. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/methods/get_chat_history.py +0 -0
  54. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/methods/get_chat_page.py +0 -0
  55. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/methods/get_main_page.py +0 -0
  56. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/methods/get_my_chips_page.py +0 -0
  57. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/methods/get_my_offers_page.py +0 -0
  58. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/methods/get_offer_page.py +0 -0
  59. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/methods/get_order_page.py +0 -0
  60. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/methods/get_profile_page.py +0 -0
  61. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/methods/get_purchases.py +0 -0
  62. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/methods/get_reviews.py +0 -0
  63. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/methods/get_sales.py +0 -0
  64. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/methods/get_settings_page.py +0 -0
  65. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/methods/get_subcategory_page.py +0 -0
  66. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/methods/get_telegram_connect_url.py +0 -0
  67. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/methods/get_transactions.py +0 -0
  68. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/methods/get_transactions_page.py +0 -0
  69. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/methods/logout.py +0 -0
  70. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/methods/mute_chat.py +0 -0
  71. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/methods/raise_offers.py +0 -0
  72. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/methods/refund.py +0 -0
  73. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/methods/review.py +0 -0
  74. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/methods/runner_request.py +0 -0
  75. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/methods/save_offer_fields.py +0 -0
  76. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/methods/set_offers_hidden.py +0 -0
  77. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/methods/update_notice_channel.py +0 -0
  78. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/methods/upload_avatar.py +0 -0
  79. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/methods/upload_image.py +0 -0
  80. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/py.typed +0 -0
  81. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/runner/__init__.py +0 -0
  82. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/runner/config.py +0 -0
  83. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/runner/event_collector.py +0 -0
  84. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/runner/runner.py +0 -0
  85. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/storage/__init__.py +0 -0
  86. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/storage/base.py +0 -0
  87. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/storage/inmemory.py +0 -0
  88. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/storage/redis.py +0 -0
  89. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/types/__init__.py +0 -0
  90. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/types/base.py +0 -0
  91. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/types/calc.py +0 -0
  92. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/types/categories.py +0 -0
  93. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/types/chat.py +0 -0
  94. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/types/common.py +0 -0
  95. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/types/common_page_elements.py +0 -0
  96. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/types/enums.py +0 -0
  97. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/types/finances.py +0 -0
  98. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/types/messages.py +0 -0
  99. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/types/offers.py +0 -0
  100. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/types/orders.py +0 -0
  101. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/types/pages/__init__.py +0 -0
  102. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/types/pages/base.py +0 -0
  103. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/types/pages/chat_page.py +0 -0
  104. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/types/pages/main_page.py +0 -0
  105. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/types/pages/my_chips_page.py +0 -0
  106. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/types/pages/my_offers_page.py +0 -0
  107. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/types/pages/offer_page.py +0 -0
  108. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/types/pages/order_page.py +0 -0
  109. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/types/pages/profile_page.py +0 -0
  110. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/types/pages/settings_page.py +0 -0
  111. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/types/pages/subcategory_page.py +0 -0
  112. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/types/pages/transactions_page.py +0 -0
  113. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/types/requests/__init__.py +0 -0
  114. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/types/requests/runner.py +0 -0
  115. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/types/reviews.py +0 -0
  116. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/types/settings.py +0 -0
  117. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/types/updates.py +0 -0
  118. {funpaybotengine-0.3.4 → funpaybotengine-0.3.6}/funpaybotengine/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: funpaybotengine
3
- Version: 0.3.4
3
+ Version: 0.3.6
4
4
  Summary: Framework for creating FunPay bots.
5
5
  Project-URL: Telegram, https://t.me/funpay_hub
6
6
  Project-URL: Issues, https://github.com/funpayhub/funpaybotengine/issues
@@ -19,9 +19,9 @@ Classifier: Programming Language :: Python :: 3.14
19
19
  Classifier: Programming Language :: Python :: 3.15
20
20
  Requires-Python: >=3.10
21
21
  Requires-Dist: aiohttp-socks~=0.10.1
22
- Requires-Dist: aiohttp~=3.13.3
22
+ Requires-Dist: aiohttp>=3.13.3
23
23
  Requires-Dist: eventry<0.4.0,>=0.3.3
24
- Requires-Dist: funpayparsers<1.0.0,>=0.5.10
24
+ Requires-Dist: funpayparsers<1.0.0,>=0.5.14
25
25
  Requires-Dist: pydantic~=2.11.7
26
26
  Provides-Extra: dev
27
27
  Requires-Dist: mypy>=1.10.1; extra == 'dev'
@@ -0,0 +1 @@
1
+ []
@@ -0,0 +1,34 @@
1
+ from __future__ import annotations
2
+
3
+ import asyncio
4
+
5
+ from funpaybotengine import Bot, Dispatcher
6
+ from funpaybotengine.types import Message
7
+
8
+
9
+ bot: Bot = Bot(golden_key='12345678901234567890123456789012') # Создаем экземляр бота
10
+ dp: Dispatcher = Dispatcher() # Создаем диспетчер - корневой роутер
11
+
12
+
13
+ # Регистрируем хэндлер на событие о новом сообщении
14
+ # Хэндлер отработает на абсолютно любое сообщение.
15
+ @dp.on_new_message()
16
+ async def print_message(message: Message) -> None:
17
+ print(f'Пришло новое сообщение от {message.sender_username}: ')
18
+ print(message.text or message.image_url)
19
+
20
+
21
+ # Регистрируем хэндлер на событие о новом сообщении
22
+ # Хэндлер сработает тольько в том случае, если текст сообщения == 'привет'
23
+ @dp.on_new_message(lambda message: message.text.lower() == 'привет')
24
+ async def echo(message: Message) -> None:
25
+ await message.reply('Пока')
26
+
27
+
28
+ async def main() -> None:
29
+ # Запускаем цикл получения новых событий.
30
+ await bot.listen_events(dp)
31
+
32
+
33
+ if __name__ == '__main__':
34
+ asyncio.run(main())
@@ -46,7 +46,7 @@ from contextlib import suppress
46
46
  from redis.asyncio import Redis
47
47
  from funpaybotengine import Bot, Dispatcher
48
48
  from funpaybotengine.types import Message
49
- from funpaybotengine.storage import RedisStorage
49
+ from funpaybotengine.storage.redis import RedisStorage
50
50
 
51
51
 
52
52
  # It is recommended to use more reliable data storage means, some kind of relational databases
@@ -308,7 +308,7 @@ class Bot:
308
308
  if category is None:
309
309
  raise ValueError(f'Category with ID {category_id} not found.')
310
310
  subcategory_ids = tuple(
311
- i.id for i in category.subcategories if i.type is SubcategoryType.COMMON
311
+ i.id for i in category.subcategories if i.type is SubcategoryType.OFFERS
312
312
  )
313
313
  return (
314
314
  await RaiseOffers(
@@ -763,7 +763,7 @@ class Bot:
763
763
  elif isinstance(subcategory, Subcategory):
764
764
  t, i = subcategory.type, subcategory.id
765
765
  elif isinstance(offer_id, int):
766
- t, i = SubcategoryType.COMMON, 1
766
+ t, i = SubcategoryType.OFFERS, 1
767
767
  else:
768
768
  raise ValueError(
769
769
  f'Invalid subcategory input: '
@@ -34,7 +34,7 @@ class GetOfferFields(FunPayMethod[OfferFields], BaseModel):
34
34
  offer_id: int | None = None,
35
35
  locale: Language | None = None,
36
36
  ):
37
- if subcategory_type is SubcategoryType.COMMON:
37
+ if subcategory_type is SubcategoryType.OFFERS:
38
38
  url = 'lots/offerEdit'
39
39
  data = {'offer': offer_id} if offer_id is not None else {'node': subcategory_id}
40
40
  else:
@@ -0,0 +1,209 @@
1
+ <!DOCTYPE html>
2
+ <html lang="ru">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title>Редактирование предложения / FunPay</title><link href="https://funpay.com/700/css/main.css" rel="stylesheet" media="all">
6
+ <script src="https://funpay.com/517/js/bundle.js"></script>
7
+ <script src="https://funpay.com/517/js/lots.min.js"></script>
8
+ <meta name="viewport" content="width=device-width, initial-scale=1">
9
+ <link rel="alternate" hreflang="ru" href="https://funpay.com/lots/offerEdit?offer=6069527"><link rel="alternate" hreflang="uk" href="https://funpay.com/lots/offerEdit?offer=6069527"><link rel="alternate" hreflang="en" href="https://funpay.com/en/lots/offerEdit?offer=6069527"><link rel="alternate" hreflang="x-default" href="https://funpay.com/en/lots/offerEdit?offer=6069527"><script type="application/ld+json">[{"@context":"http:\/\/schema.org\/","@type":"WebSite","name":"FunPay","url":"https:\/\/funpay.com\/"}]</script><link rel="preload" href="/700/fonts/Graphik-Bold-Web.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="/700/fonts/Graphik-Semibold-Web.woff2" as="font" type="font/woff2" crossorigin><link rel="manifest" href="/manifest.json">
10
+ </head>
11
+ <body class="with-corner-cd" data-app-data="{&quot;locale&quot;:&quot;ru&quot;,&quot;csrf-token&quot;:&quot;8g2f8avvrn4cd02m&quot;,&quot;userId&quot;:4067817,&quot;webpush&quot;:{&quot;app&quot;:&quot;C356D-32008&quot;,&quot;enabled&quot;:true,&quot;hwid-required&quot;:true}}">
12
+ <!--suppress ALL -->
13
+
14
+ <script>
15
+ window.dataLayer = window.dataLayer || [];
16
+ function gtag(){dataLayer.push(arguments);}
17
+
18
+ gtag('consent', 'default', {"analytics_storage":"granted","ad_storage":"granted","ad_user_data":"granted","ad_personalization":"denied"});
19
+ gtag('config', 'AW-11153904331');
20
+
21
+ window.app.analytics.addEvents([{"event":"FunpayPageview","userId":"4067817","clientId":""}]);
22
+ </script>
23
+
24
+ <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
25
+ new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
26
+ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
27
+ 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
28
+ })(window,document,'script','dataLayer','GTM-TWG83B');</script>
29
+
30
+ <script type="text/javascript" >
31
+ (function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
32
+ m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})
33
+ (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");
34
+
35
+ function initYM() {
36
+ ym(36956765, "init", {
37
+ clickmap: false,
38
+ trackLinks: true,
39
+ accurateTrackBounce: true,
40
+ webvisor: false,
41
+ ut: "noindex",
42
+ ecommerce: "dataLayer"
43
+ });
44
+ }
45
+ initYM();
46
+ </script>
47
+ <noscript><div><img src="https://mc.yandex.ru/watch/36956765?ut=noindex" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
48
+ <div class="wrapper">
49
+ <div class="wrapper-content">
50
+ <div class="corner-cd-container"><div class="corner-cd"><img src="/img/circles/funpay_poke.jpg" alt=""></div></div>
51
+ <header id="header">
52
+ <div class="container">
53
+ <div id="global-origin"></div>
54
+ <nav class="navbar navbar-default">
55
+ <div class="hide-navbar"></div>
56
+ <div class="container-fluid">
57
+ <div class="navbar-header">
58
+ <button type="button" class="collapsed navbar-toggle navbar-toggle-logged" data-toggle="collapse" data-target="#navbar" aria-expanded="false">
59
+ <span class="user-link-photo"><img src="https://sfunpay.com/s/avatar/fh/97/fh97o5taxakvmvm0r3e8.jpg" alt=""></span>
60
+ <span class="caret"></span>
61
+ </button>
62
+ <a href="https://funpay.com/chat/" class="navbar-xs-icon icon-chat">
63
+ <svg viewBox="0 0 26 26"><circle cx="13" cy="13" r="12"/><polygon points="26 26, 12 20, 20 12"/></svg>
64
+ <span></span>
65
+ </a>
66
+ <a href="https://funpay.com/" class="navbar-brand">
67
+ <img src="/img/layout/logo-funpay-white.svg" alt="FunPay" class="logo-white"/>
68
+ <img src="/img/layout/logo-funpay.svg" alt="FunPay" class="logo-color"/>
69
+ </a>
70
+ <form action="https://funpay.com/games/promoFilter" method="post" class="navbar-form navbar-left dropdown promo-games-filter">
71
+ <div class="form-group">
72
+ <input type="text" name="query" class="form-control dropdown-toggle" data-toggle="dropdown" role="searchbox" placeholder="Поиск по 773 играм" autocomplete="off"/>
73
+ <div class="dropdown-menu dropdown-autocomplete hidden"></div>
74
+ </div>
75
+ <button type="submit" class="btn btn-link"><i class="fa fa-search"></i></button>
76
+ </form>
77
+ </div>
78
+ <div class="nav-container">
79
+ <div class="collapse navbar-collapse no-transition" id="navbar">
80
+ <ul class="nav navbar-nav">
81
+ <li class="visible-xs visible-sm">
82
+ <a href="https://funpay.com/users/4067817/" class="user-link-dropdown">
83
+ <div class="user-link-name">EjikMLBB</div>
84
+ <div class="user-link-desc">Профиль</div>
85
+ </a>
86
+ </li> <li class="dropdown"><a href="https://funpay.com/" class="menu-item-info dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Помощь <span class="caret"></span></a><ul class="dropdown-menu"><li><a href="https://funpay.com/trade/info" class="menu-item-trade_info">Правила</a></li>
87
+ <li><a href="https://support.funpay.com/" class="menu-item-support" target="_blank">Центр помощи</a></li>
88
+ <li><a href="https://support.funpay.com/tickets/new" class="menu-item-request" target="_blank">Отправить запрос</a></li>
89
+ <li><a href="https://support.funpay.com/tickets" class="menu-item-requests" target="_blank">Мои запросы</a></li></ul></li> <li><a href="https://funpay.com/promo/lootery" class="menu-item-lootery">Лутерея</a></li> </ul>
90
+ <ul class="nav navbar-nav navbar-right logged">
91
+ <li><a href="https://funpay.com/orders/" class="menu-item-orders">Покупки <span class="badge badge-orders">1</span></a></li> <li><a href="https://funpay.com/orders/trade" class="menu-item-trade">Продажи <span class="badge badge-trade">2</span></a></li> <li><a href="https://funpay.com/chat/" class="menu-item-chat">Сообщения <span class="badge badge-chat hidden">0</span></a></li> <li><a href="https://funpay.com/account/balance" class="menu-item-balance">Финансы <span class="badge badge-balance">62 ₽</span></a></li> <li class="dropdown hidden-sm hidden-xs">
92
+ <a href="javascript:void(0)" class="dropdown-toggle user-link" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
93
+ <div class="user-link-photo"><img src="https://sfunpay.com/s/avatar/fh/97/fh97o5taxakvmvm0r3e8.jpg" alt=""/></div>
94
+ <span class="caret"></span>
95
+ </a>
96
+ <ul class="dropdown-menu">
97
+ <li>
98
+ <a href="https://funpay.com/users/4067817/" class="user-link-dropdown">
99
+ <div class="user-link-name">EjikMLBB</div>
100
+ <div class="user-link-desc">Профиль</div>
101
+ </a>
102
+ </li> <li><a href="https://funpay.com/account/settings" class="menu-item-settings">Настройки</a></li><li class="dropdown">
103
+ <a href="javascript:void(0)" class="dropdown-toggle menu-item-langs" data-toggle="dropdown">
104
+ По-русски <i class="menu-icon menu-icon-lang-ru"></i> <span class="caret"></span>
105
+ </a>
106
+ <ul class="dropdown-menu">
107
+ <li>
108
+ <a href="https://funpay.com/lots/offerEdit?offer=6069527&amp;setlocale=en" class="menu-item-lang">
109
+ English <i class="menu-icon menu-icon-lang-en"></i>
110
+ </a>
111
+ </li>
112
+ </ul>
113
+ </li><li class="dropdown">
114
+ <a href="javascript:void(0)" class="dropdown-toggle menu-item-currencies" data-toggle="dropdown">
115
+ Рубли <span class="caret"></span>
116
+ </a>
117
+ <ul class="dropdown-menu">
118
+ <li>
119
+ <a href="javascript:void(0)" data-cy="usd" class="user-cy-switcher menu-item-currency">
120
+ Доллары </a>
121
+ </li>
122
+ <li>
123
+ <a href="javascript:void(0)" data-cy="eur" class="user-cy-switcher menu-item-currency">
124
+ Евро </a>
125
+ </li>
126
+ </ul>
127
+ </li><li><a href="https://funpay.com/account/logout?token=a1fe429858772f68" class="menu-item-logout">Выйти</a></li> </ul>
128
+ </li>
129
+ <li class="visible-xs visible-sm"><a href="https://funpay.com/account/settings" class="menu-item-settings">Настройки</a></li><li class="visible-xs visible-sm dropdown">
130
+ <a href="javascript:void(0)" class="dropdown-toggle menu-item-langs" data-toggle="dropdown">
131
+ По-русски <i class="menu-icon menu-icon-lang-ru"></i> <span class="caret"></span>
132
+ </a>
133
+ <ul class="dropdown-menu">
134
+ <li>
135
+ <a href="https://funpay.com/lots/offerEdit?offer=6069527&amp;setlocale=en" class="menu-item-lang">
136
+ English <i class="menu-icon menu-icon-lang-en"></i>
137
+ </a>
138
+ </li>
139
+ </ul>
140
+ </li><li class="visible-xs visible-sm dropdown">
141
+ <a href="javascript:void(0)" class="dropdown-toggle menu-item-currencies" data-toggle="dropdown">
142
+ Рубли <span class="caret"></span>
143
+ </a>
144
+ <ul class="dropdown-menu">
145
+ <li>
146
+ <a href="javascript:void(0)" data-cy="usd" class="user-cy-switcher menu-item-currency">
147
+ Доллары </a>
148
+ </li>
149
+ <li>
150
+ <a href="javascript:void(0)" data-cy="eur" class="user-cy-switcher menu-item-currency">
151
+ Евро </a>
152
+ </li>
153
+ </ul>
154
+ </li><li class="visible-xs visible-sm"><a href="https://funpay.com/account/logout?token=a1fe429858772f68" class="menu-item-logout">Выйти</a></li> </ul>
155
+ </div>
156
+ </div>
157
+ </div>
158
+ </nav>
159
+ <div id="chat-notification" class="hidden" data-message="0">
160
+ <audio class="loud"><source src="/audio/chat_loud.mp3" type="audio/mpeg"></audio>
161
+ <audio class="quiet"><source src="/audio/chat_quiet.mp3" type="audio/mpeg"></audio>
162
+ </div>
163
+ <div id="live-counters" class="hidden" data-orders="5iz07iil" data-chat="pp9ddrdb"></div>
164
+ </div>
165
+ </header>
166
+
167
+ <section id="content-body">
168
+ <div class="search-fade"></div>
169
+ <div id="content" class="content-lots content-lots-offeredit"><div class="container">
170
+ <div class="row">
171
+ <div class="col-md-2 col-sm-3">
172
+ <div class="back-link">
173
+ <a href="https://funpay.com/" class="js-back-link"><i class="fa fa-chevron-left"></i><span class="inside">Назад</span></a>
174
+ </div>
175
+ </div>
176
+ <div class="col-md-10 col-sm-9">
177
+ <div class="page-content">
178
+ <h1 class="page-header page-header-no-hr">Редактирование предложения</h1>
179
+ <p class="lead">Предложение не найдено.</p>
180
+ </div>
181
+ </div>
182
+ </div>
183
+ </div></div> </section>
184
+ </div>
185
+
186
+ <div class="wrapper-footer">
187
+ <div class="container">
188
+ <footer id="footer">
189
+ <div class="footer-block footer-block-strings">
190
+ <span>&copy; 2015&ndash;2026 FunPay</span>
191
+ <a href="https://funpay.com/pages/privacyPolicy">Политика конфиденциальности</a> <a href="https://funpay.com/pages/cookiePolicy">Политика cookie</a> <a href="https://funpay.com/contacts.html" target="_blank" rel="nofollow">Контакты</a> </div>
192
+ <div class="footer-block footer-block-social">
193
+ <a class="btn btn-gray btn-round" href="https://t.me/+zC7jZ0ytESc1ZjUy" target="_blank" rel="nofollow">
194
+ <svg width="25" height="20"><use xlink:href="/3/img/layout/sprites.svg#social-logo-telegram"></use></svg> </a>
195
+ <a class="btn btn-gray btn-round" href="https://www.youtube.com/c/funpayofficial" target="_blank" rel="nofollow"><i class="fab fa-youtube"></i></a>
196
+ <a class="btn btn-gray btn-round" href="https://vk.com/funpay" target="_blank" rel="nofollow"><i class="fab fa-vk"></i></a>
197
+ <a class="btn btn-gray btn-round" href="https://www.facebook.com/funpay.official" target="_blank" rel="nofollow"><i class="fab fa-facebook-square"></i></a>
198
+ </div>
199
+ <div class="footer-block footer-block-als">
200
+ <img src="/img/layout/als-logo.svg" alt="">
201
+ <div>Задизайнено<br>в <a href="https://www.artlebedev.ru/funpay/" target="_blank">Студии Артемия<br>Лебедева</a></div>
202
+ </div>
203
+ </footer>
204
+ </div>
205
+ </div>
206
+ </div>
207
+
208
+ </body>
209
+ </html>
@@ -1,15 +1,15 @@
1
1
  [project]
2
2
  name = "funpaybotengine"
3
- version = "0.3.4"
3
+ version = "0.3.6"
4
4
  description = "Framework for creating FunPay bots."
5
5
  requires-python = ">=3.10"
6
6
  readme = "README.md"
7
7
  license = "MIT"
8
8
  dependencies = [
9
- "aiohttp~=3.13.3",
9
+ "aiohttp>=3.13.3",
10
10
  "aiohttp-socks~=0.10.1",
11
11
  "eventry>=0.3.3,<0.4.0",
12
- "funpayparsers>=0.5.10,<1.0.0",
12
+ "funpayparsers>=0.5.14,<1.0.0",
13
13
  "pydantic~=2.11.7",
14
14
  ]
15
15
  authors = [
@@ -1,20 +0,0 @@
1
- from funpaybotengine import Bot
2
-
3
- bot = Bot(golden_key='ldc86q3vuwdx30wi7koqsr9scpsejash', proxy='socks5://user148429:dgej93@45.39.104.142:19392')
4
-
5
-
6
- async def main():
7
- result = await bot.get_my_offers_page(2418)
8
- print(result.subcategory_id)
9
- print(result.category_id)
10
- for i in result.offers.values():
11
- print(i.id)
12
- print(i.title)
13
- print(i.price)
14
- print(i.auto_delivery)
15
- print(i.seller)
16
-
17
-
18
- if __name__ == '__main__':
19
- import asyncio
20
- asyncio.run(main())
File without changes