10 Апреля 2026 12:26 
Навигация
 +  - 
Скачать игры
Сейчас на сайте
10.04.2026
Andreal
05:48:35
offline
09.04.2026
Warhangel
13:12:09
offline
09.04.2026
Serega9107
15:08:37
offline
09.04.2026
ferittttt
1 день
offline
08.04.2026
cthfabvec
1 день
offline
Последние фото
Game of Blocks : WesterosCraft and Game of Thrones
Game of Blocks : Wes...
Альбом: Скриншоты

Вынос трёх пати куполом
Вынос трёх пати куполом
Альбом: Скриншоты



Альбом: Флора

Последние видео
Видео THE WORLD LIVE -  since 2008 | earthTV : So thank you for the many views of this stream, please enjoy the original classic television version of THE WORLD LIVE, first uploaded here for you in 2008 with just 7 locations.

Онлайн камеры:  THE WORLD LIVE - since 2008 | earthTV

Видео The Best Of Norway's Railway Cab Views : I\

Онлайн камеры:  The Best Of Norway's Railway Cab Views

Видео 130 LIVE World Cameras : 130 LIVE World Cameras, Relaxing Music, Map, Daily Timelapse - Your Armchair Travel

Онлайн камеры:  130 LIVE World Cameras

Наша кнопочка
FAQ7.ru
Код:
RSS каналы
Новости
Комменты
Форум
Статьи
Фото
Файлы
Ссылки
Объявления
Реклама
RU CLICKSРусский трафик
Автор темы: Warhangel
ID темы: 2989
Информация о теме:
Имеются 1 сообщений по данной теме, которая была просмотрена 49 раз.  Имеются также вложенные файлы.
Реклама
Обменник Обменник
Пополнить Steam | | | Если нужен Youtube | | | Виртуальные visa, mastercard | | | Спросить у нейронки
Просмотр темы
Логин:
Пароль:  
Форум » Игровые форумы » Lineage » Боты и скрипты
Просмотр темы
Текущий рейтинг: (Всего: 0 голосов)  
Ответить
Иконка 
Адреналин: модуль для отправки сообщений в Telegram
Наверх Распечатать сообщение #1
Опубликовано 06-04-2026 04:20
Аватар пользователя

Супер Администратор



Сообщений: 2718
Вас поблагодарили: 32
раз(а) в 27 сообщениях

Зарегистрирован: 24.03.10
Со дня регистрации: 5861
Откуда: Россия

Скрыть награды


Пожаловаться на это сообщение 

-
-
[ ссылка скрыта ] ( регистрация | вход )

Для отправки сообщей в телеграм вам понадобиться токен бота и чат ID что бы бот знал в какой чат ему слать сообщения.

Не буду углубляться откуда взять токен бота, и как получить id чата , многие и так уже с этим имели дело, а если и нет то эта информация легко гуглится.

Далее представляю вашему внимаю код модуля, который следует сохранить в файл с названием Telegram.txt , предварительно заполнив в этом файле константы TG_TOKEN и TG_CHAT_ID.


unit Telegram;

interface

uses SysUtils;

const
  TG_TOKEN   = '';
  TG_CHAT_ID = '';

function SendTelegramMessage(const Text: string): Boolean;
procedure PrintTG(const Text: string);

implementation

function InternetOpenA(lpszAgent: PAnsiChar; dwAccessType: Cardinal; lpszProxyName: PAnsiChar; lpszProxyBypass: PAnsiChar; dwFlags: Cardinal): Cardinal; stdcall;
  external 'wininet.dll' name 'InternetOpenA';
 
function InternetOpenUrlA(hInternet: Cardinal; lpszUrl: PAnsiChar; lpszHeaders: PAnsiChar; dwHeadersLength: Cardinal; dwFlags: Cardinal; dwContext: Cardinal): Cardinal; stdcall;
  external 'wininet.dll' name 'InternetOpenUrlA';
 
function InternetReadFile(hFile: Cardinal; lpBuffer: Pointer; dwNumberOfBytesToRead: Cardinal; var lpdwNumberOfBytesRead: Cardinal): LongBool; stdcall;
  external 'wininet.dll' name 'InternetReadFile';
 
function InternetCloseHandle(hInternet: Cardinal): LongBool; stdcall;
  external 'wininet.dll' name 'InternetCloseHandle';

const
  INTERNET_OPEN_TYPE_PRECONFIG = 0;
  INTERNET_FLAG_RELOAD = $80000000;

function UrlEncode(const Str: string): string;
var
  i, c: Integer;
  b1, b2, b3: Byte;
begin
  Result := '';
  for i := 1 to Length(Str) do
  begin
    c := Ord(Str[i]);
    if c < $80 then
    begin
      if ((c >= 48) and (c <= 57)) or ((c >= 65) and (c <= 90)) or ((c >= 97) and (c <= 122)) then
        Result := Result + Char(c)
      else if c = 32 then
        Result := Result + '+'
      else
        Result := Result + '%' + IntToHex(c,2);
    end
    else if c < $800 then
    begin
      b1 := $C0 or (c shr 6);
      b2 := $80 or (c and $3F);
      Result := Result + '%' + IntToHex(b1,2) + '%' + IntToHex(b2,2);
    end
    else
    begin
      b1 := $E0 or (c shr 12);
      b2 := $80 or ((c shr 6) and $3F);
      b3 := $80 or (c and $3F);
      Result := Result + '%' + IntToHex(b1,2) + '%' + IntToHex(b2,2) + '%' + IntToHex(b3,2);
    end;
  end;
end;

function HttpGet(const url: string): string;
var
  hInternet, hUrl: Cardinal;
  Buffer: array[0..4095] of AnsiChar;
  BytesRead: Cardinal;
  Response: string;
  i: Integer;
begin
  Result := '';
  hInternet := InternetOpenA('AdrenalineBot', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
  if hInternet = 0 then Exit;
 
  try
    hUrl := InternetOpenUrlA(hInternet, PAnsiChar(AnsiString(url)), nil, 0, INTERNET_FLAG_RELOAD, 0);
    if hUrl = 0 then Exit;
   
    try
      Response := '';
      while InternetReadFile(hUrl, @Buffer, SizeOf(Buffer) - 1, BytesRead) and (BytesRead > 0) do
      begin
        for i := 0 to BytesRead - 1 do
          Response := Response + Char(Buffer[i]);
      end;
      Result := Response;
    finally
      InternetCloseHandle(hUrl);
    end;
  finally
    InternetCloseHandle(hInternet);
  end;
end;

function SendTelegramMessage(const Text: string): Boolean;
var
  Response: string;
begin
  Result := False;
  Response := HttpGet('https://api.telegram.org/bot' + TG_TOKEN + '/sendMessage?chat_id=' + TG_CHAT_ID + '&text=' + UrlEncode(Text));
  if (Response <> '') and (Pos('"ok":true', Response) > 0) then
    Result := True;
end;

procedure PrintTG(const Text: string);
begin
  if SendTelegramMessage(Text) then
   Engine.Msg('[Telegram]',Text,32768) // зеленый
  else
   Engine.Msg('[Telegram]',Text,255); // красный при ошибке
end;

begin
end.


Модуль должен лежать в той же папке что и скрипт который его будет использовать. Вот простейший пример такого скрипта :


uses Telegram;

begin
  PrintTG('hello from Adrik');
end.


Вот еще пример практического применения - скрипт который будет транслировать личные сообщения вам в тг :


uses Telegram;

procedure ChatScaner;
begin         
    if (ChatMessage.Unread) and (ChatMessage.ChatType = mtPrivate) then
     PrintTG('[' + ChatMessage.Sender + '] ' + ChatMessage.text);       
    delay(2000);
end;

begin
    while true do ChatScaner;
end.
Warhangel присоединил изображение:

tg_adr_mod.png
[44.59кБ]

Изменил(а) Warhangel, 06-04-2026 04:21
 Offline
 
Посетить сайт автораОтправить e-mail
Цитировать
Ответить
Здесь присутствуют: 2 (пользователей: 0, гостей: 2)

« Предыдущая тема | Следующая тема »
 RSS Перейти на форум:
Розыгрыши 728х90

Последние объявления
ФотоЗаголовокГородРазмещено
Игра Stark World 2024
• Игры - Игровые ресурсы Цена: 1 1
Волгоград11.07.2024
(на 24 месяца)
Облако тегов тем форума
Швейцарский кантон Цуг разрешил платить налоги в BTC и ETH, Физикам удалась квантовая телепортация на 25 километров, Сервер в один клик (Interlude), Выпущен браузер для обхода "антипиратских" блокировок, Квест на Human Wizard, 72% российских веб-пользователей не хотят платить за контент, Легенды Кунг Фу: Легендарный Свиток. Новые навыки, Жалюзи и карнизы, Баг для Lineage 2 «Бьем сами себя», Описание класса Священник, Электроинструменты, 4 причины для лагов Android и как их устранить, Интервью Рагнара Торнквиста для французского фан-сайта, Бахилы для вас, Ритуал исцеления
Главная Статьи Файлы Форум Ссылки Новости Фотогалерея Объявления Видео Файлобменник Гороскоп Торренты Радио Видеочат

Powered by PHP-Fusion copyright © 2002 - 2026 by Nick Jones. Released as free software without warranties under GNU Affero GPL v3.