|
0 / 0 / 0
Регистрация: 16.02.2024
Сообщений: 3
|
|
Telegram Bot aiogram\asyncio + email бот16.02.2024, 17:19. Показов 609. Ответов 2
Доброго времени суток, если вам не сложно, попинайте меня и мой скрипт в плане оптимизации или ошибок, я новичок в python
буду очень признателен[PYTHON]# Импорт модулей import aioodbc import datetime import time import asyncio import logging from logging.handlers import TimedRotatingFileHandler import re import aiogram from aiogram import Bot, Dispatcher, types from aiogram.utils import executor import traceback import smtplib from email.message import EmailMessage from email.mime.text import MIMEText from email_validator import validate_email, EmailNotValidError bot_token = 'xxx' bot = Bot(token=bot_token) dp = Dispatcher(bot) # Настройка уровня логирования logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s', datefmt='%H:%M:%S') # Создаём логеры для различных событий logger_telegram = logging.getLogger('telegram') logger_system = logging.getLogger('system') logger_email = logging.getLogger('email') # Настраиваем ротацию логов по суткам file_handler_telegram = logging.handlers.TimedRotatingFileHandle r('logs/telegram.txt', when='midnight', interval=1) file_handler_system = logging.handlers.TimedRotatingFileHandle r('logs/system.txt', when='midnight', interval=1) file_handler_email = logging.handlers.TimedRotatingFileHandle r('logs/email.txt', when='midnight', interval=1) # Set the log format log_format = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s') # Configure log levels and handlers for each logger logger_telegram.setLevel(logging.DEBUG) logger_telegram.addHandler(file_handler_ telegram) file_handler_telegram.setFormatter(log_f ormat) logger_system.setLevel(logging.DEBUG) logger_system.addHandler(file_handler_sy stem) file_handler_system.setFormatter(log_for mat) logger_email.setLevel(logging.DEBUG) logger_email.addHandler(file_handler_ema il) file_handler_email.setFormatter(log_form at) # Connecting to database dsn = 'DRIVER={ODBC Driver 17 for SQL Server};' \ 'SERVER=192.168.1.150;' \ 'DATABASE=;' \ 'UID=;' \ 'PWD=' @dp.message_handler(commands=['start']) async def send_welcome(message: types.Message): user_id = message.from_user.id user_firstname = message.from_user.first_name user_lastname = message.from_user.last_name user_login = message.from_user.username print(f"Command '/start' received from Name: {user_firstname}, Surname: {user_lastname}, Login: {user_login}, ID: {user_id}") await message.answer(f"User ID: {user_id}") @dp.message_handler(commands=['test']) async def send_test(message: types.Message): await message.answer('Pass') # Telegram Sending function async def send_telegram(result): new_dt = result[4].strftime("%d.%m.%Y %H:%M:%S") g_nr = hex(result[2])[2:] receivers = result[8] # Add Emoji to reactions reaction_type = str(result[11]) match reaction_type: case "1": # Alarm emoji_text = "
0
|
|
| 16.02.2024, 17:19 | |
|
Ответы с готовыми решениями:
2
Бот с использованием библиотеки aiogram Бот не отвечает на команду Aiogram |
|
Автоматизируй это!
|
||
| 17.02.2024, 10:39 | ||
|
DeeKeiD, все в куче
1) вынеси логику (например отправку письма, работу с бд) в отдельную функцию и потом в корутине просто вызывай ее 2) зачем принт если есть логгинг? ты же логгеру можешь добавить обработчик, чтобы кроме файла писал в консоль 3) сами логгеры в теле не должны использовать ф-строки, они используют %s 4)
0
|
||
|
0 / 0 / 0
Регистрация: 16.02.2024
Сообщений: 3
|
|
| 19.02.2024, 15:25 [ТС] | |
|
1. Так вроде логика уже вынесена, есть функции отправки е-мейла и сообщения в телегу и 2 корутины которые проверяют очередь и дёргают эти ф-и при наличии данных в очередях, или я не так понял?
2. Принты пока для тестов в готовом варианте будет только логер3. Понял, спасибо 4. При таком подходе у меня не запускается бот, вылетает ошибка loop already exists, в любом случае буду переписывать под aiogram 3.3.0, сейчас написано под 2.3
0
|
|
| 19.02.2024, 15:25 | |
|
Помогаю со студенческими работами здесь
3
Бот не отвечает на сообщение aiogram Бот aiogram не вызывается событие Бот с использованием библиотеки aiogram Как перенести бота на aiogram? Бот на python Бот на aiogram. Как сделать фильтр определенных слов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи
и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|