-
Notifications
You must be signed in to change notification settings - Fork 0
/
PyZap.py
35 lines (31 loc) · 1.07 KB
/
PyZap.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import requests
import zipfile
from packaging import version
import json
import os
owner = 'CodyAbode'
repo = 'PyZap'
def update():
url = 'https://api.github.com/repos/' + owner + '/' + repo + '/releases/latest'
with zipfile.ZipFile('PyZap.pyz') as archive:
with archive.open('version.txt') as file:
current_version = file.read().decode()
request = requests.get(url)
release = json.loads(request.text)
if version.parse(release['tag_name']) > version.parse(current_version):
print('Update needed:', release['tag_name'], '>', current_version)
for asset in release['assets']:
if asset['name'] == 'PyZap.pyz':
getfile = requests.get(asset['browser_download_url'])
os.remove('PyZap.pyz')
open('PyZap.pyz', 'wb').write(getfile.content)
print('Updated')
break
print('Could not find PyZap.pyz')
else:
print('Already on the latest version')
def main():
update()
print('Hello world!')
if __name__ == '__main__':
main()