Skip to content

Commit d73fb11

Browse files
authored
Merge pull request #8 from dotX12/dev0.2
Dev0.2 to master
2 parents fac5797 + 924284e commit d73fb11

File tree

109 files changed

+1545
-1022
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

109 files changed

+1545
-1022
lines changed

docs/assets/code/first_bot/002.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
loguru_filter.set_level('DEBUG')
1+
loguru_filter.set_level("DEBUG")
22

33
bot = Bot(
4-
apikey='algAJW9512kMWGALZIkAMWG',
5-
src_name='test_client18215',
6-
phone_number='79189998877'
4+
apikey="XXX",
5+
src_name="YYY",
6+
phone_number="PHONE",
77
)
88

99
dp = Dispatcher(bot=bot)

docs/assets/code/first_bot/003.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
@dp.message_handler(commands=['start', 'echo'])
2-
async def start_command(message: Message):
1+
@dp.message_handler(commands=["start", "echo"])
2+
async def start_command(event: Event):
33
"""
44
This handler will be called when user sends
55
`/start` or `/echo` command
66
"""
7-
await message.answer(f'Hello, {message.message.payload.sender.name}')
7+
await event.answer(f"Hello, {event.message.payload.sender.name}")

docs/assets/code/first_bot/004.py

+5-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
@dp.message_handler()
2-
async def start_switch(message: Message):
3-
await message.answer(f'Hello, {message.message.payload.sender.name},'
4-
f' text: {message.message.payload.text}')
2+
async def start_switch(event: Event):
3+
await event.answer(
4+
f"Hello, {event.message.payload.sender.name},"
5+
f" text: {event.message.payload.text}"
6+
)

docs/assets/code/first_bot/005.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,5 @@ async def handler_gupshup(request):
66

77
if __name__ == "__main__":
88
webhook = web.Application()
9-
webhook.add_routes([web.post('/api/v1/gupshup/hook', handler_gupshup)])
10-
web.run_app(webhook, port=8017)
9+
webhook.add_routes([web.post("/api/v1/gupshup/hook", handler_gupshup)])
10+
web.run_app(webhook, port=8017)

docs/assets/code/fsm/email.py

+3-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
@dp.message_handler(state=RegisterStates.birthday)
2-
async def register_age(message: Message, state: FSMContext):
3-
await state.set_data(birthday=message.text)
4-
await message.answer(f'Thanks for sending you birthday!\n'
5-
f'Send you email address')
2+
async def register_age(event: Event, state: FSMContext):
3+
await state.set_data(birthday=event.text)
4+
await event.answer(f"Thanks for sending you birthday!\n" f"Send you email address")
65
await state.set_state(RegisterStates.email)

docs/assets/code/fsm/register.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
@dp.message_handler(commands=['register'], state='*')
2-
async def register_name(message: Message, state: FSMContext):
3-
await message.answer(f'Hi, {message.sender_name}! send your date of birth')
1+
@dp.message_handler(commands=["register"], state="*")
2+
async def register_name(event: Event, state: FSMContext):
3+
await event.answer(f"Hi, {event.sender_name}! send your date of birth")
44
await state.set_state(RegisterStates.birthday)

docs/assets/code/fsm/states.py

+1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from waio.states import State, StatesGroup
22

3+
34
class RegisterStates(StatesGroup):
45
birthday = State()
56
email = State()

docs/assets/code/rules/default_rules.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,5 @@
66
"text_contains": TextRuleContains,
77
"text_startswith": TextRuleStartswith,
88
"text_endswith": TextRuleEndswith,
9-
"content_type": ContentTypeRule
10-
}
9+
"content_type": ContentTypeRule,
10+
}
+3-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from waio.rules import ABCRule
2+
from waio.types import Event
23

34

45
class StaticLongMessageRule(ABCRule):
5-
async def check(self, message: Message) -> bool:
6-
return len(message.text) > 200
6+
async def check(self, event: Event) -> bool:
7+
return len(event.text) > 200
+3-3
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
from waio.rules import ABCRule
2+
from waio.types import Event
23

34

45
class DynamicLongMessageRule(ABCRule):
56
def __init__(self, len_message: int):
67
self.len_message = len_message
78

8-
async def check(self, message: Message) -> bool:
9-
return len(message.text) > self.len_message
10-
9+
async def check(self, event: Event) -> bool:
10+
return len(event.text) > self.len_message

docs/assets/code/rules/full_code_rule_003.py

+9-13
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,12 @@
22

33
from waio import Bot, Dispatcher
44
from waio.rules.abc import ABCRule
5-
from waio.types import Message
5+
from waio.types import Event
66
from waio.logs import loguru_filter
77

8-
loguru_filter.set_level('DEBUG')
8+
loguru_filter.set_level("DEBUG")
99

10-
bot = Bot(
11-
apikey='API_KEY',
12-
src_name='SRC_NAME',
13-
phone_number=79281112233
14-
)
10+
bot = Bot(apikey="API_KEY", src_name="SRC_NAME", phone_number=79281112233)
1511

1612
dp = Dispatcher(bot=bot)
1713

@@ -20,16 +16,16 @@ class DynamicLongMessageRule(ABCRule):
2016
def __init__(self, len_message: int):
2117
self.len_message = len_message
2218

23-
async def check(self, message: Message) -> bool:
24-
return len(message.text) > self.len_message
19+
async def check(self, event: Event) -> bool:
20+
return len(event.text) > self.len_message
2521

2622

27-
dp.labeler.bind_rule('len_more', DynamicLongMessageRule)
23+
dp.labeler.bind_rule("len_more", DynamicLongMessageRule)
2824

2925

3026
@dp.message_handler(len_more=20)
31-
async def text_len(message: Message):
32-
await message.answer(f'msg len: {len(message.text)}')
27+
async def text_len(event: Event):
28+
await event.answer(f"msg len: {len(event.text)}")
3329

3430

3531
async def handler_gupshup(request):
@@ -40,5 +36,5 @@ async def handler_gupshup(request):
4036

4137
if __name__ == "__main__":
4238
webhook = web.Application()
43-
webhook.add_routes([web.post('/api/v1/gupshup/hook', handler_gupshup)])
39+
webhook.add_routes([web.post("/api/v1/gupshup/hook", handler_gupshup)])
4440
web.run_app(webhook, port=8017)

docs/assets/code/rules/named_rule.py

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
@dp.message_handler(text_equals=['foo', 'bar'])
2-
async def start_text_equals(message: Message):
3-
await message.answer(f'Filter used: [text_equals], msg: {message.text}')
1+
@dp.message_handler(text_equals=["foo", "bar"])
2+
async def start_text_equals(event: Event):
3+
await event.answer(f"Filter used: [text_equals], msg: {event.text}")
44

55

6-
@dp.message_handler(text_contains=['ru', 'com'])
7-
async def start_text_contains(message: Message):
8-
await message.answer(f'Filter used: [text_contains], msg: {message.text}')
6+
@dp.message_handler(text_contains=["ru", "com"])
7+
async def start_text_contains(event: Event):
8+
await event.answer(f"Filter used: [text_contains], msg: {event.text}")
+5-4
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
from waio.rules import TextRule, ContentType
2+
from waio.types import Event
23

34

45
@dp.message_handler(
5-
TextRule(startswith=['1111', '2222'], endswith=['x', 'y', 'z']),
6-
content_type=[ContentType.TEXT]
6+
TextRule(startswith=["1111", "2222"], endswith=["x", "y", "z"]),
7+
content_type=[ContentType.TEXT],
78
)
8-
async def text_start_switch_without_labeler(message: Message):
9-
await message.answer(f'Filter used: [TextRule], msg: {message.text}')
9+
async def text_start_switch_without_labeler(event: Event):
10+
await event.answer(f"Filter used: [TextRule], msg: {event.text}")
+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
dp.labeler.bind_rule('len_more', DynamicLongMessageRule)
1+
dp.labeler.bind_rule("len_more", DynamicLongMessageRule)

docs/assets/code/rules/rule_with_args.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@
22
from phonenumbers import timezone, parse, geocoder
33

44
from waio.rules import ABCRule
5-
from waio.types import Message
5+
from waio.types import Event
66

77
G_T = Dict[str, Union[int, str, Tuple[str]]]
88

99

1010
class RussianNumberRule(ABCRule):
11-
async def check(self, message: Message) -> Union[bool, Dict[str, G_T]]:
12-
phone_number_data = self.get_phone_number_data(message.sender_number)
11+
async def check(self, event: Event) -> Union[bool, Dict[str, G_T]]:
12+
phone_number_data = self.get_phone_number_data(event.sender_number)
1313
if phone_number_data["country"] == "Russia":
1414
return {"number_data": phone_number_data}
1515
return False
@@ -25,5 +25,5 @@ def get_phone_number_data(number: str) -> G_T:
2525
"country_code": phone_number.country_code,
2626
"national_number": phone_number.national_number,
2727
"country": country_name,
28-
"time_zone": time_zones_number
28+
"time_zone": time_zones_number,
2929
}
+4-5
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
from waio.rules import MessageCommandsRule
22

3-
@dp.message_handler(MessageCommandsRule(commands=['start', 'echo']))
4-
async def commands_rule_without_labeler(message: Message):
5-
await message.answer(
6-
f'Filter used: [MessageCommandsRule], msg: {message.text}'
7-
)
3+
4+
@dp.message_handler(MessageCommandsRule(commands=["start", "echo"]))
5+
async def commands_rule_without_labeler(event: Event):
6+
await event.answer(f"Filter used: [MessageCommandsRule], msg: {event.text}")
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
@dp.message_handler(StaticLongMessageRule())
2-
async def foo(message: Message):
3-
...
2+
async def foo(event: Event):
3+
...
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
@dp.message_handler(DynamicLongMessageRule(len_message=120))
2-
async def foo(message: Message):
2+
async def foo(event: Event):
33
...
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
@dp.message_handler(len_more=12)
2-
async def text_len(message: Message):
3-
await message.answer(f'msg len: {len(message.text)}')
2+
async def text_len(event: Event):
3+
await event.answer(f"msg len: {len(event.text)}")
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
11
@dp.message_handler(RussianNumberRule(), commands=["check_number"])
2-
async def register_rule_check_number(message: Message, number_data: G_T):
3-
await message.answer(
4-
f'You are from Russia! Number data:\n'
5-
f'```{number_data}```'
6-
)
2+
async def register_rule_check_number(event: Event, number_data: G_T):
3+
await event.answer(f"You are from Russia! Number data:\n" f"```{number_data}```")
+15-20
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,28 @@
11
from re import Match
22

3-
from waio.types import Message
3+
from waio.types import Event
44

55

6-
async def start_commands(message: Message):
7-
await message.answer(
8-
f'Filter used: [commands and content_type:TEXT], '
9-
f'msg: {message.message.payload.text}'
6+
async def start_commands(event: Event):
7+
await event.answer(
8+
f"Filter used: [commands and content_type:TEXT], "
9+
f"msg: {event.message.payload.text}"
1010
)
1111

1212

13-
async def start_photo(message: Message):
14-
await message.answer(
15-
f'Filter used: [content_type:PHOTO], '
16-
f'url_photo: {message.message.payload.url}'
13+
async def start_photo(event: Event):
14+
await event.answer(
15+
f"Filter used: [content_type:PHOTO], " f"url_photo: {event.message.payload.url}"
1716
)
1817

1918

20-
async def start_regex(message: Message, regex: Match):
21-
cart_id = regex.group('cart_id')
22-
item_id = regex.group('item_id')
23-
await message.answer(
24-
f'Filter used: [regex], '
25-
f'cart_id: {cart_id}, item_id: {item_id}'
19+
async def start_regex(event: Event, regex: Match):
20+
cart_id = regex.group("cart_id")
21+
item_id = regex.group("item_id")
22+
await event.answer(
23+
f"Filter used: [regex], " f"cart_id: {cart_id}, item_id: {item_id}"
2624
)
2725

2826

29-
async def start_text_equals(message: Message):
30-
await message.answer(
31-
f'Filter used: [text_equals], '
32-
f'msg: {message.text}'
33-
)
27+
async def start_text_equals(event: Event):
28+
await event.answer(f"Filter used: [text_equals], " f"msg: {event.text}")

docs/assets/code/split_code/main.py

+6-20
Original file line numberDiff line numberDiff line change
@@ -2,31 +2,17 @@
22
from waio.types import ContentType
33

44
from misc import dp, webhook
5-
from handlers_foo import (
6-
start_commands,
7-
start_photo,
8-
start_regex,
9-
start_text_equals
10-
)
5+
from handlers_foo import start_commands, start_photo, start_regex, start_text_equals
116

127
dp.register_message_handler(
13-
handler=start_commands,
14-
commands=['start', 'echo'],
15-
content_type=[ContentType.TEXT]
8+
handler=start_commands, commands=["start", "echo"], content_type=[ContentType.TEXT]
169
)
1710

11+
dp.register_message_handler(handler=start_photo, content_type=[ContentType.PHOTO])
1812
dp.register_message_handler(
19-
handler=start_photo,
20-
content_type=[ContentType.PHOTO]
21-
)
22-
dp.register_message_handler(
23-
handler=start_regex,
24-
regex=r'cart_id_(?P<cart_id>\d+)_item_id_(?P<item_id>\d+)$'
25-
)
26-
dp.register_message_handler(
27-
handler=start_text_equals,
28-
text_equals=['foo', 'bar']
13+
handler=start_regex, regex=r"cart_id_(?P<cart_id>\d+)_item_id_(?P<item_id>\d+)$"
2914
)
15+
dp.register_message_handler(handler=start_text_equals, text_equals=["foo", "bar"])
3016

3117

3218
async def handler_gupshup(request):
@@ -36,5 +22,5 @@ async def handler_gupshup(request):
3622

3723

3824
if __name__ == "__main__":
39-
webhook.add_routes([web.post('/api/v1/gupshup/hook', handler_gupshup)])
25+
webhook.add_routes([web.post("/api/v1/gupshup/hook", handler_gupshup)])
4026
web.run_app(webhook, port=8017)

docs/assets/code/split_code/misc.py

+3-7
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,11 @@
44
from waio.logs import loguru_filter
55
from waio.storage import RedisStorage
66

7-
loguru_filter.set_level('DEBUG')
7+
loguru_filter.set_level("DEBUG")
88

9-
storage = RedisStorage(prefix_fsm='fsm', redis_url="redis://localhost:6379")
9+
storage = RedisStorage(prefix_fsm="fsm", redis_url="redis://localhost:6379")
1010

11-
bot = Bot(
12-
apikey='API_KEY',
13-
src_name='SRC_NAME',
14-
phone_number=7928994433
15-
)
11+
bot = Bot(apikey="API_KEY", src_name="SRC_NAME", phone_number=7928994433)
1612

1713
dp = Dispatcher(bot=bot, storage=storage)
1814

docs/tutorial/middleware.md

+5-5
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ dp.labeler.register_middleware(DatabaseMiddleware())
127127
main.py
128128
```python
129129
from aiohttp import web
130-
from waio.types import Message
130+
from waio.types import Event
131131

132132
from examples.middleware.database import ExampleDatabase
133133
from examples.middleware.misc import *
@@ -136,15 +136,15 @@ webhook = web.Application()
136136

137137

138138
@dp.message_handler(text_startswith='ch')
139-
async def check_ban(message: Message):
140-
await message.answer('The message has been processed, you are not blocked.')
139+
async def check_ban(event: Event):
140+
await event.answer('The message has been processed, you are not blocked.')
141141

142142

143143
@dp.message_handler(commands=['s', 'session'])
144-
async def session_check(message: Message, session: ExampleDatabase):
144+
async def session_check(event: Event, session: ExampleDatabase):
145145
session.set('name', 'Marina')
146146
session.set('age', '21')
147-
await message.answer('Hello man!')
147+
await event.answer('Hello man!')
148148

149149

150150
async def handler_gupshup(request):

0 commit comments

Comments
 (0)