Ë
    0Iæj4  ã                   ó  — d dl Zd dlZd dlm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d dlZd dlmZ d dlZd dlZd dlZddlmZ ddlmZ ddlmZ dZ ej2                  d«      Zd	„ Zd
„ Zd„ Zdd„Z	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Zy)é    N)ÚMozillaCookieJaré   )Úindent)ÚFileURLRetrievalError)Ú	parse_urli   ú~c                 óâ  — d}| j                  «       D �]Ë  }t        j                  d|«      }|r+d|j                  «       d   z   }|j	                  dd«      } �nˆt        j                  |d¬«      }|j                  d	«      }|�Ô|d
   j	                  dd«      }t        j                  j                  |«      }t        j                  j                  |j                  «      }|j                  dddi¬«      D ]  }|d   ||d   <   Œ t        j                  j                  |d¬«      }	t        j                  j                  |j!                  |	¬«      «      } nŠt        j                  d|«      }|r9|j                  «       d   }|j	                  dd«      }|j	                  dd«      } n9t        j                  d|«      }|s�Œ°|j                  «       d   }
t#        |
«      ‚ |st#        d«      ‚|S )NÚ z"href="(\/uc\?export=download[^"]+)zhttps://docs.google.comr   z&amp;ú&zhtml.parser)Úfeaturesz#download-formÚactionÚinputÚtypeÚhidden)ÚattrsÚvalueÚnameT)Údoseq)Úqueryz"downloadUrl":"([^"]+)z\u003dú=z\u0026z'<p class="uc-error-subcaption">(.*)</p>zÏCannot retrieve the public link of the file. You may need to change the permission to 'Anyone with the link', or have had many accesses. Check FAQ in https://github.com/wkentaro/gdown?tab=readme-ov-file#faq.)Ú
splitlinesÚreÚsearchÚgroupsÚreplaceÚbs4ÚBeautifulSoupÚ
select_oneÚurllibÚparseÚurlsplitÚparse_qsr   ÚfindChildrenÚ	urlencodeÚ
urlunsplitÚ_replacer   )ÚcontentsÚurlÚlineÚmÚsoupÚformÚurl_componentsÚquery_paramsÚparamr   Úerrors              úQ/root/repos/pocs/video-evals/.venv/lib/python3.12/site-packages/gdown/download.pyÚ get_url_from_gdrive_confirmationr2      sÌ  € Ø
€CØ×#Ñ#Ó%ó /ˆÜ�I‰IÐ;¸TÓBˆÙØ+¨a¯h©h«j¸©mÑ;ˆCØ—+‘+˜g sÓ+ˆCÚÜ× Ñ  °Ô>ˆØ�‰Ð/Ó0ˆØÐØ�x‘.×(Ñ(¨°#Ó6ˆCÜ#Ÿ\™\×2Ñ2°3Ó7ˆNÜ!Ÿ<™<×0Ñ0°×1EÑ1EÓFˆLØ×*Ñ*¨7¸6À8Ð:LÐ*ÓMò =�Ø.3°G©n�˜U 6™]Ò+ð=ä—L‘L×*Ñ*¨<¸tÐ*ÓDˆEÜ—,‘,×)Ñ)¨.×*AÑ*AÈÐ*AÓ*NÓOˆCÙÜ�I‰IÐ.°Ó5ˆÙØ—(‘(“*˜Q‘-ˆCØ—+‘+˜i¨Ó-ˆCØ—+‘+˜i¨Ó-ˆCÙÜ�I‰IÐ?ÀÓFˆÛØ—H‘H“J˜q‘MˆEÜ'¨Ó.Ð.ð5/ñ6 Ü#ðUó
ð 	
ð €Jó    c                 óL  — t         j                  j                  | j                  d   «      }t	        j
                  d|«      }|r3|j                  «       d   }|j                  t        j                  d«      S t	        j
                  d|«      }|r|j                  «       d   }|S y )NúContent-Dispositionzfilename\*=UTF-8''(.*)r   Ú_zattachment; filename="(.*?)")
r   r    ÚunquoteÚheadersr   r   r   r   ÚospÚsep)ÚresponseÚcontent_dispositionr*   Úfilenames       r1   Ú_get_filename_from_responser>   @   sŠ   € Ü Ÿ,™,×.Ñ.¨x×/?Ñ/?Ð@UÑ/VÓWÐä
�	‰	Ð+Ð-@ÓA€AÙØ—8‘8“:˜a‘=ˆØ×Ñ¤§¡¨Ó-Ð-ä
�	‰	Ð0Ð2EÓF€AÙØ—8‘8“:˜a‘=ˆØˆàr3   c                 ó‚   — d| j                   vry | j                   d   }|€y t        j                  j                  |«      S )NzLast-Modified)r8   ÚemailÚutilsÚparsedate_to_datetime)r;   Úraws     r1   Ú _get_modified_time_from_responserD   P   s@   € Ø˜h×.Ñ.Ñ.Øà
×
Ñ
˜?Ñ
+€CØ
€{Øä�;‰;×,Ñ,¨SÓ1Ð1r3   c                 ó’  — t        j                  «       }|j                  j                  d|i«       | �&| | dœ|_        t        d| t        j                  ¬«       t        j                  t        d«      }|rKt        j                  |«      r6t        |«      }|j                  «        |j                  j                  |«       |r||fS |S )Nz
User-Agent)ÚhttpÚhttpszUsing proxy:©Úfilez.cache/gdown/cookies.txt)ÚrequestsÚsessionr8   ÚupdateÚproxiesÚprintÚsysÚstderrr9   ÚjoinÚhomeÚexistsr   ÚloadÚcookies)ÚproxyÚuse_cookiesÚ
user_agentÚreturn_cookies_fileÚsessÚcookies_fileÚ
cookie_jars          r1   Ú_get_sessionr]   [   s£   € Ü×ÑÓ€Dà‡L�L×Ñ˜ zÐ2Ô3àÐØ %°Ñ6ˆŒÜˆn˜e¬#¯*©*Õ5ô —8‘8œDÐ"<Ó=€LÙ”s—z‘z ,Ô/Ü% lÓ3ˆ
Ø�‰ÔØ�‰×Ñ˜JÔ'áØ�\Ð!Ð!àˆr3   c                 ó¸  — |du | du z  st        d«      ‚|�dj                  |¬«      } |€d}|€i }| }t        |||d¬«      \  }}t        | | ¬«      \  }}|r|rdj                  |¬«      } | }d}	 |j	                  | d|¬	«      }|r|s�nÉ| |k(  r"|j
                  d
k(  rdj                  |¬«      } ŒB|j                  d   j                  d«      rÕt        j                  d|j                  «      }|r:|j                  «       d   j                  d«      rdj                  ||
€dn|
¬«      } Œ¼|r:|j                  «       d   j                  d«      rdj                  ||
€dn|
¬«      } Œø|r„|j                  «       d   j                  d«      rbdj                  ||
€dn|
¬«      } �Œ5d|j                  v r;|j                  d   j                  d«      r|
dvrdj                  ||
€dn|
¬«      } �Œ~|r=t        |«      }|j                  D ]  }|j                  |«       Œ |j!                  «        d|j                  v rn	 t#        |j                  «      } �Œãd}d}|r|rt1        |¬ «      }t3        |¬ «      }|€t5        j6                  | «      }|€|}t9        |t.        «      }|r_|j                  t4        j:                  «      r@t5        j<                  |«      st?        j@                  |«       t5        j(                  ||«      }|�rº|	rAt>        jB                  jE                  |«      r"|stG        d!|› �tH        jJ                  ¬"«       |S g }t?        jL                  t5        jN                  |«      xs d#«      D ]q  }|j                  t5        j6                  |«      «      sŒ(|j                  d$«      sŒ:|jQ                  t5        j(                  t5        jN                  |«      |«      «       Œs |	r†|r„tS        |«      d%k7  rptG        d&tH        jJ                  ¬"«       tG        d«       |D ]  }tG        d|tH        jJ                  ¬"«       Œ  tG        d«       tG        d'tH        jJ                  ¬"«       y|d   }n@d(}	tU        jV                  d$t5        j6                  |«      t5        jN                  |«      ¬)«      }tY        |d*«      }nd}|}|�L|j[                  «       dk7  r9|j[                  «       }d+d,j                  |«      i} |j	                  | | d|¬-«      }nd}|sëtG        |j	                  d.d/«      tH        jJ                  d0¬1«       |	rtG        d2|tH        jJ                  ¬"«       || k7  r9tG        d3|tH        jJ                  ¬"«       tG        d4| tH        jJ                  ¬"«       ntG        d5| tH        jJ                  ¬"«       tG        |j	                  d6d7|rt5        j\                  |«      n|› d�«      tH        jJ                  d0¬1«       	 |j                  j	                  d8«      }!|!�t_        |!«      |z   }!|sta        j`                  |!d9|d¬:«      }"tc        jb                  «       }#|je                  tf        ¬;«      D ]y  }$|ji                  |$«       |s"jk                  tS        |$«      «       |€Œ3d<"jl                  z  |z  }%tc        jb                  «       |#z
  }&|&|%k  sŒbtc        jn                  |%|&z
  «       Œ{ |s"jq                  «        |r&|jq                  «        ts        jt                  ||«       |r*|r(|jw                  «       }'t?        jx                  ||'|'f«       |jq                  «        |S # t$        $ rX}dj                  t'        dj)                  t+        j,                  t/        |«      «      «      d¬«      |«      }t%        |«      ‚d}~ww xY w# |jq                  «        w xY w)=aM  Download file from URL.

    Parameters
    ----------
    url: str
        URL. Google Drive URL is also supported.
    output: str
        Output filename/directory. Default is basename of URL.
        If output ends with separator '/' basename will be kept and the
        parameter will be treated as parenting directory.
    quiet: bool
        Suppress terminal output. Default is False.
    proxy: str
        Proxy.
    speed: float
        Download byte size per second (e.g., 256KB/s = 256 * 1024).
    use_cookies: bool
        Flag to use cookies. Default is True.
    verify: bool or string
        Either a bool, in which case it controls whether the server's TLS
        certificate is verified, or a string, in which case it must be a path
        to a CA bundle to use. Default is True.
    id: str
        Google Drive's file ID.
    fuzzy: bool
        Fuzzy extraction of Google Drive's file Id. Default is False.
    resume: bool
        Resume interrupted downloads while skipping completed ones.
        Default is False.
    format: str, optional
        Format of Google Docs, Spreadsheets and Slides. Default is:
            - Google Docs: 'docx'
            - Google Spreadsheet: 'xlsx'
            - Google Slides: 'pptx'
    user_agent: str, optional
        User-agent to use in the HTTP request.
    log_messages: dict, optional
        Log messages to customize. Currently it supports:
        - 'start': the message to show the start of the download
        - 'output': the message to show the output filename

    Returns
    -------
    output: str
        Output filename.
    Nz$Either url or id has to be specifiedz#https://drive.google.com/uc?id={id})ÚidzxMozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36T)rV   rW   rX   rY   )Úwarning)ÚstreamÚverifyiô  z%https://drive.google.com/open?id={id}zContent-Typez	text/htmlz<title>(.+)</title>r   z - Google Docsz>https://docs.google.com/document/d/{id}/export?format={format}Údocx)r_   Úformatz - Google SheetszBhttps://docs.google.com/spreadsheets/d/{id}/export?format={format}Úxlsxz - Google SlideszBhttps://docs.google.com/presentation/d/{id}/export?format={format}Úpptxr5   >   Nrf   z�Failed to retrieve file url:

{}

You may still be able to access the file from the browser:

	{}

but Gdown can't. Please check connections and permissions.ú
ú	)Úprefix)r;   z!Skipping already downloaded file rH   ú.z.partr   z-There are multiple temporary files to resume:z4Please remove them except one to resume downloading.F)Úsuffixri   ÚdirÚabÚRangez	bytes={}-)r8   ra   rb   ÚstartzDownloading...
r
   )rI   ÚendzResume:zFrom (original):zFrom (redirected):zFrom:ÚoutputzTo: zContent-LengthÚB)ÚtotalÚunitÚinitialÚ
unit_scale)Ú
chunk_sizeg      ð?)=Ú
ValueErrorrd   r]   r   ÚgetÚstatus_coder8   Ú
startswithr   r   Útextr   Úendswithr   rU   Ú
set_cookieÚsaver2   r   r   rQ   ÚtextwrapÚwrapÚstrr>   rD   r9   ÚbasenameÚ
isinstancer:   rS   ÚosÚmakedirsÚpathÚisfilerN   rO   rP   ÚlistdirÚdirnameÚappendÚlenÚtempfileÚmktempÚopenÚtellÚabspathÚintÚtqdmÚtimeÚiter_contentÚ
CHUNK_SIZEÚwriterL   ÚnÚsleepÚcloseÚshutilÚmoveÚ	timestampÚutime)(r(   rq   ÚquietrV   ÚspeedrW   rb   r_   ÚfuzzyÚresumerd   rX   Úlog_messagesÚ
url_originrZ   r[   Úgdrive_file_idÚis_gdrive_download_linkÚresr*   r\   ÚcookieÚeÚmessageÚfilename_from_urlÚlast_modified_timeÚoutput_is_pathÚexisting_tmp_filesrI   Útmp_fileÚfÚ
start_sizer8   rs   ÚpbarÚt_startÚchunkÚelapsed_time_expectedÚelapsed_timeÚmtimes(                                           r1   Údownloadr¸   q   s'  € ðz �$ˆJ˜3 $˜;Ò'ÜÐ?Ó@Ð@Ø	€~Ø3×:Ñ:¸bÐ:ÓAˆØÐð Pˆ
ØÐØˆà€Jä%ØØØØ ô	Ñ€Dˆ,ô /8¸ÈÀYÔ.OÑ+€NÐ+á‘à3×:Ñ:¸nÐ:ÓMˆØˆ
Ø"&Ðà
Ø�h‰h�s 4°ˆhÓ7ˆáÑ#:Ùà�*Ò §¡°CÒ!7à9×@Ñ@ÀNÐ@ÓSˆCØà�;‰;�~Ñ&×1Ñ1°+Ô>Ü—	‘	Ð/°·±Ó:ˆAÙ�Q—X‘X“Z ‘]×+Ñ+Ð,<Ô=ð'ß'-¡vØ)Ø)/¨™v¸Vð (.ó (ð ð Ù�q—x‘x“z !‘}×-Ñ-Ð.@ÔAð'ß'-¡vØ)Ø)/¨™v¸Vð (.ó (ð ð Ù�q—x‘x“z !‘}×-Ñ-Ð.@ÔAð'ß'-¡vØ)Ø)/¨™v¸Vð (.ó (ð ñ à! S§[¡[Ñ0Ø—‘Ð1Ñ2×;Ñ;¸FÔCØ˜nÑ,ð#ß#)¡6Ø%Ø%+ ^™6¸ð $*ó $ð ñ áÜ)¨,Ó7ˆJØŸ,™,ò .�Ø×%Ñ% fÕ-ð.à�O‰OÔà  C§K¡KÑ/àð	1Ü2°3·8±8Ó<ˆCñE ð^ ÐØÐÙÑ1Ü7ÀÔEÐÜ=ÀsÔKÐØÐ ÜŸL™L¨Ó-Ðà€~Ø"ˆä ¬Ó,€NÙ˜&Ÿ/™/¬#¯'©'Ô2Ü�z‰z˜&Ô!Ü�K‰K˜ÔÜ—‘˜&Ð"3Ó4ˆâÙ”b—g‘g—n‘n VÔ,ÙÜÐ9¸&¸ÐBÌÏÉÕTØˆMàÐÜ—J‘JœsŸ{™{¨6Ó2Ò9°cÓ:ò 	OˆDØ�‰œsŸ|™|¨FÓ3Õ4¸¿¹ÀwÕ9OØ"×)Ñ)¬#¯(©(´3·;±;¸vÓ3FÈÓ*MÕNð	Oñ Ñ(ÜÐ%Ó&¨!Ò+ÜØCÜŸ™õô �d”Ø.ò 7�DÜ˜$ ¬3¯:©:Ö6ð7ä�d”ÜØJÜŸ™õð Ø)¨!Ñ,‰HàˆFô  —‘ØÜ—|‘| FÓ+Ü—K‘K Ó'ôˆHô
 �˜4Ó ‰àˆØˆàÐ §¡£¨A¢Ø—V‘V“Xˆ
Ø˜K×.Ñ.¨zÓ:Ð;ˆØ�h‰h�s G°DÀˆhÓH‰àˆ
áÜˆl×Ñ˜wÐ(:Ó;Ä#Ç*Á*ÐRTÕUÙÜ�)˜X¬C¯J©JÕ7Ø˜ÒÜÐ$ j´s·z±zÕBÜÐ&¨´#·*±*Ö=ä�'˜3¤S§Z¡ZÕ0ÜØ×ÑØ˜D¹¤§¡¨VÔ!4ÈFÐ SÐSUÐVóô —‘Øõ	
ðØ—‘—‘Ð 0Ó1ˆØÐÜ˜“J Ñ+ˆEÙÜ—9‘9 5¨s¸JÐSWÔXˆDÜ—)‘)“+ˆØ×%Ñ%´Ð%Ó<ò 	EˆEØ�G‰G�EŒNÙØ—‘œC ›JÔ'ØÑ Ø(+¨d¯f©f©°uÑ(<Ð%Ü#Ÿy™y›{¨WÑ4�ØÐ"7Ó7Ü—J‘JÐ4°|ÑCÕDð	Eñ Ø�J‰JŒLÙØ�G‰GŒIÜ�K‰K˜ &Ô)ÙÑ0Ø&×0Ñ0Ó2ˆEÜ�H‰H�V˜e U˜^Ô,à�
‰
Œà€Møôq %ò 
	1ðM÷ ‰fÜ�t—y‘y¤§¡¬s°1«vÓ!6Ó7ÀÔEØóð ô (¨Ó0Ð0ûð
	1ûðl 	�
‰
�ús3   È=]# ×?B"_ Ú"._ ÛB _ Ý#	_Ý,A^?Þ?_ß_)F)NNFNNTTNFFNNN) Úemail.utilsr@   r…   Úos.pathr‡   r9   r   r›   rO   r�   r€   r”   Úurllib.parser   Úhttp.cookiejarr   r   rJ   r“   Ú_indentr   Ú
exceptionsr   r   r–   Ú
expanduserrR   r2   r>   rD   r]   r¸   © r3   r1   ú<module>rÁ      s‘   ðÛ Û 	Ý Û 	Û Û 
Û Û Û Û Ý +ã 
Û Û å Ý -Ý  à€
Ø€s‡~�~�cÓ€ò$òNò 2óð. 	ØØ
Ø
Ø
ØØØØ
ØØØØôSr3   