aboutsummaryrefslogtreecommitdiff
path: root/bot.scm
diff options
context:
space:
mode:
authorAdrian Kummerlaender2016-03-10 14:11:36 +0100
committerAdrian Kummerlaender2016-03-10 14:11:36 +0100
commit376bd6ab78276fe7e33662bd89cfdb5fac6052b4 (patch)
treebd44f4cc7add2dba648ab5dbd855508ee38632e5 /bot.scm
downloadTelebot-376bd6ab78276fe7e33662bd89cfdb5fac6052b4.tar
Telebot-376bd6ab78276fe7e33662bd89cfdb5fac6052b4.tar.gz
Telebot-376bd6ab78276fe7e33662bd89cfdb5fac6052b4.tar.bz2
Telebot-376bd6ab78276fe7e33662bd89cfdb5fac6052b4.tar.lz
Telebot-376bd6ab78276fe7e33662bd89cfdb5fac6052b4.tar.xz
Telebot-376bd6ab78276fe7e33662bd89cfdb5fac6052b4.tar.zst
Telebot-376bd6ab78276fe7e33662bd89cfdb5fac6052b4.zip
Basic example query of the Telegram Bot API using Scheme
Diffstat (limited to 'bot.scm')
-rw-r--r--bot.scm24
1 files changed, 24 insertions, 0 deletions
diff --git a/bot.scm b/bot.scm
new file mode 100644
index 0000000..62b45a8
--- /dev/null
+++ b/bot.scm
@@ -0,0 +1,24 @@
+(include "telebot.scm")
+(import (prefix telebot telebot:))
+
+(define (assure-list value)
+ (if (list? value)
+ value
+ (list)))
+
+(define (find-pair symbol nodes)
+ (find (lambda (x) (equal? symbol (car x)))
+ (filter pair? nodes)))
+
+(define (resolve-query query tree)
+ (fold-right (lambda (x y) (find-pair x (assure-list y)))
+ tree
+ (reverse query)))
+
+(define token (car (command-line-arguments)))
+
+(print (resolve-query (list 'result 'username)
+ (telebot:get-me token)))
+
+(pretty-print (resolve-query (list 'result)
+ (telebot:get-updates token)))