Откуда никто не приходит

Я пытаюсь написать свою телеграмму бота, идея в том, что, например, выбрав встроенную кнопку на 20 минут, через 20 минут пользователь получит уведомление, а точнее ссылку, которая изначально была написана в exel и пишет python эти данные в JSON, а затем отображаются в боте Telegram. Но я наткнулся на небольшую хрупкую. Все работает хорошо, вот только у меня, кроме ссылки, еще и сообщение нет, и я не понимаю, откуда оно взялось. Буду рад вашей помощи.

Вот основной код бота:

      # BackHelperBot

# --- основной импорт модулей для работы ---

from aiogram import Bot, bot, types
from aiogram.dispatcher import Dispatcher
from aiogram.types import ReplyKeyboardRemove, \
    ReplyKeyboardMarkup, KeyboardButton, \
    InlineKeyboardMarkup, InlineKeyboardButton
from aiogram.utils import executor
import asyncio


# --- импорт токена бота ---

from conf import TOKEN

# --- импорт файлов и функций ---

import time
from timerminuta import timer_number
from timerminuta import timer_number_1
from timerminuta import timer_number_2
import json
from reck import get_new_reck


# --- инициализация бота ---

bot = Bot(token=TOKEN)
dp = Dispatcher(bot)


# --- 1 кнопкa основного меню ---

button1 = KeyboardButton('Напоминание') # --- напомнить про то, что нужно выровнять спину

main_menu_razmetka = ReplyKeyboardMarkup().row(button1) # --- разметка основного меню


# --- старт бота по коменде /start ---

@dp.message_handler(commands=['start']) # --- Старт бота(вызов основного меню и 
описание(краткое) второго меню)
async def start_bot_command(message: types.Message):
    await message.reply("Здравствуйте {0.first_name}\nВас приветствует бот\n---- BackHelperBot 
----\n-----------------------------------------------------\nВы можете:\nНастороить 
напоминание нажав в меню кнопку 'Напоминание'".format(message.from_user), 
reply_markup=main_menu_razmetka)


# --- Инлайн кнопки для каждой кнопки меню ---

inline_button_1 = InlineKeyboardButton('Через 20 минут', callback_data='inline_btn_1') # --- 
напоминание через 30 минут
inline_button_2 = InlineKeyboardButton('Через 45 минут', callback_data='inline_btn_2') # --- 
напоминание через 1 час
inline_button_3 = InlineKeyboardButton('Через 1,5 часа', callback_data='inline_btn_3') # --- 
напоминание через 2 часа

inline_button_menu_1 = 
 InlineKeyboardMarkup(row_width=2).add(inline_button_1).add(inline_button_2).add(inline_button_3) # 
--- инлайн меню "Напоминание"

# --- основное меню ---
@dp.message_handler()
async def call_menu_of_inline(message: types.Message):
    if message.text == 'Напоминание':
        await message.reply("Выберите как записаться:", reply_markup=inline_button_menu_1) # - 
-- инлайн меню "Напоминание"


# --- использание инлайн кноок ---

@dp.callback_query_handler(lambda c: c.data == 'inline_btn_1') # --- напоминание через 20 
минут
async def process_callback_button1(callback_query: types.CallbackQuery):
    await bot.answer_callback_query(callback_query.id)
    timer_number()
    with open("vivod_reck.json") as file:
        vocabulary = json.load(file)


    for back in range (1, 6):
        for k, v in sorted(vocabulary.items())[-2:]:
            link = f"{v['link']}"
            await bot.send_message(callback_query.from_user.id, link)
            time.sleep(3)



# Полигон ------------------------------------------------------------------------------------ 
-----------------------

if __name__ == '__main__':
    loop = asyncio.get_event_loop()
    # loop.create_task(news_every_minute())
    executor.start_polling(dp)

Вот код, который считывает ссылки из файла exel и записывает в JSON

      from typing_extensions import runtime
import json
import openpyxl


book = openpyxl.open("reck.xlsx", read_only = True)

sheet = book.active

def get_new_reck():

    vocabulary = {}
    for row in range(2, sheet.max_row + 1):
        number_link = sheet[row][0].value
        link = sheet[row][1].value

        # print(number_link, link)


        vocabulary[number_link] = {

            "link": link 

        }

    with open("vivod_reck.json", "w", encoding='utf-8') as file:
        json.dump(vocabulary, file, indent=4, ensure_ascii=False)


get_new_reck()

Вот что я получаю в боте:

А вот и мой файл JSON:

Что делать? Почему это происходит? Помоги мне, пожалуйста)

0 ответов

Другие вопросы по тегам