-
Notifications
You must be signed in to change notification settings - Fork 0
/
lite-updater.py
95 lines (76 loc) · 2.46 KB
/
lite-updater.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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
''' _ _
___ | | _ _ __| | _ __ ___
/ _ \| || | | | / _` || '__| / _ |
| __/| || |_| || (_| || | | __/
\___||_| \__, | \__,_||_| \___|
|___/
___________________________________
- codé en : UTF-8
- langage : python3
- GitHub : github.com/elydre
- Licence : GNU GPL v3
'''
import sys, os
from urllib.request import urlopen
from urllib.error import HTTPError
# to edit
# url de la raod de mise à jour
updfile = None
#chemin relatif a partire de la racine du script, "/" par defaut
chem = "/"
# langage de l'interface, "fr" ou "en"
lang = "fr"
# relative path
global PATH
PATH = os.path.dirname(sys.argv[0])
# languages
fr = {
"mkdir done":"dossier {} créé avec succès",
"mkdir err":"le dossier {} est déjà existant",
"wget done": "{} téléchargemé avec succès",
"cmd err": "commande inconnue ici -> {}",
"url err" : "url invalide ici -> {}",
"address err" : "adresse invalide"}
en = {
"mkdir done":"folder {} successfully created",
"mkdir err":"the folder {} is already existing",
"wget done": "{} successfully downloaded",
"cmd err": "unknown command here -> {}",
"url err" : "invalid url here -> {}",
"arg err": "unknown argument here -> {}",
"name err":"register {} not found in the road"}
lang = fr if lang == "fr" else en
# system function
def mkdir(chem, name):
try:
os.makedirs(PATH+chem+name)
print(lang["mkdir done"].format(name))
except FileExistsError: print(lang["mkdir err"].format(name))
def wget(chem, name, url):
try:
open(PATH + chem + name, 'wb').write(urlopen(url).read())
print(lang["wget done"].format(name))
except HTTPError: print(lang["url err"].format(url))
def mkchem(chem):
dos = chem.split("/")
while "" in dos: dos.remove("")
for x in range(len(dos)):
mkdir("","".join(f"/{dos[y]}" for y in range(x+1)))
# update launcher
def update(chem, updfile):
mkchem(chem)
try:
l = urlopen(updfile).read().decode("utf-8").split("\n")
for e in l:
comp = str(e).split(" ")
commande = comp[0].strip()
arg = "".join(comp[1:]).split(",")
if commande == "mkd":
mkdir(chem, arg[0])
elif commande == "wgt":
wget(chem, arg[0],arg[1])
elif commande != "":
print(lang["cmd err"].format(commande))
except HTTPError: print(lang["url err"].format(updfile))
if updfile != None and __name__ == "__main__":
update(chem, updfile)