
    dQj                         d dl Z d dlZd dlZd dlZd dlZd dlmZ dZde Z	 ed      Z
dZdZdZd	Zd
dddddddZd Zd Zd Zd Zd Zd Zedk(  r e        yy)    N)Pathis  z?https://hrrejgh.com/wecima15/public/api/collections/media/show/z%/var/www/html/Extract/rambo_full.json   d      g333333?zapplication/jsongzipzGBearer AuHLIRR82MvrdTTeaQKUxdA7mlNuk0WD6NnX2ffpn0wqeMP5zwkCClOHClRIbCFfzcom.radiotn.tunisiez0EasyPlex (Android 15; SM-F956B; samsung q6q; en)59492412zY29tLnJhZGlvdG4udHVuaXNpZS5hcGsgKENoZW1pbiA6IC9kYXRhL2RhdGEvY29tLnJhZGlvdG4udHVuaXNpZS9mYW5jeS9jb20ucmFkaW90bi50dW5pc2llLmFwayk=)AcceptzAccept-EncodingAuthorizationPackageNamez
User-AgentSizatoDatadatac                     | j                         }| j                  j                  dd      j                         dk(  rt	        j
                  |      }|j                  dd      S )NzContent-Encoding r   utf-8ignore)readheadersgetlowerr   
decompressdecode)responseraws     '/var/www/html/Extract/get_rambo_json.pydecode_responser   ,   sQ    
--/C.399;vEooc"::gx((    c                    t          d|  }d }t        dt        dz         D ]x  }	 t        j                  j                  |t        d      }t        j                  j                  |t              5 }t        |      }d d d        t        j                        c S  t!        d|  d|       # 1 sw Y   2xY w# t        $ r>}|}t        d|  d| dt         d	| d
       t        j                  |       Y d }~d }~ww xY w)Nz?page=   GET)r   method)timeoutzRETRY page=z	 attempt=/z error=Tflushu   فشل جلب الصفحة : )BASE_URLrangeRETRIESurllibrequestRequestHEADERSurlopenTIMEOUTr   jsonloads	ExceptionprinttimesleepRuntimeError)pageurl
last_errorattemptr*   r   bodyerrors           r   
fetch_pager<   5   s%   JfTF
#CJGaK(  	 nn,, - G '' (  1 &x0	1 ::d## 8 
%dV2j\: )1 1  
	 JdV $")1WI .! 	 JJw
	 s0   AB90B-<B9-B6	2B99	D 4C;;D c                 $   t        | t              r| S t        | t              sg S dD ]f  }| j                  |      }t        |t              r|c S t        |t              s9dD ])  }|j                  |      }t        |t              s%|c c S  h g S )N)datamediamoviesresultsitems)
isinstancelistdictr   )r>   keyvalue
nested_keynesteds        r   
find_itemsrJ   [   s    $dD!	 " eT"LeT" 
"
 :.fd+!M
""2 Ir   c                     t        | t              sy | g}dD ]5  }| j                  |      }t        |t              s%|j                  |       7 |D ],  }dD ]%  }|j                  |      }	 |t	        |      c c S ' . y # t
        $ r Y 6w xY w)N)r>   meta
pagination)	last_pagelastPagetotal_pages
totalPages)rC   rE   r   appendintr1   )r>   
candidatesrF   rG   	candidates        r   find_last_pagerV   ~   s    dD!J- %eT"e$	%   	
 	C MM#&E$u:% %	   s   +B	BBc                     t        | t              st        j                  | dd      S dD ]   }| j	                  |      }|dvs| d| c S  t        j                  | dd      S )NFT)ensure_ascii	sort_keys)idmedia_idtmdb_idimdb_idtitlename)Nr   :)rC   rE   r/   dumpsr   )itemrF   rG   s      r   
unique_keyrc      s{    dD!zz
 	
 $ 
"U!E7##$ :: r   c            	         g } t               }d }t        dt        dz         D ]  }t        |      }t	        |      }|t        |      }t        d| dt        |       dd       |s nd}|D ]9  }t        |      }||v r|j                  |       | j                  |       |dz  }; t        d| d	t        |        d       t        j                  t        j                  | d
d      d       |r||k\  r nt        j                   t"                t        j                  t        j                  | d
d      d       t        dt        |       d       t        dt        d       y )Nr   zPAGE r%   z itemsTr#   r   zADDED: z
 | TOTAL: F   )rX   indentr   )encodingzDONE:zJSON:)setr'   	MAX_PAGESr<   rJ   rV   r2   lenrc   addrR   OUTPUT
write_textr/   ra   r3   r4   SLEEP_BETWEEN_PAGES)		all_itemsseenknown_last_pager6   r>   rB   addedrb   rF   s	            r   mainrs      s   I5DOaQ' ,($4 ",T2OD6CJ<v.	

  	DT"Cd{HHSMT"QJE	 	eWJs9~&67	

 	JJ"
  	 	
 t6

&'Y,(\ 

	

    
'3y>.	'6&r   __main__)r   r/   r3   urllib.errorr)   urllib.requestpathlibr   COLLECTION_IDr&   rl   r.   ri   r(   rn   r,   r   r<   rJ   rV   rc   rs   __name__ r   r   <module>r{      s          +_. 	
 
5	6
	
  !	K )	2 	+,)#L F<8='@ zF r   