Kaaiman


Update: De man is onderhand met pensioen en het ding offline, en dat is prima.

Al ben ik allerminst onvoorwaardelijk fan van Koen Meulenaeres ‘vlijmscherpe column’, een RSS-feed leek me wel geestig.

Ook op de site van De Tijd bestaat Kaaiman in RSS-vorm, maar dan moet je er wel de schrijfsels van de andere columnisten bij nemen. Gelukkig bestaat er gewoon een webpagina met links naar de meest recente stukjes.

Dan: RSS-Bridge. Da’s een webtoepassing die het doodeenvoudig maakt om pagina’s met een (chronologisch) lijstje links om te zetten in een Atom‑ of JSON-feed.

En om aan RSS-Bridge een nieuwe bron aan toe te voegen, maak je gewoon een nieuw bestand1 aan in bridges. Een beetje zo, dus:

<?php

class KaaimanBridge extends BridgeAbstract
{
  const MAINTAINER = 'ochtendgrijs';
  const NAME = 'Kaaiman';
  const URI = 'https://www.tijd.be/dossiers/kaaiman.html';
  const CACHE_TIMEOUT = 3600;
  const DESCRIPTION = 'De vlijmscherpe column van Koen Meulenaere in De Tijd';

  public function collectData()
  {
    $pageUrl = self::URI;
    $html = getSimpleHTMLDOM($pageUrl) or returnServerError('Could not request Kaaiman: ' . $pageUrl);

    foreach ($html->find('div.c-articleteaser') as $element) {
      if (count($this->items) >= 10) {
        break;
      }

      $item = [
        'uri' => 'https://www.tijd.be' . $element->find('a.c-articleteaser__link', 0)->href,
        'title' => trim($element->find('div.c-articleteaser__title', 0)->plaintext),
        'content' => '<p>' . trim($element->find('div.c-articleteaser__text', 0)->plaintext) . '</p>',
      ];

      $this->items[] = $item;
    }
  }
}

Daarna voeg je alleen nog Kaaiman toe aan whitelist.txt, en klaar.

  1. Zelf gebruik ik Docker voor het draaien van RSS-Bridge, en volumes om dit nieuwe bestand naar de appcontainer te syncen.
Also on Mastodon

2 reacties

  1. Jan Boddez avatar

    Think I had something similar happen (with a custom “bridge,” though, not Twitter or anything) because it—or rather, I—couldn’t properly determine publish dates for the stream I was looking to “bridge.” Can’t recall if its feeds are generated on the fly, but if so, it could be that RSS-Bridge sets new dates all the time, confusing feed aggregators. Could also be the actual content keeps changing (due to ads or so), but most readers would simply ignore such updates.

  2. Jan avatar

    […] erg, zeg ik: dan maak ik er zelf een, met behulp van RSS-Bridge. En zo geschiedde. Ik deel de code later wel weer, zoals ik dat ook met https://ochtendgrijs.be/blog/kaaiman/ ooit heb […]