downloadBuild.py 文件源码

python
阅读 19 收藏 0 点赞 0 评论 0

项目:Farm-server 作者: MakersLab 项目源码 文件源码
def main():
    print('Looking for latest release')
    response = requests.get(RELEASES_URL)
    if(response.ok):
        release = json.loads(response.text)
        print('Found latest release with version {0}'.format(release['tag_name']))
        if(len(release['assets']) > 0):
            downloadableAssetIndex = -1
            for index,asset in enumerate(release['assets']):
                if(asset['name'][0:5] == 'build' and downloadableAssetIndex == -1):
                    downloadableAssetIndex = index
            if(downloadableAssetIndex == -1):
                print('Could not find downloadable release build, aborting')
            else:
                print('Found downloadable build with name {0}'.format(release['assets'][downloadableAssetIndex]['name']))
                print('Downloading latest client release with version {0}'.format(release['tag_name']))
                buildDownloadUrl = release['assets'][downloadableAssetIndex]['browser_download_url']
                buildFileName = release['assets'][downloadableAssetIndex]['name']
                r = requests.get(buildDownloadUrl, stream=True)
                # bar = progressbar.ProgressBar(max_value=len(r.content))
                with progressbar.ProgressBar(max_value=len(r.content)) as bar:
                    deleteContentsOfFolder(DOWNLOAD_FOLDER)
                    with open(join(DOWNLOAD_FOLDER,buildFileName), 'wb') as file:
                        for chunk in r.iter_content(chunk_size=1024):
                            bar.update(len(chunk))
                            file.write(chunk)
                print('Download finished')
                deleteContentsOfFolder(DESTINATION_FOLDER)

                with zipfile.ZipFile(join(DOWNLOAD_FOLDER,buildFileName), 'r') as zip:
                    print('Extracting downloaded file into {0}'.format(DESTINATION_FOLDER))
                    zip.extractall(DESTINATION_FOLDER)
                print('Finished')
                return True
    else:
        print('Could not get info about latest release')
        return False
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号