From 22bdcafc5933c052a2f201966a339556554256c3 Mon Sep 17 00:00:00 2001 From: zosimovaa Date: Sat, 1 Nov 2025 21:56:30 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A2=D0=B5=D1=81=D1=82=D0=BE=D0=B2=D0=BE?= =?UTF-8?q?=D0=B5=20=D0=BF=D1=80=D0=B8=D0=BB=D0=BE=D0=B6=D0=B5=D0=BD=D0=B5?= =?UTF-8?q?=20=D0=B3=D0=BE=D1=82=D0=BE=D0=B2=D0=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pyproject.toml | 5 +- src/mail_order_bot/__init__.py | 5 - .../{config.yaml => config.yml} | 13 +- src/mail_order_bot/email_client/__init__.py | 4 +- .../{email_client.py => client.py} | 18 +- .../{email_objects.py => objects.py} | 2 +- src/mail_order_bot/logs/log.log | 452 ++++++++++++++++++ src/mail_order_bot/main.py | 57 ++- tests/email_client/test_email_client.py | 2 +- 9 files changed, 510 insertions(+), 48 deletions(-) rename src/mail_order_bot/{config.yaml => config.yml} (85%) rename src/mail_order_bot/email_client/{email_client.py => client.py} (99%) rename src/mail_order_bot/email_client/{email_objects.py => objects.py} (99%) create mode 100644 src/mail_order_bot/logs/log.log diff --git a/pyproject.toml b/pyproject.toml index 5e1b9e3..ab39fb0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta" [project] name = "MailOrderBot" description = "Config manager for building applications" -version = "1.0.3" +version = "1.0.4" authors = [ { name = "Aleksei Zosimov", email = "lesha.spb@gmail.com" } ] @@ -13,7 +13,8 @@ readme = "README.md" requires-python = ">=3.12" dependencies = [ - "python-dotenv>=1.0.0" + "python-dotenv>=1.0.0", + "git+https://git.lesha.spb.ru/alex/config_manager.git@master#egg=config_manager" ] [tool.setuptools.packages.find] diff --git a/src/mail_order_bot/__init__.py b/src/mail_order_bot/__init__.py index 056f917..e69de29 100644 --- a/src/mail_order_bot/__init__.py +++ b/src/mail_order_bot/__init__.py @@ -1,5 +0,0 @@ -import sys -import os -path = os.path.abspath(os.path.join(os.path.dirname(__file__))) -#print(path) -sys.path.insert(0, path) diff --git a/src/mail_order_bot/config.yaml b/src/mail_order_bot/config.yml similarity index 85% rename from src/mail_order_bot/config.yaml rename to src/mail_order_bot/config.yml index cc6f3dd..f7bf06b 100644 --- a/src/mail_order_bot/config.yaml +++ b/src/mail_order_bot/config.yml @@ -1,9 +1,10 @@ # === Раздел с общими конфигурационными параметрами === -runtime: 5 -update_interval: 1 +update_interval: 2 work_interval: 2 +email_dir: "spareparts" + # === Логирование === log: version: 1 @@ -11,7 +12,7 @@ log: formatters: standard: - format: '%(asctime)s %(name)30s [%(levelname)8s]: %(message)s' + format: '%(asctime)s %(module)15s [%(levelname)8s]: %(message)s' telegram: format: '%(message)s' @@ -29,7 +30,7 @@ log: filename: logs/log.log mode: a maxBytes: 500000 - backupCount: 15 + backupCount: 10 #telegram: # level: CRITICAL @@ -43,12 +44,12 @@ log: loggers: '': handlers: [console, file] - level: DEBUG + level: INFO propagate: False __main__: handlers: [console, file] - level: WARNING + level: INFO propagate: False config_manager: diff --git a/src/mail_order_bot/email_client/__init__.py b/src/mail_order_bot/email_client/__init__.py index a2b3374..ce9557f 100644 --- a/src/mail_order_bot/email_client/__init__.py +++ b/src/mail_order_bot/email_client/__init__.py @@ -1,2 +1,2 @@ -from .email_client import EmailClient -from .email_objects import EmailMessage, EmailAttachment +from .client import EmailClient +from .objects import EmailMessage, EmailAttachment diff --git a/src/mail_order_bot/email_client/email_client.py b/src/mail_order_bot/email_client/client.py similarity index 99% rename from src/mail_order_bot/email_client/email_client.py rename to src/mail_order_bot/email_client/client.py index fd58451..b281f42 100644 --- a/src/mail_order_bot/email_client/email_client.py +++ b/src/mail_order_bot/email_client/client.py @@ -1,17 +1,17 @@ -import imaplib -import smtplib import re -from email.mime.text import MIMEText -from email.mime.multipart import MIMEMultipart -from email.mime.base import MIMEBase -from email import encoders -import email -from email.header import decode_header from datetime import datetime from typing import List, Optional from dataclasses import dataclass +import email +from email import encoders +from email.mime.text import MIMEText +from email.mime.multipart import MIMEMultipart +from email.mime.base import MIMEBase +from email.header import decode_header +import imaplib +import smtplib -from .email_objects import EmailMessage, EmailAttachment +from .objects import EmailMessage, EmailAttachment class EmailClient: diff --git a/src/mail_order_bot/email_client/email_objects.py b/src/mail_order_bot/email_client/objects.py similarity index 99% rename from src/mail_order_bot/email_client/email_objects.py rename to src/mail_order_bot/email_client/objects.py index 38174bc..d3b73b0 100644 --- a/src/mail_order_bot/email_client/email_objects.py +++ b/src/mail_order_bot/email_client/objects.py @@ -19,4 +19,4 @@ class EmailMessage: body: str attachments: List[EmailAttachment] first_sender: str = '' - + \ No newline at end of file diff --git a/src/mail_order_bot/logs/log.log b/src/mail_order_bot/logs/log.log new file mode 100644 index 0000000..bf51942 --- /dev/null +++ b/src/mail_order_bot/logs/log.log @@ -0,0 +1,452 @@ +2025-11-01 21:42:16,440 log_manager [ INFO]: Logging configuration applied +2025-11-01 21:42:16,440 log_manager [ INFO]: Logging configuration applied +2025-11-01 21:42:16,440 cfg_manager [ INFO]: Update interval set to 2.0 seconds +2025-11-01 21:42:16,440 cfg_manager [ INFO]: Update interval set to 2.0 seconds +2025-11-01 21:42:16,440 cfg_manager [ INFO]: Work interval set to 2.0 seconds +2025-11-01 21:42:16,440 cfg_manager [ INFO]: Work interval set to 2.0 seconds +2025-11-01 21:42:17,109 main [ INFO]: Check emails for new orders +2025-11-01 21:42:19,239 main [ INFO]: Check emails for new orders +2025-11-01 21:42:21,371 main [ INFO]: Check emails for new orders +2025-11-01 21:42:23,499 main [ INFO]: Check emails for new orders +2025-11-01 21:42:25,636 main [ INFO]: Check emails for new orders +2025-11-01 21:42:27,770 main [ INFO]: Check emails for new orders +2025-11-01 21:42:27,772 cfg_manager [ INFO]: ConfigManager tasks cancelled +2025-11-01 21:42:27,772 cfg_manager [ INFO]: ConfigManager tasks cancelled +2025-11-01 21:42:27,772 cfg_manager [ INFO]: ConfigManager stopped +2025-11-01 21:42:27,772 cfg_manager [ INFO]: ConfigManager stopped +2025-11-01 21:42:35,229 log_manager [ INFO]: Logging configuration applied +2025-11-01 21:42:35,229 log_manager [ INFO]: Logging configuration applied +2025-11-01 21:42:35,230 cfg_manager [ INFO]: Update interval set to 2.0 seconds +2025-11-01 21:42:35,230 cfg_manager [ INFO]: Update interval set to 2.0 seconds +2025-11-01 21:42:35,230 cfg_manager [ INFO]: Work interval set to 2.0 seconds +2025-11-01 21:42:35,230 cfg_manager [ INFO]: Work interval set to 2.0 seconds +2025-11-01 21:42:37,462 main [ INFO]: Check emails for new orders +2025-11-01 21:42:39,542 main [ INFO]: Check emails for new orders +2025-11-01 21:42:41,623 main [ INFO]: Check emails for new orders +2025-11-01 21:42:43,705 main [ INFO]: Check emails for new orders +2025-11-01 21:42:45,791 main [ INFO]: Check emails for new orders +2025-11-01 21:42:47,872 main [ INFO]: Check emails for new orders +2025-11-01 21:42:49,514 cfg_manager [ INFO]: ConfigManager tasks cancelled +2025-11-01 21:42:49,514 cfg_manager [ INFO]: ConfigManager tasks cancelled +2025-11-01 21:42:49,514 cfg_manager [ INFO]: ConfigManager stopped +2025-11-01 21:42:49,514 cfg_manager [ INFO]: ConfigManager stopped +2025-11-01 21:43:04,728 log_manager [ INFO]: Logging configuration applied +2025-11-01 21:43:04,728 log_manager [ INFO]: Logging configuration applied +2025-11-01 21:43:04,730 cfg_manager [ INFO]: Update interval set to 2.0 seconds +2025-11-01 21:43:04,730 cfg_manager [ INFO]: Update interval set to 2.0 seconds +2025-11-01 21:43:04,730 cfg_manager [ INFO]: Work interval set to 2.0 seconds +2025-11-01 21:43:04,730 cfg_manager [ INFO]: Work interval set to 2.0 seconds +2025-11-01 21:43:07,002 main [ DEBUG]: Check emails for new orders +2025-11-01 21:43:09,104 main [ DEBUG]: Check emails for new orders +2025-11-01 21:43:11,205 main [ DEBUG]: Check emails for new orders +2025-11-01 21:43:13,309 main [ DEBUG]: Check emails for new orders +2025-11-01 21:43:15,413 main [ DEBUG]: Check emails for new orders +2025-11-01 21:43:17,516 main [ DEBUG]: Check emails for new orders +2025-11-01 21:43:19,630 main [ DEBUG]: Check emails for new orders +2025-11-01 21:43:21,729 main [ DEBUG]: Check emails for new orders +2025-11-01 21:43:22,746 log_manager [ INFO]: Logging configuration applied +2025-11-01 21:43:22,746 log_manager [ INFO]: Logging configuration applied +2025-11-01 21:43:22,747 cfg_manager [ INFO]: Update interval set to 2.0 seconds +2025-11-01 21:43:22,747 cfg_manager [ INFO]: Update interval set to 2.0 seconds +2025-11-01 21:43:22,747 cfg_manager [ INFO]: Work interval set to 2.0 seconds +2025-11-01 21:43:22,747 cfg_manager [ INFO]: Work interval set to 2.0 seconds +2025-11-01 21:44:56,825 log_manager [ INFO]: Logging configuration applied +2025-11-01 21:44:56,825 log_manager [ INFO]: Logging configuration applied +2025-11-01 21:44:56,826 cfg_manager [ INFO]: Update interval set to 2.0 seconds +2025-11-01 21:44:56,826 cfg_manager [ INFO]: Update interval set to 2.0 seconds +2025-11-01 21:44:56,826 cfg_manager [ INFO]: Work interval set to 2.0 seconds +2025-11-01 21:44:56,826 cfg_manager [ INFO]: Work interval set to 2.0 seconds +2025-11-01 21:46:08,675 cfg_manager [ INFO]: ConfigManager tasks cancelled +2025-11-01 21:46:08,675 cfg_manager [ INFO]: ConfigManager tasks cancelled +2025-11-01 21:46:08,677 cfg_manager [ INFO]: ConfigManager stopped +2025-11-01 21:46:08,677 cfg_manager [ INFO]: ConfigManager stopped +2025-11-01 21:46:11,962 log_manager [ INFO]: Logging configuration applied +2025-11-01 21:46:11,962 log_manager [ INFO]: Logging configuration applied +2025-11-01 21:46:11,962 cfg_manager [ INFO]: Update interval set to 2.0 seconds +2025-11-01 21:46:11,962 cfg_manager [ INFO]: Update interval set to 2.0 seconds +2025-11-01 21:46:11,962 cfg_manager [ INFO]: Work interval set to 2.0 seconds +2025-11-01 21:46:11,962 cfg_manager [ INFO]: Work interval set to 2.0 seconds +2025-11-01 21:46:23,627 main [ INFO]: Fwd: Заказ 95 на поставку запчастей Detali.ru +2025-11-01 21:46:23,627 main [ INFO]: Отдел Продаж +2025-11-01 21:46:23,627 main [ INFO]: 2025-10-27 13:39:28 +2025-11-01 21:46:23,627 main [ INFO]: +2025-11-01 21:46:23,627 main [ INFO]: [] +2025-11-01 21:46:23,627 main [ INFO]: -------------------------------- +2025-11-01 21:46:23,628 main [ INFO]: Fwd: Заказ поставщику номер 00000056685 (Сальткрока, 000426967) от ООО Нова +2025-11-01 21:46:23,628 main [ INFO]: Отдел Продаж +2025-11-01 21:46:23,628 main [ INFO]: 2025-10-27 13:39:36 +2025-11-01 21:46:23,628 main [ INFO]: +2025-11-01 21:46:23,628 main [ INFO]: [] +2025-11-01 21:46:23,628 main [ INFO]: -------------------------------- +2025-11-01 21:46:23,628 main [ INFO]: Fwd: Заказ 00УТ-011202 ЦС 2 +2025-11-01 21:46:23,628 main [ INFO]: Отдел Продаж +2025-11-01 21:46:23,628 main [ INFO]: 2025-10-27 13:39:42 +2025-11-01 21:46:23,628 main [ INFO]: +2025-11-01 21:46:23,628 main [ INFO]: [] +2025-11-01 21:46:23,628 main [ INFO]: -------------------------------- +2025-11-01 21:46:23,628 main [ INFO]: Fwd: Заказ 00УТ-010792 Наличие +2025-11-01 21:46:23,628 main [ INFO]: Отдел Продаж +2025-11-01 21:46:23,628 main [ INFO]: 2025-10-27 13:39:50 +2025-11-01 21:46:23,628 main [ INFO]: +2025-11-01 21:46:23,628 main [ INFO]: [] +2025-11-01 21:46:23,628 main [ INFO]: -------------------------------- +2025-11-01 21:46:23,628 main [ INFO]: Fwd: Заказ поставщику Партерра Сальткрока СПБ на Санкт-Петербург ЦКД +2025-11-01 21:46:23,628 main [ INFO]: Отдел Продаж +2025-11-01 21:46:23,628 main [ INFO]: 2025-10-27 13:40:05 +2025-11-01 21:46:23,628 main [ INFO]: +2025-11-01 21:46:23,628 main [ INFO]: [] +2025-11-01 21:46:23,628 main [ INFO]: -------------------------------- +2025-11-01 21:46:23,628 main [ INFO]: Fwd: Заказ поставщику Партерра Сальткрока СПБ 1Д на Санкт-Петербург ЦКД +2025-11-01 21:46:23,628 main [ INFO]: Отдел Продаж +2025-11-01 21:46:23,628 main [ INFO]: 2025-10-27 13:40:10 +2025-11-01 21:46:23,628 main [ INFO]: +2025-11-01 21:46:23,628 main [ INFO]: [] +2025-11-01 21:46:23,628 main [ INFO]: -------------------------------- +2025-11-01 21:46:23,628 main [ INFO]: Fwd: FAOrderSPB_56151479_2025-04-02-10-04-25.xlsx +2025-11-01 21:46:23,628 main [ INFO]: Отдел Продаж +2025-11-01 21:46:23,628 main [ INFO]: 2025-10-27 13:40:21 +2025-11-01 21:46:23,628 main [ INFO]: +2025-11-01 21:46:23,628 main [ INFO]: [] +2025-11-01 21:46:23,628 main [ INFO]: -------------------------------- +2025-11-01 21:46:23,628 main [ INFO]: Fwd: Заказ компании АвтоСпутник (Автоспутник Санкт-Петербург) № 2087185 от 24.10.2025 склад Наличие +2025-11-01 21:46:23,628 main [ INFO]: Отдел Продаж +2025-11-01 21:46:23,628 main [ INFO]: 2025-10-27 13:40:28 +2025-11-01 21:46:23,628 main [ INFO]: +2025-11-01 21:46:23,628 main [ INFO]: [] +2025-11-01 21:46:23,629 main [ INFO]: -------------------------------- +2025-11-01 21:46:23,629 main [ INFO]: Fwd: Заказ компании АвтоСпутник (Автоспутник Санкт-Петербург) № 2085697 от 23.10.2025 склад ЦС 5 дней +2025-11-01 21:46:23,629 main [ INFO]: Отдел Продаж +2025-11-01 21:46:23,629 main [ INFO]: 2025-10-27 13:40:32 +2025-11-01 21:46:23,629 main [ INFO]: +2025-11-01 21:46:23,629 main [ INFO]: [] +2025-11-01 21:46:23,629 main [ INFO]: -------------------------------- +2025-11-01 21:46:23,629 main [ INFO]: Fwd: заказ Юником Санкт-Петербург Заказ СПФ00000007980 +2025-11-01 21:46:23,629 main [ INFO]: Отдел Продаж +2025-11-01 21:46:23,629 main [ INFO]: 2025-10-27 13:40:40 +2025-11-01 21:46:23,629 main [ INFO]: +2025-11-01 21:46:23,629 main [ INFO]: [] +2025-11-01 21:46:23,629 main [ INFO]: -------------------------------- +2025-11-01 21:46:23,629 main [ INFO]: Fwd: заказ Юником Санкт-Петербург Заказ СПФ00000007928 +2025-11-01 21:46:23,629 main [ INFO]: Отдел Продаж +2025-11-01 21:46:23,629 main [ INFO]: 2025-10-27 13:41:46 +2025-11-01 21:46:23,629 main [ INFO]: +2025-11-01 21:46:23,629 main [ INFO]: [] +2025-11-01 21:46:23,629 main [ INFO]: -------------------------------- +2025-11-01 21:46:23,629 main [ INFO]: Fwd: Заказ ООО Амтел Санкт-Петербург от 27.10.2025 +2025-11-01 21:46:23,629 main [ INFO]: Отдел Продаж +2025-11-01 21:46:23,629 main [ INFO]: 2025-10-27 13:41:54 +2025-11-01 21:46:23,629 main [ INFO]: +2025-11-01 21:46:23,629 main [ INFO]: [] +2025-11-01 21:46:23,629 main [ INFO]: -------------------------------- +2025-11-01 21:46:23,629 main [ INFO]: Fwd: Заказ «Сальткрока» от Sigma №686120 на сумму 151434.12 руб ! +2025-11-01 21:46:23,629 main [ INFO]: Отдел Продаж +2025-11-01 21:46:23,629 main [ INFO]: 2025-10-27 13:42:03 +2025-11-01 21:46:23,629 main [ INFO]: +2025-11-01 21:46:23,629 main [ INFO]: [] +2025-11-01 21:46:23,629 main [ INFO]: -------------------------------- +2025-11-01 21:46:23,629 main [ INFO]: Fwd: Зпт № Зпт-303384 Доставка в Санкт-Петербург (клиентский) Склад: Сальткрока (СПБ) 0-1 день +2025-11-01 21:46:23,629 main [ INFO]: Отдел Продаж +2025-11-01 21:46:23,629 main [ INFO]: 2025-10-27 13:42:13 +2025-11-01 21:46:23,629 main [ INFO]: +2025-11-01 21:46:23,629 main [ INFO]: [] +2025-11-01 21:46:23,629 main [ INFO]: -------------------------------- +2025-11-01 21:46:23,629 main [ INFO]: Fwd: Зпт № Зпт-303044 Доставка в Санкт-Петербург (экспресс) Склад: Сальткрока (СПБ) 2-3 дня +2025-11-01 21:46:23,629 main [ INFO]: Отдел Продаж +2025-11-01 21:46:23,629 main [ INFO]: 2025-10-27 13:42:18 +2025-11-01 21:46:23,629 main [ INFO]: +2025-11-01 21:46:23,629 main [ INFO]: [] +2025-11-01 21:46:23,629 main [ INFO]: -------------------------------- +2025-11-01 21:46:23,629 main [ INFO]: Fwd: Зпт № Зпт-303041 Доставка в Санкт-Петербург (экспресс) Склад: Сальткрока (СПБ) 5-7 дней НЕТ ВПС +2025-11-01 21:46:23,629 main [ INFO]: Отдел Продаж +2025-11-01 21:46:23,630 main [ INFO]: 2025-10-27 13:42:23 +2025-11-01 21:46:23,630 main [ INFO]: +2025-11-01 21:46:23,630 main [ INFO]: [] +2025-11-01 21:46:23,630 main [ INFO]: -------------------------------- +2025-11-01 21:46:23,630 main [ INFO]: Fwd: Зпт № Зпт-301326 Доставка в Санкт-Петербург (клиентский) Склад: Сальткрока (СПБ) 2-3 дня +2025-11-01 21:46:23,630 main [ INFO]: Отдел Продаж +2025-11-01 21:46:23,630 main [ INFO]: 2025-10-27 13:42:32 +2025-11-01 21:46:23,630 main [ INFO]: +2025-11-01 21:46:23,630 main [ INFO]: [] +2025-11-01 21:46:23,630 main [ INFO]: -------------------------------- +2025-11-01 21:46:23,630 main [ INFO]: Fwd: Зпт № Зпт-302349 Доставка в Санкт-Петербург (экспресс) Склад: Сальткрока (СПБ) 0-1 день +2025-11-01 21:46:23,630 main [ INFO]: Отдел Продаж +2025-11-01 21:46:23,630 main [ INFO]: 2025-10-27 13:42:56 +2025-11-01 21:46:23,630 main [ INFO]: +2025-11-01 21:46:23,630 main [ INFO]: [] +2025-11-01 21:46:23,630 main [ INFO]: -------------------------------- +2025-11-01 21:46:23,630 main [ INFO]: Fwd: Зпт № Зпт-301326 Доставка в Санкт-Петербург (клиентский) Склад: Сальткрока (СПБ) 2-3 дня +2025-11-01 21:46:23,630 main [ INFO]: Отдел Продаж +2025-11-01 21:46:23,630 main [ INFO]: 2025-10-27 13:43:10 +2025-11-01 21:46:23,630 main [ INFO]: +2025-11-01 21:46:23,630 main [ INFO]: [] +2025-11-01 21:46:23,630 main [ INFO]: -------------------------------- +2025-11-01 21:46:23,630 main [ INFO]: Fwd: Заказ от ООО "Шате-М Плюс" (CD)_Сальткрока_23.09.25_ 9:52:37 +2025-11-01 21:46:23,630 main [ INFO]: Отдел Продаж +2025-11-01 21:46:23,630 main [ INFO]: 2025-10-27 13:43:35 +2025-11-01 21:46:23,630 main [ INFO]: +2025-11-01 21:46:23,630 main [ INFO]: [] +2025-11-01 21:46:23,630 main [ INFO]: -------------------------------- +2025-11-01 21:46:23,630 main [ INFO]: Fwd: Заказ от ООО ИНТЕРКАР ИНН: 7448229540 !! почта для ответов zakaz.autoliga174@mail.ru !!! +2025-11-01 21:46:23,630 main [ INFO]: Отдел Продаж +2025-11-01 21:46:23,630 main [ INFO]: 2025-10-27 13:43:43 +2025-11-01 21:46:23,631 main [ INFO]: +2025-11-01 21:46:23,631 main [ INFO]: [] +2025-11-01 21:46:23,631 main [ INFO]: -------------------------------- +2025-11-01 21:46:23,631 main [ INFO]: Fwd: Autostels - САЛЬТКРОКА-СПБ - Заказ 271 от 27.10.2025 13:10. +2025-11-01 21:46:23,631 main [ INFO]: Отдел Продаж +2025-11-01 21:46:23,631 main [ INFO]: 2025-10-27 13:43:50 +2025-11-01 21:46:23,631 main [ INFO]: +2025-11-01 21:46:23,631 main [ INFO]: [] +2025-11-01 21:46:23,631 main [ INFO]: -------------------------------- +2025-11-01 21:46:23,631 main [ INFO]: Fwd: Autostels - САЛЬТКРОКА_2Д_МСК - Заказ 230 от 27.10.2025 12:20. +2025-11-01 21:46:23,631 main [ INFO]: Отдел Продаж +2025-11-01 21:46:23,631 main [ INFO]: 2025-10-27 13:43:55 +2025-11-01 21:46:23,631 main [ INFO]: +2025-11-01 21:46:23,631 main [ INFO]: [] +2025-11-01 21:46:23,631 main [ INFO]: -------------------------------- +2025-11-01 21:46:23,631 main [ INFO]: Fwd: Заказ(ы) Аврора -> Запчастия #235506458# +2025-11-01 21:46:23,631 main [ INFO]: Отдел Продаж +2025-11-01 21:46:23,631 main [ INFO]: 2025-10-27 13:44:02 +2025-11-01 21:46:23,631 main [ INFO]: +2025-11-01 21:46:23,631 main [ INFO]: [] +2025-11-01 21:46:23,631 main [ INFO]: -------------------------------- +2025-11-01 21:46:23,631 main [ INFO]: Fwd: Заказ от АО "Автоформула" №А-251022-02437 от 22.10.2025 поставщику ООО "Сальткрока" +2025-11-01 21:46:23,631 main [ INFO]: Отдел Продаж +2025-11-01 21:46:23,631 main [ INFO]: 2025-10-27 13:44:09 +2025-11-01 21:46:23,631 main [ INFO]: +2025-11-01 21:46:23,631 main [ INFO]: [] +2025-11-01 21:46:23,631 main [ INFO]: -------------------------------- +2025-11-01 21:46:23,631 main [ INFO]: Fwd: Заказ от E-tape.ru Якорная д. 9А ИП ЮН Станислав Власович +2025-11-01 21:46:23,631 main [ INFO]: Отдел Продаж +2025-11-01 21:46:23,631 main [ INFO]: 2025-10-27 13:44:16 +2025-11-01 21:46:23,631 main [ INFO]: +2025-11-01 21:46:23,631 main [ INFO]: [] +2025-11-01 21:46:23,631 main [ INFO]: -------------------------------- +2025-11-01 21:46:23,631 main [ INFO]: Fwd: Заказ со склада ABSTD MSK 966 +2025-11-01 21:46:23,631 main [ INFO]: Отдел Продаж +2025-11-01 21:46:23,631 main [ INFO]: 2025-10-27 13:44:23 +2025-11-01 21:46:23,631 main [ INFO]: +2025-11-01 21:46:23,631 main [ INFO]: [] +2025-11-01 21:46:23,631 main [ INFO]: -------------------------------- +2025-11-01 21:46:23,631 main [ INFO]: Fwd: Заказ № 5107682 от 21-10-2025 +2025-11-01 21:46:23,631 main [ INFO]: Отдел Продаж +2025-11-01 21:46:23,632 main [ INFO]: 2025-10-27 13:44:29 +2025-11-01 21:46:23,632 main [ INFO]: +2025-11-01 21:46:23,632 main [ INFO]: [] +2025-11-01 21:46:23,632 main [ INFO]: -------------------------------- +2025-11-01 21:46:23,632 main [ INFO]: Fwd: Заказ от ООО "Рай Авто СПб" +2025-11-01 21:46:23,632 main [ INFO]: Отдел Продаж +2025-11-01 21:46:23,632 main [ INFO]: 2025-10-27 13:44:37 +2025-11-01 21:46:23,632 main [ INFO]: +2025-11-01 21:46:23,632 main [ INFO]: [] +2025-11-01 21:46:23,632 main [ INFO]: -------------------------------- +2025-11-01 21:46:23,632 main [ INFO]: Fwd: Заказ ООО "МЕХАНИКА" - поставщик ООО "Сальткрока" ( подтвердите обратным письмом) codeStock:1797936 Заказ поставщику ST000985485/24.10.2025 +2025-11-01 21:46:23,632 main [ INFO]: Отдел Продаж +2025-11-01 21:46:23,632 main [ INFO]: 2025-10-27 13:44:45 +2025-11-01 21:46:23,632 main [ INFO]: +2025-11-01 21:46:23,632 main [ INFO]: [] +2025-11-01 21:46:23,632 main [ INFO]: -------------------------------- +2025-11-01 21:46:46,440 cfg_manager [ INFO]: ConfigManager tasks cancelled +2025-11-01 21:46:46,440 cfg_manager [ INFO]: ConfigManager tasks cancelled +2025-11-01 21:46:46,442 cfg_manager [ INFO]: ConfigManager stopped +2025-11-01 21:46:46,442 cfg_manager [ INFO]: ConfigManager stopped +2025-11-01 21:47:30,413 log_manager [ INFO]: Logging configuration applied +2025-11-01 21:47:30,413 log_manager [ INFO]: Logging configuration applied +2025-11-01 21:47:30,413 cfg_manager [ INFO]: Update interval set to 2.0 seconds +2025-11-01 21:47:30,413 cfg_manager [ INFO]: Update interval set to 2.0 seconds +2025-11-01 21:47:30,414 cfg_manager [ INFO]: Work interval set to 2.0 seconds +2025-11-01 21:47:30,414 cfg_manager [ INFO]: Work interval set to 2.0 seconds +2025-11-01 21:47:35,112 cfg_manager [ INFO]: ConfigManager tasks cancelled +2025-11-01 21:47:35,112 cfg_manager [ INFO]: ConfigManager tasks cancelled +2025-11-01 21:47:35,113 cfg_manager [ INFO]: ConfigManager stopped +2025-11-01 21:47:35,113 cfg_manager [ INFO]: ConfigManager stopped +2025-11-01 21:47:51,834 log_manager [ INFO]: Logging configuration applied +2025-11-01 21:47:51,834 log_manager [ INFO]: Logging configuration applied +2025-11-01 21:47:51,835 cfg_manager [ INFO]: Update interval set to 2.0 seconds +2025-11-01 21:47:51,835 cfg_manager [ INFO]: Update interval set to 2.0 seconds +2025-11-01 21:47:51,835 cfg_manager [ INFO]: Work interval set to 2.0 seconds +2025-11-01 21:47:51,835 cfg_manager [ INFO]: Work interval set to 2.0 seconds +2025-11-01 21:48:06,117 main [ INFO]: Fwd: Заказ 95 на поставку запчастей Detali.ru +2025-11-01 21:48:06,118 main [ INFO]: Отдел Продаж +2025-11-01 21:48:06,118 main [ INFO]: 2025-10-27 13:39:28 +2025-11-01 21:48:06,118 main [ INFO]: +2025-11-01 21:48:06,119 main [ INFO]: [] +2025-11-01 21:48:06,119 main [ INFO]: -------------------------------- +2025-11-01 21:48:06,119 main [ INFO]: Fwd: Заказ поставщику номер 00000056685 (Сальткрока, 000426967) от ООО Нова +2025-11-01 21:48:06,119 main [ INFO]: Отдел Продаж +2025-11-01 21:48:06,119 main [ INFO]: 2025-10-27 13:39:36 +2025-11-01 21:48:06,120 main [ INFO]: +2025-11-01 21:48:06,120 main [ INFO]: [] +2025-11-01 21:48:06,120 main [ INFO]: -------------------------------- +2025-11-01 21:48:06,120 main [ INFO]: Fwd: Заказ 00УТ-011202 ЦС 2 +2025-11-01 21:48:06,120 main [ INFO]: Отдел Продаж +2025-11-01 21:48:06,120 main [ INFO]: 2025-10-27 13:39:42 +2025-11-01 21:48:06,120 main [ INFO]: +2025-11-01 21:48:06,120 main [ INFO]: [] +2025-11-01 21:48:06,121 main [ INFO]: -------------------------------- +2025-11-01 21:48:06,121 main [ INFO]: Fwd: Заказ 00УТ-010792 Наличие +2025-11-01 21:48:06,121 main [ INFO]: Отдел Продаж +2025-11-01 21:48:06,121 main [ INFO]: 2025-10-27 13:39:50 +2025-11-01 21:48:06,121 main [ INFO]: +2025-11-01 21:48:06,121 main [ INFO]: [] +2025-11-01 21:48:06,121 main [ INFO]: -------------------------------- +2025-11-01 21:48:06,122 main [ INFO]: Fwd: Заказ поставщику Партерра Сальткрока СПБ на Санкт-Петербург ЦКД +2025-11-01 21:48:06,122 main [ INFO]: Отдел Продаж +2025-11-01 21:48:06,122 main [ INFO]: 2025-10-27 13:40:05 +2025-11-01 21:48:06,122 main [ INFO]: +2025-11-01 21:48:06,122 main [ INFO]: [] +2025-11-01 21:48:06,122 main [ INFO]: -------------------------------- +2025-11-01 21:48:06,122 main [ INFO]: Fwd: Заказ поставщику Партерра Сальткрока СПБ 1Д на Санкт-Петербург ЦКД +2025-11-01 21:48:06,122 main [ INFO]: Отдел Продаж +2025-11-01 21:48:06,122 main [ INFO]: 2025-10-27 13:40:10 +2025-11-01 21:48:06,122 main [ INFO]: +2025-11-01 21:48:06,123 main [ INFO]: [] +2025-11-01 21:48:06,123 main [ INFO]: -------------------------------- +2025-11-01 21:48:06,123 main [ INFO]: Fwd: FAOrderSPB_56151479_2025-04-02-10-04-25.xlsx +2025-11-01 21:48:06,123 main [ INFO]: Отдел Продаж +2025-11-01 21:48:06,123 main [ INFO]: 2025-10-27 13:40:21 +2025-11-01 21:48:06,123 main [ INFO]: +2025-11-01 21:48:06,124 main [ INFO]: [] +2025-11-01 21:48:06,124 main [ INFO]: -------------------------------- +2025-11-01 21:48:06,124 main [ INFO]: Fwd: Заказ компании АвтоСпутник (Автоспутник Санкт-Петербург) № 2087185 от 24.10.2025 склад Наличие +2025-11-01 21:48:06,124 main [ INFO]: Отдел Продаж +2025-11-01 21:48:06,124 main [ INFO]: 2025-10-27 13:40:28 +2025-11-01 21:48:06,124 main [ INFO]: +2025-11-01 21:48:06,124 main [ INFO]: [] +2025-11-01 21:48:06,124 main [ INFO]: -------------------------------- +2025-11-01 21:48:06,124 main [ INFO]: Fwd: Заказ компании АвтоСпутник (Автоспутник Санкт-Петербург) № 2085697 от 23.10.2025 склад ЦС 5 дней +2025-11-01 21:48:06,124 main [ INFO]: Отдел Продаж +2025-11-01 21:48:06,125 main [ INFO]: 2025-10-27 13:40:32 +2025-11-01 21:48:06,125 main [ INFO]: +2025-11-01 21:48:06,125 main [ INFO]: [] +2025-11-01 21:48:06,125 main [ INFO]: -------------------------------- +2025-11-01 21:48:06,125 main [ INFO]: Fwd: заказ Юником Санкт-Петербург Заказ СПФ00000007980 +2025-11-01 21:48:06,125 main [ INFO]: Отдел Продаж +2025-11-01 21:48:06,125 main [ INFO]: 2025-10-27 13:40:40 +2025-11-01 21:48:06,125 main [ INFO]: +2025-11-01 21:48:06,125 main [ INFO]: [] +2025-11-01 21:48:06,125 main [ INFO]: -------------------------------- +2025-11-01 21:48:06,126 main [ INFO]: Fwd: заказ Юником Санкт-Петербург Заказ СПФ00000007928 +2025-11-01 21:48:06,126 main [ INFO]: Отдел Продаж +2025-11-01 21:48:06,126 main [ INFO]: 2025-10-27 13:41:46 +2025-11-01 21:48:06,126 main [ INFO]: +2025-11-01 21:48:06,126 main [ INFO]: [] +2025-11-01 21:48:06,126 main [ INFO]: -------------------------------- +2025-11-01 21:48:06,126 main [ INFO]: Fwd: Заказ ООО Амтел Санкт-Петербург от 27.10.2025 +2025-11-01 21:48:06,126 main [ INFO]: Отдел Продаж +2025-11-01 21:48:06,126 main [ INFO]: 2025-10-27 13:41:54 +2025-11-01 21:48:06,126 main [ INFO]: +2025-11-01 21:48:06,127 main [ INFO]: [] +2025-11-01 21:48:06,127 main [ INFO]: -------------------------------- +2025-11-01 21:48:06,127 main [ INFO]: Fwd: Заказ «Сальткрока» от Sigma №686120 на сумму 151434.12 руб ! +2025-11-01 21:48:06,127 main [ INFO]: Отдел Продаж +2025-11-01 21:48:06,127 main [ INFO]: 2025-10-27 13:42:03 +2025-11-01 21:48:06,127 main [ INFO]: +2025-11-01 21:48:06,127 main [ INFO]: [] +2025-11-01 21:48:06,127 main [ INFO]: -------------------------------- +2025-11-01 21:48:06,127 main [ INFO]: Fwd: Зпт № Зпт-303384 Доставка в Санкт-Петербург (клиентский) Склад: Сальткрока (СПБ) 0-1 день +2025-11-01 21:48:06,127 main [ INFO]: Отдел Продаж +2025-11-01 21:48:06,127 main [ INFO]: 2025-10-27 13:42:13 +2025-11-01 21:48:06,128 main [ INFO]: +2025-11-01 21:48:06,128 main [ INFO]: [] +2025-11-01 21:48:06,128 main [ INFO]: -------------------------------- +2025-11-01 21:48:06,128 main [ INFO]: Fwd: Зпт № Зпт-303044 Доставка в Санкт-Петербург (экспресс) Склад: Сальткрока (СПБ) 2-3 дня +2025-11-01 21:48:06,128 main [ INFO]: Отдел Продаж +2025-11-01 21:48:06,128 main [ INFO]: 2025-10-27 13:42:18 +2025-11-01 21:48:06,128 main [ INFO]: +2025-11-01 21:48:06,128 main [ INFO]: [] +2025-11-01 21:48:06,128 main [ INFO]: -------------------------------- +2025-11-01 21:48:06,128 main [ INFO]: Fwd: Зпт № Зпт-303041 Доставка в Санкт-Петербург (экспресс) Склад: Сальткрока (СПБ) 5-7 дней НЕТ ВПС +2025-11-01 21:48:06,128 main [ INFO]: Отдел Продаж +2025-11-01 21:48:06,128 main [ INFO]: 2025-10-27 13:42:23 +2025-11-01 21:48:06,128 main [ INFO]: +2025-11-01 21:48:06,128 main [ INFO]: [] +2025-11-01 21:48:06,129 main [ INFO]: -------------------------------- +2025-11-01 21:48:06,129 main [ INFO]: Fwd: Зпт № Зпт-301326 Доставка в Санкт-Петербург (клиентский) Склад: Сальткрока (СПБ) 2-3 дня +2025-11-01 21:48:06,129 main [ INFO]: Отдел Продаж +2025-11-01 21:48:06,129 main [ INFO]: 2025-10-27 13:42:32 +2025-11-01 21:48:06,129 main [ INFO]: +2025-11-01 21:48:06,129 main [ INFO]: [] +2025-11-01 21:48:06,129 main [ INFO]: -------------------------------- +2025-11-01 21:48:06,129 main [ INFO]: Fwd: Зпт № Зпт-302349 Доставка в Санкт-Петербург (экспресс) Склад: Сальткрока (СПБ) 0-1 день +2025-11-01 21:48:06,129 main [ INFO]: Отдел Продаж +2025-11-01 21:48:06,129 main [ INFO]: 2025-10-27 13:42:56 +2025-11-01 21:48:06,129 main [ INFO]: +2025-11-01 21:48:06,130 main [ INFO]: [] +2025-11-01 21:48:06,130 main [ INFO]: -------------------------------- +2025-11-01 21:48:06,130 main [ INFO]: Fwd: Зпт № Зпт-301326 Доставка в Санкт-Петербург (клиентский) Склад: Сальткрока (СПБ) 2-3 дня +2025-11-01 21:48:06,130 main [ INFO]: Отдел Продаж +2025-11-01 21:48:06,130 main [ INFO]: 2025-10-27 13:43:10 +2025-11-01 21:48:06,130 main [ INFO]: +2025-11-01 21:48:06,130 main [ INFO]: [] +2025-11-01 21:48:06,130 main [ INFO]: -------------------------------- +2025-11-01 21:48:06,130 main [ INFO]: Fwd: Заказ от ООО "Шате-М Плюс" (CD)_Сальткрока_23.09.25_ 9:52:37 +2025-11-01 21:48:06,130 main [ INFO]: Отдел Продаж +2025-11-01 21:48:06,130 main [ INFO]: 2025-10-27 13:43:35 +2025-11-01 21:48:06,130 main [ INFO]: +2025-11-01 21:48:06,130 main [ INFO]: [] +2025-11-01 21:48:06,131 main [ INFO]: -------------------------------- +2025-11-01 21:48:06,131 main [ INFO]: Fwd: Заказ от ООО ИНТЕРКАР ИНН: 7448229540 !! почта для ответов zakaz.autoliga174@mail.ru !!! +2025-11-01 21:48:06,131 main [ INFO]: Отдел Продаж +2025-11-01 21:48:06,131 main [ INFO]: 2025-10-27 13:43:43 +2025-11-01 21:48:06,131 main [ INFO]: +2025-11-01 21:48:06,131 main [ INFO]: [] +2025-11-01 21:48:06,131 main [ INFO]: -------------------------------- +2025-11-01 21:48:06,131 main [ INFO]: Fwd: Autostels - САЛЬТКРОКА-СПБ - Заказ 271 от 27.10.2025 13:10. +2025-11-01 21:48:06,131 main [ INFO]: Отдел Продаж +2025-11-01 21:48:06,131 main [ INFO]: 2025-10-27 13:43:50 +2025-11-01 21:48:06,131 main [ INFO]: +2025-11-01 21:48:06,131 main [ INFO]: [] +2025-11-01 21:48:06,132 main [ INFO]: -------------------------------- +2025-11-01 21:48:06,132 main [ INFO]: Fwd: Autostels - САЛЬТКРОКА_2Д_МСК - Заказ 230 от 27.10.2025 12:20. +2025-11-01 21:48:06,132 main [ INFO]: Отдел Продаж +2025-11-01 21:48:06,132 main [ INFO]: 2025-10-27 13:43:55 +2025-11-01 21:48:06,132 main [ INFO]: +2025-11-01 21:48:06,132 main [ INFO]: [] +2025-11-01 21:48:06,132 main [ INFO]: -------------------------------- +2025-11-01 21:48:06,132 main [ INFO]: Fwd: Заказ(ы) Аврора -> Запчастия #235506458# +2025-11-01 21:48:06,132 main [ INFO]: Отдел Продаж +2025-11-01 21:48:06,132 main [ INFO]: 2025-10-27 13:44:02 +2025-11-01 21:48:06,132 main [ INFO]: +2025-11-01 21:48:06,132 main [ INFO]: [] +2025-11-01 21:48:06,132 main [ INFO]: -------------------------------- +2025-11-01 21:48:06,132 main [ INFO]: Fwd: Заказ от АО "Автоформула" №А-251022-02437 от 22.10.2025 поставщику ООО "Сальткрока" +2025-11-01 21:48:06,132 main [ INFO]: Отдел Продаж +2025-11-01 21:48:06,132 main [ INFO]: 2025-10-27 13:44:09 +2025-11-01 21:48:06,132 main [ INFO]: +2025-11-01 21:48:06,133 main [ INFO]: [] +2025-11-01 21:48:06,133 main [ INFO]: -------------------------------- +2025-11-01 21:48:06,133 main [ INFO]: Fwd: Заказ от E-tape.ru Якорная д. 9А ИП ЮН Станислав Власович +2025-11-01 21:48:06,133 main [ INFO]: Отдел Продаж +2025-11-01 21:48:06,133 main [ INFO]: 2025-10-27 13:44:16 +2025-11-01 21:48:06,133 main [ INFO]: +2025-11-01 21:48:06,133 main [ INFO]: [] +2025-11-01 21:48:06,133 main [ INFO]: -------------------------------- +2025-11-01 21:48:06,133 main [ INFO]: Fwd: Заказ со склада ABSTD MSK 966 +2025-11-01 21:48:06,133 main [ INFO]: Отдел Продаж +2025-11-01 21:48:06,133 main [ INFO]: 2025-10-27 13:44:23 +2025-11-01 21:48:06,133 main [ INFO]: +2025-11-01 21:48:06,133 main [ INFO]: [] +2025-11-01 21:48:06,133 main [ INFO]: -------------------------------- +2025-11-01 21:48:06,133 main [ INFO]: Fwd: Заказ № 5107682 от 21-10-2025 +2025-11-01 21:48:06,133 main [ INFO]: Отдел Продаж +2025-11-01 21:48:06,133 main [ INFO]: 2025-10-27 13:44:29 +2025-11-01 21:48:06,134 main [ INFO]: +2025-11-01 21:48:06,134 main [ INFO]: [] +2025-11-01 21:48:06,134 main [ INFO]: -------------------------------- +2025-11-01 21:48:06,134 main [ INFO]: Fwd: Заказ от ООО "Рай Авто СПб" +2025-11-01 21:48:06,134 main [ INFO]: Отдел Продаж +2025-11-01 21:48:06,134 main [ INFO]: 2025-10-27 13:44:37 +2025-11-01 21:48:06,134 main [ INFO]: +2025-11-01 21:48:06,134 main [ INFO]: [] +2025-11-01 21:48:06,134 main [ INFO]: -------------------------------- +2025-11-01 21:48:06,134 main [ INFO]: Fwd: Заказ ООО "МЕХАНИКА" - поставщик ООО "Сальткрока" ( подтвердите обратным письмом) codeStock:1797936 Заказ поставщику ST000985485/24.10.2025 +2025-11-01 21:48:06,134 main [ INFO]: Отдел Продаж +2025-11-01 21:48:06,134 main [ INFO]: 2025-10-27 13:44:45 +2025-11-01 21:48:06,134 main [ INFO]: +2025-11-01 21:48:06,134 main [ INFO]: [] +2025-11-01 21:48:06,134 main [ INFO]: -------------------------------- +2025-11-01 21:55:49,251 cfg_manager [ INFO]: ConfigManager tasks cancelled +2025-11-01 21:55:49,251 cfg_manager [ INFO]: ConfigManager tasks cancelled +2025-11-01 21:55:49,252 cfg_manager [ INFO]: ConfigManager stopped +2025-11-01 21:55:49,252 cfg_manager [ INFO]: ConfigManager stopped diff --git a/src/mail_order_bot/main.py b/src/mail_order_bot/main.py index 8b1c7c1..007a005 100644 --- a/src/mail_order_bot/main.py +++ b/src/mail_order_bot/main.py @@ -1,43 +1,56 @@ -from basic_application import ConfigManager +from config_manager import ConfigManager from dotenv import load_dotenv import asyncio import logging +import os +from dotenv import load_dotenv + +from email_client import EmailClient -#cdimport os -#os.chdir(os.path.dirname(__file__)) logger = logging.getLogger() + + class MailOrderBot(ConfigManager): def __init__(self, *agrs, **kwargs): super().__init__(*agrs, **kwargs) - self.cycle = 0 + self.email_client = EmailClient( + imap_host=os.getenv('IMAP_HOST'), + smtp_host=os.getenv('SMTP_HOST'), + email=os.getenv('EMAIL_USER'), + password=os.getenv('EMAIL_PASSWORD'), + imap_port=os.getenv('IMAP_PORT'), + smtp_port=os.getenv('SMTP_PORT') + ) def execute(self): - logger.info(f"run {self.cycle}") - print(f"run {self.cycle}") - self.cycle += 1 + logger.debug(f"Check emails for new orders") + + emails = self.email_client.get_emails(folder="spareparts", only_unseen=True, mark_as_read=True) + for email in emails: + logger.info(email.subj) + logger.info(email.from_addr) + logger.info(email.dt) + logger.info(email.body) + logger.info(email.first_sender) + logger.info('--------------------------------') + logger = logging.getLogger() -class MyApp(ConfigManager): - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - self.iter = 0 - - def execute(self) -> None: - logger.info(f"current iteration {self.iter}") - self.iter += 1 - async def main(): - app = MyApp("config.yaml") - app.start() - logger.info("App started") - await asyncio.sleep(20) - await app.stop() + app = MailOrderBot("config.yml") + await app.start() + + #await asyncio.sleep(200) + #await app.stop() if __name__ == "__main__": - load_dotenv() + if os.environ.get("APP_ENV") != "PRODUCTION": + logger.warning("Non production environment") + load_dotenv() + asyncio.run(main()) \ No newline at end of file diff --git a/tests/email_client/test_email_client.py b/tests/email_client/test_email_client.py index e06f694..3df50ea 100644 --- a/tests/email_client/test_email_client.py +++ b/tests/email_client/test_email_client.py @@ -15,7 +15,7 @@ if __name__ == "__main__": imap_port=os.getenv('IMAP_PORT'), smtp_port=os.getenv('SMTP_PORT') ) - emails = email_client.get_emails(folder='spareparts', only_unseen=True, mark_as_read=True) + emails = email_client.get_emails(folder=self.config.email_dir, only_unseen=True, mark_as_read=True) for email in emails: print(email.subj)