@Sasha_D097

Создаю чат бот, ошибок по консоли не показывает но при запуске бота кнопка /start не отвечает?

Подскажите. Делаю бота, код роспределяю по папкам, основной файл (bot_telegram) второстепенные файлы (client, admin, other, init)
При запуске бота через консоль ошибок нет, но коменда "/start" не отвечает. В папке (other) записан код фольтр мата.
Пробую матерится бот работает корректно. Не могу понять почему не отвечет на старт, была такая же проблема, я её решил но не понял как.

Код в (bot_telegram)

from aiogram import executor
from create_bot import dp

from handlers import client, admin, other

client.register_handlers_client(dp)
admin.register_handlers_admin(dp)
other.register_handlers_other(dp)

if __name__ == "__main__":
executor.start_polling(dp, skip_updates=True)

файл (client)
from aiogram import types, Dispatcher
from create_bot import dp, bot
from keyboards.client_kb import kb_client
from aiogram.types import ReplyKeyboardRemove

#@dp.message_handler(commands = ["start"])
async def process_start_command(message: types.Message):

await message.answer(f'Привет, {message.from_user.first_name} {message.from_user.last_name}\n Рады преветствовать в нашем магазине ******* ', reply_markup=kb_client)
await message.answer("**********")

#@dp.message_handler(commands = ["time"])
async def place_command(message: types.Message):
await message.answer(f"Мы работаем ежидневно с 08:00 по 21:00", )

#@dp.message_handler(commands = ["nambe"])
async def nambe_command(message: types.Message):
await message.answer (f"********", reply_markup=ReplyKeyboardRemove())

#@dp.message_handler(commands = ["price"])
async def prise_hlem (message: types.Message):
await message.answer (f********** ↓")

def register_handlers_client(dp: Dispatcher):
dp.register_message_handler(process_start_command, commands = ["start"])
dp.register_message_handler(place_command, commands = ["time"])
dp.register_message_handler(nambe_command, commands = ["nambe"])
dp.register_message_handler(prise_hlem, commands = ["price"])

файл (admin)

from aiogram.dispatcher import FSMContext
from aiogram.dispatcher.filters.state import State, StatesGroup
from aiogram import types, Dispatcher
from create_bot import dp

class FSMAdmin(StatesGroup):
photo = State()
name = State()
size = State()
pricce = State()

#Начало диалога загрузки пункта цен
#@dp.message_handler(commands = "download", state = None)
async def cm_start(message : types.Message):
await FSMAdmin.photo.set()
await message.reply("Загрузи фото")

#Ловим первый ответ и пишем словарь
#@dp.message_handler(content_types = ["photo"],state = FSMAdmin.photo)
async def load_photo(message: types.Message, state: FSMContext):
async with state.proxy() as date:
date ["photo"] = message.photo[0].file_id
await FSMAdmin.next()
await message.reply("Теперь введи название")

#ловим второй ответ
#@dp.message_handler(state = FSMAdmin.name)
async def load_name(message: types.Message, state: FSMContext):
async with state.proxe() as date:
date ["name"] = message.text
await FSMAdmin.next()
await message.reply("Введи тип шлема")

#Ловим третий ответ
#@dp.message_handler(state = FSMAdmin.size)
async def load_size(message: types.Message, state: FSMContext):
async with state.proxe() as date:
date ["size"] = message.text
await FSMAdmin.next()
return await message.reply("Введи размер шлема")

#Ловим четвертый ответ и используем полученые данны
#@dp.message_handler(state = FSMAdmin.price)
async def load_pricce(message: types.Message, state: FSMContext):
async with state.proxe() as date:
date ["pricce"] = message.text

async with state.proxe() as date:
await message.raply(str(date))
await state.finish()

#Регистрируем хендлеры
def register_handlers_admin(dp : Dispatcher):
dp.register_message_handler(cm_start, commands = ["download"], state=None)
dp.register_message_handler(load_photo, content_types = ["photo"], state = FSMAdmin.photo)
dp.register_message_handler(load_name, state = FSMAdmin.name)
dp.register_message_handler(load_size, state = FSMAdmin.size)
dp.register_message_handler(load_pricce, state = FSMAdmin.pricce)

Файл (other)

from aiogram import types, Dispatcher
from create_bot import dp
import json, string

@dp.message_handler()
async def delete_mat(message: types.message):
if {i.lower().translate(str.maketrans('','', string.punctuation)) for i in message.text.split(' ')}\
.intersection(set(json.load(open('cenz.json')))) != set():
await message.reply('Маты запрещены')
await message.delete()

def register_handlers_other(dp: Dispatcher):
dp.register_message_handler(delete_mat)

Так же есть файл (__init__)

from handlers import client
from handlers import admin
from handlers import other

Вроде все предоставил для более ясной картины.

Если, что, только учусь делать ботов.
  • Вопрос задан
  • 120 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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