Image Uploader Scripting API
Loading...
Searching...
No Matches
parsing.h File Reference

Detailed Description

Parsing different formats

Contents

  1. Parsing JSON
  2. Parsing XML
  3. Parsing HTML with gumbo-query

Parsing JSON

local t = ParseJSON(nm.responseBody());
if (t!= null && "thumb_url" in t) {
WriteLog("info", t.thumb_url);
}

Parsing XML

function _GetUploadUrl() {
local xml = SimpleXml();
xml.LoadFromString(nm.responseBody());
local root = xml.GetRoot("response", false);
if (root.IsNull()) {
WriteLog("error", "[example.com]: Invalid response when getting upload URL");
return null;
}
local statusNode = root.GetChild("status", false);
if (statusNode.IsNull() || statusNode.Text() != "OK") {
WriteLog("error", "[example.com]: Error status when getting upload URL");
return null;
}
local urlNode = root.GetChild("url", false);
if (urlNode.IsNull()) {
WriteLog("error", "[example.com]: Upload URL not found in response");
return null;
}
return urlNode.Text();
}
Definition SimpleXml.h:138
void WriteLog(string type, string message)

Parsing HTML with gumbo-query

Gumbo-query is a library that provides CSS selector-like queries for Gumbo-Parser. Use ScriptAPI::Document class.

local txt = "<h1><a id=\"logo\" class=\"link\">some link</a></h1>";
local doc = Document(txt);
print(doc.find("h1 a").text()+"\r\n");
print(doc.find("h1 a").length()+"\r\n");
print(doc.find("#logo").attr("class")+"\r\n");
nm.doGet("https://svistunov.dev");
doc = Document(nm.responseBody());
doc.find("a").each( function(index,elem) {
print(elem.text()+"-\r\n");
});