@likel0vsky

Как сделать изменение ника в telegram по кнопке?

Пишу скрипт на Python - бота, который по кнопкам из клавиатуры телеграмм будет менять мой ник. Возникла проблема - бот меняет ник только при вызове под with, а обработчики бота я не могу вставить под ним - тогда бот не будет их принимать. Как можно решить эту проблему? Код:

print("o")
from pyrogram import Client
from pyrogram.raw import functions
import time
import json
from datetime import datetime
print("+")
import telebot
from telebot import types
bot = telebot.TeleBot('токен')
print("bot component setup finished")
config = json.loads(open('config.json').read())

with Client("app", config['API_ID'], config['API_HASH']) as app:
    #сама функция смена ника, под with она работает
    def ChangeNick(nick):
        print('CHANGE NICK TO:', nick)
        try:
            app.update_profile(first_name="Pyrogram")
        except Exception as e:
            print(e)
        #app.send(functions.account.UpdateProfile(first_name="Test"))
        print("nick changed")


@bot.message_handler(content_types=['text'])
def start(message):
    print("пришло сообщение")
    if message.text == 'ъъъ':
      keyboard = types.InlineKeyboardMarkup()
          
      buttons = [
            types.InlineKeyboardButton(text='Работаю', callback_data='working'),
            types.InlineKeyboardButton(text='Сплю', callback_data='sleeping'),
            types.InlineKeyboardButton(text='По умолчанию', callback_data='default')
      ]
      for b in buttons:
        keyboard.add(b)
        bot.send_message(message.from_user.id, text="?", reply_markup=keyboard)
      else:
        bot.send_message(message.from_user.id, '?');
      
@bot.callback_query_handler(func=lambda call: True)
def callback_worker(call):
    ChangeNick(config.get("NAMES").get(call.data)+" []") #смена ника по кнопке


bot.polling(none_stop=True, interval=0)
  • Вопрос задан
  • 48 просмотров
Пригласить эксперта
Ответы на вопрос 1
Vindicar
@Vindicar
Что мешает засунуть with внутрь ChangeNick()?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы