Descargar lo esencial de Github de forma sencilla

GithubGist es un lugar donde puede crear una esencia pública o privada, es decir, almacenar sus archivos de forma privada o pública. Supongamos un escenario en el que ha escrito una buena cantidad de conceptos básicos para su proyecto y desea descargar un conjunto de ellos. La única manera de hacerlo usando GithubGist es abrir todas y cada una de las esencias individuales para descargar ZIP o clonar a través de HTTP o SSH. Este artículo trata de simplificar la tarea anterior. Usando los comandos a continuación, puedes incluso descargar información esencial de otros usuarios de github, excluyendo los privados, hasta que conozcas su contraseña. estaremos usando solicitudes paquete para esta propuesta. Es un paquete increíble para enviar solicitudes HTTP con un código mínimo. Instalación 1. Descargue el paquete desde PyPI a través de la terminal usando pip3 Sintaxis:
 pip3 install requests    Nota:   To become a root user run the following command:  
 sudo pip3 install requests    secuencia de comandos Python3 El script no se puede ejecutar en un IDE en línea y, por lo tanto, puede hacer clic en aquí   to see how it works. Python   
   import   requests   import   os   def   create_directory  (  dirname  ):   #Creates a new directory if a directory with dirname does not exist   try  :   os  .  stat  (  dirname  )   except  :   os  .  mkdir  (  dirname  )   def   show  (  obj  ):   #Displays the items in the obj   for   i   in   range  (  len  (  obj  )):   print  (  str  (  i  )  +  ': '  +  str  (  obj  [  i  ]))   def   auth  ():   #Asks for the user details   ask_auth   =   input  (  'Do you want to download gists from your account   ?   Type   'yes'   or   'no'  :   ')   if  (  ask_auth  ==  'yes'  ):   user   =   input  (  'Enter your username: '  )   password   =   input  (  'Enter your password: '  )   request   =   requests  .  get  (  'https://api.github.com/users/'  +  user  +  '/gists'      auth  =  (  user     password  ))   elif  (  ask_auth  ==  'no'  ):   user   =   input  (  'Enter username: '  )   request   =   requests  .  get  (  'https://api.github.com/users/'   +  user  +  '/gists'  )   return   [  ask_auth     user     request  ]   def   load  (  request  ):   #Loads the files and the gist urls   output   =   request  .  text  .  split  (  ''  )   gist_urls   =   []   files   =   []   for   item   in   output  :   if   'raw_url'   in   item  :   gist_urls  .  append  (  str  (  item  [  11  :  -  1  ]))   if   'filename'   in   item  :   files  .  append  (  str  (  item  .  split  (  ':'  )[  1  ][  2  :  -  1  ]))   return   [  gist_urls     files  ]   def   write_gist  (  filename     text  ):   #Writes text(gist) to filename   fp   =   open  (  filename     'w'  )   fp  .  write  (  text  )   fp  .  close  ()   def   download  (  permission     user     request     fileno  ):   #Loads and writes all the gists to   dirname     if  (  permission   ==   'yes'   or   permission   ==   'no'  ):   gist_urls     files   =   load  (  request  )   dirname   =   user  +  ''s_gists/'   create_directory  (  dirname  )   if  (  fileno  [  1  ]   ==   'all'  ):   for   i   in   range  (  len  (  gist_urls  )):   gist   =   requests  .  get  (  gist_urls  [  i  ])   write_gist  (  dirname  +  files  [  i  ]   gist  .  text  )   else  :   for   i   in   range  (  1    len  (  fileno  )):   gist   =   requests  .  get  (  gist_urls  [  int  (  fileno  [  i  ])])   write_gist  (  dirname  +  files  [  int  (  fileno  [  i  ])]   gist  .  text  )   def   detailed  (  urls     pos  ):   #Prints out the contents of a file   gist   =   requests  .  get  (  urls  [  int  (  pos  )])   print  (  gist  .  text  )   def   main  ():   #Authenticates and downloads gists according to user's choice   #Commands:   #show: To show all the available gists with their assigned gistno   #download all: To download all the available gists   #download gistno(s): To download gist(s) assigned to gistno(s)   #detailed gistno: To print content of gist assigned to gistno   #exit: To exit the script   ask_auth     user     request   =   auth  ()   urls     files   =   load  (  request  )   try  :   while  (  1  ):   command   =   input  (  'Enter your command: '  )   if  (  'download'   in   command  ):   download  (  ask_auth     user     request     command  .  split  (  ' '  ))   elif  (  'detailed'   in   command  ):   detailed  (  urls     command  .  split  (  ' '  )[  1  ])   elif  (  command   ==   'show'  ):   show  (  files  )   elif  (  command   ==   'exit'  ):   return   except  :   pass   if  (  __name__   ==   '__main__'  ):   main  ()   
Explicación La API GithubGist almacena información sobre cada usuario en https://api.github.com/users/username/gists.
  • Envíe una solicitud HTTP a la URL anterior para recuperar información sobre el usuario.
  • buscar el URL_cruda de cada esencia disponible y envió solicitudes HTTP para recuperar la información sobre ellas.
  • Manipulé la información a sus necesidades.