Допуск по юзернейму в telebot
Пишу удаленное выполнение некоторых функций на ПК через тг бота. Нужно разрешить выполнение команд определенному пользователю. В коде есть попытка реализовать это (не бейте), но всегда выдаёт else.
import os
import telebot
import tempfile
import pyscreenshot as ImageGrab
API_TOKEN = 'тут токен'
bot = telebot.TeleBot(API_TOKEN)
@bot.message_handler(commands=['start'])
def send_welcome(message):
markup = telebot.types.ReplyKeyboardMarkup(resize_keyboard=True)
markup.add("кнопок")
markup.add("здесь")
markup.add("нет")
bot.send_message(message.chat.id, '?', reply_markup=markup)
@bot.message_handler(regexp='выключить')
def echo_message(message):
if message.from_user.username == "мой юзернейм": # Повторюсь: не бейте
bot.send_message(message.chat.id, 'Выключаю...')
os.system("shutdown -s -t 0")
else:
bot.send_message(message.chat.id, 'нет')
@bot.message_handler(regexp='получить скриншот') # Тут никакой проверки не пытался вставить
def echo_message(message):
path = tempfile.gettempdir() + 'screenshot.png'
screenshot = ImageGrab.grab()
screenshot.save(path, 'PNG')
bot.send_photo(message.chat.id, open(path, 'rb'))
bot.infinity_polling()
Ответы (1 шт):
Автор решения: Student_py
→ Ссылка
Я бы использовал обработчик текста и message.chat.id
в качестве проверки:
@bot.message_handler(content_types=['text']
def func(message):
if message.text == "Выключить:->" and message.chat.id == <уникальный chatid>:
def comp_shutdown(message):
bot.send_message(message.chat.id, 'Выключаю...')
os.system("shutdown -s -t 0")
comp_shutdown(message)