Подскажите пожалуйста как изменить название кнопки с командой shell но что бы на кнопке была другая надпись вместо самой команды?
Сейчас это так))
keyboard.row('python3 /home/toor/zabb.py')
И это работает, только вот название на кнопке хотелось бы другое
smokedevil666, сделай глобальный словарь вида commands = { "Нажми": "python3 /foor/bar/baz" }
И ищи в нём полученное сообщение. Если такого ключа нет, ругаешься на пользователя.
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)
###############Команды бота##################
@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) #в случае падения