From a0ade670fee51576835e45f8805cde85ee1d14d3 Mon Sep 17 00:00:00 2001 From: dddennnisss Date: Sun, 23 Aug 2026 03:36:22 +0700 Subject: [PATCH] =?UTF-8?q?=D0=A2=D0=B5=D1=81=D1=82-=D1=80=D0=B5=D0=B6?= =?UTF-8?q?=D0=B8=D0=BC:=20=D1=81=D0=B1=D1=80=D0=BE=D1=81=20=D0=BF=D1=80?= =?UTF-8?q?=D0=BE=D1=82=D1=83=D1=85=D1=88=D0=B5=D0=B3=D0=BE=20pending=5Fph?= =?UTF-8?q?otos/test=5Fsubmode=20=D0=BF=D1=80=D0=B8=20=D0=B2=D1=85=D0=BE?= =?UTF-8?q?=D0=B4=D0=B5=20=D0=B2=20=D0=BC=D0=BE=D0=B4=D1=83=D0=BB=D1=8C=20?= =?UTF-8?q?(=D1=84=D0=BE=D1=82=D0=BE=20=D0=B1=D0=BE=D0=BB=D1=8C=D1=88?= =?UTF-8?q?=D0=B5=20=D0=BD=D0=B5=20=D1=83=D0=BB=D0=B5=D1=82=D0=B0=D0=B5?= =?UTF-8?q?=D1=82=20=D1=81=D1=80=D0=B0=D0=B7=D1=83=20=D0=BF=D0=BE=D1=81?= =?UTF-8?q?=D0=BB=D0=B5=20=D1=82=D0=B0=D0=B9=D0=BC-=D0=B0=D1=83=D1=82?= =?UTF-8?q?=D0=B0)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../__pycache__/handlers.cpython-313.pyc | Bin 28383 -> 28935 bytes photo_bot/handlers.py | 16 ++++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/photo_bot/__pycache__/handlers.cpython-313.pyc b/photo_bot/__pycache__/handlers.cpython-313.pyc index d283e37c12ae1b098dedb4bb7be5b12b5556026f..400f9651e042d97f4a4cea642b52b0accfff9903 100644 GIT binary patch delta 1673 zcmb7EZA@EL7=F+FXz2%~1zPARZTT2dm<$GFDWVAwLkR-X>z!sbDTQ7>l-@R{9cXl6 z@rM$ZZNeREjX{Zt#>FMZG#WpC7#3oPzqU->c0rf;PZN`}5#x-Bp3~YDi2m>-=Xsy| zp7%ZXecrykcYZ*x{e(>Sii`C?)_u+E&n2TDo4(_bHJ#y4+PY;9pbp%y0wM~~knDPd zU?>Jq@Q8>fKA90v8Td{T#)^z$ww70mY$wVk$(+bF<|u?2fT3zodaSN)zwRIB9wT!3 ztbG}M08R*yl5)$hS27;!!w+KJF!U^dft0(qFdYO;4>Byul|~mTQ`U}JEzC3vFo#yy zVcrNbFY=^dtMY4uLErTZ(RUgk=koITVgyb0WSS_q=C2fypcRTb$yIcbSKD$7z+Xwr zvm-&*N#xQ+P7mc6Ijtt8ILAcryYjAr4bWCIXWXj#( zf_`SG6krk_WnD0dil842pD%*pzsPnRXD5-TJpHl@u~rX*dr7)#jA3bRMw$=CLW$}0 z>Ds4|&8nJWk{q6qr-HHRXd)WNuaZcmM>u3xwIjmg7)LRt)30j7Gx3QK4&$@R?YhY} zEe;Vcrn8{3!B|*jg3ps3!)K^RFUbk~VlW}SkcexE!|iq}WA%*-?-9O6cKjCv@H3o& zj01{FF1Fmzy0=Y^)YI2ZhZotc(x%1UTbA-<#ZpD8RH<6*y;EXY#23etQ%h4xc}ZUL z-?TN}ur+2F)?(i-wzM;9o(p?p3# zfL7A%6L&duMfvT?KJ=B+HM)+@rT-k&poPmMNabgv^Ag6EET2h8kvMLq$@CY+Z&4us zMZif4JrwAi;1q>7DV(K{px~e|O5q&>s$pVQ3gKWp5lTpSmAdJGW`_sAO_|x5MGE8- z4R|g6zHklMKO$V!U@3lTHlgZBX;B=E#Ha9=$_25>@HLI3^MY?H8)7#)r=Sz#JWFO} zD?NSUT`RhkHq1JanbxbaaVe1#vZ{C^?G1Fc@D~(l!ezkZ>j1ckh8A^4qTy4s(qq_~ bUXEB$StsiFpg#k|d^WL5O=eE{RQCK0BlS^h delta 1147 zcmaJoVGw=f&p-vyPf?&IK@iy4PLq$Y19zQu_TFc+*ShEONBHm# zY~QU`6XEO3^p&%XJx^>)I%|$w>5aOht-;oa;#NQDPG^)B354VkCmACFz-nB6@c!Yo zM1(G0(FbEfz0N|y8o$OTu$9czOiiLj6ppnJ61vFm#dG`Ix{XK|Apu>yBlZ;aqQT31 z;c}9IKF$d78QJrr=~*Bey_$H8XE!Ftlh4YWCE17l#Fw17u(=0P65Ou|I1=2Kh6Cm# zm1#tiXfD(26yYSDu&a!`O&KoBh78+3GOU|28Y&W<_HQ+$pBqxd?`8a*DGO&Z+x%c7 zVshfnL3_eP8}Vop+{sN3Yjzq`u-%|7#%@#o#l5GP+bE_qpy7_qN&n|n689=BpvSDy zkY2p2YerH7^%sn!{u}>HM}!V=rK&Sd5Y(4>O<=Urt6VP~W>P^%j+Tb-kdH9LA!d@o z3OyfGqya_N@&Nl)P?&m;lL`LG=lF~JOoqr>hWhY;A8J><#8$fE5RyzQxkOj`Q}*(z zOUcz~FbdUH?afL%r}Mc`ZP(7{Rps-;f&r=>+6AK?xg8K49M!?X#e5iJC+f=bW0okD z`nsk5U^Jw3(NW%#_9BEixU?}Sp_A->T^5Y6xjK*e8m6uz++aWIYT=ezUcah^N6aHu z!7S?+U%-@F)}#lRVC8=2V9e0oEw_beJLRv4#B5P1+}<7T3`V;mN<^j=*r^gTdTF3r zR^*tTO1+UjDQ=sB>AeUi5$<52xvfVE(V(n^6p4;w*n%*Oa2p{T!Hy6m+*Ep3eeHh( z@R&Vl&IFasHXkxS!>j>eiG6K84pYq4(yCkMfmiBC%VavdRXyQsurKmROpqmo7Gm)@ q3q?E@{6BOCVV$svNEW21Pa`RiS^%ZfHOqu=b8Tz5EuUiVqpshlnehDp diff --git a/photo_bot/handlers.py b/photo_bot/handlers.py index 8e6f403..57f2ea5 100644 --- a/photo_bot/handlers.py +++ b/photo_bot/handlers.py @@ -167,6 +167,22 @@ async def send_dynamic_photo_main_menu(msg: Message, user_id: str): - иначе/ошибка API — штатное меню входа. Статус проверяется и показывается всегда, включая тестовый режим. """ + # Новый вход в модуль (кнопка 4 из главного меню) = свежий сеанс. + # Тайм-аут сессии чистит только user_states, а module-level pending_photos + # и test_submode_users остаются: висящий тест-кадр из прошлой сессии иначе + # улетит на проверку сразу после нажатия «1». Сбрасываем здесь. + if user_id in pending_photos: + _pd = pending_photos[user_id] + for _k in ('path', 'preview_path'): + _p = _pd.get(_k) + if _p and os.path.exists(_p): + try: + os.remove(_p) + except OSError: + pass + del pending_photos[user_id] + test_submode_users.discard(user_id) + # Статус модерации запрашиваем всегда (и в тестовом режиме тоже) status = await check_moderation_status(user_id) if status.get("status") == "ok" and status.get("moderation_status") == "pending":