функция отправки уведов в тг

minxty

Известный
Автор темы
1,191
1,070
Версия MoonLoader
.026-beta
дайте чисто функцию отправки уведомлений в тг, без лишнего говна
 
Решение
Lua:
-- не забудь указать token и chatid
sendTelegram('строка\nдругая строка')

--
local effil = require("effil")
local encoding = require("encoding")
encoding.default = "CP1251"
local u8 = encoding.UTF8

function url_encode(text)
    local text = string.gsub(text, "([^%w-_ %.~=])", function(c)
        return string.format("%%%02X", string.byte(c))
    end)
    local text = string.gsub(text, " ", "+")
    return text
end

function sendTelegram(text)
    local url = ('https://api.telegram.org/bot' .. token .. '/sendMessage?chat_id=' .. chatid .. '&text=' .. url_encode(u8(text):gsub('{......}', '')))
    asyncHttpRequest('POST', url, nil, function(resolve)
    end, function(err)
        msg('Ошибка при отправке сообщения в Telegram!')...

cord

Хватит спать на мне
Проверенный
568
502
Lua:
-- не забудь указать token и chatid
sendTelegram('строка\nдругая строка')

--
local effil = require("effil")
local encoding = require("encoding")
encoding.default = "CP1251"
local u8 = encoding.UTF8

function url_encode(text)
    local text = string.gsub(text, "([^%w-_ %.~=])", function(c)
        return string.format("%%%02X", string.byte(c))
    end)
    local text = string.gsub(text, " ", "+")
    return text
end

function sendTelegram(text)
    local url = ('https://api.telegram.org/bot' .. token .. '/sendMessage?chat_id=' .. chatid .. '&text=' .. url_encode(u8(text):gsub('{......}', '')))
    asyncHttpRequest('POST', url, nil, function(resolve)
    end, function(err)
        msg('Ошибка при отправке сообщения в Telegram!')
    end)
end

function asyncHttpRequest(method, url, args, resolve, reject)
    local request_thread = effil.thread(function (method, url, args)
       local requests = require 'requests'
       local result, response = pcall(requests.request, method, url, args)
       if result then
          response.json, response.xml = nil, nil
          return true, response
       else
          return false, response
       end
    end)(method, url, args)
    -- Если запрос без функций обработки ответа и ошибок.
    if not resolve then resolve = function() end end
    if not reject then reject = function() end end
    -- Проверка выполнения потока
    lua_thread.create(function()
       local runner = request_thread
       while true do
          local status, err = runner:status()
          if not err then
             if status == 'completed' then
                local result, response = runner:get()
                if result then
                   resolve(response)
                else
                   reject(response)
                end
                return
             elseif status == 'canceled' then
                return reject(status)
             end
          else
             return reject(err)
          end
          wait(0)
       end
    end)
end
 
Последнее редактирование: