Tweakers op Telegram - update!

Door Flippylosaurus op woensdag 1 juni 2016 11:24 - Reacties (18)
Categorie: PHP, Views: 4.895

Even vooraf: als jij de eigenaar bent/kent van @Tweakers (een kanaal dat al meerdere maanden platligt), PM me!
Hallo beste Tweakers,

Ik heb succesvol @TweakersChannel op Telegram in de lucht gezet! Dit is een channel die elke 5 minuten de laatste berichten van Tweakers.net uitspuugt. Het is geschreven in PHP (source code zal ik later op eigen Git repo zetten). Ik maak gebruik van de RSS feed. Het is ook leuk om even de obstakels te beschrijven voor degenen met interesse daarin :)

datetime() verwacht Long, heeft object gekregen

De library die ik gebruik om RSS uit te lezen (https://github.com/dg/rss-php) is helaas een beetje maf als het gaat om de timestamp die het uitspuugt. Als we het volgende:


code:
1
2
3
4
5
6
7
$rss = Feed::loadRss(RSS_URL);

foreach ($rss->item as $item) {
    $minimumtimestamp = time() - CRON_SYNC_TIME;
    $timestamp = $item->timestamp;
    echo date("H:i:s", $timestamp);
}



uitvoeren, krijgen we deze error:

PHP Warning: gmdate() expects parameter 2 to be long, object given in /root/cron/php-tweakers-bot/cron.php on line 139

Top. Als we echo door print_r vervangen, krijgen we dit:

code:
1
2
3
4
Object
{
        [0] => 123456789
}



Oftewel: de timestamp zit in een object. Moeilijk googelen, simpel opgelost:

code:
1
echo date("H:i:s", intval($timestamp));



That's it.

De raw RSS bevat een <img> tag

Ik weet niet wat er in die image hoort te zitten, maar het is gewoon wit/blanco. Dus:


code:
1
$descriptionStripped = preg_replace("/<[^>]*>/", '', $item->description);



That's it.

Ik hoop dat jullie wat aan het kanaal hebben :)

Update: de bot draait nu op @Tweakers en heeft nu (als test) de meuktracker weg, alleen lijkt het dat die feed heel erg vertraagt is... Ook staat de code nu op GitHub: https://github.com/Flippylosaurus/php-tweakers-bot