#fix all prob.
This commit is contained in:
parent
dbeae233d5
commit
fb4a33a29c
505
bot.lua
505
bot.lua
@ -10,7 +10,11 @@ local bot_api_key = "" --التوكم هنا
|
||||
local You = --خلي ايدي حسابك
|
||||
local BASE_URL = "https://api.telegram.org/bot"..bot_api_key
|
||||
local BASE_FOLDER = ""
|
||||
local start = [[]] -- خلي بنص [[]] رساله ترحيب
|
||||
local start = [[ ]]
|
||||
|
||||
-------
|
||||
|
||||
----utilites----
|
||||
local help = [[
|
||||
➖➖➖➖➖➖➖➖➖➖➖
|
||||
*commands:*`for admin`
|
||||
@ -281,32 +285,19 @@ function bot_run()
|
||||
add.broadcast = add.broadcast or {} --
|
||||
end
|
||||
function msg_processor(msg)
|
||||
if msg.text == '/help' then
|
||||
sendMessage(msg.chat.id,help,true,false,true)
|
||||
end
|
||||
if is_ban(msg) then return end
|
||||
if msg.date < os.time() - 5 then -- Ignore old msgs
|
||||
return
|
||||
end
|
||||
if msg.text == "/unbroadcast" then
|
||||
add.broadcast[msg.from.id] = "false"
|
||||
save_data('mico.db', add)
|
||||
end
|
||||
if msg.text ~= "/broadcast" and add.broadcast[msg.from.id] == "true" then
|
||||
if is_admin(msg) then
|
||||
if msg.text and msg.text ~= "/unbroadcast" then
|
||||
for k,v in pairs(add.id) do
|
||||
sendMessage(v,string.gsub(msg.text,"/broadcast",""),true,false,true)
|
||||
end
|
||||
|
||||
elseif not msg.text then
|
||||
for k,v in pairs(add.id) do
|
||||
forwardMessage(v,You,msg.message_id)
|
||||
end
|
||||
end
|
||||
end
|
||||
if msg.text == "/start" and not is_add(msg) then
|
||||
table.insert(add.id,msg.from.id)
|
||||
print("adding.....")
|
||||
local user = ""
|
||||
if msg.from.username == nil then
|
||||
user = bot.username
|
||||
else
|
||||
if msg.text == "/start" and is_add(msg) then
|
||||
user = msg.from.username
|
||||
end
|
||||
local text = "مرحبا بك يا ["..msg.from.first_name.."](www.telegram.me/"..user..")"
|
||||
sendMessage(msg.chat.id,text.."\n"..start,true,false,true)
|
||||
elseif msg.text == "/start" and is_add(msg) then
|
||||
print(#add.id)
|
||||
local user = ""
|
||||
if msg.from.username == nil then
|
||||
@ -321,7 +312,34 @@ elseif is_admin(msg) and msg.text == "/users" then
|
||||
|
||||
local t = string.gsub(r," ","")
|
||||
sendMessage(You,t,true,false,true)
|
||||
elseif is_admin(msg) and msg.reply_to_message and msg.reply_to_message.forward_from ~= nil and msg.text == "/ban" then
|
||||
end
|
||||
if msg.text == '/help' then
|
||||
sendMessage(msg.chat.id,help,true,false,true)
|
||||
end
|
||||
if is_ban(msg) then return end
|
||||
if msg.date < os.time() - 5 then -- Ignore old msgs
|
||||
return
|
||||
end
|
||||
if msg.text == "/unbroadcast" then
|
||||
add.broadcast = "broadcast"
|
||||
save_data('mico.db', add)
|
||||
sendMessage(msg.chat.id,"*I will not broadcast any more*",true,false,true)
|
||||
end
|
||||
if msg.text ~= "/broadcast" and add.broadcast ~= "broadcast" then
|
||||
if is_admin(msg) then
|
||||
if msg.text and msg.text ~= "/unbroadcast" then
|
||||
for k,v in pairs(add.id) do
|
||||
sendMessage(v,msg.text,true,false,true)
|
||||
end
|
||||
|
||||
elseif not msg.text then
|
||||
for k,v in pairs(add.id) do
|
||||
forwardMessage(v,You,msg.message_id)
|
||||
end
|
||||
end
|
||||
end
|
||||
elseif msg.text ~= "/" then
|
||||
if is_admin(msg) and msg.reply_to_message and msg.reply_to_message.forward_from ~= nil and msg.text == "/ban" then
|
||||
table.insert(ban.id,msg.reply_to_message.forward_from.id)
|
||||
sendMessage(msg.reply_to_message.forward_from.id,"*YOU HAVE BEEN BANNED*",true,false,true)
|
||||
elseif is_admin(msg) and msg.reply_to_message and msg.reply_to_message.forward_from ~= nil and msg.text == "/unban" then
|
||||
@ -347,21 +365,430 @@ elseif is_admin(msg) and msg.reply_to_message and msg.text == "/id" then
|
||||
|
||||
elseif is_admin(msg) and msg.text == "/broadcast" then
|
||||
|
||||
add.broadcast[msg.from.id] = "true"
|
||||
|
||||
add.broadcast = "unbroadcast"
|
||||
sendMessage(msg.chat.id,"*I will send every thing u want*",true,false,true)
|
||||
save_data('mico.db', add)
|
||||
|
||||
|
||||
elseif not is_ban(msg) and msg.text ~= "/start" and msg.text ~= "/id" and msg.text ~= "/unban" and msg.text ~= "/ban" then
|
||||
if is_admin(msg) and msg.reply_to_message then
|
||||
forwardMessage(msg.reply_to_message.forward_from.id,msg.from.id,msg.message_id)
|
||||
--print(msg.from.id)
|
||||
print(msg.reply_to_message.from.id)
|
||||
print(msg.reply_to_message.forward_from.id)
|
||||
--print(msg.reply_to_message.from.id)
|
||||
print(msg.reply_to_message.message_id)
|
||||
elseif not is_admin(msg) then
|
||||
forwardMessage(You,msg.chat.id,msg.message_id)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
bot_run() -- Run main function
|
||||
while is_running do -- Start a loop witch receive messages.
|
||||
local response = getUpdates(last_update+1) -- Get the latest updates using getUpdates method
|
||||
if response then
|
||||
for i,v in ipairs(response.result) do
|
||||
last_update = v.update_id
|
||||
msg_processor(v.message)
|
||||
end
|
||||
else
|
||||
print("Conection failed")
|
||||
end
|
||||
if last_cron ~= os.date('%M', os.time()) then -- Run cron jobs every minute.
|
||||
last_cron = os.date('%M', os.time())
|
||||
save_data('mico.db', add) -- Save the database.
|
||||
save_data('ban.db', ban)
|
||||
|
||||
end
|
||||
end
|
||||
save_data('mico.db', add)
|
||||
save_data('ban.db', ban)
|
||||
print("Bot halted")
|
||||
package.path = package.path .. ';.luarocks/share/lua/5.2/?.lua'
|
||||
..';.luarocks/share/lua/5.2/?/init.lua'
|
||||
package.cpath = package.cpath .. ';.luarocks/lib/lua/5.2/?.so'
|
||||
URL = require('socket.url')
|
||||
JSON = require('dkjson')
|
||||
HTTPS = require('ssl.https')
|
||||
dofile('utilities.lua')
|
||||
----config----
|
||||
local bot_api_key = "209834280:AAEy9TEZfXSt9xrq3JNLn8jCJcfQxpS_cwY" --التوكم هنا
|
||||
local You = 197659452 --خلي ايدي حسابك
|
||||
local BASE_URL = "https://api.telegram.org/bot"..bot_api_key
|
||||
local BASE_FOLDER = ""
|
||||
local start = [[ [مرحبا بك في بوت التواصل👀]
|
||||
|
||||
|
||||
*{\TE_(SPΛCE)_CH/}*
|
||||
[
|
||||
يمكنك طرح اي فكره او استفسار 💋
|
||||
|
||||
|
||||
او ماذا تريد ان اشرح لك خلال رساله
|
||||
|
||||
|
||||
المطور :- @MALVOO
|
||||
القناه :- @lua_lua ]
|
||||
]]
|
||||
|
||||
-------
|
||||
|
||||
----utilites----
|
||||
local help = [[
|
||||
➖➖➖➖➖➖➖➖➖➖➖
|
||||
*commands:*`for admin`
|
||||
`/ban` ✴️
|
||||
*حظر عضو من ارسال رساله بالرد على رسالته*
|
||||
`/unban` ✴️
|
||||
*فتح الحظر عن عضو عن طريق الرد على رسالته*
|
||||
`/users` ✴️
|
||||
*معرفه عدد الاعضاء المشتركين*
|
||||
`/broadcast` ✴️
|
||||
*ارسل هذا الامر وكل رساله كانت بعده سترسل لجميع المشتركين*
|
||||
`/unbroadcast` ✴️
|
||||
*لكي تتوقف ارسال الرسائل وتفعيل الاوامر البقيه*
|
||||
`/start` ✴️
|
||||
*لأظهار رساله ترحيب للاعضاٱء*
|
||||
`/id` ✴️
|
||||
*بالرد على رساله موجهه يضهر لك المعلومات*
|
||||
➖➖➖➖➖➖➖➖➖➖➖
|
||||
]]--اوامر المساعدة
|
||||
-------
|
||||
|
||||
----utilites----
|
||||
|
||||
function is_admin(msg)-- Check if user is admin or not
|
||||
local var = false
|
||||
local admins = {You}
|
||||
for k,v in pairs(admins) do
|
||||
if msg.from.id == v then
|
||||
var = true
|
||||
end
|
||||
end
|
||||
return var
|
||||
end
|
||||
function is_add(msg)-- Check if user is ADD or not
|
||||
local var = false
|
||||
local add = add.id
|
||||
for k,v in pairs(add) do
|
||||
if msg.from.id == v then
|
||||
var = true
|
||||
end
|
||||
end
|
||||
return var
|
||||
end
|
||||
function is_ban(msg)-- Check if user is ban or not
|
||||
local var = false
|
||||
local add = ban.id
|
||||
for k,v in pairs(add) do
|
||||
if msg.from.id == v then
|
||||
var = true
|
||||
end
|
||||
end
|
||||
return var
|
||||
end
|
||||
function sendRequest(url)
|
||||
local dat, res = HTTPS.request(url)
|
||||
local tab = JSON.decode(dat)
|
||||
|
||||
if res ~= 200 then
|
||||
return false, res
|
||||
end
|
||||
|
||||
if not tab.ok then
|
||||
return false, tab.description
|
||||
end
|
||||
|
||||
return tab
|
||||
|
||||
end
|
||||
function getMe()
|
||||
local url = BASE_URL .. '/getMe'
|
||||
return sendRequest(url)
|
||||
end
|
||||
function getUpdates(offset)
|
||||
|
||||
local url = BASE_URL .. '/getUpdates?timeout=20'
|
||||
|
||||
if offset then
|
||||
|
||||
url = url .. '&offset=' .. offset
|
||||
|
||||
end
|
||||
|
||||
return sendRequest(url)
|
||||
|
||||
end
|
||||
function sendSticker(chat_id, sticker, reply_to_message_id)
|
||||
|
||||
local url = BASE_URL .. '/sendSticker'
|
||||
|
||||
local curl_command = 'curl -s "' .. url .. '" -F "chat_id=' .. chat_id .. '" -F "sticker=@' .. sticker .. '"'
|
||||
|
||||
if reply_to_message_id then
|
||||
curl_command = curl_command .. ' -F "reply_to_message_id=' .. reply_to_message_id .. '"'
|
||||
end
|
||||
|
||||
io.popen(curl_command):read("*all")
|
||||
return end
|
||||
function sendPhoto(chat_id, photo, caption, reply_to_message_id)
|
||||
|
||||
local url = BASE_URL .. '/sendPhoto'
|
||||
|
||||
local curl_command = 'curl -s "' .. url .. '" -F "chat_id=' .. chat_id .. '" -F "photo=@' .. photo .. '"'
|
||||
|
||||
if reply_to_message_id then
|
||||
curl_command = curl_command .. ' -F "reply_to_message_id=' .. reply_to_message_id .. '"'
|
||||
end
|
||||
|
||||
if caption then
|
||||
curl_command = curl_command .. ' -F "caption=' .. caption .. '"'
|
||||
end
|
||||
|
||||
io.popen(curl_command):read("*all")
|
||||
return end
|
||||
function forwardMessage(chat_id, from_chat_id, message_id)
|
||||
|
||||
local url = BASE_URL .. '/forwardMessage?chat_id=' .. chat_id .. '&from_chat_id=' .. from_chat_id .. '&message_id=' .. message_id
|
||||
|
||||
return sendRequest(url)
|
||||
|
||||
end
|
||||
function sendMessage(chat_id, text, disable_web_page_preview, reply_to_message_id, use_markdown)
|
||||
|
||||
local url = BASE_URL .. '/sendMessage?chat_id=' .. chat_id .. '&text=' .. URL.escape(text)
|
||||
|
||||
if disable_web_page_preview == true then
|
||||
url = url .. '&disable_web_page_preview=true'
|
||||
end
|
||||
|
||||
if reply_to_message_id then
|
||||
url = url .. '&reply_to_message_id=' .. reply_to_message_id
|
||||
end
|
||||
|
||||
if use_markdown then
|
||||
url = url .. '&parse_mode=Markdown'
|
||||
end
|
||||
|
||||
return sendRequest(url)
|
||||
|
||||
end
|
||||
function sendDocument(chat_id, document, reply_to_message_id)
|
||||
|
||||
local url = BASE_URL .. '/sendDocument'
|
||||
|
||||
local curl_command = 'cd \''..BASE_FOLDER..currect_folder..'\' && curl -s "' .. url .. '" -F "chat_id=' .. chat_id .. '" -F "document=@' .. document .. '"'
|
||||
|
||||
if reply_to_message_id then
|
||||
curl_command = curl_command .. ' -F "reply_to_message_id=' .. reply_to_message_id .. '"'
|
||||
end
|
||||
io.popen(curl_command):read("*all")
|
||||
return
|
||||
|
||||
end
|
||||
function download_to_file(url, file_name, file_path)
|
||||
print("url to download: "..url)
|
||||
|
||||
local respbody = {}
|
||||
local options = {
|
||||
url = url,
|
||||
sink = ltn12.sink.table(respbody),
|
||||
redirect = true
|
||||
}
|
||||
-- nil, code, headers, status
|
||||
local response = nil
|
||||
options.redirect = false
|
||||
response = {HTTPS.request(options)}
|
||||
local code = response[2]
|
||||
local headers = response[3]
|
||||
local status = response[4]
|
||||
if code ~= 200 then return nil end
|
||||
local file_path = BASE_FOLDER..currect_folder..file_name
|
||||
|
||||
print("Saved to: "..file_path)
|
||||
|
||||
file = io.open(file_path, "w+")
|
||||
file:write(table.concat(respbody))
|
||||
file:close()
|
||||
return file_path
|
||||
end
|
||||
function sendPhotoID(chat_id, file_id, caption, reply_to_message_id, disable_notification)
|
||||
|
||||
local url = BASE_URL .. '/sendPhoto?chat_id=' .. chat_id .. '&photo=' .. file_id
|
||||
|
||||
if caption then
|
||||
url = url .. '&caption=' .. URL.escape(caption)
|
||||
end
|
||||
|
||||
if reply_to_message_id then
|
||||
url = url .. '&reply_to_message_id=' .. reply_to_message_id
|
||||
end
|
||||
|
||||
if disable_notification then
|
||||
url = url .. '&disable_notification=true'
|
||||
end
|
||||
|
||||
return sendRequest(url)
|
||||
|
||||
end
|
||||
function getUserProfilePhotos(user_id)
|
||||
if user_id == nil then
|
||||
return
|
||||
else
|
||||
local url = BASE_URL .. '/getUserProfilePhotos?user_id='..user_id
|
||||
print(url)
|
||||
return sendRequest(url)
|
||||
end
|
||||
end
|
||||
function download_to_file(url, file_name, file_path)
|
||||
print("url to download: "..url)
|
||||
|
||||
local respbody = {}
|
||||
local options = {
|
||||
url = url,
|
||||
sink = ltn12.sink.table(respbody),
|
||||
redirect = true
|
||||
}
|
||||
-- nil, code, headers, status
|
||||
local response = nil
|
||||
options.redirect = false
|
||||
response = {HTTPS.request(options)}
|
||||
local code = response[2]
|
||||
local headers = response[3]
|
||||
local status = response[4]
|
||||
if code ~= 200 then return nil end
|
||||
local file_path = file_name
|
||||
|
||||
print("Saved to: "..file_path)
|
||||
|
||||
file = io.open(file_path, "w+")
|
||||
file:write(table.concat(respbody))
|
||||
file:close()
|
||||
return file_path
|
||||
end
|
||||
-------- @MALVOO & @DEV_MICO
|
||||
function bot_run()
|
||||
bot = nil
|
||||
|
||||
while not bot do -- Get bot info
|
||||
bot = getMe()
|
||||
end
|
||||
|
||||
bot = bot.result
|
||||
if not add then
|
||||
add = load_data('mico.db')
|
||||
end
|
||||
if not ban then
|
||||
ban = load_data('ban.db')
|
||||
end
|
||||
local bot_info = "Username = @"..bot.username.."\nName = "..bot.first_name.."\nId = "..bot.id.." \nBASED BY :- @DEV_MICO , @MALVOO"
|
||||
|
||||
print(bot_info)
|
||||
for k,v in pairs(add.id) do
|
||||
print(k.." :"..v)
|
||||
end
|
||||
|
||||
last_update = last_update or 0
|
||||
|
||||
currect_folder = ""
|
||||
|
||||
is_running = true
|
||||
math.randomseed(os.time())
|
||||
math.random()
|
||||
|
||||
|
||||
last_cron = last_cron or os.date('%M', os.time()) -- the time of the last cron job,
|
||||
is_started = true -- and whether or not the bot should be running.
|
||||
add.id = add.id or {} --TABLE FUCKERRRRRRRRRRRRRRRRRRRRRRRRRRR
|
||||
ban.id = ban.id or {}
|
||||
add.broadcast = add.broadcast or {} --
|
||||
end
|
||||
function msg_processor(msg)
|
||||
|
||||
if msg.text == "/start" and not is_add(msg) then
|
||||
table.insert(add.id,msg.from.id)
|
||||
print("adding.....")
|
||||
local user = ""
|
||||
if msg.from.username == nil then
|
||||
user = bot.username
|
||||
else
|
||||
user = msg.from.username
|
||||
end
|
||||
local text = "مرحبا بك يا ["..msg.from.first_name.."](www.telegram.me/"..user..")"
|
||||
sendMessage(msg.chat.id,text.."\n"..start,true,false,true)
|
||||
elseif msg.text == "/start" and is_add(msg) then
|
||||
print(#add.id)
|
||||
local user = ""
|
||||
if msg.from.username == nil then
|
||||
user = bot.username
|
||||
else
|
||||
user = msg.from.username
|
||||
end
|
||||
local text = "مرحبا بك يا ["..msg.from.first_name.."](www.telegram.me/"..user..")"
|
||||
sendMessage(msg.chat.id,text.."\n"..start,true,false,true)
|
||||
elseif is_admin(msg) and msg.text == "/users" then
|
||||
local r = tostring(#add.id)
|
||||
|
||||
local t = string.gsub(r," ","")
|
||||
sendMessage(You,t,true,false,true)
|
||||
end
|
||||
if msg.text == '/help' then
|
||||
sendMessage(msg.chat.id,help,true,false,true)
|
||||
end
|
||||
if is_ban(msg) then return end
|
||||
if msg.date < os.time() - 5 then -- Ignore old msgs
|
||||
return
|
||||
end
|
||||
if msg.text == "/unbroadcast" then
|
||||
add.broadcast = "broadcast"
|
||||
save_data('mico.db', add)
|
||||
sendMessage(msg.chat.id,"*I will not broadcast any more*",true,false,true)
|
||||
end
|
||||
if msg.text ~= "/broadcast" and add.broadcast ~= "broadcast" then
|
||||
if is_admin(msg) then
|
||||
if msg.text and msg.text ~= "/unbroadcast" then
|
||||
for k,v in pairs(add.id) do
|
||||
sendMessage(v,msg.text,true,false,true)
|
||||
end
|
||||
|
||||
elseif not msg.text then
|
||||
for k,v in pairs(add.id) do
|
||||
forwardMessage(v,You,msg.message_id)
|
||||
end
|
||||
end
|
||||
end
|
||||
elseif msg.text ~= "/" then
|
||||
if is_admin(msg) and msg.reply_to_message and msg.reply_to_message.forward_from ~= nil and msg.text == "/ban" then
|
||||
table.insert(ban.id,msg.reply_to_message.forward_from.id)
|
||||
sendMessage(msg.reply_to_message.forward_from.id,"*YOU HAVE BEEN BANNED*",true,false,true)
|
||||
elseif is_admin(msg) and msg.reply_to_message and msg.reply_to_message.forward_from ~= nil and msg.text == "/unban" then
|
||||
for k, v in pairs(ban["id"]) do
|
||||
if ( v == msg.reply_to_message.forward_from.id ) then
|
||||
table.remove(ban["id"], k)
|
||||
end
|
||||
end
|
||||
sendMessage(msg.reply_to_message.forward_from.id,"*YOU HAVE BEEN unBANNED*",true,false,true)
|
||||
elseif is_admin(msg) and msg.reply_to_message and msg.text == "/id" then
|
||||
if msg.reply_to_message.forward_from.last_name ~= nil then
|
||||
last_name = msg.reply_to_message.forward_from.last_name
|
||||
else
|
||||
last_name = ""
|
||||
end
|
||||
if msg.reply_to_message.forward_from.username ~= nil then
|
||||
usernme = "\nUSERNAME : @"..msg.reply_to_message.forward_from.username
|
||||
else
|
||||
usernme = ""
|
||||
end
|
||||
local E = "NAME : "..msg.reply_to_message.forward_from.first_name.." "..last_name..usernme.."\nID :"..msg.reply_to_message.forward_from.id
|
||||
sendMessage(msg.chat.id,E)
|
||||
|
||||
elseif is_admin(msg) and msg.text == "/broadcast" then
|
||||
|
||||
add.broadcast = "unbroadcast"
|
||||
sendMessage(msg.chat.id,"*I will send every thing u want*",true,false,true)
|
||||
save_data('mico.db', add)
|
||||
|
||||
elseif msg.text == "/start" and not is_add(msg) then
|
||||
table.insert(add.id,msg.from.id)
|
||||
print("adding.....")
|
||||
local user = ""
|
||||
if msg.from.username == nil then
|
||||
user = bot.username
|
||||
else
|
||||
user = msg.from.username
|
||||
end
|
||||
local text = "مرحبا بك يا ["..msg.from.first_name.."](www.telegram.me/"..user..")"
|
||||
sendMessage(msg.chat.id,text.."\n"..start,true,false,true)
|
||||
|
||||
elseif not is_ban(msg) and msg.text ~= "/start" and msg.text ~= "/id" and msg.text ~= "/unban" and msg.text ~= "/ban" then
|
||||
if is_admin(msg) and msg.reply_to_message then
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user