feat(scraper): scrap module Signals section

This commit is contained in:
Aire-One 2022-10-23 21:15:17 +02:00
parent b1c3d80604
commit 43cc531cc4
2 changed files with 13 additions and 4 deletions

View File

@ -9,6 +9,7 @@ local record Module_Doc
constructors: List<Function_Info.Function_Info>
methods: List<Function_Info.Function_Info>
static_functions: List<Function_Info.Function_Info>
signals: List<string>
end
local __Module_Doc: metatable<Module_Doc> = {

View File

@ -8,6 +8,10 @@ local utils = require "utils"
local log = logger.log("scraper")
local function extract_node_text(node: scan.HTMLNode): string
return utils.sanitize_string(node:inner_text())
end
local function extract_function_name(function_name_node: scan.HTMLNode): string
return function_name_node and ((function_name_node.attr.name as string):gsub(".*:", ""))
end
@ -20,9 +24,7 @@ local function extract_function_return_types(function_return_types_node: scan.HT
local selector = "span.types .type"
local html = function_return_types_node:outer_html()
return scraper_utils.scrape(html, selector, function(node: scan.HTMLNode): string
return utils.sanitize_string(node:inner_text())
end)
return scraper_utils.scrape(html, selector, extract_node_text)
end
local function extract_section_functions(dl: string): { Function_Info.Function_Info }
@ -50,6 +52,12 @@ local function extract_section_functions(dl: string): { Function_Info.Function_I
)
end
local function extract_section_signal(dl: string): { string }
local selector = "dt strong"
return scraper_utils.scrape(dl, selector, extract_node_text)
end
local module = {}
function module.get_doc_from_page(html: string): Module_Doc.Module_Doc
@ -80,7 +88,7 @@ function module.get_doc_from_page(html: string): Module_Doc.Module_Doc
elseif section_name == "Object methods" then
module_doc.methods = List(extract_section_functions(dl_html))
elseif section_name == "Signals" then
log:warn("Not implemented: Signals")
module_doc.signals = List(extract_section_signal(dl_html))
else
error("Unknown section name: " .. section_name)
end