#!/usr/bin/env python3
import time
from datetime import timedelta
import datetime
import os
import sys
from subprocess import check_output
import telebot
from telebot import types #Импорт кнопок
import config #Конфиг с Токеном и id
from datetime import datetime
from datetime import date
#BotInfo
d = time.localtime()
current_date = time.strftime("Время запуска : %H:%M:%S\nДата запуска : %d-%m-%Y", d)
###############Команды бота##################
@bot.message_handler(commands=config.help)
def send_what(message):
keyboard = telebot.types.ReplyKeyboardMarkup(resize_keyboard=True) #Сворачиваем клавиатуру с кнопками '/Помоги'
keyboard.row('/мамкин_хацкер')
bot.send_message(message.chat.id, 'Подожди .... Я ... Ищу ...')
bot.send_sticker(message.chat.id, 'CAACAgIAAxkBAAEDieJhwwUdWo-cYxSr_appBJAnGTixVwAC1BEAA8CgSXknAeKPK_QMIwQ')
time.sleep(4)
sent = bot.send_message(message.chat.id, 'Нашёл всё то,что ты успел набросать в своём блокноте')
#callback_query
@bot.callback_query_handler(func=lambda call: True)
def callback_inline(call):
# Если сообщение из чата с ботом
if call.message:
if call.data == "1":
bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text='Время запуска бота')
time.sleep(2)
bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text=current_date)
if call.data == "2":
bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text='Тут записаны команды\nНе благодар$
time.sleep(4)
bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text=config.com)
if call.data == "3":
bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text='Тут записаны команды\nСкопируй и $
time.sleep(4)
bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text=config.hosts)
#Shell
@bot.message_handler(content_types=['text'])
def main(message):
# if (user_id == message.chat.id): #проверяем, что пишет именно владелец
comand = message.text #текст сообщения
markup = types.InlineKeyboardMarkup() #создаем клавиатуру
button = types.InlineKeyboardButton(text="Повторить", callback_data=comand) #создаем кнопку
markup.add(button) #добавляем кнопку в клавиатуру
try: #если команда невыполняемая - check_output выдаст exception
bot.send_message(message.chat.id, check_output(comand, shell = True))
except:
bot.send_sticker(message.chat.id, "CAACAgIAAxkBAAEDielhwwh03KD3WbZOrLlk_l4znJOmcwACWQADQbVWDFwGcdsFH9eeIwQ") #если команда некорре$
@bot.callback_query_handler(func=lambda call: True)
def callback(call):
comand = call.data #считываем команду из поля кнопки data
try: #если команда не выполняемая - check_output выдаст exception
markup = types.InlineKeyboardMarkup() #создаем клавиатуру
button = types.InlineKeyboardButton(text="Повторить", callback_data=comand) #создаем кнопку и в data передаём команду
markup.add(button) #добавляем кнопку в клавиатуру
bot.send_message(user_id, check_output(comand, shell = True), reply_markup = markup) #вызываем команду и отправляем сообщение с рез$
except:
bot.send_sticker(user_id, "CAACAgIAAxkBAAEDielhwwh03KD3WbZOrLlk_l4znJOmcwACWQADQbVWDFwGcdsFH9eeIwQ") #если команда некорректна
if __name__ == '__main__':
while True:
try: #добавляем try для бесперебойной работы
bot.polling(none_stop=True) #запуск бота
except:
time.sleep(10) #в случае падения
Vindicar, Я так понял что это просто не реально...
Есть ли другой способ отправить сообщение боту например - Покажи
И он запускал бы мой другой скрипт, который отправлял бы на сервер запрос с командой, а бот перехватывал ответ и отправлял в чат сообщением?
Vindicar, Я мог изменить, написав в коде для кнопки вместо Нажми саму команду тогда в кнопке надпись изменялась на Нажми, но смысла в этом нет, так как при нажатии на кнопку нажми, сообщение в чат уходило именно Нажми, а не команда
#!/usr/bin/env python3
import time
from datetime import timedelta
import datetime
import os
import sys
from subprocess import check_output
import telebot
from telebot import types #Импорт кнопок
import config #Конфиг с Токеном и id
from datetime import datetime
from datetime import date
#BotInfo
d = time.localtime()
current_date = time.strftime("Время запуска : %H:%M:%S\nДата запуска : %d-%m-%Y", d)
#commands = { "Нажми": "python3 /home/toor/zabb.py" }
bot = telebot.TeleBot(config.token) #Токен
user_id = config.id #id group
### Функция проверки авторизации
def autor(chatid):
strid = str(chatid)
for item in config.users:
if item == strid:
return True
return False
#start
@bot.message_handler(commands=['start'])
def start(message):
if autor(message.chat.id):
cid = message.chat.id
message_text = message.text
user_id = message.from_user.id
user_name = message.from_user.first_name
t = time.localtime()
current_time = time.strftime("Текущее время : %H:%M:%S\nДата : %d-%m-%Y", t)
bot.send_message(message.chat.id, current_time)
keyboard = types.InlineKeyboardMarkup() #Время запуска
callback_button = types.InlineKeyboardButton(text="Посмотреть", callback_data="1") #Время запуска
keyboard.add(callback_button) #Время запуска
bot.send_message(message.chat.id, "Когда в последний раз был запущен бот ?!", reply_markup=keyboard) #Время запуска
keyboard = telebot.types.ReplyKeyboardMarkup(resize_keyboard=True) #Сворачиваем клавиатуру с кнопками
keyboard.row('/bot')
bot.send_message(message.chat.id, '' + user_name + ', Рад тебя видеть!\nНажми /bot - что бы начать диалог с этим ушлёпком', reply_
else:
bot.send_message(message.chat.id, 'Тебе сюда нельзя. Твой ID: ' + str(message.chat.id))
bot.send_sticker(message.chat.id, 'CAACAgIAAxkBAAEDh3RhwOgjULsyeCuvZqvUPDKL_bCknQACnxEAAgig0El5jitDd8qliSME')
@bot.message_handler(commands=config.bot)
def start_bot(message):
keyboard = telebot.types.ReplyKeyboardMarkup(resize_keyboard=True) #Сворачиваем клавиатуру с кнопками '/Помоги'
keyboard.row('/памагити-памагити')
keyboard.row('/мамкин_хацкер')
bot.send_message(message.chat.id, 'Что ты хочешь от меня, смертный?!', reply_markup=keyboard)
bot.send_sticker(message.chat.id, 'CAACAgIAAxkBAAEDh2thwOU_BO4tcs8FWTCIOYCWE66PPQAC-hAAAqHHKEg5ZXbrk1gHoyME')
keyboard = types.InlineKeyboardMarkup() #Шпора
callback_button = types.InlineKeyboardButton(text="Открыть", callback_data="2") #Шпора
keyboard.add(callback_button) #Шпора
bot.send_message(message.chat.id, "Шпоргалка", reply_markup=keyboard) #Шпора
keyboard = types.InlineKeyboardMarkup() #test
callback_button = types.InlineKeyboardButton(text="Открыть", callback_data="3") #test
keyboard.add(callback_button) #test
bot.send_message(message.chat.id, "Хосты сети", reply_markup=keyboard) #test
###############Команды бота##################
@bot.message_handler(commands=config.help)
def send_what(message):
keyboard = telebot.types.ReplyKeyboardMarkup(resize_keyboard=True) #Сворачиваем клавиатуру с кнопками '/Помоги'
keyboard.row('/мамкин_хацкер')
bot.send_message(message.chat.id, 'Подожди .... Я ... Ищу ...')
bot.send_sticker(message.chat.id, 'CAACAgIAAxkBAAEDieJhwwUdWo-cYxSr_appBJAnGTixVwAC1BEAA8CgSXknAeKPK_QMIwQ')
time.sleep(4)
sent = bot.send_message(message.chat.id, 'Нашёл всё то,что ты успел набросать в своём блокноте')
#callback_query
@bot.callback_query_handler(func=lambda call: True)
def callback_inline(call):
# Если сообщение из чата с ботом
if call.message:
if call.data == "1":
bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text='Время запуска бота')
time.sleep(2)
bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text=current_date)
if call.data == "2":
bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text='Тут записаны команды\nНе благодар$
time.sleep(4)
bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text=config.com)
if call.data == "3":
bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text='Тут записаны команды\nСкопируй и $
time.sleep(4)
bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text=config.hosts)
#Shell
@bot.message_handler(content_types=['text'])
def main(message):
# if (user_id == message.chat.id): #проверяем, что пишет именно владелец
comand = message.text #текст сообщения
markup = types.InlineKeyboardMarkup() #создаем клавиатуру
button = types.InlineKeyboardButton(text="Повторить", callback_data=comand) #создаем кнопку
markup.add(button) #добавляем кнопку в клавиатуру
try: #если команда невыполняемая - check_output выдаст exception
bot.send_message(message.chat.id, check_output(comand, shell = True))
except:
bot.send_sticker(message.chat.id, "CAACAgIAAxkBAAEDielhwwh03KD3WbZOrLlk_l4znJOmcwACWQADQbVWDFwGcdsFH9eeIwQ") #если команда некорре$
@bot.callback_query_handler(func=lambda call: True)
def callback(call):
comand = call.data #считываем команду из поля кнопки data
try: #если команда не выполняемая - check_output выдаст exception
markup = types.InlineKeyboardMarkup() #создаем клавиатуру
button = types.InlineKeyboardButton(text="Повторить", callback_data=comand) #создаем кнопку и в data передаём команду
markup.add(button) #добавляем кнопку в клавиатуру
bot.send_message(user_id, check_output(comand, shell = True), reply_markup = markup) #вызываем команду и отправляем сообщение с рез$
except:
bot.send_sticker(user_id, "CAACAgIAAxkBAAEDielhwwh03KD3WbZOrLlk_l4znJOmcwACWQADQbVWDFwGcdsFH9eeIwQ") #если команда некорректна
if __name__ == '__main__':
while True:
try: #добавляем try для бесперебойной работы
bot.polling(none_stop=True) #запуск бота
except:
time.sleep(10) #в случае падения