minetest-u_skinsdb/update_from_db2.py

46 lines
1.1 KiB
Python
Executable File

#!/usr/bin/python3
#from http.client import HTTPConnection
import json
import base64
import requests
server = "minetest.fensta.bplaced.net"
skinsdir = "u_skins/textures/"
metadir = "u_skins/meta/"
i = 1
pages = 0
#c = HTTPConnection(server)
def addpage(page):
global i, pages
print( "Page: "+str(page))
try:
#c.request("GET","/api/get.json.php?getlist&page="+str(page)+"&outformat=base64")
#r = c.getresponse()
r = requests.get("http://"+str(server)+"/api/get.json.php?getlist&page="+str(page)+"&outformat=base64")
except StandardError:
print("Error", r.status)
exit(r.status)
data = r.text
l = json.loads(data)
if not l["success"]:
print("Success != True")
exit(1)
pages = int(l["pages"])
for s in l["skins"]:
f = open(skinsdir+"character_"+str(i)+".png",'wb')
f.write(base64.b64decode(s["img"]))
f.close()
f = open(metadir+"character_"+str(i)+".txt",'w')
f.write('name = "'+s["name"]+'",\n')
f.write('author = "'+s["author"]+'",\n')
f.write('comment = "'+s["license"]+'",\n')
f.close()
i = i + 1
addpage(1)
if pages > 1:
for p in range(pages-1):
addpage(p+2)
print("Skins have been updated. Please run ./generate_previews.sh")