
    yi                         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m	Z	 d dl
Z
ddlmZ ddlmZ ddlmZ ddlmZ  G d	 d
e j"                        Zdedz  dedz  fdZddZedk(  r e        yy)    N)Sequence)Any   )__version__)download)download_folder)DownloadErrorc                   l    e Zd Z	 ddej                  dej
                  deee   z  dz  dedz  ddf
dZ	y)	_ShowVersionActionNparser	namespacevaluesoption_stringreturnc           
          t        dt         dt        j                  j	                  t        j                  j	                  t
                            |j                          y )Nzgdown z at )printr   ospathdirname__file__exit)selfr   r   r   r   s        B/home/ubuntu/.local/lib/python3.12/site-packages/gdown/__main__.py__call__z_ShowVersionAction.__call__   s=     	{m48Q(R'STU    )N)
__name__
__module____qualname__argparseArgumentParser	Namespacestrr   r   r    r   r   r   r      sZ     %)'' %% hsm#d*	
 Tz 
r   r   argvr   c                     | ht        j                  d|       }|st        |j                         \  }}t	        |      }|dk(  r|dz  }|S |dk(  r|dz  }|S |dk(  r|dz  }|S |dk(  r	 |S y )	Nz([0-9]+)(GB|MB|KB|B)KBi   MBi   GBi   @B)rematch	TypeErrorgroupsfloat)r$   msizeunits       r   	file_sizer2      s    HH,d3OXXZ
dT{4<DLD  T\GOD
 	 T\GOD  S[ r   c                     t        j                  t         j                        } | j                  ddt        dd       | j                  dd	       | j                  d
ddt
        j                  j                   d	       | j                  dddd       | j                  dd	       | j                  dt        d       | j                  ddd       | j                  ddd       | j                  ddddd        | j                  d!dd"       | j                  d#d$	       | j                  d%d&	       | j                         }|j                  d'k(  rt        j                  j                  |_
        t        j                  d(|j                         r|j                   }d }nd }|j                   }	 |j"                  r|j                  %t%        |j                  t&              st)        d)      t+        |||j                  |j,                  |j.                  |j0                  |j2                   |j4                   |j6                  |j8                  *
       y t;        ||j                  |j,                  |j.                  |j0                  |j2                   |j4                   ||j8                  |j<                  |j6                  +       y # t>        $ r:}tA        |t        jB                  ,       t        jD                  d-       Y d }~y d }~wtF        jH                  jJ                  $ r}tA        d.j=                  tM        jN                  d/jQ                  tM        jR                  t'        |                  d01            t        jB                  ,       t        jD                  d-       Y d }~y d }~wtT        $ r}tA        d2j=                  tM        jN                  d/jQ                  tM        jR                  t'        |                  d01            t        jB                  ,       t        jD                  d-       Y d }~y d }~ww xY w)3N)formatter_classz-Vz	--versionzdisplay versionr   )actionhelpnargs	url_or_idz&url or file/folder id to download from)r6   z-Oz--outputz!output file name/path; end with "z" to create a new directoryz-qz--quiet
store_truezsuppress logging except errors)r5   r6   z--proxyz9<protocol://host:port> download using the specified proxyz--speedz7download speed limit in second (e.g., '10MB' -> 10MB/s))typer6   z--no-cookiesz/don't use cookies in ~/.cache/gdown/cookies.txtz--no-check-certificatez(don't check the server's TLS certificatez
--continuez-c	continue_zNresume getting partially-downloaded files while skipping fully downloaded ones)destr5   r6   z--folderz/download entire folder instead of a single filez--formatztFormat of Google Docs, Spreadsheets and Slides. Default is Google Docs: 'docx', Spreadsheet: 'xlsx', Slides: 'pptx'.z--user-agentz'User-Agent to use for downloading file.-z^https?://.*z.--folder does not support stdout output (-O -))
urlidoutputquietproxyspeeduse_cookiesverify
user_agentresume)r>   r@   rA   rB   rC   rD   rE   r?   rG   formatrF   )filer   z;Failed to use proxy:

{}

Please check your proxy settings.
	)prefixzTError:

{}

To report issues, please visit https://github.com/wkentaro/gdown/issues.)+r   r    ArgumentDefaultsHelpFormatteradd_argumentr   r   r   sepr2   
parse_argsr@   sysstdoutbufferr*   r+   r8   folder
isinstancer"   
ValueErrorr   rA   rB   rC   
no_cookiesno_check_certificaterF   r;   r   rH   r	   r   stderrr   requests
exceptions
ProxyErrortextwrapindentjoinwrap	Exception)r   argsr>   r?   es        r   mainrd   /   s   $$ >>F !   *RS
/}<WX	   -	   H   F  
 >  
  7  
 )   >  
 O  
 6  
 D{{cjj''	xx/nn^^1;;KK':dkk3+G !QRR{{jjjjjj $/444??~~ {{jjjjjj $/444~~{{??  acjj!)) MTT		(--A*? @N 		
 	 88>		(--A*? @N9 	
 	s:   6B$K A2K 	Q0L Q,A?N00Q<A?Q  Q__main__)r   N)r   os.pathr   r*   rQ   r]   collections.abcr   typingr   rZ    r   r   r   r[   r	   Actionr   r"   r.   r2   rd   r   r#   r   r   <module>rk      so      	 
  $     , %	 	C$J 54< $@F zF r   