
    \j                        S r SSKrSSKrSSKrSSKJrJr  SSKJr  SSKrSSK	r	\" \
5      R                  5       R                  rS/r\" SS9\" SS94\" S	S
9\" SS
94S.rS\4S jr\S:X  a  \R&                  " \" 5       5        gg)u  
Dispatcher degli agenti live: trova le partite nella finestra giusta e lancia
l'agente formazioni per ciascuna (una sola volta per stage).

  S1: partite di Serie A con calcio d'inizio tra 20 e 30 ore da adesso
  S2: partite di Serie A con calcio d'inizio tra 40 e 80 minuti da adesso

Pensato per lo scheduler: esce subito se non c'è nulla da fare.

Uso:
    python scripts/run_agents.py --stage S1
    python scripts/run_agents.py --stage S2
    N)datetime	timedelta)PathI1   hours   (   )minutesP   )S1S2returnc                  x   [         R                  " SS9n U R                  SSS/SS9  [        R                  " U 5        U R                  5       n[        UR                     u  p#[        R                  " 5       n[        R                  " UR                  UR                  UR                  UR                  SS	9nUR!                  5       nUR#                  S
SR%                  S/['        [(        5      -  5       S3[(        UR+                  5       XC-   R+                  5       UR                  /-   5        UR-                  5       nUR/                  5         / nU H  u  pppUcP  UR                  S:X  a  M  [        R0                  " U[        R2                  R5                  5       5      [7        SS9-   nO6[        R0                  " U[        R2                  R5                  5       5      U-   nX/U-
  s=::  a  U::  d  M  O  M  UR9                  XX45        M     U(       d  g[;        SUS SUR                   S['        U5       S35        U Ht  u  pp[;        SU SU SUS S35        [<        R>                  " [@        RB                  [E        [F        S-  5      SU
SUSUSURI                  S5      SUR                  /S S!9  Mv     g)"NzDispatcher agenti live)descriptionz--stager   r   T)choicesrequired	tigertips)hostportuserpassworddatabasea!  
        SELECT m.id, l.code, h.name, a.name, m.match_date, m.match_time
        FROM matches m
        JOIN leagues l ON l.id = m.league_id
        JOIN teams h ON h.id = m.home_team_id
        JOIN teams a ON a.id = m.away_team_id
        WHERE m.result IS NULL
          AND l.code IN (,z%sz)
          AND m.match_date BETWEEN %s AND %s
          AND NOT EXISTS (SELECT 1 FROM agent_signals s
                          WHERE s.match_id = m.id AND s.stage = %s)
       r   r   [z%Y-%m-%d %H:%Mz] z: z partite in finestraz  -> z - z (z%d/%m %H:%M)zagent_formazioni.pyz--leaguez--homez--awayz	--kickoffi  )timeout)%argparseArgumentParseradd_argumentconfigadd_db_args
parse_argsWINDOWSstager   nowpymysqlconnectr   r   r   r   cursorexecutejoinlenMVP_LEAGUESdatefetchallclosecombinemintimer   appendprint
subprocessrunsys
executablestrSCRIPTSstrftime)parserargslohir(   conncurrowstodomidleaguehomeawaymdatemtimekickoffs                   -C:\wamp64\www\Tigertips\scripts\run_agents.pymainrO   "   s[   $$1IJF
	D$<$G
vDTZZ FB
,,.C??						$(MMKID
++-CKK  ((D6C,<#<=> ? 

SXOO$5tzzB	BD <<>DJJLD15-T=zzT!&&uhll.?.?.ABYUWEXXG&&uhll.?.?.ABUJG3$"$$KKt56 26 	Ac.!DJJ<r#d)<P
QR'+#ddV3tfBw{&;1=>G6K,K(L"FHdHd#W%5%56F%G!4::/  #		$ (,     __main__)__doc__r    r8   r:   r   r   pathlibr   r)   r#   __file__resolveparentr=   r/   r&   intrO   __name__exit rP   rN   <module>r[      s      
 (   
x.
 
 
"
)
)f 2	 3
4R )B"7
80c 0f zHHTV rP   