Huonoja uutisia RSS-fiideistä. Nyt oli aikaa tutkia tarkemmin ja huomasin, että xenforon fiidit on tehty typerästi (taas kerran, niin monet tekee väärin, itse vuosien aikana auttanut jo niin montaa sivustoa fiidien kanssa että en edes muista kaikkia).
Esimerkkifiidi:
https://bbs.io-tech.fi/forums/tekniikkatarjoukset.101/index.rss
Ongelma 1:
Fiidiin päivitetään ketju aina uudestaan jos joku postaa siihen ketjuun, eli se ketju fiidin xml:ssä nousee ensimmäiseksi. Kuitenkin fiidin "content" elementin sisältö pysyy samana, eli aloituspostauksena. Fiidilukijassa tätä ei näy kuitenkaan uutena koska guid-element ei muutu (tässä ei vikaa, selvitys vain mitä tapahtuu). Tässä toteutuksessa ei ole mitään järkeä kenenkään kannalta. Ei sellaisen kannalta joka haluaisi seurata kaikkia viestejä tai sellaisen kannalta joka haluaisi ilmoitukset vain uusista ketjuista. Nykyinen xenforon fiidi on tavallaan typerästi toimiva "hybridi" näistä kahdesta käyttötapauksesta.
Uusien ketjujen ilmoitusten kannalta tästä tavasta tehdä fiidi seuraa ongelmia. Jos uusien viestien, mihin tahansa jo aiemmin tehtyihin eri ketjuihin, määrä kasvaa isommaksi kuin fiidin säädettyjen itemeiden (26 kpl tällä foorumilla) fiidin pollausvälin aikana, niin fiidilukija missaa jotain sisältöä.
Esimerkki 1: Feedly lukee fiidin sisällön 2 tunnin välein. Jos tuon ajan sisällä tehdään enemmän kuin 26 kpl:tta uusia ketjuja (oletetaan tässä esimerkissä että mitään muita viestejä ei tehdä) niin Feedly pollatessaan fiidiä näyttää vain viimeisimmät 26 päivitettyä uutta ketjua. Tämä on suurin virhe joka RSS fiidien teossa/suunnittelussa tehdään. Yleensä sivustot käyttävät default määrää itemeitä fiidissä (monesti 10 kpl) vaikka fiidiin tulee lyhyessä ajassa paljon päivityksiä. Tässä on myös syy miksi kehotan ihmisiä aina käyttämään jotain fiidipalvelua, esim. Feedly tai Inoreader, koska jos käyttää omalla koneellaan jotain feedlukijasoftaa, niin sen pitäisi olla käynnissä koko ajan pollaamassa seurattuja fiidejä. Jos kone on kiinni esim, nukkuessa, niin riski missata jotain feedien sisältöä kasvaa huomattavasti (esim. suomessa nukutaan kun jenkeissä päivitetään jotain fiidejä paljon). Feedly/Inoreader/muut käyttö ei tosin auta jos fiidin itemien määrä on väärin konffattu sisällön päivityksen suhteen. Esim. suomessa LevykauppaX:llä on tulevat julkaisut-fiidi jossa oli alunperin joku 10-50 kpl itemeitä (en muista enää tarkasti) ja kun he kerralla tuuttaavat kaikki sen hetken tulevat julkaisut (monesti useita satoja kerralla) sivuillensa ja siten myös fiidiinsä, niin fiidi missasi sisältöä paljonkin. Suosittelin heitä kasvattamaan itemeiden määrää 500 kpl:seen jotta fiidin seuraus olisi järkevää.
Esimerkki 2: Sampsan/tekkiläisten(?) tekemä tarjousrobotti pollaa xenforon fiidejä 10 minuutin välein ja tekee niiden perusteella niitä tarjousketjukoosteita. Jos tuon 10 minuutin sisällä tulee fiidiin päivityksiä enemmän kuin 26 kpl:tta, eli esim. jo tehdyissä eri ketjuissa keskustellaan raivokkaasti niin että 26 eri ketjua päivitetään fiidiin, niin sitä vanhemmat päivitykset fiidiin tietenkin jäävät tarjousbotilta näkemättä. Aikajanaesimerkki tästä:
12:00 Tarjousbotti pollaa
https://bbs.io-tech.fi/forums/tekniikkatarjoukset.101/index.rss fiidin.
12:01 Käyttäjät tekevät 5 uutta tarjousketjua.
12:02 - 12:09 Käyttäjät lähettävät 22:teen eri ketjuun alueella viestin/viestejä (ei aiemmin tehtyihin 5 uuteen ketjuun!).
12:10 Tarjousbotti pollaa
https://bbs.io-tech.fi/forums/tekniikkatarjoukset.101/index.rss fiidin.
= Kello 12:01 luotu ensimmäinen uusi tarjousketju ei näy tarjousbotille kun se 12:10 pollaa fiidin.
viestit luodaan ketjuun RSS:n kautta
Tämän voi ratkaista (jos ei koko fiidin luontia ei voi muokata toisenlaiseksi) sillä, että nostaa fiidin itemeiden määrän todella isoksi (sellaiseksi että ei varmasti voi ylittyä vaikka kuinka paljon olisi uusia viestejä/ketjuja per minuutti, tai minkälaista laskutapaa haluaakin ajatella). Siinä tietenkin tulee penalttia että luku kestää kauemmin ja käyttää resursseja enemmän.. mutta vaikuttaako se foorumin toimintaan kuinka, sitä en osaa sanoa.
Jos xenforon fiidiin tulisi vain uudet ketjut, niin ongelma ei olisi niin paha. Mutta silloinkin vain 26 uusinta ketjua näkyisi fiidilukijalle (on se mikä tahansa). Eli myös tuossa tapauksessa itemeiden määrää kannattaisi nostaa, mutta nykyisellä xenforon tavalla tehdä fiidit, itemeiden määrää pitäisi todellakin miettiä vieläkin isommaksi.
Ongelma 2:
Jos foorumiketjun otsikkoa muutetaan, se ketju nousee uutena RSS fiidiin koska "guid" elementti on konffattu väärin. Guid-elementin arvo pitäisi olla aina yksilöivä, jos se muuttuu, niin feed-lukijat (oikein toimivat!) tulkitsevat fiidin itemin uudeksi = tulee useampia ilmoituksia.
Esimerkki nykyisestä guid-elemetistä:
<guid>https://bbs.io-tech.fi/threads/tp-link-deco-p9-3-pack-verkkokauppa-com-149-90-eur.354703/</guid>
Millainen sen esim. pitäisi olla tällä foorumilla:
<guid isPermaLink="false">354703</guid>
Tässä käytetään vain ketjun numeroa joka ei muutu jos otsikkoa muutetaan. Tämä on sopiva sillä ehdolla, että foorumi ei ikinä uudelleenkäytä aiempia ketjunumeroita, ts. ketjujen numerointi aina kasvaa.
isPermaLink="false" pitää olla jos guid:ssa ei käytetä URL:ia.
Johtuu siitä, että viestiä on muokattu ja RSS-lukija tulkitsee sen uudeksi viestiksi. Täytyy koittaa säätää tai mahdollisesti estää tarjousten muokkaus.
Näköjään otsikon muokkaus pitää kieltää erikseen, nyt estetty eli ei pitäisi enää tulla tuplia.
Otsikon muokkauksen voi sallia jos saat muutettua guid-elementin kuten neuvoin.