Загрузка...

There was an error in the Python code of the Telegram bot developed using the aiogram library.

Thread in Python created by nightmef Dec 6, 2024. 214 views

  1. nightmef
    nightmef Topic starter Dec 6, 2024 0 Jan 7, 2024
    import asyncio

    from aiogram import Bot, Dispatcher, types

    from aiogram.exceptions import TelegramAPIError

    from aiogram.utils.markdown import hbold

    import logging

    import json

    import os

    from aiogram.contrib.fsm_storage.memory import MemoryStorage



    logging.basicConfig(level=logging.INFO)



    BOT_TOKEN = "123"

    ADMIN_ID = 321

    DATA_FILE = "new_users.json"



    bot = Bot(token=BOT_TOKEN)



    storage = MemoryStorage()

    dp = Dispatcher(bot, storage=storage)



    def load_data():

    if os.path.exists(DATA_FILE):

    with open(DATA_FILE, "r", encoding='utf-8') as f:

    try:

    return json.load(f)

    except json.JSONDecodeError:

    return {}

    else:

    return {}



    def save_data(data):

    with open(DATA_FILE, "w", encoding='utf-8') as f:

    json.dump(data, f, ensure_ascii=False, indent=4)



    new_users = load_data()



    @dp.message_handler(commands=['start'])

    async def start(message: types.Message):

    username = message.from_user.first_name

    if message.from_user.username:

    username = "@" + message.from_user.username

    await message.answer(f"Привет, {hbold(username)}! \nЭто бот для демонстрации возможностей Telegram ботов. \nВы можете использовать команды /site и /website для перехода на сайт.")



    @dp.message_handler(commands=['site', 'website'])

    async def site(message: types.Message):

    markup = types.InlineKeyboardMarkup()

    btn1 = types.InlineKeyboardButton('Перейти на сайт', url='https://Funpay.com/users/***/')

    markup.add(btn1)

    await message.answer('Перейдите по ссылке:', reply_markup=markup)



    @dp.message_handler(content_types=['photo'])

    async def get_photo(message: types.Message):

    markup = types.InlineKeyboardMarkup()

    btn1 = types.InlineKeyboardButton('Перейти на сайт', url='https://Funpay.com/users/***/')

    btn2 = types.InlineKeyboardButton('Изменить текст', callback_data='edit')

    btn3 = types.InlineKeyboardButton('Удалить фото', callback_data='delete')

    markup.add(btn1, btn2, btn3)

    await message.answer('Какое красивое фото!', reply_markup=markup)



    @dp.callback_query_handler(lambda c: c.data and c.data.startswith('edit'))

    async def process_callback_edit(callback_query: types.CallbackQuery):

    try:

    await callback_query.message.edit_text('Измененный текст')

    await callback_query.answer()

    except TelegramAPIError as e:

    await callback_query.answer(f"Ошибка: {e}")

    logging.error(f"Ошибка редактирования сообщения: {e}")



    @dp.callback_query_handler(lambda c: c.data and c.data.startswith('delete'))

    async def process_callback_delete(callback_query: types.CallbackQuery):

    try:

    await bot.delete_message(callback_query.message.chat.id, callback_query.message.message_id - 1)

    await callback_query.answer()

    except TelegramAPIError as e:

    await callback_query.answer(f"Ошибка: {e}")

    logging.error(f"Ошибка удаления сообщения: {e}")



    @dp.message_handler()

    async def handle_all_messages(message: types.Message):

    user_id = message.from_user.id

    if user_id not in new_users:

    new_users[user_id] = True

    try:

    await bot.send_message(ADMIN_ID, f"Новый пользователь: {message.from_user.first_name} ({user_id}) написал: {message.text}")

    except TelegramAPIError as e:

    logging.error(f"Ошибка отправки сообщения администратору: {e}")

    logging.info(f"New user: {message.from_user.first_name} ({user_id}) sent: {message.text}")

    save_data(new_users)



    async def main():

    await dp.start_polling(skip_updates=True)



    if name == 'main':

    asyncio.run(main())
    Ошибка: line 8, in <module>
    from aiogram.contrib.fsm_storage.memory import MemoryStorage # Импортируем MemoryStorage
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ModuleNotFoundError: No module named 'aiogram.contrib.fsm_storage'
    Токены специально убрал.
     
  2. Hollywood
    Hollywood Dec 6, 2024 э 20,248 Oct 28, 2020
    Code
    from aiogram.fsm.storage.memory import MemoryStorage
     
  3. Belovered
    Belovered Dec 6, 2024 839 Jan 24, 2021
    У тебя установлен аиограм 3, поставь 2.x
     
  4. zeroshehka
    zeroshehka Dec 9, 2024 Banned 0 Dec 9, 2024
    установи pip install aiogram - это для начала,

    свою ошибку библи замени на эту
    from aiogram.fsm.state import State, StatesGroup
     
Top
Loading...