aboutsummaryrefslogtreecommitdiff
path: root/telebot.scm
diff options
context:
space:
mode:
Diffstat (limited to 'telebot.scm')
-rw-r--r--telebot.scm18
1 files changed, 17 insertions, 1 deletions
diff --git a/telebot.scm b/telebot.scm
index 7453cb1..d419c79 100644
--- a/telebot.scm
+++ b/telebot.scm
@@ -4,12 +4,15 @@
sendLocation
sendChatAction
forwardMessage
- getUserProfilePhotos)
+ getUserProfilePhotos
+ pollUpdates)
(import chicken scheme)
(use srfi-1)
(use openssl)
(use http-client)
(use medea)
+ (use loops)
+ (use vector-lib)
(define-constant api-base "https://api.telegram.org/bot")
@@ -70,4 +73,17 @@
(wrap-api-method getUserProfilePhotos(user_id
offset
limit))
+
+ ;;; framework
+
+ (define (pollUpdates token handler)
+ (define offset 0)
+ (define process (lambda (i u)
+ (begin (handler u)
+ (set! offset (+ 1 (cdr (assv 'update_id u)))))))
+ (do-forever
+ (vector-for-each process
+ (cdr (assv 'result (getUpdates token
+ offset: offset
+ timeout: 60))))))
)