aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--example/echo.scm5
-rw-r--r--telebot.scm11
2 files changed, 14 insertions, 2 deletions
diff --git a/example/echo.scm b/example/echo.scm
index 7afd5ae..2e190a7 100644
--- a/example/echo.scm
+++ b/example/echo.scm
@@ -27,5 +27,6 @@
(telebot:pollUpdates token
(lambda (u)
- (begin (print-message u)
- (echo-message u))))
+ (if (telebot:is-message? u)
+ (begin (print-message u)
+ (echo-message u)))))
diff --git a/telebot.scm b/telebot.scm
index 5e95e1d..9465e52 100644
--- a/telebot.scm
+++ b/telebot.scm
@@ -12,6 +12,9 @@
sendChatAction
getUserProfilePhotos
getFile
+ is-message?
+ is-inline_query?
+ is-chosen_inline_result?
pollUpdates)
(import chicken scheme)
(use srfi-1)
@@ -156,6 +159,14 @@
;;; framework
+ (define (update-predicate type)
+ (lambda (update)
+ (not (equal? #f (alist-ref type update)))))
+
+ (define is-message? (update-predicate 'message))
+ (define is-inline_query? (update-predicate 'inline_query))
+ (define is-chosen_inline_result? (update-predicate 'chosen_inline_result))
+
(define (pollUpdates token handler)
(let ((offset 0))
(do-forever