#!/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")

