Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local internet = require("internet")
- local json = require("dkjson")
- local ChatBox = require("lib.chatbox")
- local Utils = require("lib.utils")
- local Telegram = {}
- local token = "6139557335:AAEGhQbr1FMaGoQbOZ4X5vBYZhzFJz3rFo0"
- local api_url = "https://api.telegram.org/bot" .. token .. "/"
- local lastUpdateId = 0
- local players = {
- ["186238587"] = "§8[§3Помощница§8] §4❤ §bМикаса§7:§f ",
- ["5794434647"] = "§8[§4Сrystal-OS§8] §8Robot§f: ",
- }
- local chat_ids = {"186238587", "5794434647"}
- function Telegram.sendMessage(chat_id, text)
- local url = api_url .. "sendMessage"
- local data = "chat_id=" .. tostring(chat_id) .. "&text=" .. text
- local response = internet.request(url, data)
- local result = ""
- for chunk in response do
- result = result .. chunk
- end
- return json.decode(result)
- end
- function Telegram.sendToAllUsers(text, exclude_id)
- for _, chat_id in ipairs(chat_ids) do
- if chat_id ~= exclude_id then
- Telegram.sendMessage(chat_id, text)
- os.sleep(1) -- Задержка для каждого пользователя
- end
- end
- end
- function Telegram.cleanMessage(nick, msg)
- -- Убираем цветовые коды
- nick = nick:gsub("§.", "")
- -- Убираем лишние символы скобок и двоеточий
- nick = nick:gsub("^%[", "")
- nick = nick:gsub("%]$", "")
- -- Убираем лишний символ "]:" в конце
- msg = msg:gsub("^%]: ", "")
- local time = "[" .. Utils.real_time() .. "]"
- return time .. " [" .. nick .. "]: " .. msg
- end
- function Telegram.parserTG()
- local url = api_url .. "getUpdates?offset=" .. (lastUpdateId + 1)
- local req = internet.request(url)
- for line in req do
- local Message = json.decode(line)
- if Message and Message.result and #Message.result > 0 then
- for _, result in ipairs(Message.result) do
- local updateId = result.update_id
- local sender_id = tostring(result.message.from.id)
- if players[sender_id] then
- local text = result.message.text
- local nick = players[sender_id]
- local formatted_msg = "🌎" .. Telegram.cleanMessage(nick, text)
- lastUpdateId = updateId
- os.sleep(1) -- Задержка для каждого пользователя
- -- Отправка сообщения другим пользователям Telegram
- Telegram.sendToAllUsers(formatted_msg, sender_id)
- -- Отображение сообщения в игре
- local Display = require("lib.display")
- Display.display_message_on_monitor(nick, text)
- -- Отправка сообщения в игровой чат
- ChatBox.sendMessage(nick, text)
- end
- end
- end
- end
- end
- function Telegram.display_message_on_monitor(nick, msg, sender_id)
- local Display = require("lib.display")
- Display.display_message_on_monitor(nick, msg)
- -- Отправка сообщений из игры с пометкой 🏠 только другим пользователям
- local formatted_msg = "🏠" .. Telegram.cleanMessage(nick, msg)
- Telegram.sendToAllUsers(formatted_msg, sender_id)
- end
- function Telegram.handle_telegram_messages()
- while true do
- local success, err = pcall(Telegram.parserTG)
- if not success then
- print("Ошибка при обработке сообщений Telegram: ", err)
- os.sleep(5)
- else
- os.sleep(5) -- Задержка между проверками сообщений
- end
- end
- end
- return Telegram
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement