aiogram 3.4 как передать переменные из главного main.py в модули с роутерами
это мой первый вопрос, только что зарегался
Нужна помощь с телеграмм ботом aiogram 3.4
В корне проекта есть файл main.py где в самом начале создаю переменную settings в которую загружаю настройки из configs.yaml, а также tmp = {}.
В папке handlers есть модули bot_files.py и bot_messages.py внутри них @router
как из этих модулей иметь доступ к settings и tmp_owners?
вот main.py
import yaml
import asyncio
import os
from aiogram import Bot, Dispatcher
from dotenv import load_dotenv
from handlers import bot_files, bot_messages
load_dotenv()
with open('config.yaml', encoding='utf-8') as f:
settings = yaml.safe_load(f)
tmp_owners = {}
async def main():
bot = Bot(token=os.getenv('TOKEN'))
dp = Dispatcher()
dp.include_routers(
bot_messages.router,
bot_files.router,
)
await dp.start_polling(bot)
if __name__ == "__main__":
asyncio.run(main())
вот bot_files.py
from aiogram import F, Router, Bot
from aiogram.enums import ParseMode
from aiogram.types import Message
from functions import functions
router = Router()
@router.message(F.audio)
async def get_audio(message: Message, bot: Bot):
await functions.print_message(message, settings, tmp_owners, bot)
audio = message.audio
await functions.get_audio_video_voice(message, audio, bot, 'audios')
а также и папки как они есть
Ответы (1 шт):
Автор решения: CraSmi
→ Ссылка
проблема решилась банальным импортом переменных внутри модулей bot_messages.py bot_files.py
from main import settings, tmp_owners