Potřeboval jsem nějak parsovat RSS/RDF zdroje a zkusil jsem
lastRSS Vojtěcha Semeckého. Je skvělá, ale několik věcí mi na ní nevyhovovalo, proto jsem ji upravil, rozšířil a nabízím ji.
V první řadě mi nevyhovovala knihovna AutoCzech. Při zjišťování zdrojového kódování se dopouštěla chyb, proto jsem ji nahradil svojí knihovnou UTFCONV a doplnil jsem možnost explicitního určení kódování.
Dále jsem zjistil, že knihovna není schopna parsovat RSS 2.0 soubory ani RDF soubory, ve kterých se vyskytují atributy
dc:....
Při ukládání do cache v kódování UTF-8 se mi stalo, že některé uložené hodnoty nešlo získat zpět (stalo se mi to u RSS z iHNed).
Navíc jsem potřeboval zjistit u každého příspěvku, zda je starý nebo nový, tedy jestli už je uložen v cache.
Sednul jsem si tedy k tomu zdrojovému kódu a tyhle věci jsem změnil, doupravil a přeprogramoval.
Všechny své připomínky jsem poslal autorovi lastRSS, který mi odpověděl, že už má novou verzi připravenou a že se na mé úpravy podívá. Dal mi zároveň souhlas s tím, abych na jeho lastRSS založil novou vývojovou větev, kterou vám tímto představuji. Jmenuje se
finalRSS a nijak se samosebou netajím tím, že je postavena na skvělé
lastRSS.
Zvolil jsem cestu nové knihovny namísto úprav staré, protože předpokládám, že další vývoj povedu asi trošku jiným směrem než se bude ubírat vývoj lastRSS. Chystám například i parser pro stránky, aby bylo možné načítat obsah i z těch serverů, které nenabízejí RSS/RDF.
Pokud máte zájem, můžete si
finalRSS stáhnout, vyzkoušet a používat — je šířena pod licencí
GNU GPL a je na 95% kompatibilní s lastRSS (těch 5% jde na vrub jiné knihovně pro převod češtiny).
Ještě jednou děkuji
Vojtěchu Semeckému za skvělou knihovnu a za svolení, byť formální, s vytvořením další vývojové větve.
Aktualizace: Pro Adama Javůrka (viz komentáře) jsem udělal úpravu, která umožňuje číst a parsovat zdroje ve formátu CSV. Jsou přednastaveny tři zdroje (volny, pravednes a krátký pravednes) a můžete si i nadefinovat vlastní CSV formát v případě, že někdo nabízí obsah v nějaké nestandardní podobě.