
    |1j              
           d dl Z d dlZd dlZd dlmZmZ d dlmZ  ej                  e	      Z
dZdedefdZdedefdZd	ed
edededef
dZ G d d      Zy)    N)async_playwrightPage)Botzhttps://web.max.rupagereturnc                 @   K   | j                  d       d {   S 7 w)Nz
        () => { const a = localStorage.getItem('__oneme_auth');
            if (!a) return false;
            try { return !!JSON.parse(a).token; } catch(e) { return false; } }
    evaluater   s    "/var/www/html/maxservice/worker.pycheck_logged_inr      s&        	 	 	 	   c                 @   K   | j                  d       d {   S 7 w)Nu  
        () => {
            const items = [];
            document.querySelectorAll('.cell.svelte-q2jdqb').forEach((el, idx) => {
                const nameEl = el.querySelector('.name .text');
                const unreadEl = el.querySelector('.badgeIcon .text, [class*="badgeIcon"] [class*="text"]');
                const unreadCount = unreadEl ? parseInt(unreadEl.innerText.trim()) || 0 : 0;
                items.push({ index: idx,
                    name: nameEl ? nameEl.innerText.trim() : `Чат ${idx}`,
                    unreadCount, isMuted: !!el.querySelector('.iconMute') });
            });
            return items;
        }
    r	   r   s    r   	get_chatsr      s&        	 	 	 	r   sub_jsontitlebodyvapid_privatevapid_emailc                    K   	 ddl m}  |t        j                  |       t        j                  ||d      ddd| i       y # t
        $ r"}t        j                  d|        Y d }~y d }~ww xY ww)	Nr   )webpush)r   r   z$/var/www/html/maxservice/private.pemsubzmailto:)subscription_infodatavapid_private_keyvapid_claimszWebPush error: )	pywebpushr   jsonloadsdumps	Exceptionlogerror)r   r   r   r   r   r   es          r   send_webpushr%      sn     )%"&**X"6ZZ% >?"HW[M2		  )		OA3'(()s/   A3A A A3	A0A+&A3+A00A3c                   J    e Zd Z	 	 	 	 ddefdZd Zd ZdedefdZ	d	 Z
d
 Zy)
UserWorkerNbotc                     || _         || _        || _        || _        || _        || _        || _        || _        |	| _        |
| _	        || _
        || _        d| _        i | _        d | _        y NF)user_idtelegram_chat_idsession_jsonr(   poll_intervalmute_filternotify_telegramnotify_webpushpush_subscriptionr   r   on_session_expiredrunningprev_unread_task)selfr+   r,   r-   r(   r.   r/   r0   r1   r2   r   r   r3   s                r   __init__zUserWorker.__init__2   sx    
  0(*&.,!2*&"4!#
    c                 T    t        j                  | j                               | _        y )N)asynciocreate_task_runr6   r7   s    r   startzUserWorker.startG   s    '"5"5diik"BTZr9   c                 `    d| _         | j                  r| j                  j                          y y r*   )r4   r6   cancelr>   s    r   stopzUserWorker.stopH   s!    ::tzz((*:r9   	chat_namecountc           	      ~  K   d| d| d}g }| j                   r,| j                  r |j                  | j                  |             | j                  rH| j
                  r<|j                  t        | j
                  d|| j                  | j                               |rt        j                  |ddi d {    y y 7 w)Nu   🟢 : u    новыхz
MAX Bridgereturn_exceptionsT)r0   r,   append_send_tgr1   r2   r%   r   r   r;   gather)r7   rC   rD   texttaskss        r   notifyzUserWorker.notifyL   s     ykE7+6D$9$9LLt,-4#9#9LLd&<&<lD""D$4$46 7..%@4@@@ @s   B2B=4B;5B=c                    K   	 | j                   j                  | j                  |       d {    y 7 # t        $ r/}t        j                  d| j                   d|        Y d }~y d }~ww xY ww)N)chat_idrK   zTG error user rF   )r(   send_messager,   r!   r"   r#   r+   )r7   rK   r$   s      r   rI   zUserWorker._send_tgW   s]     	<((''0E0ED'QQQ 	<IIt||nBqc:;;	<s6   A1*6 46 A16 	A.%A)$A1)A..A1c                 F  K   d| _         t        j                  d| j                   d| j                   d| j
                   d| j                   d	       t               4 d {   }|j                  j                  d       d {   }|j                  t        j                  | j                               d {   }|j                          d {   }|j                  t         d	
       d {    |j#                  d       d {    t%        |       d {   s|t        j'                  d| j                   d       | j(                  r#| j)                  | j                         d {    |j+                          d {    	 d d d       d {    y d}| j                   r	 t-        |       d {   }t        j                  d| j                   dt/        |       d|        |sWt        j'                  d| j                   d       |j1                  d	
       d {    |j#                  d       d {    n|D ]  }| j2                  r|j5                  d      r!|d   |j5                  dd      }	}| j6                  j5                  |d      }
|	|
kD  rFt        j                  d| j                   d| d|
 d|	 d	       | j9                  ||	       d {    |	| j6                  |<    d}t?        j@                  | j                         d {    | j                   r|j+                          d {    d d d       d {    y 7 7 7 7 7 x7 b7 R7 7 7 7 7 R7 <7 # t:        $ rq}|dz  }t        j=                  d| j                   d| d|        |dk\  r5| j(                  r$| j)                  | j                         d {  7   Y d }~Y d }~d }~ww xY w7 7 7 # 1 d {  7  sw Y   y xY ww)NT[u   ] Старт. TG=z Push=z
 interval=s)headless)storage_statenetworkidle)
wait_untili  u   ] Сессия истеклаr   u3   ] Цикл опроса: найдено чатов=z -> u   ] Селектор '.cell.svelte-q2jdqb' не нашёл ни одного чата на странице. Возможно, изменилась разметка сайта.isMutednameunreadCountu$   ] Новое сообщение в 'z': u+   , отправляю уведомление   u   ] Ошибка #rF      )!r4   r"   infor+   r0   r1   r.   r   chromiumlaunchnew_contextr   r   r-   new_pagegotoMAX_URLwait_for_timeoutr   warningr3   closer   lenreloadr/   getr5   rM   r!   r#   r;   sleep)r7   pwbrowsercontextr   error_countchatschatrY   curprevr$   s               r   r=   zUserWorker._run]   s    1T\\N"3D4H4H3IPTPcPcOddnos  pB  pB  oC  CD  E  	F#% %	" %	"KK...==G#//djjIZIZ>[/\\G ))++D))G)>>>''---(...a~-JKL**$2I2I$,,2W,W,Wmmo%%%	" %	" %	" K,,"+D/1EHHq.abefkblammqrwqxyz a~  6d  %e  f"kk]kCCC"33D999$) 9D#//DHHY4G(,Vdhh}a6P#D#'#3#3#7#7a#@D"Tz #1T\\N:^_c^ddghlgmmqruqv  wb  *c  !d&*kk$&< < <58D,,T29 #$K mmD$6$67771 ,,2 --/!!K%	" %	" %	"=\+>-.,W%%	" 2 D9 != ! 1$KII$,,/?}BqcRS"a'22$:Q:QRVR^R^:_4_4_ ( 8!K%	" %	" %	" %	"s  A P!"M #P!& PM#6P=M&>PM)P4M,5PM/P M2!AP2M53P
M8PP!M;P!!P1N	?M> A/N	/N0N	N	B!N	*N+N	"P$P%P7P
PPP!P
P!#P&P)P,P/P2P5P8P;P!>N	N	N	N			PAO>.O1/O>4
P>PPP
P!PPPP!)i,  TFFNNNN)__name__
__module____qualname__r   r8   r?   rB   strintrM   rI   r=    r9   r   r'   r'   1   sE    047<IM$(	S * C+	Ac 	A# 	A<("r9   r'   )r;   r   loggingplaywright.async_apir   r   telegramr   	getLoggerrs   r"   rc   boolr   listr   rv   r%   r'   rx   r9   r   <module>r      s      7 g!
	 	 		$ 	4 	 ) )S ) )&))8;)$T" T"r9   