Implement method to get updates from Telegram.
This commit is contained in:
parent
57ee991895
commit
ac0c8823a3
@ -6,6 +6,8 @@ module Telepathy
|
|||||||
@request_base = "https://api.telegram.org/bot#{@api_token}"
|
@request_base = "https://api.telegram.org/bot#{@api_token}"
|
||||||
@this_user = uninitialized User?
|
@this_user = uninitialized User?
|
||||||
@this_user = get_me
|
@this_user = get_me
|
||||||
|
@last_update_id = uninitialized Int64?
|
||||||
|
@last_update_id = nil
|
||||||
end
|
end
|
||||||
|
|
||||||
def get_me
|
def get_me
|
||||||
@ -13,5 +15,16 @@ module Telepathy
|
|||||||
headers: HTTP::Headers{"User-agent" => "Telepathy"})
|
headers: HTTP::Headers{"User-agent" => "Telepathy"})
|
||||||
return Response(User).from_json(response.body).result
|
return Response(User).from_json(response.body).result
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def get_updates
|
||||||
|
update_data = {} of String => Int64 | String
|
||||||
|
@last_update_id.try { |id| update_data["offset"] = id }
|
||||||
|
response = HTTP::Client.get(@request_base + "/getUpdates",
|
||||||
|
headers: HTTP::Headers{"User-agent" => "Telepathy", "Content-type" => "application/json" },
|
||||||
|
body: update_data.to_json)
|
||||||
|
updates = Response(Array(Update)).from_json(response.body).result
|
||||||
|
updates.last?.try { |update| @last_update_id = update.update_id + 1 }
|
||||||
|
return updates
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
18
src/telepathy/model/update.cr
Normal file
18
src/telepathy/model/update.cr
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
require "json"
|
||||||
|
|
||||||
|
module Telepathy
|
||||||
|
class Update
|
||||||
|
JSON.mapping(
|
||||||
|
update_id: Int64,
|
||||||
|
message: Message?,
|
||||||
|
edited_message: Message?,
|
||||||
|
channel_post: Message?,
|
||||||
|
edited_channel_post: Message?
|
||||||
|
# TODO inline_query
|
||||||
|
# TODO chosen_inline_result
|
||||||
|
# TODO callback_query
|
||||||
|
# shipping_query
|
||||||
|
# pre_checkout_query
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in New Issue
Block a user