From 35611199093138ab8a35eee89aaf91fa41dbec34 Mon Sep 17 00:00:00 2001 From: Adrian Kummerlaender Date: Tue, 15 Mar 2016 11:56:17 +0100 Subject: Add update type predicates --- example/echo.scm | 5 +++-- 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 -- cgit v1.2.3