Comments 8
А я уместился в 52 строки (+14 строк модель) на Delphi. Но это вряд ли кому-то интересно. Что вы хотели этой статьей сказать?
Код
program TGBOT_CURRENCY;
uses
System.SysUtils, REST.Json, TgBotApi.Client, TgBotApi;
begin
Client := TtgClient.Create({$INCLUDE BOT_TOKEN.key});
Client.Subscribe(
function(Update: TtgUpdate): Boolean
begin
var Answer := 'Hi, ' + Update.Message.Chat.FirstName + ', nice to meet you!' + #13#10 +
'Enter the currency whose official exchange rate' + #13#10 +
'you want to know in relation to BYN.' + #13#10 +
'For example: USD';
Client.SendMessageToChat(Update.Message.Chat.Id, Answer);
Result := True;
end, '/start');
Client.Subscribe(
function(Update: TtgUpdate): Boolean
begin
if Update.Message.Text.IsEmpty then
Exit(False);
var Answer := '';
try
Answer := Client.Get('https://www.nbrb.by/api/exrates/rates/' + Update.Message.Text + '?parammode=2');
var Model := TJson.JsonToObject<TCurrencyModel>(Answer);
if not Assigned(Model) then
raise Exception.Create('JSON is empty');
try
Answer := 'Official rate of BYN to ' + Model.CurAbbreviation + #13#10 +
'on the date: ' + FormatDateTime('c', Model.Date) + #13#10 +
'is: ' + Model.CurOfficialRate.ToString + ' BYN per ' + Model.CurScale.ToString + ' ' + Model.CurAbbreviation;
finally
Model.Free;
end;
except
Answer :=
'We have not found such a currency.' + #13#10 +
'Enter the currency whose official exchange rate' + #13#10 +
'you want to know in relation to BYN.' + #13#10 +
'For example: USD';
end;
Client.SendMessageToChat(Update.Message.Chat.Id, Answer);
Result := True;
end);
Client.Polling;
Client.Free;
end.
Ты уже во всех чатах Беларуси со своим ботом отметился, и решил на Хабр выйти?!
Так сказать российский рынок подмять....
Спасибо) мне понравилась статья.
Спасибо за статью.
Нет желание развить тему с кнопочками?
Sign up to leave a comment.
Пишем простой Telegram bot на java, который показывает официальный курс по отношению к иностранным валютам