From ec736c09f534f4bd8e1b655ec39ee26fe7cb767b Mon Sep 17 00:00:00 2001 From: User Date: Mon, 11 May 2026 14:06:51 +0300 Subject: [PATCH] add --- .dockerignore | 16 + .env.example | 8 +- Dockerfile | 19 +- compose.yaml | 10 + config/__pycache__/phrases.cpython-311.pyc | Bin 5900 -> 6367 bytes config/phrases.py | 9 + data/leads.xlsx | Bin 5201 -> 5458 bytes logs/bot.2026-05-04_13-22-21_446965.log | 590 ++++++++++++++++ logs/bot.log | 723 ++++---------------- services/__pycache__/vk_bot.cpython-311.pyc | Bin 9024 -> 10848 bytes services/vk_bot.py | 44 +- 11 files changed, 828 insertions(+), 591 deletions(-) create mode 100644 .dockerignore create mode 100644 compose.yaml create mode 100644 logs/bot.2026-05-04_13-22-21_446965.log diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..9dc617d --- /dev/null +++ b/.dockerignore @@ -0,0 +1,16 @@ +.git +.gitignore +.kilo +.vscode +__pycache__/ +*.pyc +*.pyo +*.pyd +.pytest_cache/ +.venv/ +venv/ +.env +logs/ +data/ +tests/ +docs/ diff --git a/.env.example b/.env.example index 51d9377..1a36dfc 100644 --- a/.env.example +++ b/.env.example @@ -1,8 +1,8 @@ -VK_GROUP_ID=233127658 -VK_TOKEN=vk1.a.XTkUvOpbeC9ReN0WxLLynwe19Xdfr5kt4_lWcFpJINpS4O-MsQMeSxc9WWj7IqBTDDOLcpdgjGS4MdBsorXIEosmvV-iYwbExBqZaRTdtl7DcrRsYg0uW1gavDc_SBItLjoCnje7WlO5vz8i5pxXgkSuiki9vMbfYZdjYZYF8q5z7sResjJ-ZdBKS73WMCmrgQx0I22rGY0rRR7HKCeC_g -ADMIN_IDS=25076348 +VK_GROUP_ID=123456789 +VK_TOKEN=your_vk_group_token_here +ADMIN_IDS=12345678 DATA_DIR=data LEADS_FILE=data/leads.xlsx BACKUP_DIR=data/backups LOG_LEVEL=INFO -TIMEZONE=Europe/Moscow \ No newline at end of file +TIMEZONE=Europe/Moscow diff --git a/Dockerfile b/Dockerfile index 9fcc55b..f4f336f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,21 @@ FROM python:3.11-slim + +ENV PYTHONDONTWRITEBYTECODE=1 \ + PYTHONUNBUFFERED=1 \ + PIP_DISABLE_PIP_VERSION_CHECK=1 \ + PIP_PROGRESS_BAR=off \ + OPENBLAS_NUM_THREADS=1 \ + OMP_NUM_THREADS=1 \ + MKL_NUM_THREADS=1 \ + NUMEXPR_NUM_THREADS=1 + WORKDIR /app -COPY requirements.txt . + +COPY requirements.txt ./ RUN pip install --no-cache-dir -r requirements.txt + COPY . . -CMD ["python", "main.py"] \ No newline at end of file + +RUN mkdir -p /app/data /app/logs + +CMD ["python", "main.py"] diff --git a/compose.yaml b/compose.yaml new file mode 100644 index 0000000..3823661 --- /dev/null +++ b/compose.yaml @@ -0,0 +1,10 @@ +services: + bot: + build: . + container_name: vk-sales-bot + restart: unless-stopped + env_file: + - .env + volumes: + - ./data:/app/data + - ./logs:/app/logs diff --git a/config/__pycache__/phrases.cpython-311.pyc b/config/__pycache__/phrases.cpython-311.pyc index 80fe86a9e0adcc7a911a4ea011d39c59e5fd1203..f478484df548b16c2d994adca891bbdfc0dbda03 100644 GIT binary patch delta 550 zcmZuu-z$Sr7~U63i;Xei>Xg_PhDf=P!eSRj`#v{*v}8+5Qv2aX+7H6AXl-&Ki5pky z+vd|}n{R)D_uR>iQtrPi$(8qfiwik*>YV3&-sgRubCUMg0mDswyHP-G3i3=kPZ zV#*?9K|ui#BpUCjh?Y_E@JF_!F(F5o20egBdc-8#a}pBIGc*7NJOwnVo<1wJ7RkDnS_@`Xl&q0Yg{?QqZ+@c6wuwsd3DFlWtAH+^#5 z#_@SUn00yFjwvTEINUF7GyK%=&Es_Of_r{KaL&5;^q6^H-;bY(Kcovf@=xYw&h%^= ZjT+V3s+u`Ytyy39TLhcIzS-+ljjvA diff --git a/config/phrases.py b/config/phrases.py index 238093b..aa4e8ed 100644 --- a/config/phrases.py +++ b/config/phrases.py @@ -74,6 +74,15 @@ BUTTON_YES = "✅ Да" BUTTON_NO = "❌ Нет" BUTTON_RESTART = "🔄 Начать заново" BUTTON_CONTINUE = "➡️ Продолжить" +BUTTON_REGISTER = "📝 Зарегистрироваться" + +# Сообщения для группы +MSG_REGISTER_INSTRUCTIONS = ( + "📝 Для регистрации нажмите кнопку ниже.\n\n" + "Если кнопка не работает, напишите мне в личные сообщения — " + "откройте мой профиль и отправьте любое сообщение.\n\n" + "👉 [Написать в ЛС](vk.com/im-redirect?target=st%3D{user_id})" +) # Команды CMD_START = "/start" diff --git a/data/leads.xlsx b/data/leads.xlsx index 989e6a593b2de52b5980f390bc7b1a22c802ea0e..090f61c68d8ebe3640da4a5461955a652970e566 100644 GIT binary patch delta 1421 zcmcbpaY>6ez?+#xgn@y9gW*l?vWdKF>w#3vVNM?V*FeG3j0_BdKsqHqIiM)NpjbaS zzbI9&A~$F0L|^~I20U&5Pfe+Qy(QVTYge3uH7{qUr$S!fqui^r_*LEB{rdhSAv5Q=gYL1T30BgrpR&tTJ~1h*QkIhZ>~cfoU97>ROU5z>yz5IR zvA0b6%*8Y5$|RMZLubyrl?7&*YX5bAq1G7IAS<;+WZ?nD2jkdgjkHTPH3FJuxdvdm)oo(Lzc6PtO;wei*%R-1$K=tTEbms$#45jvc$jpT4Rs`78foKWFddxBLFKf7Hsz`tddYtU5{% zZNAQE#|93hWWG8^6J`d6$=nPK62L&J$k8v)FUl^?NKGv%)(2CDps-py?QYg>1Btf$ zqdziIO{P8l|48Cm$zM($uhZKOKTz>X%8H)1#^mf(aNlcAQ*9a;77H=F41{?&8o(E)=~7kN?(Zysbl6?vXz zvd*$Kp3B@K1w{H;rz~Y-IbgcU;^bEik@x33MIKrDPL`P~ymn4{q>r7hx;&pu!N;kZ)$wmpe4i{$+7 zt0h~#ezk91??sh)%fB$``&~@-llHdh%9Lqk(Kk6Xx%ZG@y};(~CpSN+JYTwNNy}HY z96PDNX{DZz*KqKj5<46(wb=d32HCmOJ9s8-WO=i-d2;2fdcIE<&O%>S$fiE>TrmA@ zfZ^etJl6Lb4NnRvX4pJ%o%BKdt&O(!-04E^w#=1&xW~m()@NpO5og`DMOQI+K zt`~I-GHc$sdYi-=T{c$>jYA*zR?6O7msu@)ntd5_jQp>-jF^0@>|&jghUZb+_S-ID z7hSzNZ}se_;&s%{A_kgs%Yqq=kvbla5UNSGHlS-o0%M9QegF_iD6e% z>FSy18b#~_A1cog)m-GUZKhxNg@7xk?&w{bX>@+ynsjfw)zi*TI`zDK&4I0rZyk=8 zNq>rzPG&yezAe@K%I1()wb6B}>U8&q?Vmn>wRPC)SJkE4|3v&v=$&t*I=jB{n%Amj z0$#hW&0}j$xc~9{LjB+%SLSkW&lLedt=qLSw`%;{&votp^-Vc553f6$sD0+4!vl+D z=gstTW*ok^cYAK=rX=U}@1jc2U#eO0E_Gc7Tf}ZB(OviMzu5-#gLX*CVbN88*B*+F zP29f2X=Zx-wauyvgS}s@Q2CPZVCKH(jrGr--@K{2@bah1xY{}LSLQ!g+cV8yH0%WX z0luFhCC+y7iu1Yhr=HK8=nvLB>HH0gGanDXT0O&O@}4U}CW$OBDtJ^^U%tP}u~6~f z>Gl~xb2^VpTAL^zV&CwO^VpWW51FruE55L!WW1Oju_N=JGchoD@-S@fhAR-S>zA9t^mJ$$_ zW-8^LtSc-H=6VZDTetHuFvJ(7<`nDefye-FMkWykc%d2dt(0+<0kEXh1Uil%SP;NK p17iXI)vjXf(c`JS)_n9C_5&9q5yvYLo0+dm&>-?o-9&TslGvEt|ssod-C3;(vw?byT6@v9~5sEuGP7r$PF>r1J=2lZ3y z!rfaYeU{RhWYi_%bLfn|TUnsgUX8!*FVY$>HpoW3(R7+9UXaY$+*@yU=A={K#@H2! z5}y{%+PNi=aeY7k`OlvsZ@UNWbyJgG+{(A&1gquV6Z4O+Ys^3T%;@*(hP0__99GqL zHe`Pax|{#qTFpD|n&f`(^z+#VuP=()@4HT3{;&DM(q*<={u{)xZfcDGuV&AP5=5J? zGup9%1L=j%Ek0u=28J)J3=9&$K&r^mFV8Q^F3w0zEh*LqQ-+|h>Yb9EciVucVSUn% z>ure>-#p_zeqh!*UuGVSsGQ%D8fLQ6R}W8ql45&UFZc`7Zl|)vo?f%kS|9NVXwH9|yIGFYb{w&}N$x%xbvD3d3wmN7x>l8K9$b+&k)^BC(>EJ8- z)WsM+^+97xl2BdOvClUI{T@fNN|&1O=NNb^zFS)`*WW3pmWgZTHnonQYZJMqM0p>Z zTrXd}_~Ge=(`@G1&)#41QTqEdmxCb}-iNL`?PpvpjO+=_{Q-o)rB9MGA5}7 z+$D0SJ$7H?Ol@Y(dd2t~DwRK0m)%mxrb;hp))YDz?n#>N{nyXRW|HoKm=UA~lk?q%Zs&l`Vq&Z5Hg$!o(MKExLE3JAUpV=*Qg2=EG9bHK9n?JuZQVgLY8 Cr}7Q} diff --git a/logs/bot.2026-05-04_13-22-21_446965.log b/logs/bot.2026-05-04_13-22-21_446965.log new file mode 100644 index 0000000..8568474 --- /dev/null +++ b/logs/bot.2026-05-04_13-22-21_446965.log @@ -0,0 +1,590 @@ +2026-05-04T13:22:21.443454+0300 | INFO | Initializing bot... +2026-05-04T13:22:21.685842+0300 | INFO | Bot started +2026-05-04T13:22:21.686877+0300 | INFO | Backup scheduler started +2026-05-04T13:23:07.722613+0300 | DEBUG | Message from 25076348 in peer 2000000002: [club233127658|@ikpro] 🔄 Начать заново +2026-05-04T13:23:07.724180+0300 | INFO | Processed message from 25076348: [club233127658|@ikpro] 🔄 Начать заново +2026-05-04T13:23:07.724696+0300 | INFO | === HANDLE: user 25076348, text='[club233127658|@ikpro] 🔄 Начать заново', current state=None === +2026-05-04T13:23:07.727877+0300 | INFO | Response to user 25076348: Пожалуйста, подтвердите согласие на обработку персональных данных (Да / Нет): +2026-05-04T13:23:11.904304+0300 | DEBUG | Message from 25076348 in peer 2000000002: да +2026-05-04T13:23:11.904304+0300 | INFO | Processed message from 25076348: да +2026-05-04T13:23:11.904840+0300 | INFO | === HANDLE: user 25076348, text='да', current state=ask_consent === +2026-05-04T13:23:11.904840+0300 | INFO | Response to user 25076348: ✅ Спасибо за согласие! Продолжим оформление заявки. +Пожалуйста, укажите вашу фамилию и имя (два слов +2026-05-04T13:23:34.586781+0300 | DEBUG | Message from 25076348 in peer 2000000002: ффф ыавпва +2026-05-04T13:23:34.586781+0300 | INFO | Processed message from 25076348: ффф ыавпва +2026-05-04T13:23:34.587312+0300 | INFO | === HANDLE: user 25076348, text='ффф ыавпва', current state=collect_fi === +2026-05-04T13:23:34.588357+0300 | INFO | Response to user 25076348: Укажите ваш возраст (целое число лет): +2026-05-04T13:23:37.967348+0300 | DEBUG | Message from 25076348 in peer 2000000002: 12 +2026-05-04T13:23:37.967876+0300 | INFO | Processed message from 25076348: 12 +2026-05-04T13:23:37.967876+0300 | INFO | === HANDLE: user 25076348, text='12', current state=collect_age === +2026-05-04T13:23:37.967876+0300 | DEBUG | validate_age input: ''12'' +2026-05-04T13:23:37.968411+0300 | DEBUG | cleaned: '12' +2026-05-04T13:23:37.968411+0300 | DEBUG | age valid: 12 +2026-05-04T13:23:37.969451+0300 | INFO | Response to user 25076348: Пожалуйста, введите число (ваш возраст). +Укажите ваш возраст (целое число лет): +2026-05-04T13:36:16.863923+0300 | INFO | Initializing bot... +2026-05-04T13:36:17.084594+0300 | INFO | Bot started +2026-05-04T13:36:17.085630+0300 | INFO | Backup scheduler started +2026-05-04T13:37:06.672828+0300 | DEBUG | Message from 25076348 in peer 2000000002: Привет +2026-05-04T13:37:06.673343+0300 | INFO | Processed message from 25076348: Привет +2026-05-04T13:37:06.673343+0300 | INFO | === HANDLE: user 25076348, text='Привет', current state=None === +2026-05-04T13:37:06.673883+0300 | INFO | Response to user 25076348: Пожалуйста, подтвердите согласие на обработку персональных данных (Да / Нет): +2026-05-04T13:37:09.159946+0300 | DEBUG | Message from 25076348 in peer 2000000002: да +2026-05-04T13:37:09.159946+0300 | INFO | Processed message from 25076348: да +2026-05-04T13:37:09.160473+0300 | INFO | === HANDLE: user 25076348, text='да', current state=ask_consent === +2026-05-04T13:37:09.160473+0300 | INFO | Response to user 25076348: ✅ Спасибо за согласие! Продолжим оформление заявки. +Пожалуйста, укажите вашу фамилию и имя (два слов +2026-05-04T13:37:15.495991+0300 | DEBUG | Message from 25076348 in peer 2000000002: ааа ррр +2026-05-04T13:37:15.496513+0300 | INFO | Processed message from 25076348: ааа ррр +2026-05-04T13:37:15.497027+0300 | INFO | === HANDLE: user 25076348, text='ааа ррр', current state=collect_fi === +2026-05-04T13:37:15.497027+0300 | INFO | Response to user 25076348: Укажите ваш возраст (целое число лет): +2026-05-04T13:37:18.753724+0300 | DEBUG | Message from 25076348 in peer 2000000002: 12 +2026-05-04T13:37:18.753724+0300 | INFO | Processed message from 25076348: 12 +2026-05-04T13:37:18.754244+0300 | INFO | === HANDLE: user 25076348, text='12', current state=collect_age === +2026-05-04T13:37:18.754244+0300 | DEBUG | validate_age input: ''12'' +2026-05-04T13:37:18.754244+0300 | DEBUG | cleaned: '12' +2026-05-04T13:37:18.754244+0300 | DEBUG | age valid: 12 +2026-05-04T13:37:18.754756+0300 | INFO | Response to user 25076348: Пожалуйста, введите число (ваш возраст). +Укажите ваш возраст (целое число лет): +2026-05-04T13:37:22.075536+0300 | DEBUG | Message from 25076348 in peer 2000000002: 23 +2026-05-04T13:37:22.076047+0300 | INFO | Processed message from 25076348: 23 +2026-05-04T13:37:22.076047+0300 | INFO | === HANDLE: user 25076348, text='23', current state=collect_age === +2026-05-04T13:37:22.076047+0300 | DEBUG | validate_age input: ''23'' +2026-05-04T13:37:22.076566+0300 | DEBUG | cleaned: '23' +2026-05-04T13:37:22.076566+0300 | DEBUG | age valid: 23 +2026-05-04T13:37:22.076566+0300 | INFO | Response to user 25076348: Пожалуйста, введите число (ваш возраст). +Укажите ваш возраст (целое число лет): +2026-05-04T14:09:25.567877+0300 | INFO | Initializing bot... +2026-05-04T14:09:25.744659+0300 | INFO | Bot started +2026-05-04T14:09:25.745178+0300 | INFO | Backup scheduler started +2026-05-04T14:09:34.624213+0300 | DEBUG | Message from 25076348 in peer 2000000002: Привет +2026-05-04T14:09:34.624213+0300 | INFO | Processed message from 25076348: Привет +2026-05-04T14:09:34.624213+0300 | INFO | === HANDLE: user 25076348, text='Привет', current state=None === +2026-05-04T14:09:34.624740+0300 | INFO | Response to user 25076348: Пожалуйста, подтвердите согласие на обработку персональных данных (Да / Нет): +2026-05-04T14:09:36.950764+0300 | DEBUG | Message from 25076348 in peer 2000000002: да +2026-05-04T14:09:36.950764+0300 | INFO | Processed message from 25076348: да +2026-05-04T14:09:36.951300+0300 | INFO | === HANDLE: user 25076348, text='да', current state=ask_consent === +2026-05-04T14:09:36.951300+0300 | INFO | Response to user 25076348: ✅ Спасибо за согласие! Продолжим оформление заявки. +Пожалуйста, укажите вашу фамилию и имя (два слов +2026-05-04T14:09:45.685252+0300 | DEBUG | Message from 25076348 in peer 2000000002: вав авп +2026-05-04T14:09:45.685252+0300 | INFO | Processed message from 25076348: вав авп +2026-05-04T14:09:45.685252+0300 | INFO | === HANDLE: user 25076348, text='вав авп', current state=collect_fi === +2026-05-04T14:09:45.685773+0300 | INFO | Response to user 25076348: Укажите ваш возраст (целое число лет): +2026-05-04T14:09:49.196572+0300 | DEBUG | Message from 25076348 in peer 2000000002: 12 +2026-05-04T14:09:49.197077+0300 | INFO | Processed message from 25076348: 12 +2026-05-04T14:09:49.197077+0300 | INFO | === HANDLE: user 25076348, text='12', current state=collect_age === +2026-05-04T14:09:49.197077+0300 | DEBUG | validate_age input: ''12'' +2026-05-04T14:09:49.197077+0300 | DEBUG | cleaned: '12' +2026-05-04T14:09:49.197077+0300 | DEBUG | age valid: 12 +2026-05-04T14:09:49.197077+0300 | INFO | Response to user 25076348: Пожалуйста, введите число (ваш возраст). +Укажите ваш возраст (целое число лет): +2026-05-04T14:09:53.320692+0300 | DEBUG | Message from 25076348 in peer 2000000002: 12лет +2026-05-04T14:09:53.320692+0300 | INFO | Processed message from 25076348: 12лет +2026-05-04T14:09:53.320692+0300 | INFO | === HANDLE: user 25076348, text='12лет', current state=collect_age === +2026-05-04T14:09:53.321204+0300 | DEBUG | validate_age input: ''12лет'' +2026-05-04T14:09:53.321204+0300 | DEBUG | cleaned: '12' +2026-05-04T14:09:53.321204+0300 | DEBUG | age valid: 12 +2026-05-04T14:09:53.321724+0300 | INFO | Response to user 25076348: Пожалуйста, введите число (ваш возраст). +Укажите ваш возраст (целое число лет): +2026-05-04T14:10:19.043522+0300 | DEBUG | Message from 25076348 in peer 2000000002: 13 +2026-05-04T14:10:19.043522+0300 | INFO | Processed message from 25076348: 13 +2026-05-04T14:10:19.043522+0300 | INFO | === HANDLE: user 25076348, text='13', current state=collect_age === +2026-05-04T14:10:19.044052+0300 | DEBUG | validate_age input: ''13'' +2026-05-04T14:10:19.044052+0300 | DEBUG | cleaned: '13' +2026-05-04T14:10:19.044052+0300 | DEBUG | age valid: 13 +2026-05-04T14:10:19.044052+0300 | INFO | Response to user 25076348: Пожалуйста, введите число (ваш возраст). +Укажите ваш возраст (целое число лет): +2026-05-04T14:10:22.029805+0300 | DEBUG | Message from 25076348 in peer 2000000002: 18 +2026-05-04T14:10:22.029805+0300 | INFO | Processed message from 25076348: 18 +2026-05-04T14:10:22.029805+0300 | INFO | === HANDLE: user 25076348, text='18', current state=collect_age === +2026-05-04T14:10:22.030324+0300 | DEBUG | validate_age input: ''18'' +2026-05-04T14:10:22.030324+0300 | DEBUG | cleaned: '18' +2026-05-04T14:10:22.030324+0300 | DEBUG | age valid: 18 +2026-05-04T14:10:22.030324+0300 | INFO | Response to user 25076348: Пожалуйста, введите число (ваш возраст). +Укажите ваш возраст (целое число лет): +2026-05-04T14:52:44.897174+0300 | INFO | Initializing bot... +2026-05-04T14:52:45.151496+0300 | INFO | Bot started +2026-05-04T14:52:45.152530+0300 | INFO | Backup scheduler started +2026-05-04T14:53:41.300176+0300 | DEBUG | Message from 25076348 in peer 2000000002: привет +2026-05-04T14:53:41.302249+0300 | INFO | Processed message from 25076348: привет +2026-05-04T14:53:41.302249+0300 | INFO | === HANDLE: user 25076348, text='привет', current state=None === +2026-05-04T14:53:41.306431+0300 | INFO | Response to user 25076348: Пожалуйста, подтвердите согласие на обработку персональных данных (Да / Нет): +2026-05-04T14:53:43.736066+0300 | DEBUG | Message from 25076348 in peer 2000000002: да +2026-05-04T14:53:43.736066+0300 | INFO | Processed message from 25076348: да +2026-05-04T14:53:43.736066+0300 | INFO | === HANDLE: user 25076348, text='да', current state=ask_consent === +2026-05-04T14:53:43.736606+0300 | INFO | Response to user 25076348: ✅ Спасибо за согласие! Продолжим оформление заявки. +Пожалуйста, укажите вашу фамилию и имя (два слов +2026-05-04T14:53:49.142783+0300 | DEBUG | Message from 25076348 in peer 2000000002: ппп ррр +2026-05-04T14:53:49.142783+0300 | INFO | Processed message from 25076348: ппп ррр +2026-05-04T14:53:49.143321+0300 | INFO | === HANDLE: user 25076348, text='ппп ррр', current state=collect_fi === +2026-05-04T14:53:49.152638+0300 | INFO | Response to user 25076348: Укажите ваш возраст (целое число лет): +2026-05-04T14:53:51.561650+0300 | DEBUG | Message from 25076348 in peer 2000000002: 12 +2026-05-04T14:53:51.561650+0300 | INFO | Processed message from 25076348: 12 +2026-05-04T14:53:51.562169+0300 | INFO | === HANDLE: user 25076348, text='12', current state=collect_age === +2026-05-04T14:53:51.562169+0300 | DEBUG | validate_age input: ''12'' +2026-05-04T14:53:51.562169+0300 | DEBUG | cleaned: '12' +2026-05-04T14:53:51.562710+0300 | DEBUG | age valid: 12 +2026-05-04T14:53:51.563228+0300 | INFO | Response to user 25076348: Пожалуйста, введите число (ваш возраст). +Укажите ваш возраст (целое число лет): +2026-05-04T14:53:57.436097+0300 | DEBUG | Message from 25076348 in peer 2000000002: 13 +2026-05-04T14:53:57.436097+0300 | INFO | Processed message from 25076348: 13 +2026-05-04T14:53:57.436624+0300 | INFO | === HANDLE: user 25076348, text='13', current state=collect_age === +2026-05-04T14:53:57.436624+0300 | DEBUG | validate_age input: ''13'' +2026-05-04T14:53:57.436624+0300 | DEBUG | cleaned: '13' +2026-05-04T14:53:57.436624+0300 | DEBUG | age valid: 13 +2026-05-04T14:53:57.437143+0300 | INFO | Response to user 25076348: Пожалуйста, введите число (ваш возраст). +Укажите ваш возраст (целое число лет): +2026-05-04T14:54:17.932582+0300 | ERROR | Fatal error: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response')) +Traceback (most recent call last): + + File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\connectionpool.py", line 787, in urlopen + response = self._make_request( + │ └ + └ + File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\connectionpool.py", line 534, in _make_request + response = conn.getresponse() + │ └ + └ + File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\connection.py", line 571, in getresponse + httplib_response = super().getresponse() + File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\http\client.py", line 1374, in getresponse + response.begin() + │ └ + └ + File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\http\client.py", line 318, in begin + version, status, reason = self._read_status() + │ └ + └ + File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\http\client.py", line 287, in _read_status + raise RemoteDisconnected("Remote end closed connection without" + └ + +http.client.RemoteDisconnected: Remote end closed connection without response + + +During handling of the above exception, another exception occurred: + + +Traceback (most recent call last): + + File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\site-packages\requests\adapters.py", line 645, in send + resp = conn.urlopen( + │ └ + └ + File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\connectionpool.py", line 841, in urlopen + retries = retries.increment( + │ └ + └ Retry(total=0, connect=None, read=False, redirect=None, status=None) + File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\util\retry.py", line 490, in increment + raise reraise(type(error), error, _stacktrace) + │ │ │ └ + │ │ └ ProtocolError('Connection aborted.', RemoteDisconnected('Remote end closed connection without response')) + │ └ ProtocolError('Connection aborted.', RemoteDisconnected('Remote end closed connection without response')) + └ + File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\util\util.py", line 38, in reraise + raise value.with_traceback(tb) + │ └ None + └ None + File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\connectionpool.py", line 787, in urlopen + response = self._make_request( + │ └ + └ + File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\connectionpool.py", line 534, in _make_request + response = conn.getresponse() + │ └ + └ + File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\connection.py", line 571, in getresponse + httplib_response = super().getresponse() + File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\http\client.py", line 1374, in getresponse + response.begin() + │ └ + └ + File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\http\client.py", line 318, in begin + version, status, reason = self._read_status() + │ └ + └ + File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\http\client.py", line 287, in _read_status + raise RemoteDisconnected("Remote end closed connection without" + └ + +urllib3.exceptions.ProtocolError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response')) + + +During handling of the above exception, another exception occurred: + + +Traceback (most recent call last): + + File "m:\bot_vk_ikp\vk-sales-bot\main.py", line 28, in + main() + └ + +> File "m:\bot_vk_ikp\vk-sales-bot\main.py", line 20, in main + bot.run() + │ └ + └ + + File "m:\bot_vk_ikp\vk-sales-bot\services\vk_bot.py", line 90, in run + for event in self.longpoll.listen(): + │ │ │ └ + │ │ └ + │ └ + └ <({'group_id': 233127658, 'type': 'message_new', 'event_id': 'a8c630d5264c1fc3... + + File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\site-packages\vk_api\bot_longpoll.py", line 286, in listen + for event in self.check(): + │ │ └ + │ └ + └ <({'group_id': 233127658, 'type': 'message_new', 'event_id': 'a8c630d5264c1fc3... + File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\site-packages\vk_api\bot_longpoll.py", line 255, in check + response = self.session.get( + │ └ + └ + File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\site-packages\requests\sessions.py", line 605, in get + return self.request("GET", url, **kwargs) + │ │ │ └ {'params': {'act': 'a_check', 'key': 'eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJxdWV1ZV9pZCI6IjIzMzEyNzY1OCIsInVudGlsIjoxNzc3OD... + │ │ └ 'https://lp.vk.com/whp/233127658' + │ └ + └ + File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\site-packages\requests\sessions.py", line 592, in request + resp = self.send(prep, **send_kwargs) + │ │ │ └ {'timeout': 35, 'allow_redirects': True, 'proxies': OrderedDict(), 'stream': False, 'verify': True, 'cert': None} + │ │ └ + │ └ + └ + File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\site-packages\requests\sessions.py", line 706, in send + r = adapter.send(request, **kwargs) + │ │ │ └ {'timeout': 35, 'proxies': OrderedDict(), 'stream': False, 'verify': True, 'cert': None} + │ │ └ + │ └ + └ + File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\site-packages\requests\adapters.py", line 660, in send + raise ConnectionError(err, request=request) + │ └ + └ + +requests.exceptions.ConnectionError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response')) +2026-05-04T15:32:36.840163+0300 | INFO | Initializing bot... +2026-05-04T15:32:37.085881+0300 | INFO | Bot started +2026-05-04T15:32:37.086882+0300 | INFO | Backup scheduler started +2026-05-04T15:32:43.889888+0300 | DEBUG | Message from 25076348 in peer 2000000002: привет +2026-05-04T15:32:43.891134+0300 | INFO | Processed message from 25076348: привет +2026-05-04T15:32:43.891134+0300 | INFO | === HANDLE: user 25076348, text='привет', current state=None === +2026-05-04T15:32:43.894134+0300 | INFO | Response to user 25076348: Пожалуйста, подтвердите согласие на обработку персональных данных (Да / Нет): +2026-05-04T15:32:47.508547+0300 | DEBUG | Message from 25076348 in peer 2000000002: да +2026-05-04T15:32:47.508547+0300 | INFO | Processed message from 25076348: да +2026-05-04T15:32:47.508547+0300 | INFO | === HANDLE: user 25076348, text='да', current state=ask_consent === +2026-05-04T15:32:47.508547+0300 | INFO | Response to user 25076348: ✅ Спасибо за согласие! Продолжим оформление заявки. +Пожалуйста, укажите вашу фамилию и имя (два слов +2026-05-04T15:32:55.451299+0300 | DEBUG | Message from 25076348 in peer 2000000002: ааа ппп +2026-05-04T15:32:55.451299+0300 | INFO | Processed message from 25076348: ааа ппп +2026-05-04T15:32:55.451299+0300 | INFO | === HANDLE: user 25076348, text='ааа ппп', current state=collect_fi === +2026-05-04T15:32:55.453302+0300 | INFO | Response to user 25076348: Укажите ваш возраст (целое число лет): +2026-05-04T15:32:59.095014+0300 | DEBUG | Message from 25076348 in peer 2000000002: 12 +2026-05-04T15:32:59.095014+0300 | INFO | Processed message from 25076348: 12 +2026-05-04T15:32:59.095014+0300 | INFO | === HANDLE: user 25076348, text='12', current state=collect_age === +2026-05-04T15:32:59.095014+0300 | DEBUG | validate_age input: ''12'' +2026-05-04T15:32:59.096013+0300 | DEBUG | cleaned: '12' +2026-05-04T15:32:59.096013+0300 | DEBUG | age valid: 12 +2026-05-04T15:32:59.098012+0300 | INFO | Response to user 25076348: Пожалуйста, введите число (ваш возраст). +Укажите ваш возраст (целое число лет): +2026-05-04T15:33:02.913004+0300 | DEBUG | Message from 25076348 in peer 2000000002: 23 +2026-05-04T15:33:02.914007+0300 | INFO | Processed message from 25076348: 23 +2026-05-04T15:33:02.914007+0300 | INFO | === HANDLE: user 25076348, text='23', current state=collect_age === +2026-05-04T15:33:02.914007+0300 | DEBUG | validate_age input: ''23'' +2026-05-04T15:33:02.914007+0300 | DEBUG | cleaned: '23' +2026-05-04T15:33:02.914007+0300 | DEBUG | age valid: 23 +2026-05-04T15:33:02.915005+0300 | INFO | Response to user 25076348: Пожалуйста, введите число (ваш возраст). +Укажите ваш возраст (целое число лет): +2026-05-04T18:09:52.845335+0300 | INFO | Initializing bot... +2026-05-04T18:09:53.046373+0300 | INFO | Bot started +2026-05-04T18:09:53.047373+0300 | INFO | Backup scheduler started +2026-05-04T18:10:10.241270+0300 | DEBUG | Message from 25076348 in peer 2000000002: привет +2026-05-04T18:10:10.242269+0300 | INFO | Processed message from 25076348: привет +2026-05-04T18:10:10.242269+0300 | INFO | === HANDLE: user 25076348, text='привет', current state=None === +2026-05-04T18:10:10.245270+0300 | INFO | Response to user 25076348: Пожалуйста, подтвердите согласие на обработку персональных данных (Да / Нет): +2026-05-04T18:10:13.272789+0300 | DEBUG | Message from 25076348 in peer 2000000002: да +2026-05-04T18:10:13.273787+0300 | INFO | Processed message from 25076348: да +2026-05-04T18:10:13.273787+0300 | INFO | === HANDLE: user 25076348, text='да', current state=ask_consent === +2026-05-04T18:10:13.273787+0300 | INFO | Response to user 25076348: ✅ Спасибо за согласие! Продолжим оформление заявки. +Пожалуйста, укажите вашу фамилию и имя (два слов +2026-05-04T18:10:18.694847+0300 | DEBUG | Message from 25076348 in peer 2000000002: аа рп +2026-05-04T18:10:18.694847+0300 | INFO | Processed message from 25076348: аа рп +2026-05-04T18:10:18.694847+0300 | INFO | === HANDLE: user 25076348, text='аа рп', current state=collect_fi === +2026-05-04T18:10:18.696350+0300 | INFO | Response to user 25076348: Укажите ваш возраст (целое число лет): +2026-05-04T18:10:21.671256+0300 | DEBUG | Message from 25076348 in peer 2000000002: 12 +2026-05-04T18:10:21.671256+0300 | INFO | Processed message from 25076348: 12 +2026-05-04T18:10:21.672255+0300 | INFO | === HANDLE: user 25076348, text='12', current state=collect_age === +2026-05-04T18:10:21.672255+0300 | DEBUG | validate_age input: ''12'' +2026-05-04T18:10:21.672255+0300 | DEBUG | cleaned: '12' +2026-05-04T18:10:21.672255+0300 | DEBUG | age valid: 12 +2026-05-04T18:10:21.672255+0300 | INFO | Response to user 25076348: Пожалуйста, введите число (ваш возраст). +Укажите ваш возраст (целое число лет): +2026-05-04T18:12:55.999161+0300 | INFO | Initializing bot... +2026-05-04T18:12:56.620865+0300 | INFO | Bot started +2026-05-04T18:12:56.620865+0300 | INFO | Backup scheduler started +2026-05-04T18:13:16.401304+0300 | DEBUG | Message from 25076348 in peer 2000000002: 5 +2026-05-04T18:13:16.402310+0300 | INFO | Processed message from 25076348: 5 +2026-05-04T18:13:16.402310+0300 | INFO | === HANDLE: user 25076348, text='5', current state=None === +2026-05-04T18:13:16.402310+0300 | INFO | Response to user 25076348: Пожалуйста, подтвердите согласие на обработку персональных данных (Да / Нет): +2026-05-04T18:13:19.498303+0300 | DEBUG | Message from 25076348 in peer 2000000002: всыв +2026-05-04T18:13:19.498303+0300 | INFO | Processed message from 25076348: всыв +2026-05-04T18:13:19.498303+0300 | INFO | === HANDLE: user 25076348, text='всыв', current state=ask_consent === +2026-05-04T18:13:19.498303+0300 | INFO | Response to user 25076348: Пожалуйста, ответьте 'Да' (согласен) или 'Нет' (не согласен). +2026-05-04T18:13:22.869492+0300 | DEBUG | Message from 25076348 in peer 2000000002: да +2026-05-04T18:13:22.869492+0300 | INFO | Processed message from 25076348: да +2026-05-04T18:13:22.870492+0300 | INFO | === HANDLE: user 25076348, text='да', current state=ask_consent === +2026-05-04T18:13:22.870492+0300 | INFO | Response to user 25076348: ✅ Спасибо за согласие! Продолжим оформление заявки. +Пожалуйста, укажите вашу фамилию и имя (два слов +2026-05-04T18:13:30.113454+0300 | DEBUG | Message from 25076348 in peer 2000000002: пав пав +2026-05-04T18:13:30.113454+0300 | INFO | Processed message from 25076348: пав пав +2026-05-04T18:13:30.113454+0300 | INFO | === HANDLE: user 25076348, text='пав пав', current state=collect_fi === +2026-05-04T18:13:30.114454+0300 | INFO | Response to user 25076348: Укажите ваш возраст (целое число лет): +2026-05-04T18:13:32.914351+0300 | DEBUG | Message from 25076348 in peer 2000000002: 12 +2026-05-04T18:13:32.915351+0300 | INFO | Processed message from 25076348: 12 +2026-05-04T18:13:32.915351+0300 | INFO | === HANDLE: user 25076348, text='12', current state=collect_age === +2026-05-04T18:13:32.915351+0300 | DEBUG | validate_age input: ''12'' +2026-05-04T18:13:32.915351+0300 | DEBUG | cleaned: '12' +2026-05-04T18:13:32.915351+0300 | DEBUG | age valid: 12 +2026-05-04T18:13:32.915351+0300 | INFO | Response to user 25076348: Пожалуйста, введите число (ваш возраст). +Укажите ваш возраст (целое число лет): +2026-05-04T18:13:36.111171+0300 | DEBUG | Message from 25076348 in peer 2000000002: 12 +2026-05-04T18:13:36.111171+0300 | INFO | Processed message from 25076348: 12 +2026-05-04T18:13:36.111171+0300 | INFO | === HANDLE: user 25076348, text='12', current state=collect_age === +2026-05-04T18:13:36.112171+0300 | DEBUG | validate_age input: ''12'' +2026-05-04T18:13:36.112171+0300 | DEBUG | cleaned: '12' +2026-05-04T18:13:36.112171+0300 | DEBUG | age valid: 12 +2026-05-04T18:13:36.112171+0300 | INFO | Response to user 25076348: Пожалуйста, введите число (ваш возраст). +Укажите ваш возраст (целое число лет): +2026-05-04T18:13:43.488167+0300 | DEBUG | Message from 25076348 in peer 2000000002: 12лет +2026-05-04T18:13:43.488167+0300 | INFO | Processed message from 25076348: 12лет +2026-05-04T18:13:43.488167+0300 | INFO | === HANDLE: user 25076348, text='12лет', current state=collect_age === +2026-05-04T18:13:43.489166+0300 | DEBUG | validate_age input: ''12лет'' +2026-05-04T18:13:43.489166+0300 | DEBUG | cleaned: '12' +2026-05-04T18:13:43.489166+0300 | DEBUG | age valid: 12 +2026-05-04T18:13:43.489166+0300 | INFO | Response to user 25076348: Пожалуйста, введите число (ваш возраст). +Укажите ваш возраст (целое число лет): +2026-05-04T18:13:48.007000+0300 | DEBUG | Message from 25076348 in peer 2000000002: 12 лет +2026-05-04T18:13:48.007000+0300 | INFO | Processed message from 25076348: 12 лет +2026-05-04T18:13:48.007000+0300 | INFO | === HANDLE: user 25076348, text='12 лет', current state=collect_age === +2026-05-04T18:13:48.008153+0300 | DEBUG | validate_age input: ''12 лет'' +2026-05-04T18:13:48.008153+0300 | DEBUG | cleaned: '12' +2026-05-04T18:13:48.008153+0300 | DEBUG | age valid: 12 +2026-05-04T18:13:48.008153+0300 | INFO | Response to user 25076348: Пожалуйста, введите число (ваш возраст). +Укажите ваш возраст (целое число лет): +2026-05-04T18:13:51.898194+0300 | DEBUG | Message from 25076348 in peer 2000000002: 1 +2026-05-04T18:13:51.898194+0300 | INFO | Processed message from 25076348: 1 +2026-05-04T18:13:51.899194+0300 | INFO | === HANDLE: user 25076348, text='1', current state=collect_age === +2026-05-04T18:13:51.899194+0300 | DEBUG | validate_age input: ''1'' +2026-05-04T18:13:51.899194+0300 | DEBUG | cleaned: '1' +2026-05-04T18:13:51.899194+0300 | DEBUG | age valid: 1 +2026-05-04T18:13:51.899194+0300 | INFO | Response to user 25076348: Пожалуйста, введите число (ваш возраст). +Укажите ваш возраст (целое число лет): +2026-05-04T18:13:55.621492+0300 | DEBUG | Message from 25076348 in peer 2000000002: 120 +2026-05-04T18:13:55.622492+0300 | INFO | Processed message from 25076348: 120 +2026-05-04T18:13:55.622492+0300 | INFO | === HANDLE: user 25076348, text='120', current state=collect_age === +2026-05-04T18:13:55.622492+0300 | DEBUG | validate_age input: ''120'' +2026-05-04T18:13:55.622492+0300 | DEBUG | cleaned: '120' +2026-05-04T18:13:55.622492+0300 | DEBUG | age valid: 120 +2026-05-04T18:13:55.622492+0300 | INFO | Response to user 25076348: Пожалуйста, введите число (ваш возраст). +Укажите ваш возраст (целое число лет): +2026-05-04T18:14:00.545873+0300 | DEBUG | Message from 25076348 in peer 2000000002: 158 +2026-05-04T18:14:00.545873+0300 | INFO | Processed message from 25076348: 158 +2026-05-04T18:14:00.545873+0300 | INFO | === HANDLE: user 25076348, text='158', current state=collect_age === +2026-05-04T18:14:00.545873+0300 | DEBUG | validate_age input: ''158'' +2026-05-04T18:14:00.545873+0300 | DEBUG | cleaned: '158' +2026-05-04T18:14:00.546870+0300 | INFO | Response to user 25076348: Возраст должен быть от 1 до 120 лет. +Укажите ваш возраст (целое число лет): +2026-05-04T18:14:29.195477+0300 | DEBUG | Message from 25076348 in peer 2000000002: 11 +2026-05-04T18:14:29.195477+0300 | INFO | Processed message from 25076348: 11 +2026-05-04T18:14:29.196478+0300 | INFO | === HANDLE: user 25076348, text='11', current state=collect_age === +2026-05-04T18:14:29.196478+0300 | DEBUG | validate_age input: ''11'' +2026-05-04T18:14:29.196478+0300 | DEBUG | cleaned: '11' +2026-05-04T18:14:29.196478+0300 | DEBUG | age valid: 11 +2026-05-04T18:14:29.196478+0300 | INFO | Response to user 25076348: Пожалуйста, введите число (ваш возраст). +Укажите ваш возраст (целое число лет): +2026-05-04T21:42:30.942354+0300 | INFO | Initializing bot... +2026-05-04T21:42:31.199461+0300 | INFO | Bot started +2026-05-04T21:42:31.200460+0300 | INFO | Backup scheduler started +2026-05-04T21:43:03.630075+0300 | INFO | Initializing bot... +2026-05-04T21:43:04.103937+0300 | INFO | Bot started +2026-05-04T21:43:04.104937+0300 | INFO | Backup scheduler started +2026-05-04T21:43:32.010181+0300 | DEBUG | Message from 25076348 in peer 2000000002: привет +2026-05-04T21:43:32.012181+0300 | INFO | Processed message from 25076348: привет +2026-05-04T21:43:32.012181+0300 | INFO | === HANDLE: user 25076348, text='привет', current state=None === +2026-05-04T21:43:32.015181+0300 | INFO | Response to user 25076348: Пожалуйста, подтвердите согласие на обработку персональных данных (Да / Нет): +2026-05-04T21:43:34.178176+0300 | DEBUG | Message from 25076348 in peer 2000000002: да +2026-05-04T21:43:34.178176+0300 | INFO | Processed message from 25076348: да +2026-05-04T21:43:34.178176+0300 | INFO | === HANDLE: user 25076348, text='да', current state=ask_consent === +2026-05-04T21:43:34.178176+0300 | INFO | Response to user 25076348: ✅ Спасибо за согласие! Продолжим оформление заявки. +Пожалуйста, укажите вашу фамилию и имя (два слов +2026-05-04T21:43:40.704112+0300 | DEBUG | Message from 25076348 in peer 2000000002: ааа ппп +2026-05-04T21:43:40.704112+0300 | INFO | Processed message from 25076348: ааа ппп +2026-05-04T21:43:40.704112+0300 | INFO | === HANDLE: user 25076348, text='ааа ппп', current state=collect_fi === +2026-05-04T21:43:40.706111+0300 | INFO | Response to user 25076348: Укажите ваш возраст (целое число лет): +2026-05-04T21:43:43.405452+0300 | DEBUG | Message from 25076348 in peer 2000000002: 12 +2026-05-04T21:43:43.405452+0300 | INFO | Processed message from 25076348: 12 +2026-05-04T21:43:43.406451+0300 | INFO | === HANDLE: user 25076348, text='12', current state=collect_age === +2026-05-04T21:43:43.406451+0300 | DEBUG | validate_age input: ''12'' +2026-05-04T21:43:43.406451+0300 | DEBUG | cleaned: '12' +2026-05-04T21:43:43.406451+0300 | DEBUG | age valid: 12 +2026-05-04T21:43:43.407452+0300 | INFO | Response to user 25076348: Пожалуйста, введите число (ваш возраст). +Укажите ваш возраст (целое число лет): +2026-05-04T21:43:53.242075+0300 | DEBUG | Message from 25076348 in peer 2000000002: 12 +2026-05-04T21:43:53.243076+0300 | INFO | Processed message from 25076348: 12 +2026-05-04T21:43:53.243076+0300 | INFO | === HANDLE: user 25076348, text='12', current state=collect_age === +2026-05-04T21:43:53.243076+0300 | DEBUG | validate_age input: ''12'' +2026-05-04T21:43:53.243076+0300 | DEBUG | cleaned: '12' +2026-05-04T21:43:53.243076+0300 | DEBUG | age valid: 12 +2026-05-04T21:43:53.243076+0300 | INFO | Response to user 25076348: Пожалуйста, введите число (ваш возраст). +Укажите ваш возраст (целое число лет): +2026-05-04T21:44:00.659922+0300 | DEBUG | Message from 25076348 in peer 2000000002: "12" +2026-05-04T21:44:00.659922+0300 | INFO | Processed message from 25076348: "12" +2026-05-04T21:44:00.659922+0300 | INFO | === HANDLE: user 25076348, text='"12"', current state=collect_age === +2026-05-04T21:44:00.659922+0300 | DEBUG | validate_age input: ''"12"'' +2026-05-04T21:44:00.659922+0300 | DEBUG | cleaned: '12' +2026-05-04T21:44:00.660921+0300 | DEBUG | age valid: 12 +2026-05-04T21:44:00.660921+0300 | INFO | Response to user 25076348: Пожалуйста, введите число (ваш возраст). +Укажите ваш возраст (целое число лет): +2026-05-05T07:00:09.347195+0300 | INFO | Initializing bot... +2026-05-05T07:00:09.569224+0300 | INFO | Bot started +2026-05-05T07:00:09.570223+0300 | INFO | Backup scheduler started +2026-05-05T07:00:20.263695+0300 | INFO | Initializing bot... +2026-05-05T07:00:20.447752+0300 | INFO | Bot started +2026-05-05T07:00:20.447752+0300 | INFO | Backup scheduler started +2026-05-05T07:00:51.798725+0300 | DEBUG | Message from 25076348 in peer 2000000002: привет +2026-05-05T07:00:51.798725+0300 | INFO | Processed message from 25076348: привет +2026-05-05T07:00:51.798725+0300 | INFO | === HANDLE: user 25076348, text='привет', current state=None === +2026-05-05T07:00:51.799725+0300 | INFO | Response to user 25076348: Пожалуйста, подтвердите согласие на обработку персональных данных (Да / Нет): +2026-05-05T07:00:55.300865+0300 | DEBUG | Message from 25076348 in peer 2000000002: да +2026-05-05T07:00:55.300865+0300 | INFO | Processed message from 25076348: да +2026-05-05T07:00:55.301864+0300 | INFO | === HANDLE: user 25076348, text='да', current state=ask_consent === +2026-05-05T07:00:55.301864+0300 | INFO | Response to user 25076348: ✅ Спасибо за согласие! Продолжим оформление заявки. +Пожалуйста, укажите вашу фамилию и имя (два слов +2026-05-05T07:01:00.589119+0300 | DEBUG | Message from 25076348 in peer 2000000002: ааа ппп +2026-05-05T07:01:00.589119+0300 | INFO | Processed message from 25076348: ааа ппп +2026-05-05T07:01:00.590119+0300 | INFO | === HANDLE: user 25076348, text='ааа ппп', current state=collect_fi === +2026-05-05T07:01:00.590119+0300 | INFO | Response to user 25076348: Укажите ваш возраст (целое число лет): +2026-05-05T07:01:03.015859+0300 | DEBUG | Message from 25076348 in peer 2000000002: 12 +2026-05-05T07:01:03.015859+0300 | INFO | Processed message from 25076348: 12 +2026-05-05T07:01:03.015859+0300 | INFO | === HANDLE: user 25076348, text='12', current state=collect_age === +2026-05-05T07:01:03.016362+0300 | DEBUG | validate_age input: ''12'' +2026-05-05T07:01:03.016362+0300 | DEBUG | cleaned: '12' +2026-05-05T07:01:03.016362+0300 | DEBUG | age valid: 12 +2026-05-05T07:01:03.016362+0300 | INFO | Response to user 25076348: Пожалуйста, введите число (ваш возраст). +Укажите ваш возраст (целое число лет): +2026-05-05T07:01:04.461068+0300 | DEBUG | Message from 25076348 in peer 2000000002: 12 +2026-05-05T07:01:04.461068+0300 | INFO | Processed message from 25076348: 12 +2026-05-05T07:01:04.461068+0300 | INFO | === HANDLE: user 25076348, text='12', current state=collect_age === +2026-05-05T07:01:04.461068+0300 | DEBUG | validate_age input: ''12'' +2026-05-05T07:01:04.462069+0300 | DEBUG | cleaned: '12' +2026-05-05T07:01:04.462069+0300 | DEBUG | age valid: 12 +2026-05-05T07:01:04.462069+0300 | INFO | Response to user 25076348: Пожалуйста, введите число (ваш возраст). +Укажите ваш возраст (целое число лет): +2026-05-05T07:01:06.186293+0300 | DEBUG | Message from 25076348 in peer 2000000002: 31 +2026-05-05T07:01:06.186798+0300 | INFO | Processed message from 25076348: 31 +2026-05-05T07:01:06.186798+0300 | INFO | === HANDLE: user 25076348, text='31', current state=collect_age === +2026-05-05T07:01:06.186798+0300 | DEBUG | validate_age input: ''31'' +2026-05-05T07:01:06.186798+0300 | DEBUG | cleaned: '31' +2026-05-05T07:01:06.186798+0300 | DEBUG | age valid: 31 +2026-05-05T07:01:06.187799+0300 | INFO | Response to user 25076348: Пожалуйста, введите число (ваш возраст). +Укажите ваш возраст (целое число лет): +2026-05-05T07:01:08.344400+0300 | DEBUG | Message from 25076348 in peer 2000000002: 41 +2026-05-05T07:01:08.344400+0300 | INFO | Processed message from 25076348: 41 +2026-05-05T07:01:08.344400+0300 | INFO | === HANDLE: user 25076348, text='41', current state=collect_age === +2026-05-05T07:01:08.344400+0300 | DEBUG | validate_age input: ''41'' +2026-05-05T07:01:08.344400+0300 | DEBUG | cleaned: '41' +2026-05-05T07:01:08.344400+0300 | DEBUG | age valid: 41 +2026-05-05T07:01:08.345902+0300 | INFO | Response to user 25076348: Пожалуйста, введите число (ваш возраст). +Укажите ваш возраст (целое число лет): +2026-05-05T08:33:06.946148+0300 | INFO | Initializing bot... +2026-05-05T08:33:07.210217+0300 | INFO | Bot started +2026-05-05T08:33:07.211222+0300 | INFO | Backup scheduler started +2026-05-05T08:33:29.318049+0300 | DEBUG | Message from 25076348 in peer 2000000002: авсыв +2026-05-05T08:33:29.319049+0300 | INFO | Processed message from 25076348: авсыв +2026-05-05T08:33:29.319049+0300 | INFO | === HANDLE: user 25076348, text='авсыв', current state=None === +2026-05-05T08:33:29.321050+0300 | INFO | Response to user 25076348: Пожалуйста, подтвердите согласие на обработку персональных данных (Да / Нет): +2026-05-05T08:33:34.372307+0300 | DEBUG | Message from 25076348 in peer 2000000002: да +2026-05-05T08:33:34.372307+0300 | INFO | Processed message from 25076348: да +2026-05-05T08:33:34.372307+0300 | INFO | === HANDLE: user 25076348, text='да', current state=ask_consent === +2026-05-05T08:33:34.372307+0300 | INFO | Response to user 25076348: ✅ Спасибо за согласие! Продолжим оформление заявки. +Пожалуйста, укажите вашу фамилию и имя (два слов +2026-05-05T08:33:39.200486+0300 | DEBUG | Message from 25076348 in peer 2000000002: аваыв павпва +2026-05-05T08:33:39.200486+0300 | INFO | Processed message from 25076348: аваыв павпва +2026-05-05T08:33:39.200486+0300 | INFO | === HANDLE: user 25076348, text='аваыв павпва', current state=collect_fi === +2026-05-05T08:33:39.201486+0300 | INFO | Response to user 25076348: 👪 Укажите, пожалуйста, контактные данные родителя или опекуна. Вы можете предоставить их сейчас или +2026-05-05T08:34:08.120612+0300 | DEBUG | Message from 25076348 in peer 2000000002: пропустить +2026-05-05T08:34:08.121613+0300 | INFO | Processed message from 25076348: пропустить +2026-05-05T08:34:08.121613+0300 | INFO | === HANDLE: user 25076348, text='пропустить', current state=ask_parent_data === +2026-05-05T08:34:08.121613+0300 | INFO | Parent data skipped for user 25076348 +2026-05-05T08:34:08.121613+0300 | INFO | Response to user 25076348: ✅ Данные родителя пропущены. Продолжаем оформление. +Отлично! Теперь укажите ваш номер телефона в фор +2026-05-05T08:34:34.619625+0300 | DEBUG | Message from 25076348 in peer 2000000002: +7(900)000-00-00 +2026-05-05T08:34:34.619625+0300 | INFO | Processed message from 25076348: +7(900)000-00-00 +2026-05-05T08:34:34.619625+0300 | INFO | === HANDLE: user 25076348, text='+7(900)000-00-00', current state=collect_phone === +2026-05-05T08:34:34.619625+0300 | INFO | Response to user 25076348: Укажите удобное время по МСК для звонка (например: 'завтра после 18', 'в среду утром', 'сегодня в 15 +2026-05-05T08:34:52.867495+0300 | DEBUG | Message from 25076348 in peer 2000000002: сегодня в 15:00 +2026-05-05T08:34:52.867495+0300 | INFO | Processed message from 25076348: сегодня в 15:00 +2026-05-05T08:34:52.867495+0300 | INFO | === HANDLE: user 25076348, text='сегодня в 15:00', current state=collect_time === +2026-05-05T08:34:54.349050+0300 | INFO | Response to user 25076348: Проверьте данные: +ФИ: аваыв павпва +Телефон: +7 (900) 000-00-00 +Время звонка по МСК: 05.05.2026 в 15: +2026-05-05T08:34:58.958675+0300 | DEBUG | Message from 25076348 in peer 2000000002: да +2026-05-05T08:34:58.958675+0300 | INFO | Processed message from 25076348: да +2026-05-05T08:34:58.958675+0300 | INFO | === HANDLE: user 25076348, text='да', current state=collect_time === +2026-05-05T08:34:59.533476+0300 | INFO | Response to user 25076348: Не удалось распознать время. Укажите, например: 'завтра после 18', 'в среду утром' или 'любое время' +2026-05-05T08:35:39.028252+0300 | DEBUG | Message from 25076348 in peer 2000000002: сегодня в 15:00 +2026-05-05T08:35:39.028252+0300 | INFO | Processed message from 25076348: сегодня в 15:00 +2026-05-05T08:35:39.028252+0300 | INFO | === HANDLE: user 25076348, text='сегодня в 15:00', current state=collect_time === +2026-05-05T08:35:39.030760+0300 | INFO | Response to user 25076348: Проверьте данные: +ФИ: аваыв павпва +Телефон: +7 (900) 000-00-00 +Время звонка по МСК: 05.05.2026 в 15: +2026-05-05T08:35:46.969686+0300 | DEBUG | Message from 25076348 in peer 2000000002: Да +2026-05-05T08:35:46.969686+0300 | INFO | Processed message from 25076348: Да +2026-05-05T08:35:46.970686+0300 | INFO | === HANDLE: user 25076348, text='Да', current state=collect_time === +2026-05-05T08:35:46.974190+0300 | INFO | Response to user 25076348: Не удалось распознать время. Укажите, например: 'завтра после 18', 'в среду утром' или 'любое время' +2026-05-05T09:07:22.565746+0300 | INFO | Initializing bot... +2026-05-05T09:07:22.797990+0300 | INFO | Bot started +2026-05-05T09:07:22.798991+0300 | INFO | Backup scheduler started +2026-05-05T09:07:25.017845+0300 | DEBUG | Message from 25076348 in peer 2000000002: авп +2026-05-05T09:07:25.017845+0300 | INFO | Processed message from 25076348: авп +2026-05-05T09:07:25.018845+0300 | INFO | === HANDLE: user 25076348, text='авп', current state=None === +2026-05-05T09:07:25.018845+0300 | INFO | Response to user 25076348: Пожалуйста, подтвердите согласие на обработку персональных данных (Да / Нет): +2026-05-05T09:07:29.353564+0300 | DEBUG | Message from 25076348 in peer 2000000002: да +2026-05-05T09:07:29.354564+0300 | INFO | Processed message from 25076348: да +2026-05-05T09:07:29.354564+0300 | INFO | === HANDLE: user 25076348, text='да', current state=ask_consent === +2026-05-05T09:07:29.354564+0300 | INFO | Response to user 25076348: ✅ Спасибо за согласие! Продолжим оформление заявки. +Пожалуйста, укажите вашу фамилию и имя (два слов +2026-05-05T09:07:36.689785+0300 | DEBUG | Message from 25076348 in peer 2000000002: ваыва авп +2026-05-05T09:07:36.689785+0300 | INFO | Processed message from 25076348: ваыва авп +2026-05-05T09:07:36.689785+0300 | INFO | === HANDLE: user 25076348, text='ваыва авп', current state=collect_fi === +2026-05-05T09:07:36.689785+0300 | INFO | Response to user 25076348: 👪 Укажите, пожалуйста, контактные данные родителя или опекуна. Вы можете предоставить их сейчас или +2026-05-05T09:07:47.065944+0300 | DEBUG | Message from 25076348 in peer 2000000002: пропустить +2026-05-05T09:07:47.065944+0300 | INFO | Processed message from 25076348: пропустить +2026-05-05T09:07:47.065944+0300 | INFO | === HANDLE: user 25076348, text='пропустить', current state=ask_parent_data === +2026-05-05T09:07:47.066947+0300 | INFO | Parent data skipped for user 25076348 +2026-05-05T09:07:47.066947+0300 | INFO | Response to user 25076348: ✅ Данные родителя пропущены. Продолжаем оформление. +Отлично! Теперь укажите ваш номер телефона в фор +2026-05-05T09:08:13.305154+0300 | DEBUG | Message from 25076348 in peer 2000000002: +7(999)000-00-00 +2026-05-05T09:08:13.306155+0300 | INFO | Processed message from 25076348: +7(999)000-00-00 +2026-05-05T09:08:13.306155+0300 | INFO | === HANDLE: user 25076348, text='+7(999)000-00-00', current state=collect_phone === +2026-05-05T09:08:13.306155+0300 | INFO | Response to user 25076348: Укажите удобное время по МСК для звонка (например: 'завтра после 18', 'в среду утром', 'сегодня в 15 +2026-05-05T09:08:26.129071+0300 | DEBUG | Message from 25076348 in peer 2000000002: сегодня в 15:00 +2026-05-05T09:08:26.130574+0300 | INFO | Processed message from 25076348: сегодня в 15:00 +2026-05-05T09:08:26.130574+0300 | INFO | === HANDLE: user 25076348, text='сегодня в 15:00', current state=collect_time === +2026-05-05T09:08:27.594462+0300 | INFO | Response to user 25076348: Проверьте данные: +ФИ: ваыва авп +Телефон: +7 (999) 000-00-00 +Время звонка по МСК: 05.05.2026 в 15:00 + +2026-05-05T09:08:31.676242+0300 | DEBUG | Message from 25076348 in peer 2000000002: [club233127658|@ikpro] ✅ Да +2026-05-05T09:08:31.677239+0300 | INFO | Processed message from 25076348: [club233127658|@ikpro] ✅ Да +2026-05-05T09:08:31.677239+0300 | INFO | === HANDLE: user 25076348, text='[club233127658|@ikpro] ✅ Да', current state=confirm === +2026-05-05T09:08:31.677239+0300 | INFO | Response to user 25076348: Пожалуйста, ответьте 'Да' или 'Нет'. +2026-05-05T09:08:38.235869+0300 | DEBUG | Message from 25076348 in peer 2000000002: да +2026-05-05T09:08:38.235869+0300 | INFO | Processed message from 25076348: да +2026-05-05T09:08:38.236871+0300 | INFO | === HANDLE: user 25076348, text='да', current state=confirm === +2026-05-05T09:08:38.653742+0300 | INFO | Lead saved for user 25076348 +2026-05-05T09:08:38.653742+0300 | INFO | Response to user 25076348: Спасибо! Ваши данные сохранены. Менеджер свяжется с вами в указанное время. Хорошего дня! 🌟 diff --git a/logs/bot.log b/logs/bot.log index 8568474..3edbc7a 100644 --- a/logs/bot.log +++ b/logs/bot.log @@ -1,590 +1,145 @@ -2026-05-04T13:22:21.443454+0300 | INFO | Initializing bot... -2026-05-04T13:22:21.685842+0300 | INFO | Bot started -2026-05-04T13:22:21.686877+0300 | INFO | Backup scheduler started -2026-05-04T13:23:07.722613+0300 | DEBUG | Message from 25076348 in peer 2000000002: [club233127658|@ikpro] 🔄 Начать заново -2026-05-04T13:23:07.724180+0300 | INFO | Processed message from 25076348: [club233127658|@ikpro] 🔄 Начать заново -2026-05-04T13:23:07.724696+0300 | INFO | === HANDLE: user 25076348, text='[club233127658|@ikpro] 🔄 Начать заново', current state=None === -2026-05-04T13:23:07.727877+0300 | INFO | Response to user 25076348: Пожалуйста, подтвердите согласие на обработку персональных данных (Да / Нет): -2026-05-04T13:23:11.904304+0300 | DEBUG | Message from 25076348 in peer 2000000002: да -2026-05-04T13:23:11.904304+0300 | INFO | Processed message from 25076348: да -2026-05-04T13:23:11.904840+0300 | INFO | === HANDLE: user 25076348, text='да', current state=ask_consent === -2026-05-04T13:23:11.904840+0300 | INFO | Response to user 25076348: ✅ Спасибо за согласие! Продолжим оформление заявки. +2026-05-06T09:30:39.349431+0300 | INFO | Initializing bot... +2026-05-06T09:30:39.662434+0300 | INFO | Bot started +2026-05-06T09:30:39.663944+0300 | INFO | Backup scheduler started +2026-05-06T09:30:49.350771+0300 | DEBUG | Message from 9782434 in peer 2000000002: [club233127658|@ikpro] 🔄 Начать заново +2026-05-06T09:30:49.350771+0300 | INFO | Processed message from 9782434: [club233127658|@ikpro] 🔄 Начать заново +2026-05-06T09:30:49.350771+0300 | INFO | === HANDLE: user 9782434, text='[club233127658|@ikpro] 🔄 Начать заново', current state=None === +2026-05-06T09:30:49.350771+0300 | INFO | Response to user 9782434: Пожалуйста, подтвердите согласие на обработку персональных данных (Да / Нет): +2026-05-06T09:30:58.295421+0300 | DEBUG | Message from 9782434 in peer 2000000002: да +2026-05-06T09:30:58.295927+0300 | INFO | Processed message from 9782434: да +2026-05-06T09:30:58.295927+0300 | INFO | === HANDLE: user 9782434, text='да', current state=ask_consent === +2026-05-06T09:30:58.295927+0300 | INFO | Response to user 9782434: ✅ Спасибо за согласие! Продолжим оформление заявки. Пожалуйста, укажите вашу фамилию и имя (два слов -2026-05-04T13:23:34.586781+0300 | DEBUG | Message from 25076348 in peer 2000000002: ффф ыавпва -2026-05-04T13:23:34.586781+0300 | INFO | Processed message from 25076348: ффф ыавпва -2026-05-04T13:23:34.587312+0300 | INFO | === HANDLE: user 25076348, text='ффф ыавпва', current state=collect_fi === -2026-05-04T13:23:34.588357+0300 | INFO | Response to user 25076348: Укажите ваш возраст (целое число лет): -2026-05-04T13:23:37.967348+0300 | DEBUG | Message from 25076348 in peer 2000000002: 12 -2026-05-04T13:23:37.967876+0300 | INFO | Processed message from 25076348: 12 -2026-05-04T13:23:37.967876+0300 | INFO | === HANDLE: user 25076348, text='12', current state=collect_age === -2026-05-04T13:23:37.967876+0300 | DEBUG | validate_age input: ''12'' -2026-05-04T13:23:37.968411+0300 | DEBUG | cleaned: '12' -2026-05-04T13:23:37.968411+0300 | DEBUG | age valid: 12 -2026-05-04T13:23:37.969451+0300 | INFO | Response to user 25076348: Пожалуйста, введите число (ваш возраст). -Укажите ваш возраст (целое число лет): -2026-05-04T13:36:16.863923+0300 | INFO | Initializing bot... -2026-05-04T13:36:17.084594+0300 | INFO | Bot started -2026-05-04T13:36:17.085630+0300 | INFO | Backup scheduler started -2026-05-04T13:37:06.672828+0300 | DEBUG | Message from 25076348 in peer 2000000002: Привет -2026-05-04T13:37:06.673343+0300 | INFO | Processed message from 25076348: Привет -2026-05-04T13:37:06.673343+0300 | INFO | === HANDLE: user 25076348, text='Привет', current state=None === -2026-05-04T13:37:06.673883+0300 | INFO | Response to user 25076348: Пожалуйста, подтвердите согласие на обработку персональных данных (Да / Нет): -2026-05-04T13:37:09.159946+0300 | DEBUG | Message from 25076348 in peer 2000000002: да -2026-05-04T13:37:09.159946+0300 | INFO | Processed message from 25076348: да -2026-05-04T13:37:09.160473+0300 | INFO | === HANDLE: user 25076348, text='да', current state=ask_consent === -2026-05-04T13:37:09.160473+0300 | INFO | Response to user 25076348: ✅ Спасибо за согласие! Продолжим оформление заявки. +2026-05-06T09:31:09.423555+0300 | DEBUG | Message from 9782434 in peer 2000000002: Румянцев Сергей +2026-05-06T09:31:09.424556+0300 | INFO | Processed message from 9782434: Румянцев Сергей +2026-05-06T09:31:09.424556+0300 | INFO | === HANDLE: user 9782434, text='Румянцев Сергей', current state=collect_fi === +2026-05-06T09:31:09.424556+0300 | INFO | Response to user 9782434: 👪 Укажите, пожалуйста, контактные данные родителя или опекуна. Вы можете предоставить их сейчас или +2026-05-06T09:31:25.402120+0300 | DEBUG | Message from 9782434 in peer 2000000002: Румянцев Сергей +2026-05-06T09:31:25.402120+0300 | INFO | Processed message from 9782434: Румянцев Сергей +2026-05-06T09:31:25.403120+0300 | INFO | === HANDLE: user 9782434, text='Румянцев Сергей', current state=ask_parent_data === +2026-05-06T09:31:25.403120+0300 | INFO | Parent FIO saved for user 9782434, state changed to COLLECT_PARENT_PHONE +2026-05-06T09:31:25.403120+0300 | INFO | Response to user 9782434: Укажите телефон родителя в формате +7 (XXX) XXX-XX-XX: +2026-05-06T09:31:33.891452+0300 | DEBUG | Message from 9782434 in peer 2000000002: +79632995828 +2026-05-06T09:31:33.891452+0300 | INFO | Processed message from 9782434: +79632995828 +2026-05-06T09:31:33.891452+0300 | INFO | === HANDLE: user 9782434, text='+79632995828', current state=collect_parent_phone === +2026-05-06T09:31:33.891452+0300 | INFO | Response to user 9782434: ✅ Данные родителя сохранены. +Отлично! Теперь укажите ваш номер телефона в формате +7 (XXX) XXX-XX-XX +2026-05-06T09:31:53.604023+0300 | DEBUG | Message from 9782434 in peer 2000000002: +7(963)2995828 +2026-05-06T09:31:53.604023+0300 | INFO | Processed message from 9782434: +7(963)2995828 +2026-05-06T09:31:53.604023+0300 | INFO | === HANDLE: user 9782434, text='+7(963)2995828', current state=collect_phone === +2026-05-06T09:31:53.604023+0300 | INFO | Response to user 9782434: Укажите удобное время по МСК для звонка (например: 'завтра после 18', 'в среду утром', 'сегодня в 15 +2026-05-06T09:32:12.655460+0300 | DEBUG | Message from 9782434 in peer 2000000002: Сегодня в 12:00 +2026-05-06T09:32:12.656461+0300 | INFO | Processed message from 9782434: Сегодня в 12:00 +2026-05-06T09:32:12.656461+0300 | INFO | === HANDLE: user 9782434, text='Сегодня в 12:00', current state=collect_time === +2026-05-06T09:32:14.317368+0300 | INFO | Response to user 9782434: Проверьте данные: +ФИ: Румянцев Сергей +Телефон: +7 (963) 299-58-28 +Время звонка по МСК: 06.05.2026 в +2026-05-06T09:32:24.728976+0300 | DEBUG | Message from 9782434 in peer 2000000002: [club233127658|@ikpro] ✅ Да +2026-05-06T09:32:24.728976+0300 | INFO | Processed message from 9782434: [club233127658|@ikpro] ✅ Да +2026-05-06T09:32:24.728976+0300 | INFO | === HANDLE: user 9782434, text='[club233127658|@ikpro] ✅ Да', current state=confirm === +2026-05-06T09:32:24.729979+0300 | INFO | Response to user 9782434: Пожалуйста, ответьте 'Да' или 'Нет'. +2026-05-06T09:32:32.793560+0300 | DEBUG | Message from 9782434 in peer 2000000002: Да +2026-05-06T09:32:32.793560+0300 | INFO | Processed message from 9782434: Да +2026-05-06T09:32:32.794564+0300 | INFO | === HANDLE: user 9782434, text='Да', current state=confirm === +2026-05-06T09:32:33.178997+0300 | INFO | Lead saved for user 9782434 +2026-05-06T09:32:33.178997+0300 | INFO | Response to user 9782434: Спасибо! Ваши данные сохранены. Менеджер свяжется с вами в указанное время. Хорошего дня! 🌟 +2026-05-06T12:29:19.338807+0300 | INFO | Initializing bot... +2026-05-06T12:29:19.586887+0300 | INFO | Bot started +2026-05-06T12:29:19.587887+0300 | INFO | Backup scheduler started +2026-05-06T12:29:35.677886+0300 | DEBUG | Message from 25076348 in peer 2000000002: Привет +2026-05-06T12:29:35.678889+0300 | INFO | Processed message from 25076348: Привет +2026-05-06T12:29:35.678889+0300 | INFO | === HANDLE: user 25076348, text='Привет', current state=None === +2026-05-06T12:29:35.682396+0300 | INFO | Response to user 25076348: Пожалуйста, подтвердите согласие на обработку персональных данных (Да / Нет): +2026-05-06T12:29:42.776497+0300 | DEBUG | Message from 25076348 in peer 2000000002: да +2026-05-06T12:29:42.776497+0300 | INFO | Processed message from 25076348: да +2026-05-06T12:29:42.776497+0300 | INFO | === HANDLE: user 25076348, text='да', current state=ask_consent === +2026-05-06T12:29:42.777497+0300 | INFO | Response to user 25076348: ✅ Спасибо за согласие! Продолжим оформление заявки. Пожалуйста, укажите вашу фамилию и имя (два слов -2026-05-04T13:37:15.495991+0300 | DEBUG | Message from 25076348 in peer 2000000002: ааа ррр -2026-05-04T13:37:15.496513+0300 | INFO | Processed message from 25076348: ааа ррр -2026-05-04T13:37:15.497027+0300 | INFO | === HANDLE: user 25076348, text='ааа ррр', current state=collect_fi === -2026-05-04T13:37:15.497027+0300 | INFO | Response to user 25076348: Укажите ваш возраст (целое число лет): -2026-05-04T13:37:18.753724+0300 | DEBUG | Message from 25076348 in peer 2000000002: 12 -2026-05-04T13:37:18.753724+0300 | INFO | Processed message from 25076348: 12 -2026-05-04T13:37:18.754244+0300 | INFO | === HANDLE: user 25076348, text='12', current state=collect_age === -2026-05-04T13:37:18.754244+0300 | DEBUG | validate_age input: ''12'' -2026-05-04T13:37:18.754244+0300 | DEBUG | cleaned: '12' -2026-05-04T13:37:18.754244+0300 | DEBUG | age valid: 12 -2026-05-04T13:37:18.754756+0300 | INFO | Response to user 25076348: Пожалуйста, введите число (ваш возраст). -Укажите ваш возраст (целое число лет): -2026-05-04T13:37:22.075536+0300 | DEBUG | Message from 25076348 in peer 2000000002: 23 -2026-05-04T13:37:22.076047+0300 | INFO | Processed message from 25076348: 23 -2026-05-04T13:37:22.076047+0300 | INFO | === HANDLE: user 25076348, text='23', current state=collect_age === -2026-05-04T13:37:22.076047+0300 | DEBUG | validate_age input: ''23'' -2026-05-04T13:37:22.076566+0300 | DEBUG | cleaned: '23' -2026-05-04T13:37:22.076566+0300 | DEBUG | age valid: 23 -2026-05-04T13:37:22.076566+0300 | INFO | Response to user 25076348: Пожалуйста, введите число (ваш возраст). -Укажите ваш возраст (целое число лет): -2026-05-04T14:09:25.567877+0300 | INFO | Initializing bot... -2026-05-04T14:09:25.744659+0300 | INFO | Bot started -2026-05-04T14:09:25.745178+0300 | INFO | Backup scheduler started -2026-05-04T14:09:34.624213+0300 | DEBUG | Message from 25076348 in peer 2000000002: Привет -2026-05-04T14:09:34.624213+0300 | INFO | Processed message from 25076348: Привет -2026-05-04T14:09:34.624213+0300 | INFO | === HANDLE: user 25076348, text='Привет', current state=None === -2026-05-04T14:09:34.624740+0300 | INFO | Response to user 25076348: Пожалуйста, подтвердите согласие на обработку персональных данных (Да / Нет): -2026-05-04T14:09:36.950764+0300 | DEBUG | Message from 25076348 in peer 2000000002: да -2026-05-04T14:09:36.950764+0300 | INFO | Processed message from 25076348: да -2026-05-04T14:09:36.951300+0300 | INFO | === HANDLE: user 25076348, text='да', current state=ask_consent === -2026-05-04T14:09:36.951300+0300 | INFO | Response to user 25076348: ✅ Спасибо за согласие! Продолжим оформление заявки. -Пожалуйста, укажите вашу фамилию и имя (два слов -2026-05-04T14:09:45.685252+0300 | DEBUG | Message from 25076348 in peer 2000000002: вав авп -2026-05-04T14:09:45.685252+0300 | INFO | Processed message from 25076348: вав авп -2026-05-04T14:09:45.685252+0300 | INFO | === HANDLE: user 25076348, text='вав авп', current state=collect_fi === -2026-05-04T14:09:45.685773+0300 | INFO | Response to user 25076348: Укажите ваш возраст (целое число лет): -2026-05-04T14:09:49.196572+0300 | DEBUG | Message from 25076348 in peer 2000000002: 12 -2026-05-04T14:09:49.197077+0300 | INFO | Processed message from 25076348: 12 -2026-05-04T14:09:49.197077+0300 | INFO | === HANDLE: user 25076348, text='12', current state=collect_age === -2026-05-04T14:09:49.197077+0300 | DEBUG | validate_age input: ''12'' -2026-05-04T14:09:49.197077+0300 | DEBUG | cleaned: '12' -2026-05-04T14:09:49.197077+0300 | DEBUG | age valid: 12 -2026-05-04T14:09:49.197077+0300 | INFO | Response to user 25076348: Пожалуйста, введите число (ваш возраст). -Укажите ваш возраст (целое число лет): -2026-05-04T14:09:53.320692+0300 | DEBUG | Message from 25076348 in peer 2000000002: 12лет -2026-05-04T14:09:53.320692+0300 | INFO | Processed message from 25076348: 12лет -2026-05-04T14:09:53.320692+0300 | INFO | === HANDLE: user 25076348, text='12лет', current state=collect_age === -2026-05-04T14:09:53.321204+0300 | DEBUG | validate_age input: ''12лет'' -2026-05-04T14:09:53.321204+0300 | DEBUG | cleaned: '12' -2026-05-04T14:09:53.321204+0300 | DEBUG | age valid: 12 -2026-05-04T14:09:53.321724+0300 | INFO | Response to user 25076348: Пожалуйста, введите число (ваш возраст). -Укажите ваш возраст (целое число лет): -2026-05-04T14:10:19.043522+0300 | DEBUG | Message from 25076348 in peer 2000000002: 13 -2026-05-04T14:10:19.043522+0300 | INFO | Processed message from 25076348: 13 -2026-05-04T14:10:19.043522+0300 | INFO | === HANDLE: user 25076348, text='13', current state=collect_age === -2026-05-04T14:10:19.044052+0300 | DEBUG | validate_age input: ''13'' -2026-05-04T14:10:19.044052+0300 | DEBUG | cleaned: '13' -2026-05-04T14:10:19.044052+0300 | DEBUG | age valid: 13 -2026-05-04T14:10:19.044052+0300 | INFO | Response to user 25076348: Пожалуйста, введите число (ваш возраст). -Укажите ваш возраст (целое число лет): -2026-05-04T14:10:22.029805+0300 | DEBUG | Message from 25076348 in peer 2000000002: 18 -2026-05-04T14:10:22.029805+0300 | INFO | Processed message from 25076348: 18 -2026-05-04T14:10:22.029805+0300 | INFO | === HANDLE: user 25076348, text='18', current state=collect_age === -2026-05-04T14:10:22.030324+0300 | DEBUG | validate_age input: ''18'' -2026-05-04T14:10:22.030324+0300 | DEBUG | cleaned: '18' -2026-05-04T14:10:22.030324+0300 | DEBUG | age valid: 18 -2026-05-04T14:10:22.030324+0300 | INFO | Response to user 25076348: Пожалуйста, введите число (ваш возраст). -Укажите ваш возраст (целое число лет): -2026-05-04T14:52:44.897174+0300 | INFO | Initializing bot... -2026-05-04T14:52:45.151496+0300 | INFO | Bot started -2026-05-04T14:52:45.152530+0300 | INFO | Backup scheduler started -2026-05-04T14:53:41.300176+0300 | DEBUG | Message from 25076348 in peer 2000000002: привет -2026-05-04T14:53:41.302249+0300 | INFO | Processed message from 25076348: привет -2026-05-04T14:53:41.302249+0300 | INFO | === HANDLE: user 25076348, text='привет', current state=None === -2026-05-04T14:53:41.306431+0300 | INFO | Response to user 25076348: Пожалуйста, подтвердите согласие на обработку персональных данных (Да / Нет): -2026-05-04T14:53:43.736066+0300 | DEBUG | Message from 25076348 in peer 2000000002: да -2026-05-04T14:53:43.736066+0300 | INFO | Processed message from 25076348: да -2026-05-04T14:53:43.736066+0300 | INFO | === HANDLE: user 25076348, text='да', current state=ask_consent === -2026-05-04T14:53:43.736606+0300 | INFO | Response to user 25076348: ✅ Спасибо за согласие! Продолжим оформление заявки. -Пожалуйста, укажите вашу фамилию и имя (два слов -2026-05-04T14:53:49.142783+0300 | DEBUG | Message from 25076348 in peer 2000000002: ппп ррр -2026-05-04T14:53:49.142783+0300 | INFO | Processed message from 25076348: ппп ррр -2026-05-04T14:53:49.143321+0300 | INFO | === HANDLE: user 25076348, text='ппп ррр', current state=collect_fi === -2026-05-04T14:53:49.152638+0300 | INFO | Response to user 25076348: Укажите ваш возраст (целое число лет): -2026-05-04T14:53:51.561650+0300 | DEBUG | Message from 25076348 in peer 2000000002: 12 -2026-05-04T14:53:51.561650+0300 | INFO | Processed message from 25076348: 12 -2026-05-04T14:53:51.562169+0300 | INFO | === HANDLE: user 25076348, text='12', current state=collect_age === -2026-05-04T14:53:51.562169+0300 | DEBUG | validate_age input: ''12'' -2026-05-04T14:53:51.562169+0300 | DEBUG | cleaned: '12' -2026-05-04T14:53:51.562710+0300 | DEBUG | age valid: 12 -2026-05-04T14:53:51.563228+0300 | INFO | Response to user 25076348: Пожалуйста, введите число (ваш возраст). -Укажите ваш возраст (целое число лет): -2026-05-04T14:53:57.436097+0300 | DEBUG | Message from 25076348 in peer 2000000002: 13 -2026-05-04T14:53:57.436097+0300 | INFO | Processed message from 25076348: 13 -2026-05-04T14:53:57.436624+0300 | INFO | === HANDLE: user 25076348, text='13', current state=collect_age === -2026-05-04T14:53:57.436624+0300 | DEBUG | validate_age input: ''13'' -2026-05-04T14:53:57.436624+0300 | DEBUG | cleaned: '13' -2026-05-04T14:53:57.436624+0300 | DEBUG | age valid: 13 -2026-05-04T14:53:57.437143+0300 | INFO | Response to user 25076348: Пожалуйста, введите число (ваш возраст). -Укажите ваш возраст (целое число лет): -2026-05-04T14:54:17.932582+0300 | ERROR | Fatal error: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response')) -Traceback (most recent call last): - - File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\connectionpool.py", line 787, in urlopen - response = self._make_request( - │ └ - └ - File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\connectionpool.py", line 534, in _make_request - response = conn.getresponse() - │ └ - └ - File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\connection.py", line 571, in getresponse - httplib_response = super().getresponse() - File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\http\client.py", line 1374, in getresponse - response.begin() - │ └ - └ - File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\http\client.py", line 318, in begin - version, status, reason = self._read_status() - │ └ - └ - File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\http\client.py", line 287, in _read_status - raise RemoteDisconnected("Remote end closed connection without" - └ - -http.client.RemoteDisconnected: Remote end closed connection without response - - -During handling of the above exception, another exception occurred: - - -Traceback (most recent call last): - - File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\site-packages\requests\adapters.py", line 645, in send - resp = conn.urlopen( - │ └ - └ - File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\connectionpool.py", line 841, in urlopen - retries = retries.increment( - │ └ - └ Retry(total=0, connect=None, read=False, redirect=None, status=None) - File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\util\retry.py", line 490, in increment - raise reraise(type(error), error, _stacktrace) - │ │ │ └ - │ │ └ ProtocolError('Connection aborted.', RemoteDisconnected('Remote end closed connection without response')) - │ └ ProtocolError('Connection aborted.', RemoteDisconnected('Remote end closed connection without response')) - └ - File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\util\util.py", line 38, in reraise - raise value.with_traceback(tb) - │ └ None - └ None - File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\connectionpool.py", line 787, in urlopen - response = self._make_request( - │ └ - └ - File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\connectionpool.py", line 534, in _make_request - response = conn.getresponse() - │ └ - └ - File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\connection.py", line 571, in getresponse - httplib_response = super().getresponse() - File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\http\client.py", line 1374, in getresponse - response.begin() - │ └ - └ - File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\http\client.py", line 318, in begin - version, status, reason = self._read_status() - │ └ - └ - File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\http\client.py", line 287, in _read_status - raise RemoteDisconnected("Remote end closed connection without" - └ - -urllib3.exceptions.ProtocolError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response')) - - -During handling of the above exception, another exception occurred: - - -Traceback (most recent call last): - - File "m:\bot_vk_ikp\vk-sales-bot\main.py", line 28, in - main() - └ - -> File "m:\bot_vk_ikp\vk-sales-bot\main.py", line 20, in main - bot.run() - │ └ - └ - - File "m:\bot_vk_ikp\vk-sales-bot\services\vk_bot.py", line 90, in run - for event in self.longpoll.listen(): - │ │ │ └ - │ │ └ - │ └ - └ <({'group_id': 233127658, 'type': 'message_new', 'event_id': 'a8c630d5264c1fc3... - - File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\site-packages\vk_api\bot_longpoll.py", line 286, in listen - for event in self.check(): - │ │ └ - │ └ - └ <({'group_id': 233127658, 'type': 'message_new', 'event_id': 'a8c630d5264c1fc3... - File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\site-packages\vk_api\bot_longpoll.py", line 255, in check - response = self.session.get( - │ └ - └ - File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\site-packages\requests\sessions.py", line 605, in get - return self.request("GET", url, **kwargs) - │ │ │ └ {'params': {'act': 'a_check', 'key': 'eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJxdWV1ZV9pZCI6IjIzMzEyNzY1OCIsInVudGlsIjoxNzc3OD... - │ │ └ 'https://lp.vk.com/whp/233127658' - │ └ - └ - File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\site-packages\requests\sessions.py", line 592, in request - resp = self.send(prep, **send_kwargs) - │ │ │ └ {'timeout': 35, 'allow_redirects': True, 'proxies': OrderedDict(), 'stream': False, 'verify': True, 'cert': None} - │ │ └ - │ └ - └ - File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\site-packages\requests\sessions.py", line 706, in send - r = adapter.send(request, **kwargs) - │ │ │ └ {'timeout': 35, 'proxies': OrderedDict(), 'stream': False, 'verify': True, 'cert': None} - │ │ └ - │ └ - └ - File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\site-packages\requests\adapters.py", line 660, in send - raise ConnectionError(err, request=request) - │ └ - └ - -requests.exceptions.ConnectionError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response')) -2026-05-04T15:32:36.840163+0300 | INFO | Initializing bot... -2026-05-04T15:32:37.085881+0300 | INFO | Bot started -2026-05-04T15:32:37.086882+0300 | INFO | Backup scheduler started -2026-05-04T15:32:43.889888+0300 | DEBUG | Message from 25076348 in peer 2000000002: привет -2026-05-04T15:32:43.891134+0300 | INFO | Processed message from 25076348: привет -2026-05-04T15:32:43.891134+0300 | INFO | === HANDLE: user 25076348, text='привет', current state=None === -2026-05-04T15:32:43.894134+0300 | INFO | Response to user 25076348: Пожалуйста, подтвердите согласие на обработку персональных данных (Да / Нет): -2026-05-04T15:32:47.508547+0300 | DEBUG | Message from 25076348 in peer 2000000002: да -2026-05-04T15:32:47.508547+0300 | INFO | Processed message from 25076348: да -2026-05-04T15:32:47.508547+0300 | INFO | === HANDLE: user 25076348, text='да', current state=ask_consent === -2026-05-04T15:32:47.508547+0300 | INFO | Response to user 25076348: ✅ Спасибо за согласие! Продолжим оформление заявки. -Пожалуйста, укажите вашу фамилию и имя (два слов -2026-05-04T15:32:55.451299+0300 | DEBUG | Message from 25076348 in peer 2000000002: ааа ппп -2026-05-04T15:32:55.451299+0300 | INFO | Processed message from 25076348: ааа ппп -2026-05-04T15:32:55.451299+0300 | INFO | === HANDLE: user 25076348, text='ааа ппп', current state=collect_fi === -2026-05-04T15:32:55.453302+0300 | INFO | Response to user 25076348: Укажите ваш возраст (целое число лет): -2026-05-04T15:32:59.095014+0300 | DEBUG | Message from 25076348 in peer 2000000002: 12 -2026-05-04T15:32:59.095014+0300 | INFO | Processed message from 25076348: 12 -2026-05-04T15:32:59.095014+0300 | INFO | === HANDLE: user 25076348, text='12', current state=collect_age === -2026-05-04T15:32:59.095014+0300 | DEBUG | validate_age input: ''12'' -2026-05-04T15:32:59.096013+0300 | DEBUG | cleaned: '12' -2026-05-04T15:32:59.096013+0300 | DEBUG | age valid: 12 -2026-05-04T15:32:59.098012+0300 | INFO | Response to user 25076348: Пожалуйста, введите число (ваш возраст). -Укажите ваш возраст (целое число лет): -2026-05-04T15:33:02.913004+0300 | DEBUG | Message from 25076348 in peer 2000000002: 23 -2026-05-04T15:33:02.914007+0300 | INFO | Processed message from 25076348: 23 -2026-05-04T15:33:02.914007+0300 | INFO | === HANDLE: user 25076348, text='23', current state=collect_age === -2026-05-04T15:33:02.914007+0300 | DEBUG | validate_age input: ''23'' -2026-05-04T15:33:02.914007+0300 | DEBUG | cleaned: '23' -2026-05-04T15:33:02.914007+0300 | DEBUG | age valid: 23 -2026-05-04T15:33:02.915005+0300 | INFO | Response to user 25076348: Пожалуйста, введите число (ваш возраст). -Укажите ваш возраст (целое число лет): -2026-05-04T18:09:52.845335+0300 | INFO | Initializing bot... -2026-05-04T18:09:53.046373+0300 | INFO | Bot started -2026-05-04T18:09:53.047373+0300 | INFO | Backup scheduler started -2026-05-04T18:10:10.241270+0300 | DEBUG | Message from 25076348 in peer 2000000002: привет -2026-05-04T18:10:10.242269+0300 | INFO | Processed message from 25076348: привет -2026-05-04T18:10:10.242269+0300 | INFO | === HANDLE: user 25076348, text='привет', current state=None === -2026-05-04T18:10:10.245270+0300 | INFO | Response to user 25076348: Пожалуйста, подтвердите согласие на обработку персональных данных (Да / Нет): -2026-05-04T18:10:13.272789+0300 | DEBUG | Message from 25076348 in peer 2000000002: да -2026-05-04T18:10:13.273787+0300 | INFO | Processed message from 25076348: да -2026-05-04T18:10:13.273787+0300 | INFO | === HANDLE: user 25076348, text='да', current state=ask_consent === -2026-05-04T18:10:13.273787+0300 | INFO | Response to user 25076348: ✅ Спасибо за согласие! Продолжим оформление заявки. -Пожалуйста, укажите вашу фамилию и имя (два слов -2026-05-04T18:10:18.694847+0300 | DEBUG | Message from 25076348 in peer 2000000002: аа рп -2026-05-04T18:10:18.694847+0300 | INFO | Processed message from 25076348: аа рп -2026-05-04T18:10:18.694847+0300 | INFO | === HANDLE: user 25076348, text='аа рп', current state=collect_fi === -2026-05-04T18:10:18.696350+0300 | INFO | Response to user 25076348: Укажите ваш возраст (целое число лет): -2026-05-04T18:10:21.671256+0300 | DEBUG | Message from 25076348 in peer 2000000002: 12 -2026-05-04T18:10:21.671256+0300 | INFO | Processed message from 25076348: 12 -2026-05-04T18:10:21.672255+0300 | INFO | === HANDLE: user 25076348, text='12', current state=collect_age === -2026-05-04T18:10:21.672255+0300 | DEBUG | validate_age input: ''12'' -2026-05-04T18:10:21.672255+0300 | DEBUG | cleaned: '12' -2026-05-04T18:10:21.672255+0300 | DEBUG | age valid: 12 -2026-05-04T18:10:21.672255+0300 | INFO | Response to user 25076348: Пожалуйста, введите число (ваш возраст). -Укажите ваш возраст (целое число лет): -2026-05-04T18:12:55.999161+0300 | INFO | Initializing bot... -2026-05-04T18:12:56.620865+0300 | INFO | Bot started -2026-05-04T18:12:56.620865+0300 | INFO | Backup scheduler started -2026-05-04T18:13:16.401304+0300 | DEBUG | Message from 25076348 in peer 2000000002: 5 -2026-05-04T18:13:16.402310+0300 | INFO | Processed message from 25076348: 5 -2026-05-04T18:13:16.402310+0300 | INFO | === HANDLE: user 25076348, text='5', current state=None === -2026-05-04T18:13:16.402310+0300 | INFO | Response to user 25076348: Пожалуйста, подтвердите согласие на обработку персональных данных (Да / Нет): -2026-05-04T18:13:19.498303+0300 | DEBUG | Message from 25076348 in peer 2000000002: всыв -2026-05-04T18:13:19.498303+0300 | INFO | Processed message from 25076348: всыв -2026-05-04T18:13:19.498303+0300 | INFO | === HANDLE: user 25076348, text='всыв', current state=ask_consent === -2026-05-04T18:13:19.498303+0300 | INFO | Response to user 25076348: Пожалуйста, ответьте 'Да' (согласен) или 'Нет' (не согласен). -2026-05-04T18:13:22.869492+0300 | DEBUG | Message from 25076348 in peer 2000000002: да -2026-05-04T18:13:22.869492+0300 | INFO | Processed message from 25076348: да -2026-05-04T18:13:22.870492+0300 | INFO | === HANDLE: user 25076348, text='да', current state=ask_consent === -2026-05-04T18:13:22.870492+0300 | INFO | Response to user 25076348: ✅ Спасибо за согласие! Продолжим оформление заявки. -Пожалуйста, укажите вашу фамилию и имя (два слов -2026-05-04T18:13:30.113454+0300 | DEBUG | Message from 25076348 in peer 2000000002: пав пав -2026-05-04T18:13:30.113454+0300 | INFO | Processed message from 25076348: пав пав -2026-05-04T18:13:30.113454+0300 | INFO | === HANDLE: user 25076348, text='пав пав', current state=collect_fi === -2026-05-04T18:13:30.114454+0300 | INFO | Response to user 25076348: Укажите ваш возраст (целое число лет): -2026-05-04T18:13:32.914351+0300 | DEBUG | Message from 25076348 in peer 2000000002: 12 -2026-05-04T18:13:32.915351+0300 | INFO | Processed message from 25076348: 12 -2026-05-04T18:13:32.915351+0300 | INFO | === HANDLE: user 25076348, text='12', current state=collect_age === -2026-05-04T18:13:32.915351+0300 | DEBUG | validate_age input: ''12'' -2026-05-04T18:13:32.915351+0300 | DEBUG | cleaned: '12' -2026-05-04T18:13:32.915351+0300 | DEBUG | age valid: 12 -2026-05-04T18:13:32.915351+0300 | INFO | Response to user 25076348: Пожалуйста, введите число (ваш возраст). -Укажите ваш возраст (целое число лет): -2026-05-04T18:13:36.111171+0300 | DEBUG | Message from 25076348 in peer 2000000002: 12 -2026-05-04T18:13:36.111171+0300 | INFO | Processed message from 25076348: 12 -2026-05-04T18:13:36.111171+0300 | INFO | === HANDLE: user 25076348, text='12', current state=collect_age === -2026-05-04T18:13:36.112171+0300 | DEBUG | validate_age input: ''12'' -2026-05-04T18:13:36.112171+0300 | DEBUG | cleaned: '12' -2026-05-04T18:13:36.112171+0300 | DEBUG | age valid: 12 -2026-05-04T18:13:36.112171+0300 | INFO | Response to user 25076348: Пожалуйста, введите число (ваш возраст). -Укажите ваш возраст (целое число лет): -2026-05-04T18:13:43.488167+0300 | DEBUG | Message from 25076348 in peer 2000000002: 12лет -2026-05-04T18:13:43.488167+0300 | INFO | Processed message from 25076348: 12лет -2026-05-04T18:13:43.488167+0300 | INFO | === HANDLE: user 25076348, text='12лет', current state=collect_age === -2026-05-04T18:13:43.489166+0300 | DEBUG | validate_age input: ''12лет'' -2026-05-04T18:13:43.489166+0300 | DEBUG | cleaned: '12' -2026-05-04T18:13:43.489166+0300 | DEBUG | age valid: 12 -2026-05-04T18:13:43.489166+0300 | INFO | Response to user 25076348: Пожалуйста, введите число (ваш возраст). -Укажите ваш возраст (целое число лет): -2026-05-04T18:13:48.007000+0300 | DEBUG | Message from 25076348 in peer 2000000002: 12 лет -2026-05-04T18:13:48.007000+0300 | INFO | Processed message from 25076348: 12 лет -2026-05-04T18:13:48.007000+0300 | INFO | === HANDLE: user 25076348, text='12 лет', current state=collect_age === -2026-05-04T18:13:48.008153+0300 | DEBUG | validate_age input: ''12 лет'' -2026-05-04T18:13:48.008153+0300 | DEBUG | cleaned: '12' -2026-05-04T18:13:48.008153+0300 | DEBUG | age valid: 12 -2026-05-04T18:13:48.008153+0300 | INFO | Response to user 25076348: Пожалуйста, введите число (ваш возраст). -Укажите ваш возраст (целое число лет): -2026-05-04T18:13:51.898194+0300 | DEBUG | Message from 25076348 in peer 2000000002: 1 -2026-05-04T18:13:51.898194+0300 | INFO | Processed message from 25076348: 1 -2026-05-04T18:13:51.899194+0300 | INFO | === HANDLE: user 25076348, text='1', current state=collect_age === -2026-05-04T18:13:51.899194+0300 | DEBUG | validate_age input: ''1'' -2026-05-04T18:13:51.899194+0300 | DEBUG | cleaned: '1' -2026-05-04T18:13:51.899194+0300 | DEBUG | age valid: 1 -2026-05-04T18:13:51.899194+0300 | INFO | Response to user 25076348: Пожалуйста, введите число (ваш возраст). -Укажите ваш возраст (целое число лет): -2026-05-04T18:13:55.621492+0300 | DEBUG | Message from 25076348 in peer 2000000002: 120 -2026-05-04T18:13:55.622492+0300 | INFO | Processed message from 25076348: 120 -2026-05-04T18:13:55.622492+0300 | INFO | === HANDLE: user 25076348, text='120', current state=collect_age === -2026-05-04T18:13:55.622492+0300 | DEBUG | validate_age input: ''120'' -2026-05-04T18:13:55.622492+0300 | DEBUG | cleaned: '120' -2026-05-04T18:13:55.622492+0300 | DEBUG | age valid: 120 -2026-05-04T18:13:55.622492+0300 | INFO | Response to user 25076348: Пожалуйста, введите число (ваш возраст). -Укажите ваш возраст (целое число лет): -2026-05-04T18:14:00.545873+0300 | DEBUG | Message from 25076348 in peer 2000000002: 158 -2026-05-04T18:14:00.545873+0300 | INFO | Processed message from 25076348: 158 -2026-05-04T18:14:00.545873+0300 | INFO | === HANDLE: user 25076348, text='158', current state=collect_age === -2026-05-04T18:14:00.545873+0300 | DEBUG | validate_age input: ''158'' -2026-05-04T18:14:00.545873+0300 | DEBUG | cleaned: '158' -2026-05-04T18:14:00.546870+0300 | INFO | Response to user 25076348: Возраст должен быть от 1 до 120 лет. -Укажите ваш возраст (целое число лет): -2026-05-04T18:14:29.195477+0300 | DEBUG | Message from 25076348 in peer 2000000002: 11 -2026-05-04T18:14:29.195477+0300 | INFO | Processed message from 25076348: 11 -2026-05-04T18:14:29.196478+0300 | INFO | === HANDLE: user 25076348, text='11', current state=collect_age === -2026-05-04T18:14:29.196478+0300 | DEBUG | validate_age input: ''11'' -2026-05-04T18:14:29.196478+0300 | DEBUG | cleaned: '11' -2026-05-04T18:14:29.196478+0300 | DEBUG | age valid: 11 -2026-05-04T18:14:29.196478+0300 | INFO | Response to user 25076348: Пожалуйста, введите число (ваш возраст). -Укажите ваш возраст (целое число лет): -2026-05-04T21:42:30.942354+0300 | INFO | Initializing bot... -2026-05-04T21:42:31.199461+0300 | INFO | Bot started -2026-05-04T21:42:31.200460+0300 | INFO | Backup scheduler started -2026-05-04T21:43:03.630075+0300 | INFO | Initializing bot... -2026-05-04T21:43:04.103937+0300 | INFO | Bot started -2026-05-04T21:43:04.104937+0300 | INFO | Backup scheduler started -2026-05-04T21:43:32.010181+0300 | DEBUG | Message from 25076348 in peer 2000000002: привет -2026-05-04T21:43:32.012181+0300 | INFO | Processed message from 25076348: привет -2026-05-04T21:43:32.012181+0300 | INFO | === HANDLE: user 25076348, text='привет', current state=None === -2026-05-04T21:43:32.015181+0300 | INFO | Response to user 25076348: Пожалуйста, подтвердите согласие на обработку персональных данных (Да / Нет): -2026-05-04T21:43:34.178176+0300 | DEBUG | Message from 25076348 in peer 2000000002: да -2026-05-04T21:43:34.178176+0300 | INFO | Processed message from 25076348: да -2026-05-04T21:43:34.178176+0300 | INFO | === HANDLE: user 25076348, text='да', current state=ask_consent === -2026-05-04T21:43:34.178176+0300 | INFO | Response to user 25076348: ✅ Спасибо за согласие! Продолжим оформление заявки. -Пожалуйста, укажите вашу фамилию и имя (два слов -2026-05-04T21:43:40.704112+0300 | DEBUG | Message from 25076348 in peer 2000000002: ааа ппп -2026-05-04T21:43:40.704112+0300 | INFO | Processed message from 25076348: ааа ппп -2026-05-04T21:43:40.704112+0300 | INFO | === HANDLE: user 25076348, text='ааа ппп', current state=collect_fi === -2026-05-04T21:43:40.706111+0300 | INFO | Response to user 25076348: Укажите ваш возраст (целое число лет): -2026-05-04T21:43:43.405452+0300 | DEBUG | Message from 25076348 in peer 2000000002: 12 -2026-05-04T21:43:43.405452+0300 | INFO | Processed message from 25076348: 12 -2026-05-04T21:43:43.406451+0300 | INFO | === HANDLE: user 25076348, text='12', current state=collect_age === -2026-05-04T21:43:43.406451+0300 | DEBUG | validate_age input: ''12'' -2026-05-04T21:43:43.406451+0300 | DEBUG | cleaned: '12' -2026-05-04T21:43:43.406451+0300 | DEBUG | age valid: 12 -2026-05-04T21:43:43.407452+0300 | INFO | Response to user 25076348: Пожалуйста, введите число (ваш возраст). -Укажите ваш возраст (целое число лет): -2026-05-04T21:43:53.242075+0300 | DEBUG | Message from 25076348 in peer 2000000002: 12 -2026-05-04T21:43:53.243076+0300 | INFO | Processed message from 25076348: 12 -2026-05-04T21:43:53.243076+0300 | INFO | === HANDLE: user 25076348, text='12', current state=collect_age === -2026-05-04T21:43:53.243076+0300 | DEBUG | validate_age input: ''12'' -2026-05-04T21:43:53.243076+0300 | DEBUG | cleaned: '12' -2026-05-04T21:43:53.243076+0300 | DEBUG | age valid: 12 -2026-05-04T21:43:53.243076+0300 | INFO | Response to user 25076348: Пожалуйста, введите число (ваш возраст). -Укажите ваш возраст (целое число лет): -2026-05-04T21:44:00.659922+0300 | DEBUG | Message from 25076348 in peer 2000000002: "12" -2026-05-04T21:44:00.659922+0300 | INFO | Processed message from 25076348: "12" -2026-05-04T21:44:00.659922+0300 | INFO | === HANDLE: user 25076348, text='"12"', current state=collect_age === -2026-05-04T21:44:00.659922+0300 | DEBUG | validate_age input: ''"12"'' -2026-05-04T21:44:00.659922+0300 | DEBUG | cleaned: '12' -2026-05-04T21:44:00.660921+0300 | DEBUG | age valid: 12 -2026-05-04T21:44:00.660921+0300 | INFO | Response to user 25076348: Пожалуйста, введите число (ваш возраст). -Укажите ваш возраст (целое число лет): -2026-05-05T07:00:09.347195+0300 | INFO | Initializing bot... -2026-05-05T07:00:09.569224+0300 | INFO | Bot started -2026-05-05T07:00:09.570223+0300 | INFO | Backup scheduler started -2026-05-05T07:00:20.263695+0300 | INFO | Initializing bot... -2026-05-05T07:00:20.447752+0300 | INFO | Bot started -2026-05-05T07:00:20.447752+0300 | INFO | Backup scheduler started -2026-05-05T07:00:51.798725+0300 | DEBUG | Message from 25076348 in peer 2000000002: привет -2026-05-05T07:00:51.798725+0300 | INFO | Processed message from 25076348: привет -2026-05-05T07:00:51.798725+0300 | INFO | === HANDLE: user 25076348, text='привет', current state=None === -2026-05-05T07:00:51.799725+0300 | INFO | Response to user 25076348: Пожалуйста, подтвердите согласие на обработку персональных данных (Да / Нет): -2026-05-05T07:00:55.300865+0300 | DEBUG | Message from 25076348 in peer 2000000002: да -2026-05-05T07:00:55.300865+0300 | INFO | Processed message from 25076348: да -2026-05-05T07:00:55.301864+0300 | INFO | === HANDLE: user 25076348, text='да', current state=ask_consent === -2026-05-05T07:00:55.301864+0300 | INFO | Response to user 25076348: ✅ Спасибо за согласие! Продолжим оформление заявки. -Пожалуйста, укажите вашу фамилию и имя (два слов -2026-05-05T07:01:00.589119+0300 | DEBUG | Message from 25076348 in peer 2000000002: ааа ппп -2026-05-05T07:01:00.589119+0300 | INFO | Processed message from 25076348: ааа ппп -2026-05-05T07:01:00.590119+0300 | INFO | === HANDLE: user 25076348, text='ааа ппп', current state=collect_fi === -2026-05-05T07:01:00.590119+0300 | INFO | Response to user 25076348: Укажите ваш возраст (целое число лет): -2026-05-05T07:01:03.015859+0300 | DEBUG | Message from 25076348 in peer 2000000002: 12 -2026-05-05T07:01:03.015859+0300 | INFO | Processed message from 25076348: 12 -2026-05-05T07:01:03.015859+0300 | INFO | === HANDLE: user 25076348, text='12', current state=collect_age === -2026-05-05T07:01:03.016362+0300 | DEBUG | validate_age input: ''12'' -2026-05-05T07:01:03.016362+0300 | DEBUG | cleaned: '12' -2026-05-05T07:01:03.016362+0300 | DEBUG | age valid: 12 -2026-05-05T07:01:03.016362+0300 | INFO | Response to user 25076348: Пожалуйста, введите число (ваш возраст). -Укажите ваш возраст (целое число лет): -2026-05-05T07:01:04.461068+0300 | DEBUG | Message from 25076348 in peer 2000000002: 12 -2026-05-05T07:01:04.461068+0300 | INFO | Processed message from 25076348: 12 -2026-05-05T07:01:04.461068+0300 | INFO | === HANDLE: user 25076348, text='12', current state=collect_age === -2026-05-05T07:01:04.461068+0300 | DEBUG | validate_age input: ''12'' -2026-05-05T07:01:04.462069+0300 | DEBUG | cleaned: '12' -2026-05-05T07:01:04.462069+0300 | DEBUG | age valid: 12 -2026-05-05T07:01:04.462069+0300 | INFO | Response to user 25076348: Пожалуйста, введите число (ваш возраст). -Укажите ваш возраст (целое число лет): -2026-05-05T07:01:06.186293+0300 | DEBUG | Message from 25076348 in peer 2000000002: 31 -2026-05-05T07:01:06.186798+0300 | INFO | Processed message from 25076348: 31 -2026-05-05T07:01:06.186798+0300 | INFO | === HANDLE: user 25076348, text='31', current state=collect_age === -2026-05-05T07:01:06.186798+0300 | DEBUG | validate_age input: ''31'' -2026-05-05T07:01:06.186798+0300 | DEBUG | cleaned: '31' -2026-05-05T07:01:06.186798+0300 | DEBUG | age valid: 31 -2026-05-05T07:01:06.187799+0300 | INFO | Response to user 25076348: Пожалуйста, введите число (ваш возраст). -Укажите ваш возраст (целое число лет): -2026-05-05T07:01:08.344400+0300 | DEBUG | Message from 25076348 in peer 2000000002: 41 -2026-05-05T07:01:08.344400+0300 | INFO | Processed message from 25076348: 41 -2026-05-05T07:01:08.344400+0300 | INFO | === HANDLE: user 25076348, text='41', current state=collect_age === -2026-05-05T07:01:08.344400+0300 | DEBUG | validate_age input: ''41'' -2026-05-05T07:01:08.344400+0300 | DEBUG | cleaned: '41' -2026-05-05T07:01:08.344400+0300 | DEBUG | age valid: 41 -2026-05-05T07:01:08.345902+0300 | INFO | Response to user 25076348: Пожалуйста, введите число (ваш возраст). -Укажите ваш возраст (целое число лет): -2026-05-05T08:33:06.946148+0300 | INFO | Initializing bot... -2026-05-05T08:33:07.210217+0300 | INFO | Bot started -2026-05-05T08:33:07.211222+0300 | INFO | Backup scheduler started -2026-05-05T08:33:29.318049+0300 | DEBUG | Message from 25076348 in peer 2000000002: авсыв -2026-05-05T08:33:29.319049+0300 | INFO | Processed message from 25076348: авсыв -2026-05-05T08:33:29.319049+0300 | INFO | === HANDLE: user 25076348, text='авсыв', current state=None === -2026-05-05T08:33:29.321050+0300 | INFO | Response to user 25076348: Пожалуйста, подтвердите согласие на обработку персональных данных (Да / Нет): -2026-05-05T08:33:34.372307+0300 | DEBUG | Message from 25076348 in peer 2000000002: да -2026-05-05T08:33:34.372307+0300 | INFO | Processed message from 25076348: да -2026-05-05T08:33:34.372307+0300 | INFO | === HANDLE: user 25076348, text='да', current state=ask_consent === -2026-05-05T08:33:34.372307+0300 | INFO | Response to user 25076348: ✅ Спасибо за согласие! Продолжим оформление заявки. -Пожалуйста, укажите вашу фамилию и имя (два слов -2026-05-05T08:33:39.200486+0300 | DEBUG | Message from 25076348 in peer 2000000002: аваыв павпва -2026-05-05T08:33:39.200486+0300 | INFO | Processed message from 25076348: аваыв павпва -2026-05-05T08:33:39.200486+0300 | INFO | === HANDLE: user 25076348, text='аваыв павпва', current state=collect_fi === -2026-05-05T08:33:39.201486+0300 | INFO | Response to user 25076348: 👪 Укажите, пожалуйста, контактные данные родителя или опекуна. Вы можете предоставить их сейчас или -2026-05-05T08:34:08.120612+0300 | DEBUG | Message from 25076348 in peer 2000000002: пропустить -2026-05-05T08:34:08.121613+0300 | INFO | Processed message from 25076348: пропустить -2026-05-05T08:34:08.121613+0300 | INFO | === HANDLE: user 25076348, text='пропустить', current state=ask_parent_data === -2026-05-05T08:34:08.121613+0300 | INFO | Parent data skipped for user 25076348 -2026-05-05T08:34:08.121613+0300 | INFO | Response to user 25076348: ✅ Данные родителя пропущены. Продолжаем оформление. +2026-05-06T12:30:04.514287+0300 | DEBUG | Message from 25076348 in peer 2000000002: авпавп орпо +2026-05-06T12:30:04.514287+0300 | INFO | Processed message from 25076348: авпавп орпо +2026-05-06T12:30:04.514287+0300 | INFO | === HANDLE: user 25076348, text='авпавп орпо', current state=collect_fi === +2026-05-06T12:30:04.516287+0300 | INFO | Response to user 25076348: 👪 Укажите, пожалуйста, контактные данные родителя или опекуна. Вы можете предоставить их сейчас или +2026-05-06T12:30:18.772508+0300 | DEBUG | Message from 25076348 in peer 2000000002: ghjgecnbnm +2026-05-06T12:30:18.772508+0300 | INFO | Processed message from 25076348: ghjgecnbnm +2026-05-06T12:30:18.772508+0300 | INFO | === HANDLE: user 25076348, text='ghjgecnbnm', current state=ask_parent_data === +2026-05-06T12:30:18.772508+0300 | INFO | Response to user 25076348: ❌ ФИО родителя должно состоять из двух слов (Фамилия Имя) кириллицей. +👪 Укажите, пожалуйста, контакт +2026-05-06T12:30:28.898283+0300 | DEBUG | Message from 25076348 in peer 2000000002: пропустить +2026-05-06T12:30:28.898283+0300 | INFO | Processed message from 25076348: пропустить +2026-05-06T12:30:28.898283+0300 | INFO | === HANDLE: user 25076348, text='пропустить', current state=ask_parent_data === +2026-05-06T12:30:28.898283+0300 | INFO | Parent data skipped for user 25076348 +2026-05-06T12:30:28.898283+0300 | INFO | Response to user 25076348: ✅ Данные родителя пропущены. Продолжаем оформление. Отлично! Теперь укажите ваш номер телефона в фор -2026-05-05T08:34:34.619625+0300 | DEBUG | Message from 25076348 in peer 2000000002: +7(900)000-00-00 -2026-05-05T08:34:34.619625+0300 | INFO | Processed message from 25076348: +7(900)000-00-00 -2026-05-05T08:34:34.619625+0300 | INFO | === HANDLE: user 25076348, text='+7(900)000-00-00', current state=collect_phone === -2026-05-05T08:34:34.619625+0300 | INFO | Response to user 25076348: Укажите удобное время по МСК для звонка (например: 'завтра после 18', 'в среду утром', 'сегодня в 15 -2026-05-05T08:34:52.867495+0300 | DEBUG | Message from 25076348 in peer 2000000002: сегодня в 15:00 -2026-05-05T08:34:52.867495+0300 | INFO | Processed message from 25076348: сегодня в 15:00 -2026-05-05T08:34:52.867495+0300 | INFO | === HANDLE: user 25076348, text='сегодня в 15:00', current state=collect_time === -2026-05-05T08:34:54.349050+0300 | INFO | Response to user 25076348: Проверьте данные: -ФИ: аваыв павпва -Телефон: +7 (900) 000-00-00 -Время звонка по МСК: 05.05.2026 в 15: -2026-05-05T08:34:58.958675+0300 | DEBUG | Message from 25076348 in peer 2000000002: да -2026-05-05T08:34:58.958675+0300 | INFO | Processed message from 25076348: да -2026-05-05T08:34:58.958675+0300 | INFO | === HANDLE: user 25076348, text='да', current state=collect_time === -2026-05-05T08:34:59.533476+0300 | INFO | Response to user 25076348: Не удалось распознать время. Укажите, например: 'завтра после 18', 'в среду утром' или 'любое время' -2026-05-05T08:35:39.028252+0300 | DEBUG | Message from 25076348 in peer 2000000002: сегодня в 15:00 -2026-05-05T08:35:39.028252+0300 | INFO | Processed message from 25076348: сегодня в 15:00 -2026-05-05T08:35:39.028252+0300 | INFO | === HANDLE: user 25076348, text='сегодня в 15:00', current state=collect_time === -2026-05-05T08:35:39.030760+0300 | INFO | Response to user 25076348: Проверьте данные: -ФИ: аваыв павпва -Телефон: +7 (900) 000-00-00 -Время звонка по МСК: 05.05.2026 в 15: -2026-05-05T08:35:46.969686+0300 | DEBUG | Message from 25076348 in peer 2000000002: Да -2026-05-05T08:35:46.969686+0300 | INFO | Processed message from 25076348: Да -2026-05-05T08:35:46.970686+0300 | INFO | === HANDLE: user 25076348, text='Да', current state=collect_time === -2026-05-05T08:35:46.974190+0300 | INFO | Response to user 25076348: Не удалось распознать время. Укажите, например: 'завтра после 18', 'в среду утром' или 'любое время' -2026-05-05T09:07:22.565746+0300 | INFO | Initializing bot... -2026-05-05T09:07:22.797990+0300 | INFO | Bot started -2026-05-05T09:07:22.798991+0300 | INFO | Backup scheduler started -2026-05-05T09:07:25.017845+0300 | DEBUG | Message from 25076348 in peer 2000000002: авп -2026-05-05T09:07:25.017845+0300 | INFO | Processed message from 25076348: авп -2026-05-05T09:07:25.018845+0300 | INFO | === HANDLE: user 25076348, text='авп', current state=None === -2026-05-05T09:07:25.018845+0300 | INFO | Response to user 25076348: Пожалуйста, подтвердите согласие на обработку персональных данных (Да / Нет): -2026-05-05T09:07:29.353564+0300 | DEBUG | Message from 25076348 in peer 2000000002: да -2026-05-05T09:07:29.354564+0300 | INFO | Processed message from 25076348: да -2026-05-05T09:07:29.354564+0300 | INFO | === HANDLE: user 25076348, text='да', current state=ask_consent === -2026-05-05T09:07:29.354564+0300 | INFO | Response to user 25076348: ✅ Спасибо за согласие! Продолжим оформление заявки. +2026-05-06T12:31:02.767721+0300 | DEBUG | Message from 25076348 in peer 2000000002: +7(999)9999999 +2026-05-06T12:31:02.767721+0300 | INFO | Processed message from 25076348: +7(999)9999999 +2026-05-06T12:31:02.767721+0300 | INFO | === HANDLE: user 25076348, text='+7(999)9999999', current state=collect_phone === +2026-05-06T12:31:02.767721+0300 | INFO | Response to user 25076348: Укажите удобное время по МСК для звонка (например: 'завтра после 18', 'в среду утром', 'сегодня в 15 +2026-05-06T12:31:21.617275+0300 | DEBUG | Message from 25076348 in peer 2000000002: Сегодня в 15:00 +2026-05-06T12:31:21.617275+0300 | INFO | Processed message from 25076348: Сегодня в 15:00 +2026-05-06T12:31:21.617275+0300 | INFO | === HANDLE: user 25076348, text='Сегодня в 15:00', current state=collect_time === +2026-05-06T12:31:23.043719+0300 | INFO | Response to user 25076348: Проверьте данные: +ФИ: авпавп орпо +Телефон: +7 (999) 999-99-99 +Время звонка по МСК: 06.05.2026 в 15:0 +2026-05-06T12:31:26.359950+0300 | DEBUG | Message from 25076348 in peer 2000000002: [club233127658|@ikpro] ✅ Да +2026-05-06T12:31:26.359950+0300 | INFO | Processed message from 25076348: [club233127658|@ikpro] ✅ Да +2026-05-06T12:31:26.359950+0300 | INFO | === HANDLE: user 25076348, text='[club233127658|@ikpro] ✅ Да', current state=confirm === +2026-05-06T12:31:26.360951+0300 | INFO | Response to user 25076348: Пожалуйста, ответьте 'Да' или 'Нет'. +2026-05-06T12:31:50.179861+0300 | DEBUG | Message from 25076348 in peer 2000000002: да +2026-05-06T12:31:50.179861+0300 | INFO | Processed message from 25076348: да +2026-05-06T12:31:50.179861+0300 | INFO | === HANDLE: user 25076348, text='да', current state=confirm === +2026-05-06T12:31:50.636099+0300 | INFO | Lead saved for user 25076348 +2026-05-06T12:31:50.637100+0300 | INFO | Response to user 25076348: Спасибо! Ваши данные сохранены. Менеджер свяжется с вами в указанное время. Хорошего дня! 🌟 +2026-05-06T13:44:36.269117+0300 | INFO | Initializing bot... +2026-05-06T13:44:36.426137+0300 | INFO | Bot started +2026-05-06T13:44:36.427140+0300 | INFO | Backup scheduler started +2026-05-06T13:45:04.769179+0300 | DEBUG | Message from 25076348 in peer 2000000002: Ghbdtn +2026-05-06T13:45:04.770179+0300 | INFO | Processed message from 25076348: Ghbdtn +2026-05-06T13:45:04.770179+0300 | INFO | === HANDLE: user 25076348, text='Ghbdtn', current state=None === +2026-05-06T13:45:04.770179+0300 | INFO | Response to user 25076348: Пожалуйста, подтвердите согласие на обработку персональных данных (Да / Нет): +2026-05-06T13:45:09.542168+0300 | DEBUG | Message from 25076348 in peer 2000000002: да +2026-05-06T13:45:09.542168+0300 | INFO | Processed message from 25076348: да +2026-05-06T13:45:09.542168+0300 | INFO | === HANDLE: user 25076348, text='да', current state=ask_consent === +2026-05-06T13:45:09.542168+0300 | INFO | Response to user 25076348: ✅ Спасибо за согласие! Продолжим оформление заявки. Пожалуйста, укажите вашу фамилию и имя (два слов -2026-05-05T09:07:36.689785+0300 | DEBUG | Message from 25076348 in peer 2000000002: ваыва авп -2026-05-05T09:07:36.689785+0300 | INFO | Processed message from 25076348: ваыва авп -2026-05-05T09:07:36.689785+0300 | INFO | === HANDLE: user 25076348, text='ваыва авп', current state=collect_fi === -2026-05-05T09:07:36.689785+0300 | INFO | Response to user 25076348: 👪 Укажите, пожалуйста, контактные данные родителя или опекуна. Вы можете предоставить их сейчас или -2026-05-05T09:07:47.065944+0300 | DEBUG | Message from 25076348 in peer 2000000002: пропустить -2026-05-05T09:07:47.065944+0300 | INFO | Processed message from 25076348: пропустить -2026-05-05T09:07:47.065944+0300 | INFO | === HANDLE: user 25076348, text='пропустить', current state=ask_parent_data === -2026-05-05T09:07:47.066947+0300 | INFO | Parent data skipped for user 25076348 -2026-05-05T09:07:47.066947+0300 | INFO | Response to user 25076348: ✅ Данные родителя пропущены. Продолжаем оформление. +2026-05-06T13:45:15.179857+0300 | DEBUG | Message from 25076348 in peer 2000000002: вава павп +2026-05-06T13:45:15.179857+0300 | INFO | Processed message from 25076348: вава павп +2026-05-06T13:45:15.179857+0300 | INFO | === HANDLE: user 25076348, text='вава павп', current state=collect_fi === +2026-05-06T13:45:15.180856+0300 | INFO | Response to user 25076348: 👪 Укажите, пожалуйста, контактные данные родителя или опекуна. Вы можете предоставить их сейчас или +2026-05-06T13:45:25.643077+0300 | DEBUG | Message from 25076348 in peer 2000000002: пропустить +2026-05-06T13:45:25.643077+0300 | INFO | Processed message from 25076348: пропустить +2026-05-06T13:45:25.643077+0300 | INFO | === HANDLE: user 25076348, text='пропустить', current state=ask_parent_data === +2026-05-06T13:45:25.643077+0300 | INFO | Parent data skipped for user 25076348 +2026-05-06T13:45:25.644078+0300 | INFO | Response to user 25076348: ✅ Данные родителя пропущены. Продолжаем оформление. Отлично! Теперь укажите ваш номер телефона в фор -2026-05-05T09:08:13.305154+0300 | DEBUG | Message from 25076348 in peer 2000000002: +7(999)000-00-00 -2026-05-05T09:08:13.306155+0300 | INFO | Processed message from 25076348: +7(999)000-00-00 -2026-05-05T09:08:13.306155+0300 | INFO | === HANDLE: user 25076348, text='+7(999)000-00-00', current state=collect_phone === -2026-05-05T09:08:13.306155+0300 | INFO | Response to user 25076348: Укажите удобное время по МСК для звонка (например: 'завтра после 18', 'в среду утром', 'сегодня в 15 -2026-05-05T09:08:26.129071+0300 | DEBUG | Message from 25076348 in peer 2000000002: сегодня в 15:00 -2026-05-05T09:08:26.130574+0300 | INFO | Processed message from 25076348: сегодня в 15:00 -2026-05-05T09:08:26.130574+0300 | INFO | === HANDLE: user 25076348, text='сегодня в 15:00', current state=collect_time === -2026-05-05T09:08:27.594462+0300 | INFO | Response to user 25076348: Проверьте данные: -ФИ: ваыва авп -Телефон: +7 (999) 000-00-00 -Время звонка по МСК: 05.05.2026 в 15:00 +2026-05-06T13:45:44.375651+0300 | DEBUG | Message from 25076348 in peer 2000000002: 8(909)999 999 99 +2026-05-06T13:45:44.375651+0300 | INFO | Processed message from 25076348: 8(909)999 999 99 +2026-05-06T13:45:44.376650+0300 | INFO | === HANDLE: user 25076348, text='8(909)999 999 99', current state=collect_phone === +2026-05-06T13:45:44.376650+0300 | INFO | Response to user 25076348: Некорректный номер +Отлично! Теперь укажите ваш номер телефона в формате +7 (XXX) XXX-XX-XX: +2026-05-06T13:46:05.489919+0300 | DEBUG | Message from 25076348 in peer 2000000002: +7(900)9999999 +2026-05-06T13:46:05.489919+0300 | INFO | Processed message from 25076348: +7(900)9999999 +2026-05-06T13:46:05.489919+0300 | INFO | === HANDLE: user 25076348, text='+7(900)9999999', current state=collect_phone === +2026-05-06T13:46:05.489919+0300 | INFO | Response to user 25076348: Укажите удобное время по МСК для звонка (например: 'завтра после 18', 'в среду утром', 'сегодня в 15 +2026-05-06T13:46:19.326097+0300 | DEBUG | Message from 25076348 in peer 2000000002: сегодня 18:00 +2026-05-06T13:46:19.326097+0300 | INFO | Processed message from 25076348: сегодня 18:00 +2026-05-06T13:46:19.326097+0300 | INFO | === HANDLE: user 25076348, text='сегодня 18:00', current state=collect_time === +2026-05-06T13:46:19.412130+0300 | INFO | Response to user 25076348: Проверьте данные: +ФИ: вава павп +Телефон: +7 (900) 999-99-99 +Время звонка по МСК: 06.05.2026 в 18:00 -2026-05-05T09:08:31.676242+0300 | DEBUG | Message from 25076348 in peer 2000000002: [club233127658|@ikpro] ✅ Да -2026-05-05T09:08:31.677239+0300 | INFO | Processed message from 25076348: [club233127658|@ikpro] ✅ Да -2026-05-05T09:08:31.677239+0300 | INFO | === HANDLE: user 25076348, text='[club233127658|@ikpro] ✅ Да', current state=confirm === -2026-05-05T09:08:31.677239+0300 | INFO | Response to user 25076348: Пожалуйста, ответьте 'Да' или 'Нет'. -2026-05-05T09:08:38.235869+0300 | DEBUG | Message from 25076348 in peer 2000000002: да -2026-05-05T09:08:38.235869+0300 | INFO | Processed message from 25076348: да -2026-05-05T09:08:38.236871+0300 | INFO | === HANDLE: user 25076348, text='да', current state=confirm === -2026-05-05T09:08:38.653742+0300 | INFO | Lead saved for user 25076348 -2026-05-05T09:08:38.653742+0300 | INFO | Response to user 25076348: Спасибо! Ваши данные сохранены. Менеджер свяжется с вами в указанное время. Хорошего дня! 🌟 +2026-05-06T13:46:22.253402+0300 | DEBUG | Message from 25076348 in peer 2000000002: @ikpro ✅ Да +2026-05-06T13:46:22.253402+0300 | INFO | Processed message from 25076348: @ikpro ✅ Да +2026-05-06T13:46:22.253402+0300 | INFO | === HANDLE: user 25076348, text='@ikpro ✅ Да', current state=confirm === +2026-05-06T13:46:22.254401+0300 | INFO | Response to user 25076348: Пожалуйста, ответьте 'Да' или 'Нет'. +2026-05-06T13:46:39.920206+0300 | DEBUG | Message from 25076348 in peer 2000000002: @ikpro ❌ Нет +2026-05-06T13:46:39.920206+0300 | INFO | Processed message from 25076348: @ikpro ❌ Нет +2026-05-06T13:46:39.921208+0300 | INFO | === HANDLE: user 25076348, text='@ikpro ❌ Нет', current state=confirm === +2026-05-06T13:46:39.921208+0300 | INFO | Response to user 25076348: Пожалуйста, ответьте 'Да' или 'Нет'. +2026-05-06T13:47:25.493706+0300 | DEBUG | Message from 25076348 in peer 2000000002: да +2026-05-06T13:47:25.493706+0300 | INFO | Processed message from 25076348: да +2026-05-06T13:47:25.493706+0300 | INFO | === HANDLE: user 25076348, text='да', current state=confirm === +2026-05-06T13:47:25.792877+0300 | INFO | Lead saved for user 25076348 +2026-05-06T13:47:25.793878+0300 | INFO | Response to user 25076348: Спасибо! Ваши данные сохранены. Менеджер свяжется с вами в указанное время. Хорошего дня! 🌟 diff --git a/services/__pycache__/vk_bot.cpython-311.pyc b/services/__pycache__/vk_bot.cpython-311.pyc index 06b1cb781bd343b8529b2d73da53b3f98e1c006d..ad18492beff6a343f0621482dbbed836553e8204 100644 GIT binary patch delta 2958 zcmb7GZA=^I9e_>reh}SLPH4U#WA6=9b%J&gm=y{P-@_8k`$Q| zO`AHYY@>QU6sdHwsxC_xs%2u8kfupg>IYIa)Mwpf*HtvWOxl-Cj=E}-s;ztOoJ(Q^ z(sn-o{eS)a-=33i_v}HS=+|1U8sO_kRo~9MPrY4afcM{S{8=pn7&vFRY9N3cFoiz` zjOGpjz&-rUU0032+aHv{;_W*5x(w>KKUVl)A&G4={Qde8fr?d+;2+T6R3Dd)#~@Si zsu&p|V(|70s8dys_SBVVfl#R#<(BFW4!S2p@2H)y5G|^8P=lOmv)m8tYV@7@9b1O< z2f8i>ycrD}49!HML3V618nzSci#Sw`8)B zA#_*QQaTcYvnrfkyw)K*i2kZOw`!6!0L&IiJR@V|F?ntpl5RyFJ=&N2KYR-g`<@2? z14AhZE}~fC8AXhE7ck103{zE1{w{d0;12e@_tYDL7?>@Q{Nts_SzM0Zs;neGiGg_8 z6RBLu!nHJZEJwHX)o87<49WFIty%3Q?1u)|E>@vpR{3SBfA@`U)s=MtuAj zZTb#%bh$t_{Bqun8AxUO~k9j$o~+P`Tg4A_({xxb@gm#--`&;oN=6w9M#rMTThUCRz&-gB!mv>`qa9;|5v*ipCg$ctSQMLo zBBBG+IbR`LEkKjO8^Lgtbql#_1tJ`tj1osL%!lzPgqGMwL8qO1(v_H#{k~vW#w1dR z35BN3R>iO&-j}1Fn;XuZQCYJ@ht`_5)NGEVEY76G$yrYDmJ?afS{i_lMY`_F5>8zJ zrcKo5sgJ68dr#8T^B6dc7vLWGxmM)Rzs=UpZwf$N!v{Z1Gh|Ou?cr(9M((+!Rf zUgI0uH{8#0eV)&?slL%<-ze8N&i9Qcny2r&wmhlk?qqW}*WAlD_a^XteR{+5$XvU5 zK4HJU(})Sa_uRSP#ARkR$8qKmZw@8Qp#!>+r%$Bl_9WfD;02EeY?{f<>M(|f`UF|s7C53D6Icq-%LZaUH#eW62u23 z@+Lkw_sm`je4^|=?U56o${`j$B`XEqB=Tk##KHp$fejC=Jv0^`5`yqhuJ)SAhedji zgM3(DAZQ#~LDOdR>dF05L9?$Xv1Z>a6L_j(Kq1@zfz#I{`=Yc-i-j*vb`=Z|GL9ez z6zDtanRYgc3lg6_R(J|C^2z!6Id)V~u43{bU~2^4DiGm4L?psnROCZ+i@H)=L>jW- zDWTAxDZ8y3lGZFZn&#jHBzqNd)Og?sdcEeSB{v1=SqY#03DVRW)W5*8@Fo-~N8hXE b`qMylTl{3@7YK+m98DjK`hOf_74!cWrMcDf delta 1488 zcmZ`({cBrQ7(VCT+~nrtrb(NRo3_c#$F?-s>bfblTkS~OtOnHiQL!x!be;z!0=w$8W(+`{&?u?tl$P06XC^r-rTYvh$RXa=}hl0X}h2TQ|F)|Ae4R ziC`OyDhIFyPAMZx0rxox55qTY9r$s$)|SEjOEKRyEC>?(?LRK!gD0R8xW^kR|@NUo*RLm$5%fe|yEM<|Q1Zz^jT}FAgnO%XbH6ssXBl_i3R4c<``vRMWFY63P?FJx4|N@QX`Dr=%vc~UinB+T5p6@gn zd(7S@b#m+cE0pV&C@G?$o9E<9uQ)%4&;n|vEX^fulL zo=7;^=%}^XrMZzbX=^U2HzJ#jm;~Wt!6u7Yllha($ZQu#-c9fzCf@I3Lq&l#V*@RuI32{Zc8jj5${3YCb zIo!Jz-hCy!yM}_^F}!JDHB%D;{xN*DBRaq5qZgjc0YioswouHox2 zAO8#d+d=N(w{P9t1)pvIVRj#L(T_6M#m-Sb`c6*o$@B{s1k4T>!~o|ZgSQWb+2LZJ zz!Dex9iv`pSq$!vO3Uq57FmueJkk>ybxA8$9$9foEVAMiIrsar1L8`m_d!iu)fC28 zyVKTepZI;BC}ju0l^oo=F6t#}%#!k{u3HWji&J!xQA!z{M>NK{#=&C(|DEXX!<)(R z7N?}vP#xOgMlzL1N?Hy57q*nRNGb#mbUlnG;CR=uo)=A3`Wk0-yFcZDmx|=bRBn*I d!4jBl-2s`@TDoST7&D7I bool: + return user_id == peer_id + def _send_message(self, peer_id: int, text: str, keyboard=None): """Отправка сообщения с возможной клавиатурой""" try: @@ -44,12 +48,15 @@ class VKBot: def _get_keyboard_for_state(self, state): """Генерирует клавиатуру в зависимости от состояния""" keyboard = VkKeyboard(one_time=False) - if state == "ASK_CONSENT": # <-- новый блок + if state == "ASK_CONSENT": keyboard.add_button(phrases.BUTTON_CONSENT_YES, color=VkKeyboardColor.POSITIVE) keyboard.add_button(phrases.BUTTON_CONSENT_NO, color=VkKeyboardColor.NEGATIVE) elif state in ("CONFIRM", "confirm"): keyboard.add_button(phrases.BUTTON_YES, color=VkKeyboardColor.POSITIVE) keyboard.add_button(phrases.BUTTON_NO, color=VkKeyboardColor.NEGATIVE) + elif state == "START" or state is None: + # Начальное состояние — кнопка "Зарегистрироваться" + keyboard.add_button(phrases.BUTTON_REGISTER, color=VkKeyboardColor.POSITIVE, payload='register_btn') else: keyboard.add_button(phrases.BUTTON_RESTART, color=VkKeyboardColor.SECONDARY) return keyboard @@ -97,6 +104,16 @@ class VKBot: user_id = event.message.from_id peer_id = event.message.peer_id text = event.message.text + + if not self._is_direct_message(user_id, peer_id): + logger.debug(f"Ignoring chat message from {user_id} in peer {peer_id}") + continue + + # Очистка текста от VK-ссылок вида [club123456|текст] и [user123|текст] + text = re.sub(r'\[club\d+\|([^]]*)\]', r'\1', text) + text = re.sub(r'\[user\d+\|([^]]*)\]', r'\1', text) + text = re.sub(r'\[id\d+\|([^]]*)\]', r'\1', text) + logger.debug(f"Message from {user_id} in peer {peer_id}: {text}") if not self.middlewares.process(user_id, text): @@ -111,6 +128,31 @@ class VKBot: keyboard = self._get_keyboard_for_state(state) self._send_message(peer_id, response, keyboard) + # Обработка нажатия callback-кнопки "Зарегистрироваться" + elif event.type == VkBotEventType.MESSAGE_NEW_CALLBACK and event.message: + user_id = event.message.from_id + peer_id = event.message.peer_id + callback_text = event.message.get_text() if event.message.get_text() else "" + + if not self._is_direct_message(user_id, peer_id): + logger.debug(f"Ignoring chat callback from {user_id} in peer {peer_id}") + continue + logger.debug(f"Callback from {user_id} in peer {peer_id}: {callback_text}") + + if not self.middlewares.process(user_id, callback_text): + continue + + # Проверяем, что нажата кнопка "Зарегистрироваться" + if event.message.get_payload() and 'register_btn' in str(event.message.get_payload()): + # Начинаем диалог заново + response = self.fsm._reset_dialog(user_id) + # Если сессии нет, значит диалог ещё не начат + if user_id not in self.fsm.sessions: + response = self.fsm._start_dialog(user_id) + state = self.fsm.sessions.get(user_id, {}).get("state", "START") + keyboard = self._get_keyboard_for_state(state) + self._send_message(peer_id, response, keyboard) + except ApiError as e: logger.error(f"VK API error while processing event: {e}") except Exception as e: