o
    #i                     @   sh  d dl Z d dl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 d dlmZmZmZmZmZ d dlmZ d dlZd dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZ d dl m!Z! d dl"m#Z# d dl$m%Z% d dl&m'Z' ej(ej)d e*e+Z,eedZ-e Z.e./edde	fddZ0e.1dd defddZ2dd Z3e+dkre 4e3  dS dS )    N)Bot
Dispatchertypes)Command)MessageInlineKeyboardMarkupInlineKeyboardButtonCallbackQuery)	create_dbadd_userget_user_languageset_user_language	get_text1)	BOT_TOKEN)register_catalog_handlers)register_info_handlers)register_my_order_handlers)register_delivery_handlers)register_jobs_handlers)register_operator_handlers)register_ref_sistema_handlers)register_popolnit_handlers)create_menu_keyboard)level)tokenstartmessagec                    s  | j }td|j d|j d|j d|j d	 td|j d|j d|j d|j d	 t|j|jp6d|jp:d|j t	|j}|rpt
|}t|}| j||dI dH  td	| d
|j  td	| d
|j  dS d}g }z,t|}| }|d dd | D }|  td|  td|  W n* ty }	 ztd|	  td|	  | dI dH  W Y d}	~	dS d}	~	ww tg d}|D ]}
d|
 }t|
|d}|j|g q| jd|dI dH  td|j  td|j  dS )u^  
    Обработчик команды /start.
    Добавляет пользователя в БД, если его нет.
    Если у пользователя уже выбран язык, отправляет text1 для этого языка с меню-кнопками.
    Иначе отправляет выбор языка.
    uE   Получена команда /start от пользователя z:  z (@) reply_markupNu7   Отправлен text1 с меню для языка u    пользователю zbot_menu.dbzSELECT name FROM languagec                 S   s   g | ]}|d  qS )r    ).0rowr"   r"   6/var/www/www-root/data/www/magazinbotpanel.site/bot.py
<listcomp>A   s    z!start_handler.<locals>.<listcomp>u   Загружены языки: u3   Ошибка при загрузке языков: u:   Выберите язык: (ошибка загрузки))inline_keyboardlang_)textcallback_datau   Выберите язык:u^   Отправлено сообщение с выбором языка пользователю )	from_userloggerinfoid
first_name	last_nameusernameprintr   r   r   r   answersqlite3connectcursorexecutefetchallclose	Exceptionerrorr   r   r'   append)r   user	user_langtext1keyboardbot_menu_db_path	languagesconnr6   elangr*   buttonr"   r"   r%   start_handler    sJ   ,*




rG   c                 C   s   | j dS )Nr(   )data
startswith)cr"   r"   r%   <lambda>X   s    rK   callbackc                    s   | j ddd }| jj}t|| t|}t|}| jj||dI dH  | 	dI dH  t
d| d|  td| d|  dS )u   
    Обработчик выбора языка.
    Сохраняет язык в БД и редактирует сообщение на text1 с меню-кнопками для выбранного языка.
    _   r    Nu   Язык установлен!u	   Язык uF    выбран и установлен для пользователя )rH   splitr+   r.   r   r   r   r   	edit_textr3   r,   r-   r2   )rL   rE   user_idr?   r@   r"   r"   r%   process_languageX   s   
rR   c               
      s   z7t   tt tt tt tt tt tt tt t	t t
d td ttI dH  W dS  tyZ }  zt
d|   td|   W Y d} ~ dS d} ~ ww )u   
    Основная функция для запуска бота.
    При запуске создается БД и выводится сообщение.
    u7   Добро пожаловать! Бот запущен.Nu-   Ошибка при запуске бота: )r
   r   dpr   r   r   r   r   r   r   r,   r-   r2   start_pollingbotr:   r;   )rD   r"   r"   r%   mainq   s&   
rV   __main__)5asynciologgingaiogramr   r   r   aiogram.filtersr   aiogram.typesr   r   r   r	   dbr
   r   r   r   r   configr   r4   handlers.catalogr   handlers.infor   handlers.my_orderr   handlers.deliveryr   handlers.jobsr   handlers.operatorr   handlers.ref_sistemar   handlers.popolnitr   utilsr   basicConfigINFO	getLogger__name__r,   rU   rS   r   rG   callback_queryrR   rV   runr"   r"   r"   r%   <module>   s:   

7