§
    w…Åjü  ã                   óî  — d Z ddlZddlZddlZddlZddlZddlZej                             d¦  «        rC	 ej	         
                    d¬¦  «         ej         
                    d¬¦  «         n# e$ r Y nw xY wde_        dZdZd	Zej                             d
¦  «        Zej                             d¦  «        Zej                             d¦  «        Zg d¢Zd„ Zd„ Zd„ Zd„ Zedk    r e¦   «          dS dS )z½
Runpod 4K Upscaler Watchdog & Auto-Sync
Monitors progress on RTX 4090, auto-downloads completed 4K videos,
and terminates the pod immediately upon completion to guarantee zero extra cost.
é    NÚwinúutf-8©ÚencodingÚ2rpa_5SFMBV8T5MB9XG5SSQ615M43WUUN72F1NOVEJNEU1je8b4Úqhwkftbzp421nez103.196.86.82Ú22178z~/.ssh/id_ed25519z(c:\Projects\Historical\content\videos_4kz)c:\Projects\Historical\upscale_state.json)Úep2Úep3Úep4Úep5Úep6Úep7Úep8c                 óÊ   — ddddddt           dt          dt          › �| g}t          j        |t          j        t          j        d¬	¦  «        }|j                             ¦   «         S )
NÚsshú-oúStrictHostKeyChecking=nozUserKnownHostsFile=/dev/nullú-iz-púroot@T)ÚstdoutÚstderrÚtext)ÚSSH_KEYÚPORTÚHOSTÚ
subprocessÚrunÚPIPEr   Ústrip)Úcmd_strÚssh_cmdÚress      ú)C:\Projects\Historical\watchdog_runpod.pyÚrun_sshr%       s\   € àˆtÐ/°Ð7UØ�g�t�T >­4 > >°7ð€Gõ Œ.˜­¬ÅÄÐW[Ð
\Ñ
\Ô
\€CØŒ:×ÒÑÔÐó    c                 óÜ  — ddddt           dt          dt          › d| › �|g	}t          dt          j                             |¦  «        › d	�d
¬¦  «         t          j        ¦   «         }t          j	        |d
¬¦  «         t          j         
                    |¦  «        dz  }t          dt          j                             |¦  «        › d|d›dt          j        ¦   «         |z
  d›d�d
¬¦  «         d S )NÚscpr   r   z-Pr   r   ú:u   [*] Ä�ang táº£i vá»� mÃ¡y: z...T©Úflush)Úchecki   u   âœ“ Ä�Ã£ táº£i xong: ú (ú.1fz MB in zs))r   r   r   ÚprintÚosÚpathÚbasenameÚtimer   r   Úgetsize)Úremote_pathÚ
local_pathÚscp_cmdÚt0Úsize_mbs        r$   Údownload_filer:   (   sô   € àˆtÐ/°µt¸TÅ7Ø$•Ð$Ð$�{Ð$Ð$ jð€Gõ 
Ð
I­¬×(8Ò(8¸Ñ(DÔ(DÐ
IÐ
IÐ
IÐQUÐVÑVÔVÐVÝ	Œ‰Œ€BÝ„N�7 $Ð'Ñ'Ô'Ð'ÝŒg�oŠo˜jÑ)Ô)¨[Ñ9€GÝ	Ð
l¥"¤'×"2Ò"2°:Ñ">Ô">Ð
lÐ
lÀ'Ð
lÐ
lÐ
lÕVZÔV_ÑVaÔVaÐbdÑVdÐ
lÐ
lÐ
lÐ
lÐtxÐyÑyÔyÐyÐyÐyr&   c                 ó¤  — 	 t           j                             t          ¦  «        rDt	          t          dd¬¦  «        5 }t          j        |¦  «        }d d d ¦  «         n# 1 swxY w Y   ndgd dœ}t          |                     ddg¦  «        ¦  «        }| 	                    | ¦  «         t          t          |¦  «        ¦  «        |d<   t          j        d¦  «        |d<   t	          t          d	d¬¦  «        5 }t          j        ||d
¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S # t          $ r}t!          d|› �¦  «         Y d }~d S d }~ww xY w)NÚrr   r   Úep1)Úcompleted_episodesÚin_progressr>   z%Y-%m-%d %H:%M:%SÚlast_updatedÚwé   )Úindentu   [-] Lá»—i cáº­p nháº­t state: )r0   r1   ÚexistsÚ
STATE_FILEÚopenÚjsonÚloadÚsetÚgetÚupdateÚsortedÚlistr3   ÚstrftimeÚdumpÚ	Exceptionr/   )Úcompleted_listÚfÚstateÚall_compÚes        r$   Úupdate_local_staterV   3   s×  € ð4ÝŒ7�>Š>�*Ñ%Ô%ð 	IÝ•j #°Ð8Ñ8Ô8ð %¸AÝœ	 !™œ�ð%ð %ð %ñ %ô %ð %ð %ð %ð %ð %ð %øøøð %ð %ð %ð %øð -2¨7À4ÐHÐHˆEå�u—y’yÐ!5¸°wÑ?Ô?Ñ@Ô@ˆØ�Š˜Ñ'Ô'Ð'Ý&,­T°(©^¬^Ñ&<Ô&<ˆÐ"Ñ#Ý $¤Ð.AÑ BÔ BˆˆnÑÝ•*˜c¨GÐ4Ñ4Ô4ð 	*¸ÝŒI�e˜Q qÐ)Ñ)Ô)Ð)ð	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*øøøð 	*ð 	*ð 	*ð 	*ð 	*ð 	*øåð 4ð 4ð 4ÝÐ2¨qÐ2Ð2Ñ3Ô3Ð3Ð3Ð3Ð3Ð3Ð3Ð3øøøøð4øøøs_   ‚;D( ½AÁD( ÁA"Á"D( Á%A"Á&BD( Ã6DÄD( ÄDÄD( Ä"DÄ#D( Ä(
EÄ2E
Å
Ec                  ó
	  — t          d¦  «         t          d¦  «         t          dt          › d�¦  «         t          dt          › �¦  «         t          d¦  «         t          j        ¦   «         } t	          ¦   «         }t
          D ]”}t          j                             t          |› d�¦  «        }t          j         	                    |¦  «        rKt          j         
                    |¦  «        dk    r(|                     |¦  «         t          d|› d	�¦  «         Œ•	 	 t          d¦  «        }|�r×|                     d¦  «        �rÁt          j        |¦  «        }|                     d¦  «        }|                     dd¦  «        }|                     dd¦  «        }|                     dd¦  «        }	|                     dd¦  «        }
|                     dg ¦  «        }t          j        ¦   «         | z
  dz  dz  }|rj||z
  t#          d|
¦  «        z  dz  }t          dt          j        d¦  «        › d|                     ¦   «         › d|› d|› d|	› d|
d›d |d!›d"|d›�d
¬#¦  «         nOt          dt          j        d¦  «        › d$t)          |¦  «        › dt)          t
          ¦  «        › d%|d›�d
¬#¦  «         |D ]u}||vrod&|› d�}t          j                             t          |› d�¦  «        }t+          ||¦  «         |                     |¦  «         t-          t/          |¦  «        ¦  «         Œvt)          |¦  «        t)          t
          ¦  «        k    r¶t          d'¦  «         t          d(¦  «         t          d)¦  «         t          d*¦  «         	 t1          j        t          ¦  «         t          d+t          › d,�¦  «         n)# t4          $ r}t          d-|› �¦  «         Y d }~nd }~ww xY wt-          t/          |¦  «        ¦  «         d S t          d.¦  «        }|s/t          d/¦  «         t          d0¦  «        }t          |¦  «         d S n)# t4          $ r}t          d1|› �¦  «         Y d }~nd }~ww xY wt          j        d2¦  «         �Œj)3Nz:==========================================================z-RUNPOD 4K UPSCALE WATCHDOG & AUTO-SYNC ENGINEzPod ID: z (RTX 4090 @ $0.74/hr)u   Ä�Ã­ch lÆ°u trá»¯: z_4k.mp4i   u
   [*] Táº­p u!    Ä‘Ã£ cÃ³ sáºµn táº¡i mÃ¡y local.Tz(cat /workspace/progress.json 2>/dev/nullú{Úcurrent_episodeÚcurrent_framer   Útotal_framesÚpercentÚ	speed_fpsÚ	completedi  g®Gáz®ç?gš™™™™™¹?é<   ú[z%H:%M:%Su   ] Ä�ang xá»­ lÃ½: z
 | Frame: ú/r-   z%) | z.2fz FPS | ETA: r.   u   m | Chi phÃ­: ~$r*   u"   ] Tráº¡ng thÃ¡i Pod: HoÃ n thÃ nh u    táº­p | Chi phÃ­: ~$z/workspace/outputs_4k/z=
============================================================uF   ðŸŽ‰ TOÃ€N Bá»˜ 7 Táº¬P Ä�Ãƒ HOÃ€N Táº¤T VÃ€ Táº¢I Vá»€ MÃ�Y AN TOÃ€N!u6   Ä�ANG Gá»ŒI TERMINATE POD Ä�á»‚ Dá»ªNG TÃ�NH TIá»€N...z<============================================================u   âœ“ Ä�Ãƒ Há»¦Y POD u'    THÃ€NH CÃ”NG! PHÃ� Dá»ªNG Láº¬P Tá»¨C.u   [-] Lá»—i terminate pod: z)ps aux | grep run_batch.py | grep -v grepua   [-] Cáº¢NH BÃ�O: Tiáº¿n trÃ¬nh run_batch.py khÃ´ng cÃ²n cháº¡y trÃªn Pod! Ä�ang kiá»ƒm tra log...ztail -n 15 /workspace/batch.logu"   [-] Lá»—i vÃ²ng láº·p giÃ¡m sÃ¡t: é-   )r/   ÚPOD_IDÚLOCAL_OUTPUT_DIRr3   rI   ÚTARGET_EPISODESr0   r1   ÚjoinrD   r4   Úaddr%   Ú
startswithrG   ÚloadsrJ   ÚmaxrN   ÚupperÚlenr:   rV   rM   ÚrunpodÚterminate_podrP   Úsleep)Ústart_monitor_timeÚ
downloadedÚepÚlocal_fÚraw_jsonÚprogÚcurr_epÚc_frameÚt_framesÚpctÚfpsÚcompleted_on_podÚcost_so_farÚeta_minsr5   r6   rU   Úps_checkÚlast_logs                      r$   Úmainr€   D   sm  € Ý	Ð
FÑGÔGÐGÝ	Ð
9Ñ:Ô:Ð:Ý	Ð
3•VÐ
3Ð
3Ð
3Ñ4Ô4Ð4Ý	Ð
2Õ 0Ð
2Ð
2Ñ3Ô3Ð3Ý	Ð
FÑGÔGÐGåœ™œÐÝ‘”€Jõ ð Fð FˆÝ”'—,’,Õ/°B°°°Ñ@Ô@ˆÝŒ7�>Š>˜'Ñ"Ô"ð 	F¥r¤w§¢°wÑ'?Ô'?ÐBRÒ'RÐ'RØ�NŠN˜2ÑÔÐÝÐD˜rÐDÐDÐDÑEÔEÐEøð6ð3	<åÐIÑJÔJˆHØñ %˜H×/Ò/°Ñ4Ô4ñ %Ý”z (Ñ+Ô+�ØŸ(š(Ð#4Ñ5Ô5�ØŸ(š( ?°AÑ6Ô6�ØŸ8š8 N°AÑ6Ô6�Ø—h’h˜y¨!Ñ,Ô,�Ø—h’h˜{¨AÑ.Ô.�Ø#'§8¢8¨K¸Ñ#<Ô#<Ð å $¤	¡¤Ð.@Ñ @ÀDÑHÈDÑP�Øð }Ø (¨7Ñ 2µc¸#¸s±m´mÑCÀbÑH�HÝð  K�dœm¨JÑ7Ô7ð  Kð  KÈ7Ï=Ê=É?Ì?ð  Kð  KÐfmð  Kð  KÐpxð  Kð  KÐ|ð  Kð  Kð  GJð  Kð  Kð  Kð  \dð  Kð  Kð  Kð  zEð  Kð  Kð  Kð  SWð  Xñ  Xô  Xð  Xð  Xåð  p�dœm¨JÑ7Ô7ð  pð  pÕ[^Ð_oÑ[pÔ[pð  pð  pÕsvõ  xGñ  tHô  tHð  pð  pð  _jð  pð  pð  pð  x|ð  }ñ  }ô  }ð  }ð +ð =ð =�BØ Ð+Ð+Ø&J¸rÐ&JÐ&JÐ&J˜Ý%'¤W§\¢\Õ2BÀrÀNÀNÀNÑ%SÔ%S˜
Ý% k°:Ñ>Ô>Ð>Ø"Ÿš rÑ*Ô*Ð*Ý*­4°
Ñ+;Ô+;Ñ<Ô<Ð<øõ �z‘?”?¥c­/Ñ&:Ô&:Ò:Ð:Ý˜/Ñ*Ô*Ð*ÝÐbÑcÔcÐcÝÐRÑSÔSÐSÝ˜(‘O”O�Oð?ÝÔ,­VÑ4Ô4Ð4ÝÐcµFÐcÐcÐcÑdÔdÐdÐdøÝ$ð ?ð ?ð ?ÝÐ=¸!Ð=Ð=Ñ>Ô>Ð>Ð>Ð>Ð>Ð>Ð>øøøøð?øøøå&¥t¨JÑ'7Ô'7Ñ8Ô8Ð8Ø�Eõ ÐJÑKÔKˆHØð ÝÐyÑzÔzÐzÝ"Ð#DÑEÔE�Ý�h‘”�Ø�ð	øõ ð 	<ð 	<ð 	<ÝÐ:°qÐ:Ð:Ñ;Ô;Ð;Ð;Ð;Ð;Ð;Ð;øøøøð	<øøøõ 	Œ
�2‰Œˆñm6sI   ÄI/Q Î1N> Î=Q Î>
O$ÏOÏQ ÏO$Ï$Q Ð>Q Ñ
Q,ÑQ'Ñ'Q,Ú__main__)Ú__doc__r0   Úsysr3   rG   r   rm   Úplatformrh   r   Úreconfigurer   rP   Úapi_keyrc   r   r   r1   Ú
expanduserr   Úabspathrd   rE   re   r%   r:   rV   r€   Ú__name__© r&   r$   ú<module>r‹      s†  ððð ð 
€	€	€	Ø 
€
€
€
Ø €€€Ø €€€Ø Ð Ð Ð Ø €€€à„<×Ò˜5Ñ!Ô!ð ðØŒ
×Ò¨ÐÑ0Ô0Ð0ØŒ
×Ò¨ÐÑ0Ô0Ð0Ð0øØð ð ð Øˆðøøøð F€„à	€Ø€Ø€Ø
Œ'×
Ò
Ð1Ñ
2Ô
2€Ø”7—?’?Ð#NÑOÔOÐ ØŒW�_Š_ÐIÑJÔJ€
àCÐCÐC€ðð ð ð	zð 	zð 	zð4ð 4ð 4ð"Gð Gð GðR ˆzÒÐØ€D�F„F€F€F€Fð Ðs   ¶6A- Á-A5Á4A5