In 'Tmux om Tiny Tiny RSS te demoniseren'Â zei ik: "Voor mijn RSS-feeds gebruik ik Tiny Tiny RSS". Aangezien ik mijn RSS-feeds voornamelijk gebruik om bij te blijven op allerlei gebied en niet zozeer om over te bloggen, voldoet Tiny Tiny RSS uitstekend.
Wat echter, als je je RSS-feeds wel gebruikt om over te bloggen, zou het dan niet handiger kunnen dan iedere keer handmatig de links naar de potentieel interessante stukjes te moeten volgen in de browser? Natuurlijk zou dat kunnen. Toen iemand mij vroeg of automatisch bloggen mogelijk zou zijn in WordPress zei ik dan ook meteen ja, aangezien het mij sterk leek dat er nog niemand aan de mogelijkheid van automatisch bloggen met behulp van RSS-feeds gedacht zou hebben en ik dacht er dan ook vast wel een plugin (of plug-in, zoals sommige mensen zeggen) voor te kunnen vinden.
Ik vond er een aantal en heb uiteindelijk gekozen voor FeedWordPress, dat over zichzelf zegt:
"FeedWordPress is an Atom/RSS aggregator for WordPress. It syndicates content from feeds that you choose into your WordPress weblog; if you syndicate several feeds then you can use WordPress's posts database and templating engine as the back-end of an aggregation ("planet") website."
Van de door mij uitgeprobeerde plugins (als u gisteravond toevallig op mijn forum bent geweest (daar komt nooit iemand, dus dat zou wel erg toevallig zijn, doch dit terzijde) zou u daar iets van gemerkt kunnen hebben, daar er enige tientallen berichten in snel tempo verschenen en verdwenen als gevolg van mijn experimenten) bleek FeedWordPress het best te configureren te zijn, in dier voege dat je ervoor kunt kiezen om de te plaatsen berichten op te slaan als concept (of draft, als u het in het Engels doet), zodat je ze eerst kunt bewerken, of, als ze niet interessant genoeg zijn, meteen kunt weggooien.
Aangezien ik vind dat het niet aangaat andermans berichten zonder commentaar integraal op je eigen website te zetten, is de mogelijkheid om dat niet te doen volgens mij een onontbeerlijk deel van een feedagregator en FeedWordPress bleek die mogelijkheid dus te hebben. Op deze manier kun je zo'n beetje halfautomatisch bloggen. Er was echter een nadeel: bij het inlezen van de feeds kwamen er veel te veel oude stukken mee, zodat ik op een gegeven moment met meer dan 300 concepten zat, wat natuurlijk veel te veel is om nog iets nuttigs mee te kunnen doen. Als ik in Tiny Tiny RSS een paar duizend koppen te snellen heb, en geen tijd, dan kan ik heel eenvoudig alles als gelezen markeren. In FeedWordPress gaat dat niet. Sterker nog: nadat ik alle concepten verwijderd had, stonden ze er binnen de kortste keren weer.
Eerst heb ik nog gezocht naar een plugin om concepten snel te kunnen verwijderen door alle concepten van voor een bepaalde datum naar de prullenbak te verwijzen, maar ten eerste kon ik zo'n plugin niet vinden en ten tweede zou dat nog geen zoden aan de dijk gezet hebben, daar de verwijderde concepten hardnekkig terug zouden blijven komen zolang ze in de desbetreffende feed zouden staan. Dan blijf je aan de gang. Vandaar dat ik op de gedachte kwam dat er eerder ingegrepen moest worden. Ik moest ervoor zorgen dat oude berichten niet meer voor plaatsing in aanmerking zouden komen. Na enig zoeken en een beetje uitproberen ben ik daar in geslaagd. In het bestand feedwordpress/syndicatedpost.class.php heb ik boven "return $this->_freshness;" de volgende regels code ingevoegd:
$post_date_gmt = $this->published(array('default' => -1));
$tijd = time() - (24 * 60 * 60);
if($post_date_gmt < $tijd)
$this->_freshness = 0; // deze vier regels moeten voorkomen dat de database volloopt met oude posts. Of "<" klopt, weet ik nog niet.
Hiermee worden alleen berichten die niet ouder zijn dan vierentwintig uur nog verwerkt ("<" bleek namelijk wel degelijk te kloppen). Aangezien de feeds regelmatig gepolst worden, denk ik dat zes uur of nog minder ook zou moeten kunnen, maar stel dat een feed wegens technische problemen een halve dag uit de lucht is, dan zou je zomaar iets kunnen missen.
Of mijn oplossing de efficiëntste is en of het niet eleganter kan, weet ik niet. In zo'n geval kan het me niet zoveel schelen ook. Dan maar eens quick and dirty. En waarom ook niet?