@tweakers op Telegram krijgt een "grootse" upgrade - at last!

Door Flippylosaurus op donderdag 12 april 2018 21:59 - Reacties (6)
Categorie: -, Views: 3.051

Ergens rond juni 2016 ging t.me/tweakers online. Geschreven met heel erg brakke PHP-kennis van een iets jongere Flippylosaurus als eerste echte projectje.
Sindsdien heeft de bot vrijwel non-stop achter elkaar het nieuws voortgebracht vanaf de RSS-feed (die trouwens vaak erg achterloopt, lezen jullie mee, IT department? ;)) naar Telegram, vrijwel vlekkeloos.

Het wordt tijd om 'm zijn welverdiende pensioen te gunnen. Na >11k posts te hebben weggestuurd en mij meerdere late nachten te hebben bezorgd ("godskolere, heb ik die code geschreven?") is het wel mooi geweest.


In plaats daarvan wordt de bot vervangen door een gloedjenieuw lapje Python-code (wat veel sneller is, PHP is geen scriptingtaal!!!!1) wat ook opensource is en altijd zal zijn. Het is expres gemaakt om makkelijk naar een andere feed om te kunnen gezet worden, en er zijn ook veel opties voor het configureren van bijvoorbeeld formattering van de output.

Het aanzetten van de bot is zo simpel als `./rss-to-tg.py https://example.org/feed.xml @je_kanaal 12345678:jebottoken` draaien. (Je kan zelfs naar gewone chats sturen, maar dat is ietwat ingewikkelder want je moet op een of andere manier - vaak met een andere bot - het chat ID achterhalen)

Deze bot draait al op @TweakersTest voor de geinterreseerden. Het is de bedoeling dat subscribers op het kanaal niks merken in negatieve zin.

Hier is een schematje voor de upgrade die wordt uitgevoerd:

* nu - 20 april: Gedrag in de gaten houden en eventuele issues oplossen
* 20 april: Controleren of stabiliteit op dit moment voldoende is, zo ja, doorgaan en geen non-bugfixende pullrequests toestaan, zo nee, datums verhuizen
* 27 april: Final go/no go. Verhuizen en tijdens het weekend operatie in de gaten houden

De broncode is te vinden op https://github.com/Flippylosaurus/rss-to-telegram. Iedereen staat vrij om pullrequests in te dienen. Onthoud daarbij dat dit een general purpose tool is en dus niet alleen zal worden gebruikt voor de Tweakers bot.

Tweakers op Telegram - update!

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

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

Tweakers vormt samen met Tweakers Elect, Hardware.Info, Autotrack, Nationale Vacaturebank en Intermediair de Persgroep Online Services B.V. © 1998 - 2018 Hosting door True