Module:RandomArchiveVideo

From Tony Chase
Revision as of 21:35, 17 January 2024 by DaWhiteLouise (talk | contribs) (THE SATELLITE MAN IS MAKING ME USE TEMPORARY CODE)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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

-- Module:RandomVideoEmbedder

local p = {}

function p.main(frame)
    local xmlData = p.fetchXmlData()
    local videoUrl = p.getRandomVideoUrl(xmlData)
    return p.embedVideo(videoUrl)
end

function p.fetchXmlData()
    -- Fetch XML data from the server and return it as a string
    local url = 'https://tonyy.us-southeast-1.linodeobjects.com/'
    local result, data = pcall(mw.ext.http.get, url)
    if result then
        return data
    else
        return ''
    end
end

function p.getRandomVideoUrl(xmlData)
    -- Parse XML data and return a random video URL
    -- Implement your XML parsing logic here
    -- For simplicity, let's assume the XML contains video URLs as direct text content of 'video' elements
    local videos = mw.text.split(xmlData, '\n') -- Change this based on your actual XML structure
    return videos[math.random(#videos)]
end

function p.embedVideo(videoUrl)
    -- Use the Html5media widget to embed the video
    local width = 640
    local height = 360
    return mw.getCurrentFrame():expandTemplate{
        title = '#widget:Html5media',
        args = {
            url = videoUrl,
            width = width,
            height = height
        }
    }
end

return p