GithubGist ist ein Ort, an dem Sie einen privaten oder öffentlichen Gist erstellen können, d. h. Ihre Dateien entweder privat oder öffentlich speichern. Nehmen wir ein Szenario an, in dem Sie eine ganze Reihe von Kerninhalten für Ihr Projekt geschrieben haben und einen Satz davon herunterladen möchten. Nur so können Sie es tun GithubGist besteht darin, jeden einzelnen Kern zu öffnen, um ZIP herunterzuladen oder über HTTP oder SSH zu klonen. In diesem Artikel geht es darum, die obige Aufgabe zu vereinfachen. Mit den folgenden Befehlen können Sie sogar Gists von anderen Github-Benutzern herunterladen, mit Ausnahme der privaten, bis Sie deren Passwort kennen. Wir werden verwenden Anfragen Paket für diesen Vorschlag. Es ist ein großartiges Paket zum Senden von HTTP-Anfragen mit minimalem Code. Installation 1. Laden Sie das Paket herunter von PyPI über Terminal mit pip3 Syntax: pip3 install requests
Notiz: To become a root user run the following command: sudo pip3 install requests
Python3-Skript Das Skript kann nicht auf einer Online-IDE ausgeführt werden und Sie können daher klicken Hier 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() Erläuterung Die GithubGist-API speichert Informationen über jeden Benutzer unter https://api.github.com/users/username/gists. - Senden Sie eine HTTP-Anfrage an die oben genannte URL, um Informationen über den Benutzer abzurufen.
- Suchen Sie nach dem raw_url jedes verfügbare Wesentliche und sendete HTTP-Anfragen, um die Informationen darüber abzurufen.
- Die Informationen wurden an Ihre Bedürfnisse angepasst.