Skip to content

Instantly share code, notes, and snippets.

@pebbie
Created January 6, 2022 00:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pebbie/13b8131a54e493255c20cdf54f231904 to your computer and use it in GitHub Desktop.
Save pebbie/13b8131a54e493255c20cdf54f231904 to your computer and use it in GitHub Desktop.
import os
import os.path as path
import sys
import traceback
import json
import zipfile
from urllib.request import urlopen
import shutil
import argparse
def main(args):
dl_dir = args.temp_dir
out_dir = args.output_dir
owner = 'R2Northstar'
repo = 'Northstar'
base_url = f"https://api.github.com/repos/{owner}/{repo}/releases"
if not path.exists(dl_dir):
os.makedirs(dl_dir)
if not path.exists(out_dir):
os.makedirs(out_dir)
try:
print(f'checking releases from {owner}/{repo}')
with urlopen(base_url) as response:
if response.status == 200:
response_content = response.read()
jd = json.loads(response_content)
dl_name = jd[0]['assets'][0]['name']
dl_size = jd[0]['assets'][0]['size']
dl_url = jd[0]['assets'][0]['browser_download_url']
print('downloading %s ' % dl_url)
with urlopen(dl_url) as response:
if response.status == 200:
with open(path.join(dl_dir, dl_name), 'wb') as zipball:
shutil.copyfileobj(response, zipball)
print('extracting %s ' % dl_name)
if os.path.exists(path.join(dl_dir, dl_name)):
with zipfile.ZipFile(path.join(dl_dir, dl_name), 'r') as zip_ref:
zip_ref.extractall(out_dir)
except:
print('FAIL:something is wrong. exiting')
print(traceback.format_exc())
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument('-temp_dir', default='r2tmp')
parser.add_argument('-output_dir', default='Titanfall2')
args = parser.parse_args()
main(args)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment