Module:Bluesky RSS Feed

From NOISZ Wiki
Revision as of 17:36, 6 June 2025 by RiceEmpress (talk | contribs) (are the comments breaking it?)

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:

24 Jun 2026 02:22 +0000
PROJEKT GODHAND and NOISZ are in the Steam Summer Sale! If you picked up NOISZ in the June 2unes Humble Bundle (you can still do this!!) and like what you see, it's a great chance to pick up DLC or check out our latest title...! #NOISZ #PK_GODHAND

🎨 @/buwakuda @/mochi070823

18 Jun 2026 04:04 +0000
NOISZ is in Humble Bundle's "June 2unes" rhythm game collection, alongside several other incredible and unique titles! Don't sleep on this bundle--any rhythm gamer is bound to find a new favorite somewhere in here! #NOISZ https://www.humblebundle.com/games/june-2unes

16 Jun 2026 23:52 +0000
Happy birthday to Arietta and Joker! Together or apart, they're here to (mostly) help in times both old and new. Scan the QR code for 24 hours of JOKER folder Cake Mode (bonus exp/drops)! #NOISZ_SL

08 Jun 2026 17:02 +0000
NOISZ is having its biggest sale ever--both as part of Steam Bullet Fest and on Nintendo eShop! Now's a great time to experience unique shmup/rhythm hybrid gameplay and the beginning of an unforgettable journey! #NOISZ

https://store.steampowered.com/app/681530/NOISZ/ https://www.nintendo.com/us/store/products/noisz-re-collection-g-switch/




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

local args = frame:getParent().args
local posts = {}
local searchTerms = {}

if args.term1 or args.term2 or args.term3 then
	searchTerms[1] = args.term1
	searchTerms[2] = args.term2
	searchTerms[3] = args.term3
else 
	searchTerms = {""}
end

local rss = mw.ext.externaldata.getWebData {
    url = args.url
  , data = {pubDate = 'pubDate', description = 'description', link= 'link'}
  , format = 'xml'
}


for k, v in ipairs(rss) do
	if v["description"] and v["pubDate"] and v["link"] and k > 1 then
		for a, b in pairs(searchTerms) do
			if string.find(v["description"],b) then
				table.insert(posts, frame:expandTemplate{title = 'Bluesky RSS Feed Row', args = {description = v["description"], pubDate = v["pubDate"], link=v["link"]}})
			end	
		end
	end
end

return table.concat(posts,"")


end

return p