Jump to content

Module:ExternalLink: Difference between revisions

From Archono Database
No edit summary
No edit summary
 
(2 intermediate revisions by the same user not shown)
Line 5: Line 5:
     if not webpage then return "No link provided" end
     if not webpage then return "No link provided" end


     local data = mw.ext.externalData.getExternalData({  -- Requires External Data extension
     local data, err = mw.ext.externalData.getExternalData(
         url = webpage,
         "url=" .. webpage,
         format = 'html'
         "format=pre",
     })
        "data=page_content"
     )
   
    if not data then
        return err
    end
 
    local content = data["page_content"] and data["page_content"][1]


    local body = data[1]
     if type(content) ~= "string" then
   
         return "Unexpected data type: " .. type(content)
     if type(body) == 'string' then
         local body = data[1]
        local title = body:match("<title>(.-)</title>")
        return title or webpage
    else
        return webpage .. " (fetching failed via External Data)"
     end
     end
    local title = content:match("<[Tt][Ii][Tt][Ll][Ee]>(.-)</%1>")
                  or content:match("<title>(.-)</title>")
    return title and mw.text.trim(title) or webpage
end
end


return p
return p

Latest revision as of 08:21, 30 April 2026

Documentation for this module may be created at Module:ExternalLink/doc

local p = {}

p.GetTitle = function(frame)
    local webpage = frame.args[1]
    if not webpage then return "No link provided" end

    local data, err = mw.ext.externalData.getExternalData(
        "url=" .. webpage,
        "format=pre",
        "data=page_content"
    )
    
    if not data then
        return err
    end

    local content = data["page_content"] and data["page_content"][1]

    if type(content) ~= "string" then
        return "Unexpected data type: " .. type(content)
    end

     local title = content:match("<[Tt][Ii][Tt][Ll][Ee]>(.-)</%1>")
                  or content:match("<title>(.-)</title>")

    return title and mw.text.trim(title) or webpage
end

return p