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)

This module is a custom-designed RSS feed, designed to process a Bluesky RSS feed and output it as a template. Up to three search keywords can be input - OR rather than AND - to find posts that mention any of the keywords. A Bluesky RSS feed can be found by going to any user's page, and typing /rss at the end of the URL before hitting enter.

Usage

{{Template:Bluesky RSS Feed
|url= Bluesky RSS feed URL
|term1= Optional search term
|term2= Optional search term
|term3= Optional search term
}}

Example

{{Template:Bluesky RSS Feed
|url=https://bsky.app/profile/did:plc:ve2p3lz33ivtyikqztvsgtx3/rss
|term1=#NOISZ
}}

Will yield:

17 Mar 2026 20:47 +0000
We're taking preorders until 3/29 for a single print run of NOISZ OSTs! These comprise a complete physical set of NOISZ's music, and are available alongside various NOISZ merch (plus GODHAND and Chronal Chain shirts!) #NOISZ merch.anarch.games https://merch.anarch.games

14 Mar 2026 05:29 +0000
We're hearing that some players using Android 16 are having trouble installing 2NDS+ (the NOISZ SL prequel VNs) from Google Play. We're making the .apk permanently available here as we look into a more user-friendly solution. #NOISZ_SL http://anarch.games/starlivht/2nds.apk

13 Mar 2026 01:28 +0000
♦️ Happy birthday to STΔRLIVHT's leader, Sera! The end of a long journey is a new beginning...

Scan the QR code for 24 hours of DIA folder cake mode (bonus EXP/drops)! ♦️ #NOISZ_SL

🎨 @/lilpalette.bsky.social

01 Mar 2026 05:12 +0000
In DEIFIED LINEAGE, experience 5 songs in two very different ways as they transcend the bounds of time. An upcoming DLC pack for NOISZ STΔRLIVHT and PROJEKT GODHAND! #NOISZ_SL #PK_GODHAND




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