Wikipedia "In the news" RSS

Most hogy végre rábukkantam egy olyan RSS aggregátorra, amitől nem sírom el magam öt perc után (jóllehet van néhány "rough edge"), elkezdetem körbenézni, honnan is akarok híreket gyűjteni.

Egyik kedvelt hírforrásom a Wikipedia "In the news" rovata (ami ott van a főoldal jobb felső sarkában, de van persze saját külön oldala is). Nincs szétposztolva baromságokkal, nem provinciális, és a Wikipediás linkek révén könnyen fellelhető a szóbanforgó témák háttere (egyszóval jó arra, hogy ne járjak úgy, mint a 2000-es amerikai elnökválasztással, ti. hogy csak két év múlva értesültem az egész szavazatújraszámlálós balhéról).

Rögtön be is akartam rakni a feedjét a listámba... amikor megdöbbenve láttam, hogy nincs feedje (ott van mellette ugyan a link a Wikinews társprojektre, aminek van feedje, azonban tévedés ne essék, az nem kibővítése az "In the news"-nak, és a fent számba vett feature-eknek híján van). Ennyit a Wikipedia web 2.0-ás mivoltával kapcsolatos hype-ról.

Szóval -- ha a hegy nem..., magad uram..., stb. -- pár sor Ruby révén megcsináltam a feedet magam: wikipedia-in_the_news.cgi. Két feladatot kellett ugyebár megoldani ezzel kapcsolatban: kiszedni a híreket az eredeti html kódból, ill összerakni ezeket úgy, hogy egy proper RSS feed legyen belőle.

Az előbbi pofonegyszerű a REXML könyvtár jóvoltából, ami meg az utóbbit illeti... már találkoztam ezzel problémával korábban is, és anno szintén megdöbbenve tapasztaltam, hogy nincs egy jó kis sztendelon RSS generátor könyvtár (habár RSS parser/aggregátor van egy rakat, ill. a webes keretrendszerek is megoldják maguknak az RSS generálást). Úgyhogy csináltam magamnak ilyet is, poormansnews néven fut. Technikailag úgy néz ki, hogy összecsaptam egy (veszteséges) XML-szerialízátort a XML-simple libre támaszkodva, s ezek után az RSS maga egy alkalmasan összeállított hash

#to_xml

metódusának hívásával állítható elő. (Azóta már találtam egy feltehetően nagyobb műgonddal megírt direkt XML szerializátor libet is.)

A kód maga itt van, ha valakit esetleg érdekelne.