rss-bridge/bridges/CarThrottleBridge.php

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

46 lines
1.4 KiB
PHP
Raw Normal View History

<?php
2023-08-25 12:34:35 +02:00
class CarThrottleBridge extends BridgeAbstract
{
2023-08-25 12:34:35 +02:00
const NAME = 'Car Throttle';
const URI = 'https://www.carthrottle.com/';
const DESCRIPTION = 'Get the latest car-related news from Car Throttle.';
const MAINTAINER = 't0stiman';
public function collectData()
{
2023-08-25 12:34:35 +02:00
$news = getSimpleHTMLDOMCached(self::URI . 'news')
or returnServerError('could not retrieve page');
2023-08-25 12:34:35 +02:00
$this->items[] = [];
2023-08-25 12:34:35 +02:00
//for each post
foreach ($news->find('div.cmg-card') as $post) {
$item = [];
2023-08-25 12:34:35 +02:00
$titleElement = $post->find('div.title a.cmg-link')[0];
$item['uri'] = self::URI . $titleElement->getAttribute('href');
$item['title'] = $titleElement->innertext;
2023-08-25 12:34:35 +02:00
$articlePage = getSimpleHTMLDOMCached($item['uri'])
or returnServerError('could not retrieve page');
2023-08-25 12:34:35 +02:00
$item['author'] = $articlePage->find('div.author div')[1]->innertext;
2023-08-25 12:34:35 +02:00
$dinges = $articlePage->find('div.main-body')[0];
//remove ads
foreach ($dinges->find('aside') as $ad) {
$ad->outertext = '';
$dinges->save();
}
2023-08-25 12:34:35 +02:00
$item['content'] = $articlePage->find('div.summary')[0] .
$articlePage->find('figure.main-image')[0] .
$dinges;
2023-08-25 12:34:35 +02:00
//add the item to the list
array_push($this->items, $item);
}
}
}