Github からの Gist のダウンロードが簡単になりました
GithubGist は、プライベートまたはパブリックの gist を作成できる場所です。つまり、ファイルをプライベートまたはパブリックに保存できます。プロジェクトの要点を多数作成し、それらのセットをダウンロードしたいというシナリオを想定してみましょう。を使用してそれを行うことができる唯一の方法 GithubGist 個々の Gist を開いて ZIP をダウンロードするか、HTTP または SSH 経由でクローンを作成します。この記事は、上記のタスクをより簡単にすることを目的としています。以下のコマンドを使用すると、パスワードがわかるまで、非公開ユーザーを除く他の Github ユーザーから Gist をダウンロードすることもできます。使用します リクエスト この提案のパッケージ。これは、最小限のコードで HTTP リクエストを送信するための素晴らしいパッケージです。 インストール 1. からパッケージをダウンロードします。 PyPI pip3を使用したターミナル経由 構文:
pip3 install requests注記: To become a root user run the following command:sudo pip3 install requestsPython3 スクリプト スクリプトはオンライン IDE では実行できないため、 ここ to see how it works. Python説明 GithubGist API は、各ユーザーに関する情報を https://api.github.com/users/username/gists に保存します。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 ()
- 上記の URL に HTTP リクエストを送信して、ユーザーに関する情報を取得します。
- を検索してください raw_url 利用可能なすべての Gist を取得し、それらに関する情報を取得するために HTTP リクエストを送信しました。
- あなたのニーズに合わせて情報を操作しました。