Пишу скрипт на 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)