local etlua = require "etlua" local utils = require "utils" local yqtemplateform = utils.readfile("yqform.etlua") local form = etlua.compile(yqtemplateform) --- @type [table] local classes = { { n = "Beast", f = "c01.beast.png" }, { n = "Swordsman", f = "c02.swordsman.png" }, { n = "Spirit Bird", f = "c03.spirit-bird.png" }, { n = "Twin Blades", f = "c04.twin-blades.png" }, { n = "Healer", f = "c05.healer.png" }, { n = "Summoner", f = "c06.summoner.png" }, { n = "Tamer", f = "c07.tamer.png" }, { n = "Pugilist", f = "c08.pugilist.png" }, { n = "Mounted Fighter", f = "c09.mounted-fighter.png" }, { n = "Fruit Animal", f = "c10.fruit-animal.png" }, { n = "Spellcaster", f = "c11.spellcaster.png" } } return { desc = "Creates Yokoka’s quest-style personal status page", run = function(fcgi) fcgi.print("Content-Type: text/html; charset=utf-8\r\n\r\n") local data = "" local args = nil if fcgi.getenv("REQUEST_METHOD") == "POST" then args = {} local content_type = fcgi.getenv("CONTENT_TYPE") local boundary = content_type:match("; boundary=(.*)$") local post_data = fcgi.post() data = "Content type:" .. content_type .. "\n Boundary: " .. boundary .. "\n" for w in string.gmatch(post_data, "(.-)" .. boundary) do local name, dtype, value = utils.parse_form_entry(w) args[name] = { t = dtype, v = value } end for k, v in pairs(args) do data = data .. k .. ": " if v.t then data = data .. "[FILE:" .. v.t .. "]\n" else data = data .. v.v .. "\n" end end end fcgi.print( form { encoder = require "base64".encode, readfile = utils.readfile, args = args, classes = classes, elements = { "Fire", "Water", "Earth", "Air", "Wood", "Electricity", "Metals", "Dreams", "Light", "Darkness", "Sun", "Moon", "Smoke", "Ice", "Crystal", "Sound", "Poison", "Lightning", "Weapons", "Fortune", "Healing", "Curses", "Day", "Night" } } ) end }