feedgen v0.3

Újabb feedgen kiadás, viszonylag sok újdonsággal (changelog lent).

Mi is ez?

A szkript segítségével olyan oldalakhoz is lehet figyelmeztető RSS-eket gyártani, amelyek nem rendelkeznek RSS-el.

Megvalósítás

A ötlet egyszerű: ha nincs rss az oldalon, akkor csináljunk mi! Kétszer lekérve egy weblapot megállapítható, hogy változott-e a tartalma. Egyszerűen csak össze kell hasonlítani a két lekérdezés eredményét. Ezt viszont megteheti helyettünk egy program is, ami a változásról rss-en keresztül értesít.

Az előző változat eltárolható egy adatbázisban (jelenleg sqlite), s időnként lekérdezve a figyelendő oldalakat folyamatosan frissíthető az rss (és az adatbázis). Hátrány, hogy egy adott oldalon belül nem kapunk minden hírről külön rss-t, csak egyet, ha megváltozik a megadott link tartalma, de a legtöbbször ez is elegendő.

Üzemmódok

Az rss kétféleképpen is generálható. Az online üzemmőd az rss.php meghívásakor lekérdezi a figyelendő weblapokat, s ezen új tartalmak alapján generálja az rss-t. Az offline, vagy cron-mód pedig például crontab-ból időzítve futtatja az rss.php-t, ami a generált rss-t az rss.xml fájlba menti. Utóbbi gyorsabb rss letöltést teszt lehetőve, nagyszámú megfigyelt weblap esetén a statikus fájlt hamarabb ki lehet szolgálni, mintha még akkor kellene várni a többi szerverre (amelyektől a megfigyelt oldalakat kell lekérdezni). Hátránya, hogy a legutóbbi a figyelendő weblapokról nem teljesen friss információkat ad.

Változásfigyelés

Mivel egy bájt megváltoztatása a html állományban még nem feltétlenül jelenti azt, hogy a tartalom is megváltozott, ezért az összehasonlításon kívül mást is figyelembe lehet venni ahhoz, hogy eldöntsük, ténylegesen változott-e egy weblap. Lehet alapozni a szervertől kapott http fejlécekben lévő dátumokra. Ez a legegyszerűbb megoldás, de a dinamikus előállított weboldalaknál ez általában mindig az aktuális időt jelenti. Statikus lapok figyelésére megfelelő ez a módszer (NORMAL).

A dinamikusan előállított lapok figyeléséhez megfelelő lehet, ha a megváltozott sorok számától tesszük függőve az új értesítések kiküldését. Jó példa ehhez a sok weblapon szereplő dátum. Ha ez megváltozik, akkor még nem biztos, hogy a figyelendő tartalom is változott. Ez tipikusan egy sort érint a szervertől kapott html forrásban. A DIFFLINES figyelési módnál megadható, hogy hány sornak kell ahhoz változnia legalább, hogy az rss fájlban is megjelenjen a változás.

Harmadik lehetőség a weblap méretének figyelése. Ha legalább n bájttal változik a lap mérete, akkor új rss rekordot készítünk, egyébként nem. Ezt a DIFFSIZE módszerrel lehet elérni.

További figyelési módok is lehetségesek, csak a megfelelő függvényeket kell hozzájuk megírni.

Rendszerkövetelmények

A fejlesztés és a tesztelés Debian GNU/Linux Sarge-on történt, történik, ugyanez a javasolt futtatási környezet is. Egyébként valószínűleg elfut minden linuxon, ahol van php4 és sqlite.

A php4-sqlite csomagra mindenképp szükség lesz.

Telepítés

1, kimtömörítés olyan helyre, ami webről elérhető:

tar xvzf feedgen-v0.3.tar.gz

2, config.inc.php testreszabása

3, rss.php hozzáadása az rss olvasó listájához

Changelog:

2005. 06. 14. - v0.3
- redesign
- újraírt kapcsoládási formák, választhatóak
- feldarabolás fájlokra
- némi phpDocumentor jellegű doksi
- UTF-8 forráskód, rss
- bugfixek, stb.

2005. 03-04. - v0.2 (kiadatlan verzió)
- socket_*() függvények használata shell_exec('lynx...') helyett
- sqlite-ba menti a korábbi adatokat az összehasonlításhoz
- proxy támogatás (lynx -ben volt eddig is)
- DIFFLINE módszer (hatékonyabb, mint a crc)
- dátumkiírás minden módszernél

Letöltés

feedgen-v0.3.tar.gz

Tartalom átvétel