GithubGist ir vieta, kur varat izveidot privātu vai publisku kopsavilkumu, t.i., glabāt savus failus privāti vai publiski. Pieņemsim scenāriju, kurā esat uzrakstījis lielu skaitu sava projekta būtību un vēlaties lejupielādēt to kopu. Vienīgais veids, kā to var izdarīt, izmantojot GithubGist ir atvērt katru individuālo būtību, lai lejupielādētu ZIP vai klonētu, izmantojot HTTP vai SSH. Šis raksts ir par iepriekšminētā uzdevuma vienkāršošanu. Izmantojot tālāk norādītās komandas, jūs pat varat lejupielādēt galvenos datus no citiem github lietotājiem, izņemot privātos, līdz jūs zināt viņu paroli. Mēs izmantosim pieprasījumus šim priekšlikumam. Tā ir lieliska pakotne HTTP pieprasījumu sūtīšanai ar minimālu kodu. Uzstādīšana 1. Lejupielādējiet pakotni no PyPI caur termināli, izmantojot pip3 Sintakse: pip3 install requests
Piezīme: To become a root user run the following command: sudo pip3 install requests
Python3 skripts Skriptu nevar palaist tiešsaistes IDE, tāpēc varat noklikšķināt šeit 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() Paskaidrojums GithubGist API saglabā informāciju par katru lietotāju vietnē https://api.github.com/users/username/gists. - Nosūtiet HTTP pieprasījumu uz iepriekš norādīto URL, lai izgūtu informāciju par lietotāju.
- Meklēt raw_url no katras pieejamās būtības un nosūtīja HTTP pieprasījumus, lai izgūtu informāciju par tiem.
- Manipulēja informāciju atbilstoši jūsu vajadzībām.