
    Y\.js                        d dl mZ d dlZd dlmZ d dlmZmZ d dlm	Z	m
Z
 d dlmZ d dlmZ d dlmZmZmZmZ d d	lmZ d
Z G d de          ZddZddZdS )    )annotationsN)Any)urljoinurlparse)Requesturlopen)BaseAdapter)sanitize_autoshorts_status)ModuleIdModuleSnapshot
SourceTypeutcnow)redact_error_message)/api/dashboard/summary/api/healthc                  H    e Zd Zej        ZdZddd	ZddZddddZ	ddZ
dS )AutoShortsLiveReadonlyAdapter
AutoShorts   base_url
str | Nonetimeout_secondsfloatreturnNonec                L    |pd                     d          | _        || _        d S )N /)rstripr   r   )selfr   r   s      `/home/agent/projects/Jarvis/apps/api-gateway/jarvis_gateway/adapters/autoshorts_live_readonly.py__init__z&AutoShortsLiveReadonlyAdapter.__init__   s)    !R//44.    r   c                   t                      }t          | j                  st          ddit          j        |d          S 	 |                     d          }|                     dd          }|                     ||          }t          |t          j        |          S # t          $ rC}t          ddit          j        |t          t          |                              cY d }~S d }~ww xY w)	N	reachableFz;AUTOSHORTS_API_BASE_URL must be localhost for live_readonly)source_typelast_attempt_aterrorr   r   required)r&   r'   )r   _safe_local_base_urlr   r
   r   HTTP_API	_get_json_map_summary	Exceptionr   str)r    nowsummaryhealthrawexcs         r!   get_snapshotz*AutoShortsLiveReadonlyAdapter.get_snapshot   sH   hh#DM22 	-{E.BPZPcux  A~        	`nn%=>>G^^ME^BBF##GV44C-cz?Rdghhhh 	` 	` 	`-{E.BPZPcux  AU  VY  Z]  V^  V^  A_  A_  `  `  `  `  `  `  `  `  `	`s   AB! !
C.+8C)#C.)C.Tr)   endpointr0   r*   booldict[str, Any]c                  |t           vrt          d          t          | j        dz   |                    d                    }t          |dddi          }	 t          || j                  5 }t          j	        |
                                                    d                    }t          |t                    r|ni cd d d            S # 1 swxY w Y   d S # t          $ r |r i cY S w xY w)	Nzendpoint not allowlistedr   GETAcceptzapplication/json)methodheaders)timeoutzutf-8)ALLOWED_ENDPOINTS
ValueErrorr   r   lstripr   r   r   jsonloadsreaddecode
isinstancedictr/   )r    r7   r*   urlreqresponsedatas          r!   r-   z'AutoShortsLiveReadonlyAdapter._get_json$   sA   ,,,7888dmc)8??3+?+?@@c%(<N1OPPP	d&:;;; >xz(--//"8"8"A"ABB)$55=tt2> > > > > > > > > > > > > > > > > >  	 	 	 III	s7   C /ACC CC CC C-,C-r2   r3   c           
     J   |                     d          }t          |t                    r|ni }t          |                     d                    }t          |                     d                    }t          |                     d                    }|rd}n|rd}n|rd}nd}d	|                     d
d          |                     dd          ||d|                     dd          s|                     d
d          rdndt	                                                      dS )Ncurrent_content_pipelinein_productionproducedfailed_actionsfailedplanningreadyreviewTready_for_approvalr   needs_metadataunknownscheduled_private_uploadsreview_needed	not_ready)r%   pending_review_countready_preview_countfailed_pipeline_countlast_pipeline_statuspipeline_freshnesspublishing_status_categorylast_success_at)getrG   rH   	_safe_intr   	isoformat)	r    r2   r3   raw_pipelinepipelinerO   rP   rR   last_statuss	            r!   r.   z*AutoShortsLiveReadonlyAdapter._map_summary2   sL   {{#=>>3=lD3Q3Q#Y<<WY!(,,"?"?@@X\\*55667;;'78899 	#"KK 	#$KK 	#!KK"K$+KK0Da$H$H#*;;/?#C#C%+$/"+=D[[Idfg=h=h  +blslwlw  yM  OP  mQ  mQ  +b//  Wb%xx1133	
 	
 		
r#   N)r   )r   r   r   r   r   r   )r   r   )r7   r0   r*   r8   r   r9   )r2   r9   r3   r9   r   r9   )__name__
__module____qualname__r   
AUTOSHORTS	module_idtitler"   r6   r-   r.    r#   r!   r   r      s        #IE/ / / / /
` 
` 
` 
` <@      
 
 
 
 
 
r#   r   r   r0   r   r8   c                H    t          |           }|j        dk    o|j        dv S )Nhttp>   	127.0.0.1	localhost)r   schemehostname)r   parseds     r!   r+   r+   L   s)    hF=F"Tv:T'TTr#   valuer   intc                B   t          | t                    rdS t          | t                    rt          dt	          | d                    S t          | t
                    r?|                                 r+t          dt	          t          |           d                    S dS )Nr   i  )rG   r8   rx   maxminr0   isdigit)rw   s    r!   rd   rd   Q   s    % q% '1c%oo&&&% ,%--// ,1c#e**c**+++1r#   )r   r0   r   r8   )rw   r   r   rx   )
__future__r   rC   typingr   urllib.parser   r   urllib.requestr   r   jarvis_gateway.adapters.baser	   ,jarvis_gateway.adapters.autoshorts_sanitizerr
   jarvis_gateway.contractsr   r   r   r   jarvis_gateway.redactionr   r@   r   r+   rd   ro   r#   r!   <module>r      s#   " " " " " "        * * * * * * * * + + + + + + + + 4 4 4 4 4 4 S S S S S S Q Q Q Q Q Q Q Q Q Q Q Q 9 9 9 9 9 9= 9
 9
 9
 9
 9
K 9
 9
 9
xU U U U
     r#   