
    &rh$                     <   d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZm	Z	m
Z
 d dlmZ d dlmZmZmZmZ  e j$                  de j&                          e j(                  e      Zd	Zd
edej0                  fdZd
edej0                  fdZd
edej0                  fdZy)    N)Update)ContextTypes)
BadRequest
RetryAfterNetworkError)States)get_main_menuget_country_menuget_district_menuget_back_to_main_buttonz4%(asctime)s - %(name)s - %(levelname)s - %(message)s)formatlevelg      ?updatecontextc                 >  K   |j                   j                          d|j                   d<   | j                  j                  dt	                      d {    t
        j                  |j                   d<   t        j                  d       t
        j                  S 7 Fw)Nr   last_callback_time   Выберите странуreply_markupcurrent_stateu@   Бот запущен, переход в главное меню)		user_dataclearmessage
reply_textr	   r   	MAIN_MENUloggerinfo)r   r   s     2c:\Users\User\Desktop\diesel_world_bot\handlers.pystartr      s     ./G*+
..
#
#'"_ $    *0)9)9Go&
KKRSs   ABBABc           	      v  K   | j                   j                          d {    j                  }d|j                  v r_|j                  d   j                  k(  rCt
        j                  d| d       |j                  j                  dt        j                        S t        j                         }|j                  j                  dd      }||z
  t        k  r]t
        j                  d| d       j                  d	       d {    |j                  j                  dt        j                        S j                  |j                  d<   ||j                  d<   t
        j                  d
| d|j                  j                  dd              fd}	 |dk(  r|j                  j                          ||j                  d<    |dt                      d {    t        j                  |j                  d<   t
        j                  d       t        j                  S |j                  d      r|j                  d      d   }||j                  d<   |dv rdnd} ||t!        |             d {    |dv rt        j"                  nt        j$                  |j                  d<   t
        j                  d| d|j                  d           |j                  d   S |j                  d      r|j                  d      d   }||j                  d<    |dt'        |             d {    t        j(                  |j                  d<   t
        j                  d| d       t        j(                  S |j                  d      rv|j                  d      d   }	 |d|	 d t+                      d {    t        j(                  |j                  d<   t
        j                  d!|	        t        j(                  S t
        j-                  d"|        |j                  j                          ||j                  d<    |d#t                      d {    t        j                  |j                  d<   t
        j                  d$       t        j                  S 7 x7 7 7 -7 z7 7 W# t.        $ r}
d%t1        |
      v rDt
        j                  d&       |j                  j                  dt        j                        cY d }
~
S t
        j3                  d't1        |
              |j                  j                          ||j                  d<    |d(t                      d {  7   t        j                  |j                  d<   t
        j                  d)       t        j                  cY d }
~
S d }
~
wt4        $ r}
t
        j-                  d*|
j6                   d+       t9        j:                  |
j6                         d {  7    |d,t                      d {  7   t        j                  |j                  d<   t
        j                  d-       t        j                  cY d }
~
S d }
~
wt<        $ r}
t
        j3                  d.t1        |
               |d/t                      d {  7   t        j                  |j                  d<   t
        j                  d0       t        j                  cY d }
~
S d }
~
wt>        $ r}
t
        j3                  d1t1        |
              |j                  j                          ||j                  d<    |d2t                      d {  7   t        j                  |j                  d<   t
        j                  d3       t        j                  cY d }
~
S d }
~
ww xY ww)4Nlast_query_idu%   Дублирующийся callback: u   , игнорируемr   r   r   u,   Слишком частое нажатие: uB   Пожалуйста, не нажимайте так быстро!)textu   Обработка callback: u%   , текущее состояние: u   не определеноc                 :  K   	 j                   j                  | |       d {    y 7 # t        $ rb}dt        |      v rIt        j                  dt        |       d       j                   j                  | |       d {  7   n|Y d }~y d }~ww xY ww)Nr   Message can't be editeduL   Сообщение не может быть отредактировано: !   , отправляем новое)r   	edit_textr   strr   warningr   )r"   r   equerys      r   send_or_edit_messagez-handle_callback.<locals>.send_or_edit_message5   s     	--))$\)JJJ 	(CF2!mnqrsntmu  vW   X  Ymm..t,.OOO P	sC   B - +- B- 	BABBBBBB	main_menur   u)   Переход в главное менюzcountry::   current_country)u   Кыргызстанu   Казахстанu   Выберите городu2   Выберите федеральный округu   Выбрана страна: u   , состояние: z	district:current_districtu   Выбран округ: u-   , переход к выбору городаzcity:u   Вы выбрали: u   
Спасибо! Нажмите «На Главную» или используйте /start, чтобы вернуться в меню.u   Выбран город: u.   Неожиданные callback-данные: uY   Что-то пошло не так. Возвращаю вас в главное меню.uW   Возврат в главное меню из-за неожиданных данныхzMessage is not modifieduK   Сообщение не изменено, игнорируем ошибкуu,   Ошибка BadRequest в handle_callback: uV   Произошла ошибка. Возвращаю вас в главное меню.u>   Возврат в главное меню из-за BadRequestu<   Превышен лимит Telegram API, ожидание: u    секундub   Слишком много запросов. Пожалуйста, попробуйте снова.u>   Возврат в главное меню из-за RetryAfteru   Сетевая ошибка: uS   Сетевая ошибка. Пожалуйста, попробуйте снова.u@   Возврат в главное меню из-за NetworkErroru,   Общая ошибка в handle_callback:    Произошла ошибка. Возвращаю вас в главное меню. Попробуйте снова или используйте /start.uK   Возврат в главное меню из-за общей ошибки) callback_queryanswerdatar   idr   r   getr   r   timeCALLBACK_COOLDOWNr   r	   
startswithsplitr
   COUNTRYFEDERAL_DISTRICTr   CITYr   r(   r   r'   errorr   retry_afterasynciosleepr   	Exception)r   r   r4   current_timer   r+   countryr"   districtcityr)   r*   s              @r   handle_callbackrG      s    !!E
,,.::D '+++0A0A/0RV[V^V^0^;D6AWXY  $$_f6F6FGG 99;L **../CQG((+<<B4&H^_`ll dleee  $$_f6F6FGG).Go&.:G*+
KK/v5Z[b[l[l[p[p  rA  C^  \_  [`  a  bc ;##%6BG23&/   281A1AGo.KKCD###??:&jjoa(G3:G/04;?m4m0  thD& )   DKN|C|  CI  CZ  CZGo.KK7y@VW^WhWhixWyVz{|$$_55??;'zz#q)H4<G01&-!(+   28Go.KK3H:=jkl;;??7#::c?1%D&'v  .w  x')   28Go.KK3D6:;;;GvNO!2>./"gO
 	
 	
 .4-=-=/*mni  	f*	
   $A.KKef$$((&:J:JKKCCF8LM!2>./"dO
 	
 	
 .4-=-=/*TU 	 UVWVcVcUddqrsmmAMM***"pO
 	
 	
 .4-=-=/*TU  4SVH=>"aO
 	
 	
 .4-=-=/*VW 
 CCF8LM!2>./" kO
 	
 	
 .4-=-=/*ab
 s   ^9RC'^9RB^9AR. R! AR. %^9&AR. 7R$8A+R. #^9$A	R. -R'.A	R. 7^98=R. 5R*6AR. >^9?AR. R,AR. ^9^9!R. $R. 'R. *R. ,R. .
^68AV4^6^9	AV4'U*(AV4.^6/^94^6 AY,XY,X" AY,&^6'^9,^685[:-Z0.A[:4^65^9:^6A^1$]'%A^1+^6,^91^66^9c                 V  K   t         j                  d|  d|j                          |j                  j                          t	        j                         |j                  d<   d}| j
                  r.| j
                  j                  |t                      d {    nD| j                  r8	 | j                  j
                  j                  |t                      d {    t        j                  |j                  d	<   t         j                  d
       t        j                  S 7 7 H# t        $ rt}dt        |      v r[t         j                  dt        |       d       | j                  j
                  j                  |t                      d {  7   n|Y d }~d }~ww xY ww)Nu'   Ошибка при обработке z: r   r1   r   r$   u]   Сообщение не может быть отредактировано в error_handler: r%   r   u<   Возврат в главное меню из error_handler)r   r>   r   r   r7   r   r   r	   r2   r&   r   r'   r(   r   r   r   )r   r   error_messager)   s       r   error_handlerrJ      s    
LL:6("W]]OTU.2iikG*+ 	g  ~~nn''& ( 
 	
 	
 
			''//99*_ :    *0)9)9Go&
KKNO+	
  	(CF2!~  @C  DE  @F  G  Gh   i  j++33>>!!. ?   
 	s\   BF)D%F),2D) D'D) #AF)'D) )	F&2A!F!FF!F)!F&&F))loggingr7   r@   telegramr   telegram.extr   telegram.errorr   r   r   statesr   menusr	   r
   r   r   basicConfigINFO	getLogger__name__r   r8   DEFAULT_TYPEr   rG   rJ        r   <module>rX      s        % ? ?     QY`YeYe f			8	$ 	 	)B)B 	C & C <3L3L C J 1J1J rW   