Module:Bluesky RSS Feed

From NOISZ Wiki
Revision as of 13:12, 6 June 2025 by RiceEmpress (talk | contribs) (constructed it in a way that didn't rely on awkward wikitext construction and brute force preprocessing. this way you can edit the bluesky rss feed row template to change how it appears too)

Documentation for this module may be created at Module:Bluesky RSS Feed/doc


local capiunto = require 'capiunto'
local p = {}
function p.main(frame)

local posts = {}
posts["description"] = {}
posts["pubDate"] = {}
posts["link"] = {}
local rss_table = {}


local rss = mw.ext.externaldata.getWebData {
    url = 'https://bsky.app/profile/did:plc:ve2p3lz33ivtyikqztvsgtx3/rss'
  , data = {pubDate = 'pubDate', description = 'description', link= 'link'}
  , format = 'xml'
}
for k, v in ipairs(rss) do
	if string.find(v["description"],"NOISZ") and v["description"] and v["pubDate"] and v["link"] then
		local new_post = {}
		new_post["description"] = v["description"]
		new_post["pubDate"] = v["pubDate"]
		new_post["link"] = v["link"]
		table.insert(posts,new_post)
	end
end

for k, v in ipairs(posts) do
	rss_table[k] = frame:expandTemplate{title = 'Bluesky RSS Feed Row', args = {description = v["description"], pubDate = v["pubDate"], link=v["link"]}}
end

return table.concat(rss_table,"")


end

return p