
    *bi{                     N   S SK Jr  S SKJr  S SKJrJr  S SKJrJr  S SK	J
r  S SKJr  S SKJr  S SKJr  S S	KJr  S S
KJr  S SKJrJr  SSKJrJrJr  SSKJr  SSKJrJ r J!r!  SSK"J#r#  SSK$J%r%  SSK&J'r'  SSK(J)r)  SSK*J+r+  SSK,J-r-  SSK.J/r/J0r0J1r1J2r2J3r3  \" 5       r40 r5\" S\5      r6SSSS.r7S r8S r9\S 5       r:\S 5       r;S  r<\S! 5       r=S+S" jr>\S# 5       r?\S$ 5       r@\S% 5       rAS& rB\S' 5       rCS( rDS) rE\R                  (       a  \E" 5         \R                  " 5         g*g*),    )AsyncClient)IntervalTrigger)Locksleep)datetime	timedelta)parse)partial)BytesIO)create)MessageHandler)time)compileI   )	schedulerrss_dictLOGGER)Config)new_task
arg_parserget_size_bytes)get_readable_file_size)database)RssShutdownException)RSS_HELP_MESSAGE)ButtonMaker)CustomFilters)send_messageedit_messagesend_rss	send_filedelete_messagez&(\d+(\.\d+)?\s?(GB|MB|KB|GiB|MiB|KiB))zoMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36zJtext/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8zen-US,en;q=0.5)z
User-AgentAcceptzAccept-Languagec                   #    U R                   R                  n[        5       nUR                  SSU 35        UR                  SSU S35        UR                  SSU 35        UR                  SS	U 35        UR                  S
SU 35        UR                  SSU 35        UR                  SSU 35        [        R
                  " SU 5      I S h  vN (       a  UR                  SSU S35        UR                  SSU 35        UR                  SSU 35        UR                  SSU 35        UR                  SSU 35        [        R                  (       a  UR                  SSU 35        OUR                  SSU 35        UR                  SS U 35        UR                  S!5      nS"[        [        5       S#[        R                   3nXC4$  N7f)$N	Subscribezrss sub Subscriptions	rss list z 0z	Get Itemszrss get Editz	rss edit Pausez
rss pause Resumezrss resume Unsubscribezrss unsubscribe  zAll Subscriptionszrss listall z	Pause Allzrss allpause z
Resume Allzrss allresume zUnsubscribe Allzrss allunsub zDelete Userzrss deluser zShutdown Rsszrss shutdown z	Start Rssz
rss start Close
rss close r   zRss Menu | Users: z | Running: )	from_useridr   data_buttonr   sudor   running
build_menulenr   )eventuser_idbuttonsbuttonmsgs        /app/bot/modules/rss.pyrss_menur=   )   s    oo  GmGxy%9:9WIR)@Axy%9:)G9 56:gY!78Ky"9:)9''CDE***/<y1KLK=	)BCLN7)*DE-wi/HIM\'+CD-y0IJz'-CD:gY!78"Fs8}o\):K:K9L
MC; +s   CGGD Gc                 z   #    [        U 5      I S h  vN u  p[        U R                  X5      I S h  vN   g  N% N7fN)r=   r    message)queryr;   r:   s      r<   update_rss_menurB   C   s/      'KC
u}}c
222 (2s   ;7;9;;c                 f   #    [        U5      I S h  vN u  p#[        XU5      I S h  vN   g  N N7fr?   )r=   r   )_r@   r;   r:   s       r<   get_rss_menurE   H   s,      ))KC
wV
,,, *,s   1-1/11c                   #    UR                   R                  nS[        U'   UR                   R                  =n(       a  SU 3nOUR                   R                  nSnUR
                  R                  S5      n[        USS9 GH2  u  pU	R                  5       n
[        U
5      S:  a  [        UU	 S35      I S h  vN   M>  U
S	   R                  5       n[        R                  " US5      =n(       a  X;   a  [        US
U S35      I S h  vN   M  U
S   R                  5       nUR                  S5      (       a  [        USU S35      I S h  vN   M  / n/ n[        U
5      S:  a  S S S S S.n[        U
SS  U5        US   nUS   nUS   nUS   nUb  UR                  5       S:H  nUb<  UR                  S5      nU H%  nUR                  S5      nUR!                  U5        M'     Ub<  UR                  S5      nU H%  nUR                  S5      nUR!                  U5        M'     OS nS nS nSn [#        [$        SSSS9 IS h  vN nUR                  U5      I S h  vN nS S S 5      IS h  vN   WR
                  n['        U5      nSnSnS	nUR(                  R                  SS5      nUR*                  (       a  UR*                  S	   S   nUR*                  S	   R                  S5      (       a  [-        UR*                  S	   S   5      nOmUR*                  S	   R                  S5      (       aJ  UR*                  S	   S   n [.        R1                  U 5      n!U! V"s/ s H  n"U"S	   PM
     n#n"[3        U#S	   5      n UR*                  S	   S   S   S   nUS!-  nUS"U S#U 3-  nUR*                  (       aT  US$U S%3-  nUS&UR7                  S'S5      R7                  S(S5       S)3-  nUS*U S)3-  nU(       a  US+[9        U5       3-  nOUS,-  nUS-U S)3-  nUS.U S/U S0U 3-  n[:         IS h  vN   [        R                  " US5      (       a  UUUUUSUUUS1.	[        U   U'   OUUUUUUSUUUS1.	0[        U'   S S S 5      IS h  vN   [<        R>                  " S2U S3U S4U S5U S6U S7U S8U 35        GM5     U(       a  [F        RH                  " U5      I S h  vN   [        X5      I S h  vN   [J        RL                  " SU5      I S h  vN n&[N        RP                  S:X  a  [N        RR                  " 5         O;U&(       a4  [N        RT                  (       d  [W        5         [N        RX                  " 5         [[        U5      I S h  vN   g  GN GN GNC GNP GN: GN-! , IS h  vN  (       d  f       GNC= fs  sn"f ! [4         a    UR*                  S	   S    n GNIf = f GN GN]! , IS h  vN  (       d  f       GNs= f! [4        [@        4 a6  n$S9U S:3n%[        UU%S;-   [C        U$5      -   5      I S h  vN     S n$A$GM  S n$A$f[D         a*  n$[        U[C        U$5      5      I S h  vN     S n$A$GM  S n$A$ff = f GN GN GNu GN 7f)<NF@r-   
   )startr   zG. Wrong Input format. Read help message before adding new subscription!r   zThis title z* already subscribed! Choose another title!)-inf-exf-czWrong input in line z! Add Title! Read the example!rM   rK   rL   -stvrM   rK   rL   rO   true| or T<   headersfollow_redirectstimeoutverifytitleUnknownsizesummarylinkshreflinkz<b>Subscribed!</b>z
<b>Title: </b><code>z</code>
<b>Feed Url: </b>z
<b>latest record for </b>:z
Name: <code>><</code>z
<b>Link: </b><code>z
Size: zG
<b>Note:</b> Feed is currently empty, will be monitored for new items.z
<b>Command: </b><code>z
<b>Filters:-</b>
inf: <code>z</code>
exf: <code>z</code>
<b>sensitive: </b>)	r_   	last_feed
last_titleinfexfpausedcommand	sensitivetagzRss Feed Added: id: z
 - title: z	 - link: z - c: z - inf: z - exf: z - stv: z
The link: z6 doesn't seem to be a RSS feed or it's region-blocked!z
Error: ).r0   r1   handler_dictusernamementiontextsplit	enumerater6   r   stripr   get
startswithr   lowerappendr   rU   
feed_parsefeedentriesint
size_regexfindallr   
IndexErrorreplacer   rss_dict_lockr   infoAttributeErrorstr	Exceptionr   
rss_updater   r3   r   stateresumer4   add_jobrJ   rB   )'rD   r@   	pre_eventr8   rm   rk   r;   itemsindexitemargsrY   
user_feeds	feed_link	inf_lists	exf_listsarg_basecmdrf   rg   stvfilters_listxyclientreshtmlrss_d	last_linkre   r[   
feed_titler\   matchesmatchsizeseemsgis_sudos'                                          r<   rss_subr   N   s    ""G!L$$---x-(n''
CLLt$E a0zz|t9q=&_`   Q",,w66J6E<O;ug-WX   GMMO	 677&ug-KL   		t9q="D$MHtABx*4.C6"C6"C6"CiikV+"yy~%AA$$Q' & "yy~%AA$$Q' & CCCCF	0"$5 "JJy11  88Dt$EIJD;J}}"]]1-g6
==#''//u}}Q/78D]]1%)))44#mmA.y9G(009G3:;7%U1X7E;)%(3D9 %a 0 9! <V DI ''C+E72LYKXXC}}4ZLBB
(:(:3(C(K(KCQS(T'UU\]].ykAAX&<T&B%CDDCab-cU'::C4SE9McURmnqmrssC$}<<// )%.&0(("'#&%("
0HW%e, $-)2*4#,#,&+'*),#&
 )HW% %}6 KK&wiz%	)TZ[^Z__ghkglltuxty  zB  CF  BG  H] 1l !!'***7(((%**2w77??aY..IOO
)
$$$y@ 2   " < " 9 %a 0 8I9 %}}}< N+ 	E	{*`aDw{(:SV(CDDDD 	0wA////	0 	+(7 %s  B7Z9V	:AZ	V
AZVC Z.W?VW?VVV W?+V,C-W?V6(W?9V;BW?,W-W?0A	W$9W?W!/W?4%ZY:Z,Y=-ZZ A7ZZZZZW?VW?V3	!V$"V3	.W?;WW?WW?!W?$W<	*W-+W<	7W??Y7$Y 3X64Y 9Z Y7Y2%Y(&Y2+Z2Y77Z=Z ZZc                    ^ #    [          IS h  vN   [        U 4S j[        R                  " 5        5       S5      sS S S 5      IS h  vN   $  N> N! , IS h  vN  (       d  f       g = f7f)Nc              3   F   >#    U  H  u  pUS    T:X  d  M  SU4v   M     g7f)rY   TN ).0r8   rx   rY   s      r<   	<genexpr>get_user_id.<locals>.<genexpr>   s,      %5MG=E)  w%5s   !!)FF)r   nextr   r   )rY   s   `r<   get_user_idr      s;     }%-^^%5
 
 }}}}}sC   A+AA+)AA+AA+A+A(AA($A+c                   #    UR                   R                  nS[        U'   UR                  R	                  5       n[
        R                  " SU5      I S h  vN n/ nU GH  nUR                  5       n[        U   R                  US5      =n	(       dQ  U(       a  [        U5      I S h  vN u  pU	(       d.  UR                   R                  n[        X S35      I S h  vN   M  [        U   U   R                  SS5      n
U
(       a  US:X  d  U
(       d!  US:X  a  [        X SU S35      I S h  vN   M  [         IS h  vN   UR                  U5        US	:X  a  [        U   U	 O+US:X  a  S
[        U   U   S'   OUS:X  a  S[        U   U   S'   S S S 5      IS h  vN   US:X  ae  [        R                  S:X  a  [        R                   " 5         O;U(       a4  [        R"                  (       d  [%        5         [        R&                  " 5         U(       aL  [(        R*                  (       a7  XAR                   R                  :w  a  [,        R.                  " U5      I S h  vN   [        U   (       a  GM  [         IS h  vN   [        U	 S S S 5      IS h  vN   [,        R0                  " U5      I S h  vN   [        (       a  GMc  [,        R2                  " S5      I S h  vN   GM     U(       aq  [4        R6                  " SU SU S35        [        USU SU S35      I S h  vN   [        R                  " U5      (       a  [,        R.                  " U5      I S h  vN   [9        U5      I S h  vN   g  GN GN GN GNL GN> GN! , IS h  vN  (       d  f       GN= f GND GN' GN! , IS h  vN  (       d  f       GN)= f GN N N Np N_7f)NFr-   z not found!rh   pauser   z	 already zd!unsubscribeTr   rsszRss link with Title(s): z
 has been zRss links with Title(s): <code>z</code> has been )r0   r1   rl   ro   rp   r   r3   rr   r   rs   r   r   r   rv   r   r   r   r4   r   rJ   r   DATABASE_URLr   r   
rss_deletetrunc_tabler   r   rB   )rD   r@   r   r   r8   titlesr   updatedrY   r   istates              r<   r   r      s    ""G!L\\!F!&&r733GG(,,UE:::%0%77!++.."7g[,ABBB'"5)--h>ew&f(9Jw'5'(DEEE =NN5!%W%e,'!59!%(2("5:!%(2 != H!#  "!2!2	!v**w:K:K:N:N/N%%g...  $}W% %}%%g...8**5111E F .wiz%KL-gY6GwbQ
 	
 	
 <<  %%g...
)
$$$[ 4  8 C F === /$}}}.1	

 /$sI  AOM1AO(M4)4OM7AO.M:/O?M= OANON B=ONO0
O:N!;O>N'ON$O/O0OOOAOO 8OO	O+O,O4O7O:O=O ON		N
N		O!O$O'N?	-N0.N?	:	OOO	OOc           
        #    U R                   R                  n[        5       nU(       Ga1  S[        US-  5       S3n[         IS h  vN   [        S [        R                  " 5        5       5      nSn[        R                  " 5        H  n[        [        UR                  5       5      USU-    5       H  u  nu  pUSU	 S3-  nUSU
S	    S3-  nUS
U
S    S3-  nUSU
S    S3-  nUSU
S    S3-  nUSU
R                  SS5       S3-  nUSU
S    S3-  nUSU
S   R                  SSS5       3-  nUS-  nUS:X  d  M    M     M     S S S 5      IS h  vN   OS[        US-  5       S3n[         IS h  vN   [        [        R                  " U0 5      R                  5       5      n[        [        U   R                  5       5      USU-     H]  u  pUSU	 SU
S	    S3-  nUS
U
S    S3-  nUSU
S    S3-  nUSU
S    S3-  nUSU
R                  SS5       S3-  nUSU
S    S3-  nM_     S S S 5      IS h  vN   UR                  SSU 35        UR                  SSU 35        WS:  a8  [!        SUS5       H'  nUR                  [        US-  5       S U S!U 3S"S#9  M)     UR#                  S$5      nU R$                  R&                  R(                  U:X  a  g [+        U R$                  X\5      I S h  vN   g  GN GN! , IS h  vN  (       d  f       N= f GN N! , IS h  vN  (       d  f       N= f ND7f)%Nz<b>All subscriptions | Page:    z </b>c              3   T   #    U  H  n[        UR                  5       5      v   M      g 7fr?   )r6   keys)r   vs     r<   r   rss_list.<locals>.<genexpr>!  s     E3DaCMM3Ds   &(r   z

<b>Title:</b> <code></code>
z<b>Feed Url:</b> <code>r_   z<b>Command:</b> <code>ri   z<b>Inf:</b> <code>rf   z<b>Exf:</b> <code>rg   z<b>Sensitive:</b> <code>rj   Fz<b>Paused:</b> <code>rh   z<b>User:</b> rk   rG   r-   rI   z<b>Your subscriptions | Page: z</code>
<b>Feed Url: </b><code>Back	rss back r.   r/   r(    footer)positionr   )r0   r1   r   rz   r   sumr   valuesrq   listr   rs   r~   r6   r   r2   ranger5   r@   ro   r   r    )rA   rJ   	all_usersr8   r9   	list_feed	keysCountr   r   rY   datar   r:   s                r<   rss_listr     s{    oo  GmG3C	N3C5I	 =E8??3DEEIE"//+,5(U;-(E=E #;E7)!LLI#:4<.	!RRI#9$y/9J)!TTI#5d5k])!LLI#5d5k])!LLI#;DHH[RW<X;YYb!ccI#8h8H	!RRI=e1D1DS"a1P0Q!RRIQJEz- , !==& 5S^4DEJ	 =HLL"5::<=I#HW$5$;$;$=>uq5yQ7w>^_cdj_k^lluvv	5d9o5FiPP	1$u+iHH	1$u+iHH	.txxU/K.LIV	 4T(^4DINN	  R != )G9 56:gY!781}q)Q'Aq1u:,9WIQqc!:X    ( "F}})+
u}}i
888S !===( !===* 9s   AM K?M C3L	LM L!M 8L9M <B6L$2M =L">B;M 9L>:M M LLLM "M $L;*L-+L;7M c                 .  #    UR                   R                  nS[        U'   UR                  R	                  5       n[        U5      S:  a+  [        UU S35      I S h  vN   [        U5      I S h  vN   g  US   n[        US   5      n[        U   R                  US5      nU(       Gaj  US:  Gac   [        USU SU 35      I S h  vN n[        [        SS	SS
9 IS h  vN n	U	R                  US   5      I S h  vN n
S S S 5      IS h  vN   W
R                  n[        U5      nSn[        U5       H^  n UR                  U   S   S   S   nUSUR                  U   S   R#                  SS5      R#                  SS5       S3-  nUSU S3-  nM`     UR%                  5       n[        U5      S:  aJ  ['        U5       nSU SU S3Ul        [+        UU5      I S h  vN   S S S 5        [-        U5      I S h  vN   O)[/        X5      I S h  vN   O[        US5      I S h  vN    [        U5      I S h  vN   g  GN GN GN| GNf GNM GN@! , IS h  vN  (       d  f       GNV= f! [          a    UR                  U   S   n GN8f = f N! , (       d  f       N= f N N! [          a>  n[0        R2                  " [5        U5      5        [/        WS5      I S h  vN     S nANS nAf[6         aH  n[0        R2                  " [5        U5      5        [/        W[5        U5      5      I S h  vN     S nAGNS nAff = f GN! [6         aB  n[0        R2                  " [5        U5      5        [        USU 35      I S h  vN     S nAGN`S nAff = f GNZ7f)NFr   z{. Wrong Input format. You should add number of the items you want to get. Read help message before adding new subscription!r   rI   zGetting the last <b>z</b> item(s) from TrS   rT   r_   r-   r]   r^   <b>Name: </b><code>rY   ra   rb   r   z<b>Link: </b><code>z	</code>

i  zrssGet z items_no. z.txtz3Parse depth exceeded. Try again with a lower value.%Enter a valid title. Title not found!zEnter a valid value!. )r0   r1   rl   ro   rp   r6   r   rB   rz   r   rs   r   rU   rw   r   ry   r}   r~   encoder   namer"   r#   r    r   errorr   r   )rD   r@   r   r8   r   rY   countr   r;   r   r   r   r   	item_infoitem_numr_   item_info_ecdout_filer   s                      r<   rss_getr   L  sg    ""G!L<<D
4y1}f  P  Q
 	
 	
 i(((+BQDG $$UE2EAI!0(3E7:LUGT  '#dBu  &

4< 88C  xx"4(	 %eH?$}}X6w?B6J #6u}}X7Nw7W7_7_`ceg7h7p7pqtvx7y6z  {D  "E  EI#6tfK!HHI !- !* 0 0 2}%, /8*1%E7$(O'::: 0 )---&s666 w(OPPP )
$$$e	
 	) 9    & ?$}}X6v>? ; 0/ .6 SV$"N    0SV$"3A///0 Q BSV7&<QC$@AAAB %s  ANH>N0I1N7;M 3J% I	J% !I"J% %I=I
>IJ% I+J% :I+A0J% J J!J%J% ;J!<J%  NJ% J#J% NM $M %M )N8N9NNJ% J% 
IJ% I(II(#J% +JJ% 
JJ% J
JJ% #J% %
L=/.K(K K(#M 'N(L=57L8,L/-L82M 6N8L==M 
N1N
>N?N
N
NNc                   #    UR                   R                  nS[        U'   UR                  R	                  S5      nSnU GH  nUR	                  5       nUS   R                  5       n[        U5      S:  a  [        UU S35      I S h  vN   MO  [        U   R                  US5      (       d  [        US5      I S h  vN   M  Sn/ n	/ n
S S S S S.n[        US	S  U5        US
   nUS   nUS   nUS   n[         IS h  vN   Ub"  UR                  5       S:H  nU[        U   U   S'   Ub%  UR                  5       S:X  a  S nU[        U   U   S'   Ub_  UR                  5       S:w  a<  UR	                  S5      nU H%  nUR	                  S5      nU	R                  U5        M'     U	[        U   U   S'   Ub_  UR                  5       S:w  a<  UR	                  S5      nU H%  nUR	                  S5      nU
R                  U5        M'     U
[        U   U   S'   S S S 5      IS h  vN   GM     U(       a  [        R                  " U5      I S h  vN   [!        U5      I S h  vN   g  GN GN GNj NK! , IS h  vN  (       d  f       GME  = f N? N.7f)NFrH   r   r   z7. Wrong Input format. Read help message before editing!r   TrN   rI   rM   rK   rL   rO   rP   rj   noneri   rQ   rR   rf   rg   )r0   r1   rl   ro   rp   rr   r6   r   r   rs   r   r   ru   rv   r   r   rB   )rD   r@   r   r8   r   r   r   r   rY   r   r   r   r   rf   rg   r   r   r   r   s                      r<   rss_editr     sn    ""G!LLLt$EGzz|Qt9q=&OP   '"&&ue44w(OPPP		dDI48X&tnvvv =iikV+8;!%(599;&(C69!%(399;&(#&99S>L)GGFO!((+ * 3<!%(/99;&(#&99S>L)GGFO!((+ * 3<!%(/+ !==+ V !!'***
)
$$$S Q !===. 	+$s   BJ	I"
3J=I%>A J>I(?JDI-JI+ )J	J	
JJJ%J(J+J-J	3I64J	 
JJc                   #    S[         UR                  R                  '   UR                  R	                  5       nU HR  n[        U5      n[         IS h  vN   [        U	 S S S 5      IS h  vN   [        R                  " U5      I S h  vN   MT     [        U5      I S h  vN   g  NQ N<! , IS h  vN  (       d  f       NQ= f N: N%7f)NF)rl   r0   r1   ro   rp   rz   r   r   r   r   rB   )rD   r@   r   usersusers        r<   r   r     s     ).L""%%&LL E4y = !=!!$'''	 
 )
$$$ !==='$sf   ACB&CB* C+B(,C	C
C C!C(C*C	0B31C	=CCc                   ^^#    TR                   R                  mS[        T'   [        5       nUU4S jnU R	                  [        U[        U5      5      SS9n[        T   (       aP  [        S5      I S h  vN   [        5       U-
  S:  a  S[        T'   [        T5      I S h  vN   [        T   (       a  MP  U R                  " U6   g  NQ N&7f)NTc                   >#    UR                   =(       d    UR                  n[        UR                  T:H  =(       aJ    UR                  R                  TR
                  R                  R                  :H  =(       a    UR                  5      $ 7fr?   )r0   sender_chatboolr1   chatr@   ro   )rD   __r7   r   rA   r8   s       r<   event_filter#event_handler.<locals>.event_filter  s^     3%"3"3GGwX5::==EMM4F4F4I4I#IXejj
 	
s   B	B)group      ?rS   F)
r0   r1   rl   r   add_handlerr   r   r   rB   remove_handler)r   rA   pfunc
start_timer   handlerr8   s    `    @r<   event_handlerr     s     oo  G LJ
   vl7K!LTV WG
w
Cj6J#$)L!!%(((	 w


 7#	 	 )s*   A0C
4C5,C
!C"C
6C
C
c                   #    UR                   R                  nUR                  nUR                  R	                  5       n[        US   5      U:w  a=  [        R                  " SU5      I S h  vN (       d  UR                  SSS9I S h  vN   g US   S:X  aR  UR                  5       I S h  vN   S[        U'   [        UR                  5      I S h  vN   [        U5      I S h  vN   g US   S	:X  a5  UR                  5       I S h  vN   S[        U'   [        U5      I S h  vN   g US   S
:X  a  UR                  5       I S h  vN   S[        U'   [        5       nUR                  SSU 35        UR                  SSU 35        UR                  S5      n[!        U["        U5      I S h  vN   [%        [&        US9n[)        XU5      I S h  vN   g US   S:X  a  S[        U'   [+        [,        R.                  " [        US   5      0 5      5      S:X  a  UR                  SSS9I S h  vN   g UR                  5       I S h  vN   [        US   5      n[1        X5      I S h  vN   g US   S:X  a  S[        U'   [+        [,        R.                  " [        US   5      0 5      5      S:X  a  UR                  SSS9I S h  vN   g UR                  5       I S h  vN   [        5       nUR                  SSU 35        UR                  SSU 35        UR                  S5      n[!        USU5      I S h  vN   [%        [2        US9n[)        XU5      I S h  vN   g US   S;   GaM  S[        U'   [+        [,        R.                  " [        US   5      0 5      5      S:X  a  UR                  SSS9I S h  vN   g UR                  5       I S h  vN   [        5       nUR                  SSU 35        US   S:X  a  UR                  SSU 35        O=US   S:X  a  UR                  SSU 35        OUS   S:X  a  UR                  SSU 35        UR                  SSU 35        UR                  S5      n[!        US US    S!3U5      I S h  vN   [%        [4        XS   S"9n[)        XU5      I S h  vN   g US   S#:X  a  S[        U'   [+        [,        R.                  " [        US   5      0 5      5      S:X  a  UR                  SSS9I S h  vN   g UR                  5       I S h  vN   [        5       nUR                  SSU 35        UR                  SSU 35        UR                  S5      nS$n	[!        X9U5      I S h  vN   [%        [6        US9n[)        XU5      I S h  vN   g US   R9                  S%5      (       GaT  S[        U'   [+        [,        R.                  " [        US   5      0 5      5      S:X  a  UR                  SSS9I S h  vN   g UR                  5       I S h  vN   US   R;                  S&5      (       aq  [<         IS h  vN   [,        [        US   5      	 S S S 5      IS h  vN   [>        R@                  " [        US   5      5      I S h  vN   [        U5      I S h  vN   GOLUS   R;                  S5      (       ay  [<         IS h  vN   [,        [        US   5         RC                  5        H  n
SU
S''   M
     S S S 5      IS h  vN   [>        R4                  " [        US   5      5      I S h  vN   OUS   R;                  S5      (       a  [<         IS h  vN   [,        [        US   5         RC                  5        H  n
SU
S''   M
     S S S 5      IS h  vN   [D        RF                  S:X  a  [D        RH                  " 5         [>        R4                  " [        US   5      5      I S h  vN   [        U5      I S h  vN   g US   R9                  S(5      (       Ga{  [+        [,        5      S:X  a  UR                  SSS9I S h  vN   g UR                  5       I S h  vN   US   R;                  S&5      (       af  [<         IS h  vN   [,        RJ                  " 5         S S S 5      IS h  vN   [>        RL                  " S)5      I S h  vN   [        U5      I S h  vN   g US   R;                  S5      (       a  [<         IS h  vN   [,        RB                  " 5        H  nURC                  5        H  nSUS''   M
     M!     S S S 5      IS h  vN   [D        RN                  (       a  [D        RP                  " 5         [>        RR                  " 5       I S h  vN   g US   R;                  S5      (       a  [<         IS h  vN   [,        RB                  " 5        H  nURC                  5        H  nSUS''   M
     M!     S S S 5      IS h  vN   [D        RF                  S:X  a  [D        RH                  " 5         OG[D        RN                  (       d2  [U        5         [D        RV                  " 5         [        U5      I S h  vN   [>        RR                  " 5       I S h  vN   g g US   S*:X  a  [+        [,        5      S:X  a  UR                  SSS9I S h  vN   g UR                  5       I S h  vN   [        5       nUR                  SSU 35        UR                  SSU 35        UR                  S5      nS+n	[!        X9U5      I S h  vN   [%        [@        US9n[)        XU5      I S h  vN   g US   S,:X  a]  [,        (       d  UR                  SSS9I S h  vN   g UR                  5       I S h  vN   [        US   5      n[1        XSS-9I S h  vN   g US   S.:X  a  [D        RN                  (       aS  UR                  5       I S h  vN   [D        RX                  " SS/9  [[        S05      I S h  vN   [        U5      I S h  vN   g UR                  S1SS9I S h  vN   g US   S2:X  ay  [D        RN                  (       dK  UR                  5       I S h  vN   [U        5         [D        RV                  " 5         [        U5      I S h  vN   g UR                  S3SS9I S h  vN   g g  GNu GN[ GN< GN GN	 GN GN GN GNN GN/ G
N G
N G
N G
NK G
N5 G	N G	N G	Nf G	NP GN GNt GN GN GN GN GN& GN GN GN! , IS h  vN  (       d  f       GN= f GN GN GN GNL! , IS h  vN  (       d  f       GNb= f GN@ GN GN! , IS h  vN  (       d  f       GN= f GN GN GNV GN@ GN GN! , IS h  vN  (       d  f       GN= f GN GN GN GN~! , IS h  vN  (       d  f       GN= f GNU GN/ GN! , IS h  vN  (       d  f       GN = f GN GN} GNJ GN4 GN GN GN GN} GN` GN, GN GN GN GN GN GNi7f)4Nr   r-   z/You don't have permission to use these buttons!T)ro   
show_alertrI   closeFbacksubr   r   r.   r/   )r   r   r   zNo subscriptions!   rs   z[Send one title with value separated by space get last X items.
Title Value
Timeout: 60 sec.)r   r   r   r   zPause AllMyFeedszrss uallpause r   zResume AllMyFeedszrss uallresume r   zUnsub AllMyFeedszrss uallunsub z2Send one or more rss titles separated by space to z.
Timeout: 60 sec.)r   r   edita  Send one or more rss titles with new filters or command separated by new line.
Examples:
Title1 -c mirror -up remote:path/subdir -exf none -inf 1080 or 720 -stv true
Title2 -c none -inf none -stv false
Title3 -c mirror -rcf xxx -up xxx -z pswd -stv false
Note: Only what you provide will be edited, the rest will be the same like example 2: exf will stay same as it is.
Timeout: 60 sec. Argument -c for command and arguments
            uallunsubrh   allr   deluserzWSend one or more user_id separated by space to delete their resources.
Timeout: 60 sec.listall)r   shutdownwaitr   zAlready Stopped!rJ   zAlready Running!).r0   r1   r@   r   rp   rz   r   r3   answerrl   r#   reply_to_messagerB   r   r2   r5   r    r   r
   r   r   r6   r   rs   r   r   r   r   rt   endswithr   r   r   r   r   r   r   clearr   r4   r   rss_update_allr   rJ   r   r   )r   rA   r8   r@   r   r9   r:   r   rJ   r;   r   r   rx   s                r<   rss_listenerr    sU    oo  GmmG::D
47|w]-?-?E-J'J'JllBt  
 	
 	
 
aG	lln %WW55666W%%%	aF	lln %We$$$	aE	lln %W-Fiy$9:Gz'%;<##A&7$4f===51F5111	aF	 %Wx||CQL"-.!3,,$7D,III,,.  QLE5(((	aE	 %Wx||CQL"-.!3,,$7D,III,,.  !mG)G9(=>:gY)?@''*Fo  
 Gu5Eu555	a6	6 %Wx||CQL"-.!3,,$7D,III,,.  !mG)G9(=>Aw'!##$6.	8RSaH$##$7?7)9TUaM)##$6.	8RS:gY)?@''*FDT!WIM`a  
 J%AwGEu555	aF	 %Wx||CQL"-.!3,,$7D,III,,.  !mG)G9(=>:gY)?@''*FC wV444H6Eu555	a		F	#	# %Wx||CQL"-.!3,,$7D,IIIlln7G$$$}Sa\* %}%%c$q'l333!%(((!Wg&&$}$Sa\299;D%)DN < %} %%c$q'l333!Wh''$}$Sa\299;D%*DN < %} !#  "%%c$q'l333e$$$	a		E	"	"x=A,,$7D,IIIlln7G$$$}  %}&&u---!%(((!Wg&&$}"*//"3J * 1 1 3)-X !4 #4 %}   !))+++!Wh''$}"*//"3J * 1 1 3).X !4 #4 %} !#  "&&	!%e,,,))+++ ( 
aI	x=A,,$7D,III,,.  !mG)G9(=>:gY)?@''*FlCwV444J%8Eu555	aI	x,,$7D,III,,.  QLE54888	aJ	,,.  E**!%(((,,$64,HHH	aG	  ,,.  IOO!%(((,,$64,HHH 
] (K	
 	6%$ 	>1 J ( J 
 6 J  6 J  55 J$}}}3($}}} 4$}}}
 4$ J$}}}-($}}} ,$}}} -+ J  55 J 8 !(H ! )HsT  A)y+s ,ys#	!y*s&+%ys)y#s,$!ys/y!s2"!ys5A&y*s8+!ys;Ay's>(y t y!t"Ay<t=yt
Ay/t0!ytAy-t.ytB<yt$y(t)Aytyt"Ay7t%8!yt(A+yt+yt.'yt1y
t7y)t4*)yuy&u')yuy0uyu)y9u9:(y"u<#y&0vy!u?"Ay4v5yv Ayv#y&v&''yv)yv/(y3v,4yw
y$w%(ywy9w
ywAyw1(yw4y	9w:yw7A0y>x?yx5yxy*x+Ayx!!y'x$(,yx'y-x*.yx-6yx0&y+x3,y>x6?yx96yx<1y x?yyy#y&y)y,y/y2y5y8y;y>yyyy
yyyyyyyy"y%y(y+y.y1y4y7u=u >u
	yyyyu6$u'%u61	y<y?yvv	v	y y#y&y)y,y/w5v86w	yyyyw.ww.)	y4y7y:x xx	yyyy!y$y'y*y-y0y3y6y9y<y?yyc                  ,  ^#    [         R                  n U (       d+  [        R                  " S5        [        R
                  " SS9  g [        [        5      S:X  a  [        R                  " 5         g SnS =p#[        U [        5      (       a  U nO^SU ;   a)  [        [        S U R                  SS5      5      5      u  p2O/U R                  S	5      R                  5       (       a  [        U 5      n[        [        R                   " 5       5       GH7  u  pEUR!                  5        GH  u  pg US
   (       a  M  Sn  [#        [$        SSSS9 IS h  vN n	U	R'                  US   5      I S h  vN n
S S S 5      IS h  vN   W
R(                  n [+        U5      nUR,                  (       d!  [        R                  " SU SUS    35        M  UR,                  S   nUR'                  S/ 5      n[        U5      S:  a  US   R'                  S5      nO-U(       a  US   R'                  S5      nOUR'                  S5      nUR'                  S5      nSnUS   U:X  d	  US   U:X  a  GM@  Sn  [/        S5      I S h  vN    UR,                  U   S   m UR,                  U   S   S   S   nUS   U:X  d	  US   T:X  a  GOUR,                  U   R'                  S5      (       a  [        UR,                  U   S   5      nOqUR,                  U   R'                  S5      (       aK  UR,                  U   S   n[4        R7                  U5      nU Vs/ s H  nUS   PM
     nn[9        US   5      nOSn SnUS    Hp  nUR'                  SS5      (       a  [;        U4S jU 5       5      (       d5  UR'                  SS5      (       a  MM  [;        U4S  jU 5       5      (       d  Mi  SnUS-  n  O   U(       d  GM  US!    Hp  nUR'                  SS5      (       a  [=        U4S" jU 5       5      (       d5  UR'                  SS5      (       a  MM  [=        U4S# jU 5       5      (       d  Mi  SnUS-  n  O   U(       d  GM  US$   =n(       a  U(       a1  [         R>                  (       a  [         R>                  U:  a  US-  nGMQ  UR                  SS%9nURA                  SU5        S&RC                  U5      nURE                  S'5      (       d  S'U 3nOGS(TRG                  S)S*5      RG                  S+S*5       S,3nUS-U S,3-  nU(       a  US.[I        U5       3-  nUS/US0    S1U S,3-  n[K        UX25      I S h  vN   US-  nGM  [L         IS h  vN   U[        ;  d  [        U   R'                  US5      (       d   S S S 5      IS h  vN   GM  [        U   U   RO                  UUS2.5        S S S 5      IS h  vN   [P        RR                  " U5      I S h  vN   [        RT                  " S3U 35        [        RT                  " S4U 35        GM     GM:     U(       a  [        R                  " 5         g g  GN GN  GN! , IS h  vN  (       d  f       GN	= f!   US-  nUS:  a  e  GMe  = f GN+!   [1        S5      e= f! [2         a    UR,                  U   S   n GN,f = fs  snf ! [2         a"    [        R                  " SU SU S35         GM  f = f GN GN GNW GN)! , IS h  vN  (       d  f       GN?= f GN)! [0         a#  n[        RT                  " U5         S nA  GMO  S nAf[V         a-  n[        RX                  " U S5U SUS    35         S nAGMn  S nAff = f7f)6Nz2RSS_CHAT not added! Shutting down rss scheduler...Fr   r   TrQ   c                 d    U R                  S5      R                  5       (       a  [        U 5      $ U $ )N-)lstripisdigitrz   )r   s    r<   <lambda>rss_monitor.<locals>.<lambda>  s&    AHHSM$9$9$;$;#a&BB    rI   r  rh   rS   rT   r_   r   z#No entries found for > Feed Title: z - Feed Link: r]   r^   rY   rd   re   
   zRss Monitor Stopped!r[   r\   zReached Max index no. z for this feed: z@. Maybe you need to use less RSS_DELAY to not miss some torrentsrf   rj   c              3   d   >#    U  H%  oR                  5       TR                  5       ;  v   M'     g 7fr?   ru   r   r   
item_titles     r<   r   rss_monitor.<locals>.<genexpr>  s%     #WQVAGGIZ5E5E5G$GQV   -0c              3   ,   >#    U  H	  oT;  v   M     g 7fr?   r   r  s     r<   r   r    s     #GAZ$7   rg   c              3   d   >#    U  H%  oR                  5       TR                  5       ;   v   M'     g 7fr?   r  r  s     r<   r   r    s#     #SUGGI1A1A1C$CUr  c              3   ,   >#    U  H	  oT;   v   M     g 7fr?   r   r  s     r<   r   r    s     #CUOUr  ri   )maxsplitr   /r   ra   r-   rb   rc   z

<b>Link: </b><code>z
<b>Size: </b>z
<b>Tag: </b><code>rk   z</code> <code>)rd   re   zFeed Name: zLast item: z - Feed Name: )-r   RSS_CHATr   warningr   r   r6   r   r   
isinstancerz   r   maprp   r  r  r   r   rU   rs   ro   rw   ry   r   r   r}   r{   r|   r   r   anyRSS_SIZE_LIMITinsertjoinrt   r~   r   r!   r   updater   r   r   r   r   ) r   
all_pausedrss_topic_idrss_chat_idr   r   rY   r   triesr   r   r   r   entry0r]   r   re   
feed_counturlr[   r\   r   r   r   r	   flistri   r   feed_msgexr   r  s                                   @r<   rss_monitorr+    s    ??DKL&
8}J!%%L$	$(B

3"%
!\ 
S		!	!	#	#$iHNN,- ;;=KEB>!#.$+-1$&#(	$ $
 $(.

4<(@"@C$ $  #xx #4(}}NN=eWNSWX^S_R`a q)

7B/u:> %aV 4I %aV 4I &

6 2I#ZZ0
"
$	1T,5G:5U
K#Bi%*]]:%>w%G
D"'--
";G"DQ"G"OC  ,3tL7IZ7W! ==488@@#&u}}Z'@'H#ID"]]:6::9EE&+mmJ&?	&JG&0&8&8&AG;B$C7%U1X7E$C#1%(#;D#$D !E!%e HH[%88 ##WQV#W W W $e < < ##G#G G G$)E&!OJ! "- ! !%e HH[%88 ##SU#S S S $e < < ##CU#C C C$)E&!OJ! "- ! "&y/1w1  & 5 5 & 5 5 <&!OJ$%mmQm7

1c*#&88C='22377)*8*~H%89K9KCQS9T9\9\]`bd9e8ffm#n &=cU'$JJ$/:PQU:V9W(XXH.tE{m>$wWH #8[GGG!OJY Z )=8+8D>3E3EeU3S3S  )== TN5)00&/zJ )= ))$///k%12k)56{ ) .J  {$ #A$ $ $ $!
 19! , (K23IJJ
  * D"'--
";F"CCD %D & 4ZL@PQVPW  XX  Y 	j H(==== 0 ( B s.~d6l^TUs  D!^%
\//^1\/5Z	Y"

ZY+%Y%
&Y+*Z5Y(6Z<\/^B\/^\/"Z0Z1Z6[	Z.![3\/5>[3\/4A[[[!\/"[$A\/9\/A#\/<\/D\/$\%\/;\
<\/?*\)\/4\5\/9^<\\/%\&\/\,6\/:(^"Z%Y+(Z+Z1Y42Z>ZZ\/ZZ++\/.[
[[['\=\/\\/\/\/\/\)\\)$	\//
^9]^^$!^^^^c                      [         R                  " [        [        [        R
                  S9SSSS[        R                  " 5       [        SS9-   SS9  g )	N)seconds0RSS   rI      T)triggerr1   r   misfire_grace_timemax_instancesnext_run_timereplace_existing)	r   r   r+  r   r   	RSS_DELAYr   nowr   r   r
  r<   r   r   9  sC    (8(89llny'<<	r
  N)F)Hhttpxr   apscheduler.triggers.intervalr   asyncior   r   r   r   
feedparserr	   rw   	functoolsr
   ior   pyrogram.filtersr   pyrogram.handlersr   r   rer   r   r-   r   r   r   core.config_managerr   helper.ext_utils.bot_utilsr   r   r   helper.ext_utils.status_utilsr   helper.ext_utils.db_handlerr   helper.ext_utils.exceptionsr   helper.ext_utils.help_messagesr   #helper.telegram_helper.button_buildr   helper.telegram_helper.filtersr   $helper.telegram_helper.message_utilsr   r    r!   r"   r#   r   rl   r{   rU   r=   rB   rE   r   r   r   r   r   r   r   r   r  r+  r   r  rJ   r   r
  r<   <module>rK     sY    9  ( *   # ,   * * ( M M B 2 > = = :  >B
 DZ'43
 
- 
-
 
H% 
H%V	
 
1% 
1%h.9b 
7% 
7%t 
2% 
2%j 
% 
%$( 
yI 
yIx\~
 
??IOO r
  