logo

Det er enkelt å laste ned hovedpunkter fra Github

GithubGist er et sted hvor du kan lage en privat eller en offentlig hovedinnhold, dvs. lagre filene dine enten privat eller offentlig. La oss anta et scenario der du har skrevet en god del hovedpunkter for prosjektet ditt, og du vil laste ned et sett med dem. Den eneste måten du kan gjøre det på GithubGist er å åpne hver enkelt kjerne for å laste ned ZIP eller klone via HTTP eller SSH. Denne artikkelen handler om å gjøre oppgaven ovenfor enklere. Ved å bruke kommandoene nedenfor kan du til og med laste ned hovedinnhold fra andre github-brukere unntatt de private til du vet passordet deres. Vi skal bruke forespørsler pakke for dette forslaget. Det er en fantastisk pakke for å sende HTTP-forespørsler med minimal kode. Installasjon 1. Last ned pakken fra PyPI via terminal ved hjelp av pip3 Syntaks:
pip3 install requests
Note: To become a root user run the following command:
sudo pip3 install requests
Python3-skript Skriptet kan ikke kjøre på en online IDE, og derfor kan du klikke her 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(1len(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() 
Forklaring GithubGist API lagrer informasjon om hver bruker på https://api.github.com/users/username/gists.
  • Send en HTTP-forespørsel til url-en ovenfor for å hente informasjon om brukeren.
  • Søk etter rå_url av alle tilgjengelige hovedpunkter og sendte HTTP-forespørsler for å hente informasjonen om dem.
  • Manipulerte informasjonen til dine behov.