diff options
-rw-r--r-- | example/echo.scm | 5 | ||||
-rw-r--r-- | telebot.scm | 11 |
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 |