@@ -12,29 +12,39 @@ macro END_POINT*(s: string) =
12
12
result = parseStmt(" const endpoint = \" " & API_URL & s.strVal & " \" " )
13
13
14
14
template hasCommand* (update: Update, username: string ): bool =
15
- var result = false
15
+ var
16
+ result = false
17
+ hasMessage = false
16
18
when not declaredInScope(command):
17
19
var
18
20
command {.inject.} = " "
19
21
params {.inject.} = " "
22
+ message {.inject.}: Message
20
23
if update.message.isSome:
21
- let message = update.message.get()
22
- if message.entities.isSome:
24
+ hasMessage = true
25
+ message = update.message.get()
26
+ elif update.editedMessage.isSome:
27
+ hasMessage = true
28
+ message = update.editedMessage.get()
29
+ else :
30
+ result = false
31
+
32
+ if hasMessage and message.entities.isSome:
33
+ let
34
+ entities = message.entities.get()
35
+ messageText = message.text.get()
36
+ if entities[0 ].kind == " bot_command" :
23
37
let
24
- entities = message.entities.get()
25
- messageText = message.text.get()
26
- if entities[0 ].kind == " bot_command" :
27
- let
28
- offset = entities[0 ].offset
29
- length = entities[0 ].length
30
- command = messageText[(offset + 1 )..< (offset + length)].strip()
31
- params = messageText[(offset + length)..^ 1 ].strip()
32
- result = true
33
- if '@' in command:
34
- var parts = command.split('@' )
35
- command = parts[0 ]
36
- if (parts.len == 2 and parts[1 ].toLowerAscii != username):
37
- result = false
38
+ offset = entities[0 ].offset
39
+ length = entities[0 ].length
40
+ command = messageText[(offset + 1 )..< (offset + length)].strip()
41
+ params = messageText[(offset + length)..^ 1 ].strip()
42
+ result = true
43
+ if '@' in command:
44
+ var parts = command.split('@' )
45
+ command = parts[0 ]
46
+ if (parts.len == 2 and parts[1 ].toLowerAscii != username):
47
+ result = false
38
48
result
39
49
40
50
proc isSet* (value: any ): bool {.inline.} =
0 commit comments