funpaybotengine 0.4.4__tar.gz → 0.5.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.
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/PKG-INFO +2 -2
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/client/bot.py +1 -1
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/client/default_hooks.py +1 -1
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/dispatching/events/builtin_events.py +6 -2
- funpaybotengine-0.5.0/funpaybotengine/dispatching/routers/base.py +135 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/methods/get_main_page.py +1 -3
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/methods/get_subcategory_page.py +1 -1
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/runner/runner.py +7 -2
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/types/calc.py +1 -1
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/types/common.py +2 -2
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/pyproject.toml +2 -2
- funpaybotengine-0.4.4/funpaybotengine/dispatching/routers/base.py +0 -76
- funpaybotengine-0.4.4/temp.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/.github/CODEOWNERS +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/.gitignore +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/.pre-commit-config.yaml +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/LICENSE +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/Makefile +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/README.md +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/examples/basic.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/examples/temp.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/examples/with_redis_storage.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/__init__.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/base.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/client/__init__.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/client/session/__init__.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/client/session/aiohttp_session.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/client/session/base.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/client/session/http_methods.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/dispatching/__init__.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/dispatching/events/__init__.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/dispatching/events/base.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/dispatching/filters/__init__.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/dispatching/filters/base.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/dispatching/filters/message_filters.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/dispatching/filters/order_filters.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/dispatching/handlers/__init__.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/dispatching/handlers/handler_manager.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/dispatching/routers/__init__.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/dispatching/routers/dispatcher.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/exceptions/__init__.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/exceptions/action_exceptions.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/exceptions/base.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/exceptions/bot_exceptions.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/exceptions/message_check_errors.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/exceptions/runner_exceptions.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/exceptions/session_exceptions.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/loggers.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/methods/__init__.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/methods/base.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/methods/calc_chips.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/methods/calc_lots.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/methods/check_banned.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/methods/delete_review.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/methods/get_2fa_status.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/methods/get_chat_history.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/methods/get_chat_page.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/methods/get_my_chips_page.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/methods/get_my_offers_page.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/methods/get_offer_fields.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/methods/get_offer_page.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/methods/get_order_page.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/methods/get_profile_page.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/methods/get_purchases.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/methods/get_reviews.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/methods/get_sales.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/methods/get_settings_page.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/methods/get_telegram_connect_url.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/methods/get_transactions.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/methods/get_transactions_page.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/methods/logout.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/methods/mute_chat.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/methods/raise_offers.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/methods/refund.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/methods/review.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/methods/runner_request.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/methods/save_offer_fields.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/methods/set_offers_hidden.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/methods/update_notice_channel.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/methods/upload_avatar.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/methods/upload_image.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/py.typed +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/runner/__init__.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/runner/config.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/runner/event_collector.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/storage/__init__.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/storage/base.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/storage/inmemory.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/storage/redis.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/types/__init__.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/types/base.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/types/categories.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/types/chat.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/types/common_page_elements.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/types/enums.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/types/finances.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/types/messages.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/types/offers.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/types/orders.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/types/pages/__init__.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/types/pages/base.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/types/pages/chat_page.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/types/pages/main_page.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/types/pages/my_chips_page.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/types/pages/my_offers_page.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/types/pages/offer_page.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/types/pages/order_page.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/types/pages/profile_page.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/types/pages/settings_page.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/types/pages/subcategory_page.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/types/pages/transactions_page.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/types/requests/__init__.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/types/requests/runner.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/types/reviews.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/types/settings.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/types/updates.py +0 -0
- {funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: funpaybotengine
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.5.0
|
|
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
|
|
@@ -21,7 +21,7 @@ Requires-Python: >=3.10
|
|
|
21
21
|
Requires-Dist: aiohttp-socks>=0.11.0
|
|
22
22
|
Requires-Dist: aiohttp<3.14,>=3.13.3
|
|
23
23
|
Requires-Dist: eventry<1.0.0,>=0.3.6
|
|
24
|
-
Requires-Dist: funpayparsers<
|
|
24
|
+
Requires-Dist: funpayparsers<0.7.0,>=0.6.0
|
|
25
25
|
Requires-Dist: pydantic<2.13,>=2.12
|
|
26
26
|
Provides-Extra: dev
|
|
27
27
|
Requires-Dist: mypy>=1.10.1; extra == 'dev'
|
|
@@ -878,7 +878,7 @@ class Bot:
|
|
|
878
878
|
if (
|
|
879
879
|
not skip_locale_check
|
|
880
880
|
and self._locale
|
|
881
|
-
and self._locale != Language.
|
|
881
|
+
and self._locale != Language.from_lang_code(result.locale)
|
|
882
882
|
):
|
|
883
883
|
result = await self._on_locale_mismatch_hook(method, self, result)
|
|
884
884
|
|
|
@@ -24,7 +24,7 @@ async def force_locale_hook(
|
|
|
24
24
|
response: Response[R],
|
|
25
25
|
) -> Response[R]:
|
|
26
26
|
async with lock:
|
|
27
|
-
if bot.locale != Language.
|
|
27
|
+
if bot.locale != Language.from_lang_code(response.locale):
|
|
28
28
|
await bot.update(change_locale=bot._locale)
|
|
29
29
|
return await method.execute(as_=bot)
|
|
30
30
|
|
{funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/dispatching/events/builtin_events.py
RENAMED
|
@@ -2,6 +2,7 @@ from __future__ import annotations
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
__all__ = [
|
|
5
|
+
'NewEventsPack',
|
|
5
6
|
'ChatChangedEvent',
|
|
6
7
|
'NewMessageEvent',
|
|
7
8
|
'OrderEvent',
|
|
@@ -38,9 +39,12 @@ from funpaybotengine.types.chat import PrivateChatPreview
|
|
|
38
39
|
from funpaybotengine.types.orders import OrderPreview
|
|
39
40
|
from funpaybotengine.types.reviews import Review
|
|
40
41
|
from funpaybotengine.types.messages import Message
|
|
42
|
+
from funpaybotengine.types.pages.order_page import OrderPage
|
|
41
43
|
|
|
42
|
-
from .base import RunnerEvent
|
|
43
|
-
|
|
44
|
+
from .base import RunnerEvent, BotEngineEvent
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
class NewEventsPack(BotEngineEvent[str], event_name='new_events_pack'): ...
|
|
44
48
|
|
|
45
49
|
|
|
46
50
|
class ChatChangedEvent(RunnerEvent[PrivateChatPreview], event_name='chat_changed'):
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
__all__ = ['Router']
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
from typing import cast
|
|
8
|
+
|
|
9
|
+
from eventry.asyncio.router import Router as BaseRouter
|
|
10
|
+
|
|
11
|
+
from funpaybotengine.dispatching import events
|
|
12
|
+
from funpaybotengine.dispatching.handlers.handler_manager import HandlerManager
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class Router(BaseRouter):
|
|
16
|
+
def __init__(self, name: str | None = None) -> None:
|
|
17
|
+
super().__init__(name=name or f'Router{id(self)}')
|
|
18
|
+
self.set_default_handler_manager(HandlerManager(self, 'default', None))
|
|
19
|
+
|
|
20
|
+
self.on_chat_changed = self._add_handler_manager(
|
|
21
|
+
HandlerManager(self, 'on_chat_changed', events.ChatChangedEvent.__event_name__)
|
|
22
|
+
)
|
|
23
|
+
self.on_new_message = self._add_handler_manager(
|
|
24
|
+
HandlerManager(self, 'on_new_message', events.NewMessageEvent.__event_name__)
|
|
25
|
+
)
|
|
26
|
+
self.on_new_sale = self._add_handler_manager(
|
|
27
|
+
HandlerManager(self, 'on_new_sale', events.NewSaleEvent.__event_name__)
|
|
28
|
+
)
|
|
29
|
+
self.on_sale_status_changed = self._add_handler_manager(
|
|
30
|
+
HandlerManager(
|
|
31
|
+
self, 'on_sale_status_changed', events.SaleStatusChangedEvent.__event_name__
|
|
32
|
+
)
|
|
33
|
+
)
|
|
34
|
+
self.on_sale_closed = self._add_handler_manager(
|
|
35
|
+
HandlerManager(self, 'on_sale_closed', events.SaleClosedEvent.__event_name__)
|
|
36
|
+
)
|
|
37
|
+
self.on_sale_closed_by_admin = self._add_handler_manager(
|
|
38
|
+
HandlerManager(
|
|
39
|
+
self, 'on_sale_closed_by_admin', events.SaleClosedByAdminEvent.__event_name__
|
|
40
|
+
)
|
|
41
|
+
)
|
|
42
|
+
self.on_sale_refunded = self._add_handler_manager(
|
|
43
|
+
HandlerManager(self, 'on_sale_refunded', events.SaleRefundedEvent.__event_name__)
|
|
44
|
+
)
|
|
45
|
+
self.on_sale_partially_refunded = self._add_handler_manager(
|
|
46
|
+
HandlerManager(
|
|
47
|
+
self,
|
|
48
|
+
'on_sale_partially_refunded',
|
|
49
|
+
events.SalePartiallyRefundedEvent.__event_name__,
|
|
50
|
+
)
|
|
51
|
+
)
|
|
52
|
+
self.on_sale_reopened = self._add_handler_manager(
|
|
53
|
+
HandlerManager(self, 'on_sale_reopened', events.SaleReopenedEvent.__event_name__)
|
|
54
|
+
)
|
|
55
|
+
self.on_new_purchase = self._add_handler_manager(
|
|
56
|
+
HandlerManager(self, 'on_new_purchase', events.NewPurchaseEvent.__event_name__)
|
|
57
|
+
)
|
|
58
|
+
self.on_purchase_status_changed = self._add_handler_manager(
|
|
59
|
+
HandlerManager(
|
|
60
|
+
self,
|
|
61
|
+
'on_purchase_status_changed',
|
|
62
|
+
events.PurchaseStatusChangedEvent.__event_name__,
|
|
63
|
+
)
|
|
64
|
+
)
|
|
65
|
+
self.on_purchase_closed = self._add_handler_manager(
|
|
66
|
+
HandlerManager(self, 'on_purchase_closed', events.PurchaseClosedEvent.__event_name__)
|
|
67
|
+
)
|
|
68
|
+
self.on_purchase_closed_by_admin = self._add_handler_manager(
|
|
69
|
+
HandlerManager(
|
|
70
|
+
self,
|
|
71
|
+
'on_purchase_closed_by_admin',
|
|
72
|
+
events.PurchaseClosedByAdminEvent.__event_name__,
|
|
73
|
+
)
|
|
74
|
+
)
|
|
75
|
+
self.on_purchase_refunded = self._add_handler_manager(
|
|
76
|
+
HandlerManager(
|
|
77
|
+
self, 'on_purchase_refunded', events.PurchaseRefundedEvent.__event_name__
|
|
78
|
+
)
|
|
79
|
+
)
|
|
80
|
+
self.on_purchase_partially_refunded = self._add_handler_manager(
|
|
81
|
+
HandlerManager(
|
|
82
|
+
self,
|
|
83
|
+
'on_purchase_partially_refunded',
|
|
84
|
+
events.PurchasePartiallyRefundedEvent.__event_name__,
|
|
85
|
+
)
|
|
86
|
+
)
|
|
87
|
+
self.on_purchase_reopened = self._add_handler_manager(
|
|
88
|
+
HandlerManager(
|
|
89
|
+
self, 'on_purchase_reopened', events.PurchaseReopenedEvent.__event_name__
|
|
90
|
+
)
|
|
91
|
+
)
|
|
92
|
+
self.on_new_review = self._add_handler_manager(
|
|
93
|
+
HandlerManager(self, 'on_new_review', events.NewReviewEvent.__event_name__)
|
|
94
|
+
)
|
|
95
|
+
self.on_review_changed = self._add_handler_manager(
|
|
96
|
+
HandlerManager(self, 'on_review_changed', events.ReviewChangedEvent.__event_name__)
|
|
97
|
+
)
|
|
98
|
+
self.on_review_deleted = self._add_handler_manager(
|
|
99
|
+
HandlerManager(self, 'on_review_deleted', events.ReviewDeletedEvent.__event_name__)
|
|
100
|
+
)
|
|
101
|
+
self.on_new_review_response = self._add_handler_manager(
|
|
102
|
+
HandlerManager(
|
|
103
|
+
self, 'on_new_review_response', events.NewReviewResponseEvent.__event_name__
|
|
104
|
+
)
|
|
105
|
+
)
|
|
106
|
+
self.on_review_response_changed = self._add_handler_manager(
|
|
107
|
+
HandlerManager(
|
|
108
|
+
self,
|
|
109
|
+
'on_review_response_changed',
|
|
110
|
+
events.ReviewResponseChangedEvent.__event_name__,
|
|
111
|
+
)
|
|
112
|
+
)
|
|
113
|
+
self.on_review_response_deleted = self._add_handler_manager(
|
|
114
|
+
HandlerManager(
|
|
115
|
+
self,
|
|
116
|
+
'on_review_response_deleted',
|
|
117
|
+
events.ReviewResponseDeletedEvent.__event_name__,
|
|
118
|
+
)
|
|
119
|
+
)
|
|
120
|
+
self.on_error = self._add_handler_manager(HandlerManager(self, 'on_error', 'error'))
|
|
121
|
+
self.on_unauthenticated = self._add_handler_manager(
|
|
122
|
+
HandlerManager(
|
|
123
|
+
self, 'on_unauthenticated', events.BotUnauthenticatedEvent.__event_name__
|
|
124
|
+
)
|
|
125
|
+
)
|
|
126
|
+
self.on_authenticated = self._add_handler_manager(
|
|
127
|
+
HandlerManager(self, 'on_authenticated', events.BotAuthenticatedEvent.__event_name__)
|
|
128
|
+
)
|
|
129
|
+
self.on_new_events_pack = self._add_handler_manager(
|
|
130
|
+
HandlerManager(self, 'on_new_events_pack', events.NewEventsPack.__event_name__)
|
|
131
|
+
)
|
|
132
|
+
|
|
133
|
+
@property
|
|
134
|
+
def on_event(self) -> HandlerManager:
|
|
135
|
+
return cast(HandlerManager, self._default_handler_manager)
|
|
@@ -37,8 +37,6 @@ class GetMainPage(FunPayMethod[MainPage], BaseModel):
|
|
|
37
37
|
parser_cls=MainPageParser,
|
|
38
38
|
allow_anonymous=True,
|
|
39
39
|
allow_uninitialized=True,
|
|
40
|
-
data={'setlocale': change_locale.
|
|
41
|
-
if change_locale is not None
|
|
42
|
-
else {},
|
|
40
|
+
data={'setlocale': change_locale.appdata_alias} if change_locale is not None else {},
|
|
43
41
|
change_locale=change_locale,
|
|
44
42
|
)
|
{funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/methods/get_subcategory_page.py
RENAMED
|
@@ -31,7 +31,7 @@ class GetSubcategoryPage(FunPayMethod[SubcategoryPage], BaseModel):
|
|
|
31
31
|
|
|
32
32
|
def __init__(self, type: SubcategoryType, subcategory_id: int, locale: Language | None = None):
|
|
33
33
|
super().__init__(
|
|
34
|
-
url=f'{type.
|
|
34
|
+
url=f'{type.url_alias}/{subcategory_id}/',
|
|
35
35
|
method=HTTPMethod.GET,
|
|
36
36
|
allow_anonymous=True,
|
|
37
37
|
allow_uninitialized=True,
|
|
@@ -17,6 +17,7 @@ from funpaybotengine.storage.base import Storage
|
|
|
17
17
|
from funpaybotengine.dispatching.events import BotAuthenticatedEvent, BotUnauthenticatedEvent
|
|
18
18
|
|
|
19
19
|
from .config import Backoff, RunnerConfig
|
|
20
|
+
from ..dispatching import NewEventsPack
|
|
20
21
|
from .event_collector import EventCollector
|
|
21
22
|
|
|
22
23
|
|
|
@@ -27,7 +28,7 @@ if TYPE_CHECKING:
|
|
|
27
28
|
|
|
28
29
|
@dataclass
|
|
29
30
|
class EventsStack:
|
|
30
|
-
events: tuple[RunnerEvent[Any], ...]
|
|
31
|
+
events: tuple[RunnerEvent[Any] | BotEngineEvent[Any], ...]
|
|
31
32
|
data: dict[Any, Any] = field(default_factory=dict)
|
|
32
33
|
id: str = field(init=False, default='')
|
|
33
34
|
|
|
@@ -113,7 +114,11 @@ class Runner:
|
|
|
113
114
|
)
|
|
114
115
|
sleep_time = backoff.current_delay
|
|
115
116
|
|
|
116
|
-
events_stack = EventsStack(events=
|
|
117
|
+
events_stack = EventsStack(events=())
|
|
118
|
+
if not backoff.counter:
|
|
119
|
+
result.insert(0, NewEventsPack(object=events_stack.id))
|
|
120
|
+
events_stack.events = tuple(result)
|
|
121
|
+
|
|
117
122
|
for i in events_stack:
|
|
118
123
|
yield i, events_stack
|
|
119
124
|
|
|
@@ -39,7 +39,7 @@ class MoneyValue(FunPayObject, BaseModel):
|
|
|
39
39
|
|
|
40
40
|
@property
|
|
41
41
|
def currency(self) -> Currency:
|
|
42
|
-
return Currency.
|
|
42
|
+
return Currency.from_character(self.character)
|
|
43
43
|
|
|
44
44
|
|
|
45
45
|
class UserBadge(FunPayObject, BaseModel):
|
|
@@ -74,7 +74,7 @@ class UserBadge(FunPayObject, BaseModel):
|
|
|
74
74
|
def type(self) -> BadgeType:
|
|
75
75
|
"""Badge type."""
|
|
76
76
|
|
|
77
|
-
return BadgeType.
|
|
77
|
+
return BadgeType.from_css_class(self.css_class)
|
|
78
78
|
|
|
79
79
|
|
|
80
80
|
class UserPreview(FunPayObject, BaseModel):
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "funpaybotengine"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.5.0"
|
|
4
4
|
description = "Framework for creating FunPay bots."
|
|
5
5
|
requires-python = ">=3.10"
|
|
6
6
|
readme = "README.md"
|
|
@@ -9,7 +9,7 @@ dependencies = [
|
|
|
9
9
|
"aiohttp>=3.13.3,<3.14",
|
|
10
10
|
"aiohttp-socks>=0.11.0",
|
|
11
11
|
"eventry>=0.3.6,<1.0.0",
|
|
12
|
-
"funpayparsers>=0.
|
|
12
|
+
"funpayparsers>=0.6.0,<0.7.0",
|
|
13
13
|
"pydantic>=2.12,<2.13",
|
|
14
14
|
]
|
|
15
15
|
authors = [
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
from __future__ import annotations
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
__all__ = ['Router']
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
from typing import cast
|
|
8
|
-
|
|
9
|
-
from eventry.asyncio.router import Router as BaseRouter
|
|
10
|
-
|
|
11
|
-
from funpaybotengine.dispatching.handlers.handler_manager import HandlerManager
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
_events = {
|
|
15
|
-
'chat_changed',
|
|
16
|
-
'new_message',
|
|
17
|
-
'new_sale',
|
|
18
|
-
'sale_closed_by_admin',
|
|
19
|
-
'sale_closed',
|
|
20
|
-
'sale_partially_refunded',
|
|
21
|
-
'sale_refunded',
|
|
22
|
-
'sale_reopened',
|
|
23
|
-
'sale_status_changed',
|
|
24
|
-
'new_purchase',
|
|
25
|
-
'purchase_closed_by_admin',
|
|
26
|
-
'purchase_closed',
|
|
27
|
-
'purchase_partially_refunded',
|
|
28
|
-
'purchase_refunded',
|
|
29
|
-
'purchase_reopened',
|
|
30
|
-
'purchase_status_changed',
|
|
31
|
-
'new_review',
|
|
32
|
-
'review_changed',
|
|
33
|
-
'review_deleted',
|
|
34
|
-
'new_review_response',
|
|
35
|
-
'review_response_changed',
|
|
36
|
-
'review_response_deleted',
|
|
37
|
-
'error',
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
class Router(BaseRouter):
|
|
42
|
-
on_chat_changed: HandlerManager
|
|
43
|
-
on_new_message: HandlerManager
|
|
44
|
-
on_new_sale: HandlerManager
|
|
45
|
-
on_sale_status_changed: HandlerManager
|
|
46
|
-
on_sale_closed: HandlerManager
|
|
47
|
-
on_sale_closed_by_admin: HandlerManager
|
|
48
|
-
on_sale_refunded: HandlerManager
|
|
49
|
-
on_sale_partially_refunded: HandlerManager
|
|
50
|
-
on_sale_reopened: HandlerManager
|
|
51
|
-
on_new_purchase: HandlerManager
|
|
52
|
-
on_purchase_status_changed: HandlerManager
|
|
53
|
-
on_purchase_closed: HandlerManager
|
|
54
|
-
on_purchase_closed_by_admin: HandlerManager
|
|
55
|
-
on_purchase_refunded: HandlerManager
|
|
56
|
-
on_purchase_partially_refunded: HandlerManager
|
|
57
|
-
on_purchase_reopened: HandlerManager
|
|
58
|
-
on_new_review: HandlerManager
|
|
59
|
-
on_review_changed: HandlerManager
|
|
60
|
-
on_review_deleted: HandlerManager
|
|
61
|
-
on_new_review_response: HandlerManager
|
|
62
|
-
on_review_response_changed: HandlerManager
|
|
63
|
-
on_review_response_deleted: HandlerManager
|
|
64
|
-
on_error: HandlerManager
|
|
65
|
-
|
|
66
|
-
def __init__(self, name: str | None = None) -> None:
|
|
67
|
-
super().__init__(name=name or f'Router{id(self)}')
|
|
68
|
-
self.set_default_handler_manager(HandlerManager(self, 'default', None))
|
|
69
|
-
|
|
70
|
-
for name in _events:
|
|
71
|
-
manager = self._add_handler_manager(HandlerManager(self, f'on_{name}', name))
|
|
72
|
-
setattr(self, f'on_{name}', manager)
|
|
73
|
-
|
|
74
|
-
@property
|
|
75
|
-
def on_event(self) -> HandlerManager:
|
|
76
|
-
return cast(HandlerManager, self._default_handler_manager)
|
funpaybotengine-0.4.4/temp.py
DELETED
|
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
|
|
File without changes
|
|
File without changes
|
{funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/client/session/aiohttp_session.py
RENAMED
|
File without changes
|
|
File without changes
|
{funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/client/session/http_methods.py
RENAMED
|
File without changes
|
|
File without changes
|
{funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/dispatching/events/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/dispatching/filters/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/dispatching/filters/order_filters.py
RENAMED
|
File without changes
|
{funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/dispatching/handlers/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/dispatching/routers/__init__.py
RENAMED
|
File without changes
|
{funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/dispatching/routers/dispatcher.py
RENAMED
|
File without changes
|
|
File without changes
|
{funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/exceptions/action_exceptions.py
RENAMED
|
File without changes
|
|
File without changes
|
{funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/exceptions/bot_exceptions.py
RENAMED
|
File without changes
|
{funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/exceptions/message_check_errors.py
RENAMED
|
File without changes
|
{funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/exceptions/runner_exceptions.py
RENAMED
|
File without changes
|
{funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/exceptions/session_exceptions.py
RENAMED
|
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
|
{funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/methods/get_my_chips_page.py
RENAMED
|
File without changes
|
{funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/methods/get_my_offers_page.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/methods/get_settings_page.py
RENAMED
|
File without changes
|
{funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/methods/get_telegram_connect_url.py
RENAMED
|
File without changes
|
|
File without changes
|
{funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/methods/get_transactions_page.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/methods/save_offer_fields.py
RENAMED
|
File without changes
|
{funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/methods/set_offers_hidden.py
RENAMED
|
File without changes
|
{funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/methods/update_notice_channel.py
RENAMED
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/types/common_page_elements.py
RENAMED
|
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
|
{funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/types/pages/my_chips_page.py
RENAMED
|
File without changes
|
{funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/types/pages/my_offers_page.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/types/pages/settings_page.py
RENAMED
|
File without changes
|
{funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/types/pages/subcategory_page.py
RENAMED
|
File without changes
|
{funpaybotengine-0.4.4 → funpaybotengine-0.5.0}/funpaybotengine/types/pages/transactions_page.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|