mirror of
https://github.com/RSS-Bridge/rss-bridge.git
synced 2024-11-25 02:46:15 +03:00
97 lines
3.1 KiB
PHP
97 lines
3.1 KiB
PHP
<?php
|
|
|
|
class HinduTamilBridge extends FeedExpander
|
|
{
|
|
const NAME = 'HinduTamil';
|
|
const URI = 'https://www.hindutamil.in';
|
|
const FEED_BASE_URL = 'https://feeds.feedburner.com/Hindu_Tamil_';
|
|
const DESCRIPTION = 'Retrieve full articles from hindutamil.in feeds';
|
|
const MAINTAINER = 'tillcash';
|
|
const PARAMETERS = [
|
|
[
|
|
'topic' => [
|
|
'name' => 'topic',
|
|
'type' => 'list',
|
|
'defaultValue' => 'crime',
|
|
'values' => [
|
|
'Astrology' => 'astrology',
|
|
'Blogs' => 'blogs',
|
|
'Business' => 'business',
|
|
'Cartoon' => 'cartoon',
|
|
'Cinema' => 'cinema',
|
|
'Crime' => 'crime',
|
|
'Discussion' => 'discussion',
|
|
'Education' => 'education',
|
|
'Environment' => 'environment',
|
|
'India' => 'india',
|
|
'Lifestyle' => 'life-style',
|
|
'Literature' => 'literature',
|
|
'Opinion' => 'opinion',
|
|
'Reporters' => 'reporters-page',
|
|
'Socialmedia' => 'social-media',
|
|
'Spirituals' => 'spirituals',
|
|
'Sports' => 'sports',
|
|
'Supplements' => 'supplements',
|
|
'Tamilnadu' => 'tamilnadu',
|
|
'Technology' => 'technology',
|
|
'Tourism' => 'tourism',
|
|
'World' => 'world',
|
|
],
|
|
],
|
|
'limit' => [
|
|
'name' => 'limit (max 100)',
|
|
'type' => 'number',
|
|
'defaultValue' => 10,
|
|
],
|
|
],
|
|
];
|
|
|
|
public function getName()
|
|
{
|
|
$topic = $this->getKey('topic');
|
|
return self::NAME . ($topic ? ' - ' . $topic : '');
|
|
}
|
|
|
|
public function collectData()
|
|
{
|
|
$limit = min(100, $this->getInput('limit'));
|
|
$url = self::FEED_BASE_URL . $this->getInput('topic');
|
|
$this->collectExpandableDatas($url, $limit);
|
|
}
|
|
|
|
protected function parseItem($item)
|
|
{
|
|
$dom = getSimpleHTMLDOMCached($item['uri']);
|
|
$content = $dom->find('#pgContentPrint', 0);
|
|
|
|
if ($content === null) {
|
|
return $item;
|
|
}
|
|
|
|
$item['timestamp'] = $this->getTimestamp($dom) ?? $item['timestamp'];
|
|
$item['content'] = $this->getImage($dom) . $this->cleanContent($content);
|
|
|
|
return $item;
|
|
}
|
|
|
|
private function cleanContent($content): string
|
|
{
|
|
foreach ($content->find('div[align="center"], script, .adsplacement') as $remove) {
|
|
$remove->outertext = '';
|
|
}
|
|
|
|
return $content->innertext;
|
|
}
|
|
|
|
private function getTimestamp($dom): ?string
|
|
{
|
|
$date = $dom->find('meta[property="article:published_time"]', 0);
|
|
return $date ? $date->getAttribute('content') : null;
|
|
}
|
|
|
|
private function getImage($dom): string
|
|
{
|
|
$image = $dom->find('meta[property="og:image"]', 0);
|
|
return $image ? sprintf('<p><img src="%s"></p>', $image->getAttribute('content')) : '';
|
|
}
|
|
}
|