@@ -52,9 +52,10 @@ proc getWebhookInfo*(b: TeleBot): Future[WebhookInfo] {.async.} =
52
52
result = getWebhookInfo(res)
53
53
54
54
55
- proc startWebhook* (b: Telebot, secret, url: string , port = 8080 ) =
55
+ proc startWebhook* (b: Telebot, secret, url: string , port= Port( 8080 ) ) =
56
56
try :
57
57
let me = waitFor b.getMe()
58
+ b.id = me.id
58
59
if me.username.isSome:
59
60
b.username = me.username.get().toLowerAscii()
60
61
except IOError, OSError:
@@ -63,14 +64,20 @@ proc startWebhook*(b: Telebot, secret, url: string, port = 8080) =
63
64
waitFor b.setWebhook(url)
64
65
65
66
proc callback(req: Request) {.async, gcsafe.} =
67
+ d(" GET: " , req.body)
66
68
if req.url.path == " /" & secret:
67
- let
68
- json = parse(req.body)
69
- update = unmarshal(json, Update)
70
- await b.handleUpdate(update)
71
- await req.respond(Http200, " OK" )
69
+ try :
70
+ let
71
+ json = parse(req.body)
72
+ update = unmarshal(json, Update)
73
+ await b.handleUpdate(update)
74
+ await req.respond(Http200, " OK\n " )
75
+ except :
76
+ await req.respond(Http500, " FAIL\n " )
72
77
else :
73
- await req.respond(Http404, " Not Found" )
78
+ await req.respond(Http404, " Not Found\n " )
74
79
75
80
var server = newAsyncHttpServer()
76
- waitFor server.serve(port= port.Port, callback= callback)
81
+ d(" Starting webhook, listens on port " , port.int )
82
+ d(" URL: " , url)
83
+ waitFor server.serve(port= port, callback= callback)
0 commit comments