Merge pull request #340 from LogMANOriginal/HarmonizeFormats

Harmonize formats
This commit is contained in:
Mitsu 2016-08-09 17:55:59 +02:00 committed by GitHub
commit 9f3e7e1da7
78 changed files with 198 additions and 294 deletions

View file

@ -112,9 +112,7 @@ The `Item` class is used to store parameter that are collected in the [`collectD
```PHP
$item->uri // URI to reach the subject ("http://...")
$item->thumbnailUri // URI for the thumbnail ("http://...")
$item->title // Title of the item
$item->name // Name of the item
$item->timestamp // Timestamp of the item in numeric format (use strtotime)
$item->author // Name of the author
$item->content // Content in HTML format
@ -138,9 +136,7 @@ The following list provides an overview of the parameters used by the other form
Parameter | ATOM | HTML | (M)RSS
----------|------|------|-------
`uri`|X|X|X
`thumbnailUri`||X
`title`|X|X|X
`name`|X||
`timestamp`|X|X|X
`author`|X|X|X
`content`|X|X|X

View file

@ -9,7 +9,7 @@ class ABCTabsBridge extends BridgeAbstract{
$this->name = "ABC Tabs Bridge";
$this->uri = "http://www.abc-tabs.com/";
$this->description = "Returns 22 newest tabs";
$this->update = "2016-08-06";
$this->update = "2016-08-09";
}
@ -21,7 +21,7 @@ class ABCTabsBridge extends BridgeAbstract{
foreach ($table->find('tr') as $tab)
{
$item = new \Item();
$item->name = $tab->find('td', 1)->plaintext . ' - ' . $tab->find('td', 2)->plaintext;
$item->author = $tab->find('td', 1)->plaintext . ' - ' . $tab->find('td', 2)->plaintext;
$item->title = $tab->find('td', 1)->plaintext . ' - ' . $tab->find('td', 2)->plaintext;
$item->content = 'Le ' . $tab->find('td', 0)->plaintext . '<br> Par: ' . $tab->find('td', 5)->plaintext . '<br> Type: ' . $tab->find('td', 3)->plaintext;
$item->id = 'http://www.abc-tabs.com' . $tab->find('td', 2)->find('a', 0)->getAttribute('href');

View file

@ -9,7 +9,7 @@ class AnimeUltimeBridge extends BridgeAbstract {
$this->name = 'Anime-Ultime';
$this->uri = 'http://www.anime-ultime.net/';
$this->description = 'Returns the 10 newest releases posted on Anime-Ultime';
$this->update = '2015-10-30';
$this->update = '2016-08-09';
$this->parameters[] =
'[
@ -86,7 +86,6 @@ class AnimeUltimeBridge extends BridgeAbstract {
$item_link_element = $release->find('td', 0)->find('a', 0);
$item_uri = $website.$item_link_element->href;
$item_name = html_entity_decode($item_link_element->plaintext);
$item_image = $website.substr($item_link_element->onmouseover, 37, strpos($item_link_element->onmouseover, ' ', 37) - 37);
$item_episode = html_entity_decode(str_pad($release->find('td', 1)->plaintext, 2, '0', STR_PAD_LEFT));
$item_fansub = $release->find('td', 2)->plaintext;
$item_type = $release->find('td', 4)->plaintext;
@ -108,7 +107,6 @@ class AnimeUltimeBridge extends BridgeAbstract {
$item->title = $item_name.' '.$item_type.' '.$item_episode;
$item->author = $item_fansub;
$item->timestamp = $item_date;
$item->thumbnailUri = $item_image;
$item->content = $item_description;
$this->items[] = $item;
$processedOK++;

View file

@ -9,7 +9,7 @@ class ArstechnicaBridge extends BridgeAbstract {
$this->name = "ArstechnicaBridge";
$this->uri = "http://arstechnica.com";
$this->description = "The PC enthusiast's resource. Power users and the tools they love, without computing religion";
$this->update = "01/08/2016";
$this->update = "2016-08-09";
}
@ -51,7 +51,6 @@ class ArstechnicaBridge extends BridgeAbstract {
$item = new \Item();
$item->title = StripCDATA($element->find('title', 0)->innertext);
$item->uri = StripCDATA($element->find('guid', 0)->plaintext);
$item->thumbnailUri = StripCDATA($element->find('enclosure', 0)->url);
$item->author = StripCDATA($element->find('author', 0)->innertext);
$item->timestamp = strtotime($element->find('pubDate', 0)->plaintext);
$item->content = ExtractContent($item->uri);

View file

@ -7,7 +7,7 @@ class Arte7Bridge extends BridgeAbstract{
$this->name = "Arte +7";
$this->uri = "http://www.arte.tv/";
$this->description = "Returns newest videos from ARTE +7";
$this->update = "2015-10-31";
$this->update = "2016-08-09";
$this->parameters["Catégorie (Français)"] =
'[
{
@ -147,12 +147,11 @@ class Arte7Bridge extends BridgeAbstract{
$hack_broadcast_time = strtok($hack_broadcast_time, 'T');
$hack_broadcast_time = strtok('T');
$item->timestamp = strtotime($element['scheduled_on'].'T'.$hack_broadcast_time);
$item->thumbnailUri = $element['thumbnail_url'];
$item->title = $element['title'];
if (!empty($element['subtitle']))
$item->title = $element['title'].' | '.$element['subtitle'];
$item->duration = round((int)$element['duration']/60);
$item->content = $element['teaser'].'<br><br>'.$item->duration.'min<br><a href="'.$item->uri.'"><img src="' . $item->thumbnailUri . '" /></a>';
$item->content = $element['teaser'].'<br><br>'.$item->duration.'min<br><a href="'.$item->uri.'"><img src="' . $element['thumbnail_url'] . '" /></a>';
$this->items[] = $item;
}
}

View file

@ -9,7 +9,7 @@ class BandcampBridge extends BridgeAbstract{
$this->name = "Bandcamp Tag";
$this->uri = "http://bandcamp.com/";
$this->description = "New bandcamp release by tag";
$this->update = "2014-05-25";
$this->update = "2016-08-09";
$this->parameters[] =
'[
@ -38,7 +38,7 @@ class BandcampBridge extends BridgeAbstract{
$uri = rtrim($uri, "')");
$item = new \Item();
$item->name = $release->find('div.itemsubtext',0)->plaintext . ' - ' . $release->find('div.itemtext',0)->plaintext;
$item->author = $release->find('div.itemsubtext',0)->plaintext . ' - ' . $release->find('div.itemtext',0)->plaintext;
$item->title = $release->find('div.itemsubtext',0)->plaintext . ' - ' . $release->find('div.itemtext',0)->plaintext;
$item->content = '<img src="' . $uri . '"/><br/>' . $release->find('div.itemsubtext',0)->plaintext . ' - ' . $release->find('div.itemtext',0)->plaintext;
$item->id = $release->find('a',0)->getAttribute('href');

View file

@ -7,7 +7,7 @@ class BlaguesDeMerdeBridge extends BridgeAbstract{
$this->name = "Blagues De Merde";
$this->uri = "http://www.blaguesdemerde.fr/";
$this->description = "Blagues De Merde";
$this->update = "2016-08-06";
$this->update = "2016-08-09";
}
@ -26,7 +26,7 @@ class BlaguesDeMerdeBridge extends BridgeAbstract{
$date = $element->find("li.bdm_date",0)->innertext;
$time = mktime(0, 0, 0, substr($date, 3, 2), substr($date, 0, 2), substr($date, 6, 4));
$item->timestamp = $time;
$item->name = $element->find("li.bdm_pseudo",0)->innertext;;
$item->author = $element->find("li.bdm_pseudo",0)->innertext;;
$this->items[] = $item;
}
}

View file

@ -7,7 +7,7 @@ class BooruprojectBridge extends BridgeAbstract{
$this->name = "Booruproject";
$this->uri = "http://booru.org/";
$this->description = "Returns images from given page and booruproject instance (****.booru.org)";
$this->update = "2015-09-12";
$this->update = "2016-08-09";
$this->parameters[] =
'[
@ -51,10 +51,9 @@ class BooruprojectBridge extends BridgeAbstract{
$item->uri = 'http://'.$param['i'].'.booru.org/'.$element->find('a', 0)->href;
$item->postid = (int)preg_replace("/[^0-9]/",'', $element->find('a', 0)->getAttribute('id'));
$item->timestamp = time();
$item->thumbnailUri = $element->find('img', 0)->src;
$item->tags = $element->find('img', 0)->getAttribute('title');
$item->title = 'Booruproject '.$param['i'].' | '.$item->postid;
$item->content = '<a href="' . $item->uri . '"><img src="' . $item->thumbnailUri . '" /></a><br>Tags: '.$item->tags;
$item->content = '<a href="' . $item->uri . '"><img src="' . $element->find('img', 0)->src . '" /></a><br>Tags: '.$item->tags;
$this->items[] = $item;
}
}

View file

@ -9,7 +9,7 @@ class CNETBridge extends BridgeAbstract {
$this->name = 'CNET News';
$this->uri = 'http://www.cnet.com/';
$this->description = 'Returns the newest articles. <br /> You may specify a topic found in some section URLs, else all topics are selected.';
$this->update = '2016-08-06';
$this->update = '2016-08-09';
$this->parameters[] =
'[
@ -59,7 +59,6 @@ class CNETBridge extends BridgeAbstract {
$article_title = trim($element->find('h2', 0)->plaintext);
$article_uri = 'http://www.cnet.com'.($element->find('a', 0)->href);
$article_thumbnail = $element->parent()->find('img', 0)->src;
$article_timestamp = strtotime($element->find('time.assetTime', 0)->plaintext);
$article_author = trim($element->find('a[rel=author]', 0)->plaintext);
@ -67,20 +66,10 @@ class CNETBridge extends BridgeAbstract {
$article_html = $this->file_get_html($article_uri) or $this->returnError('Could not request CNET: '.$article_uri, 500);
if (is_null($article_thumbnail))
$article_thumbnail = $article_html->find('div.originalImage', 0);
if (is_null($article_thumbnail))
$article_thumbnail = $article_html->find('span.imageContainer', 0);
if (is_object($article_thumbnail))
$article_thumbnail = $article_thumbnail->find('img', 0)->src;
$article_content = trim(CleanArticle(ExtractFromDelimiters($article_html, '<div class="articleContent', '<footer>')));
$item = new \Item();
$item->uri = $article_uri;
$item->thumbnailUri = $article_thumbnail;
$item->title = $article_title;
$item->author = $article_author;
$item->timestamp = $article_timestamp;

View file

@ -24,7 +24,7 @@ class CpasbienBridge extends HttpCachingBridgeAbstract{
$this->name = "Cpasbien Bridge";
$this->uri = "http://www.cpasbien.io";
$this->description = "Returns latest torrents from a request query";
$this->update = "2016-08-06";
$this->update = "2016-08-09";
$this->parameters[] =
'[
@ -57,7 +57,7 @@ class CpasbienBridge extends HttpCachingBridgeAbstract{
$htmlepisode=content_get_html($this->get_cached($episode->find('a', 0)->getAttribute('href')));
$item = new \Item();
$item->name = $episode->find('a', 0)->text();
$item->author = $episode->find('a', 0)->text();
$item->title = $episode->find('a', 0)->text();
$item->timestamp = $this->get_cached_time($episode->find('a', 0)->getAttribute('href'));
$textefiche=$htmlepisode->find('#textefiche', 0)->find('p',1);
@ -70,7 +70,6 @@ class CpasbienBridge extends HttpCachingBridgeAbstract{
$item->id = $episode->find('a', 0)->getAttribute('href');
$item->uri = $this->uri . $htmlepisode->find('#telecharger',0)->getAttribute('href');
$item->thumbnailUri = $htmlepisode->find('#bigcover', 0)->find('img',0)->getAttribute('src');
$this->items[] = $item;
}
}

View file

@ -9,7 +9,7 @@ class DailymotionBridge extends BridgeAbstract{
$this->name = "Dailymotion Bridge";
$this->uri = "https://www.dailymotion.com/";
$this->description = "Returns the 5 newest videos by username/playlist or search";
$this->update = "2016-08-02";
$this->update = "2016-08-09";
$this->parameters["By username"] =
'[
@ -83,10 +83,9 @@ class DailymotionBridge extends BridgeAbstract{
$item->id = str_replace('/video/', '', strtok($element->href, '_'));
$metadata = getMetadata($item->id);
$item->uri = $metadata['uri'];
$item->thumbnailUri = $metadata['thumbnailUri'];
$item->title = $metadata['title'];
$item->timestamp = $metadata['timestamp'];
$item->content = '<a href="' . $item->uri . '"><img src="' . $item->thumbnailUri . '" /></a><br><a href="' . $item->uri . '">' . $item->title . '</a>';
$item->content = '<a href="' . $item->uri . '"><img src="' . $metadata['thumbnailUri'] . '" /></a><br><a href="' . $item->uri . '">' . $item->title . '</a>';
$this->items[] = $item;
$count++;
}

View file

@ -7,7 +7,7 @@ class DanbooruBridge extends BridgeAbstract{
$this->name = "Danbooru";
$this->uri = "http://donmai.us/";
$this->description = "Returns images from given page";
$this->update = "2014-05-25";
$this->update = "2016-08-09";
$this->parameters[] =
'[
@ -37,10 +37,10 @@ class DanbooruBridge extends BridgeAbstract{
$item->uri = 'http://donmai.us'.$element->find('a', 0)->href;
$item->postid = (int)preg_replace("/[^0-9]/",'', $element->getAttribute('data-id'));
$item->timestamp = time();
$item->thumbnailUri = 'http://donmai.us'.$element->find('img', 0)->src;
$thumbnailUri = 'http://donmai.us'.$element->find('img', 0)->src;
$item->tags = $element->find('img', 0)->getAttribute('alt');
$item->title = 'Danbooru | '.$item->postid;
$item->content = '<a href="' . $item->uri . '"><img src="' . $item->thumbnailUri . '" /></a><br>Tags: '.$item->tags;
$item->content = '<a href="' . $item->uri . '"><img src="' . $thumbnailUri . '" /></a><br>Tags: '.$item->tags;
$this->items[] = $item;
}
}

View file

@ -7,7 +7,7 @@ class DemoBridge extends BridgeAbstract{
$this->name = "DemoBridge";
$this->uri = "http://github.com/sebsauvage/rss-bridge";
$this->description = "Bridge used for demos";
$this->update = "2015-11-03";
$this->update = "2016-08-09";
$this->parameters['testCheckbox'] =
'[
@ -54,12 +54,11 @@ class DemoBridge extends BridgeAbstract{
public function collectData(array $param){
$item = new \Item();
$item->name = "TestElement";
$item->author = "Me!";
$item->title = "Test";
$item->content = "Awesome content !";
$item->id = "Lalala";
$item->uri = "http://test.test/test";
$item->enclosures[] = "http://www.ardmediathek.de/ard/servlet/image/00/32/68/18/38/1135274624/16x9/960";
$this->items[] = $item;

View file

@ -7,7 +7,7 @@ class DilbertBridge extends BridgeAbstract {
$this->name = 'Dilbert Daily Strip';
$this->uri = 'http://dilbert.com';
$this->description = 'The Unofficial Dilbert Daily Comic Strip';
$this->update = "2016-08-06";
$this->update = "2016-08-09";
}
@ -29,7 +29,6 @@ class DilbertBridge extends BridgeAbstract {
$item = new \Item();
$item->uri = $url;
$item->thumbnailUri = $comic;
$item->title = $title;
$item->author = 'Scott Adams';
$item->timestamp = $date;

View file

@ -7,7 +7,7 @@ class DollbooruBridge extends BridgeAbstract{
$this->name = "Dollbooru";
$this->uri = "http://dollbooru.org/";
$this->description = "Returns images from given page";
$this->update = "2015-01-20";
$this->update = "2016-08-09";
$this->parameters[] =
@ -40,10 +40,10 @@ class DollbooruBridge extends BridgeAbstract{
$item->uri = 'http://dollbooru.org'.$element->href;
$item->postid = (int)preg_replace("/[^0-9]/",'', $element->getAttribute('data-post-id'));
$item->timestamp = time();
$item->thumbnailUri = 'http://dollbooru.org'.$element->find('img', 0)->src;
$thumbnailUri = 'http://dollbooru.org'.$element->find('img', 0)->src;
$item->tags = $element->getAttribute('data-tags');
$item->title = 'Dollbooru | '.$item->postid;
$item->content = '<a href="' . $item->uri . '"><img src="' . $item->thumbnailUri . '" /></a><br>Tags: '.$item->tags;
$item->content = '<a href="' . $item->uri . '"><img src="' . $thumbnailUri . '" /></a><br>Tags: '.$item->tags;
$this->items[] = $item;
}
}

View file

@ -6,7 +6,7 @@ class ElsevierBridge extends BridgeAbstract{
$this->name = 'Elsevier journals recent articles';
$this->uri = 'http://www.journals.elsevier.com';
$this->description = 'Returns the recent articles published in Elsevier journals';
$this->update = '2016-08-06';
$this->update = '2016-08-09';
$this->parameters[] =
'[
@ -69,7 +69,7 @@ class ElsevierBridge extends BridgeAbstract{
$item = new \Item();
$item->uri = $article->find('.pod-listing-header>a',0)->getAttribute('href').'?np=y';
$item->title = $article->find('.pod-listing-header>a',0)->plaintext;
$item->name = $this->ExtractArticleName($article);
$item->author = $this->ExtractArticleName($article);
$item->timestamp = $this->ExtractArticleTimestamp($article);
$item->content = $this->ExtractArticleContent($article);
$this->items[] = $item;

View file

@ -6,7 +6,7 @@ class EstCeQuonMetEnProdBridge extends BridgeAbstract {
$this->name = 'Est-ce qu\'on met en prod aujourd\'hui ?';
$this->uri = 'https://www.estcequonmetenprodaujourdhui.info/';
$this->description = 'Should we put a website in production today? (French)';
$this->update = "2016-08-06";
$this->update = "2016-08-09";
}
public function collectData(array $param) {
@ -20,16 +20,8 @@ class EstCeQuonMetEnProdBridge extends BridgeAbstract {
$html = $this->file_get_html($this->getURI()) or $this->returnError('Could not request EstCeQuonMetEnProd: '.$this->getURI(), 500);
$img = $html->find('img', 0);
if (is_object($img)) {
$img = $img->src;
if ($img[0] == '/')
$img = substr($this->getURI(), 0, strlen($this->getURI()) - 1).$img;
}
$item = new \Item();
$item->uri = $this->getURI().'#'.date('Y-m-d');
$item->thumbnailUri = $img;
$item->title = $this->getName();
$item->author = 'Nicolas Hoffmann';
$item->timestamp = strtotime('today midnight');

View file

@ -7,7 +7,7 @@ class FacebookBridge extends BridgeAbstract{
$this->name = "Facebook";
$this->uri = "http://www.facebook.com/";
$this->description = "Input a page title or a profile log. For a profile log, please insert the parameter as follow : myExamplePage/132621766841117";
$this->update = "2016-08-06";
$this->update = "2016-08-09";
$this->parameters[] =
'[
@ -197,15 +197,8 @@ class FacebookBridge extends BridgeAbstract{
if (strlen($title) > 64)
$title = substr($title, 0, strpos(wordwrap($title, 64), "\n")).'...';
//Use first image as thumbnail if available, or profile pic fallback
$thumbnail = $post->find('img', 1);
if (is_object($thumbnail))
$thumbnail = $thumbnail->src;
else $thumbnail = $profilePic;
//Build and add final item
$item->uri = 'https://facebook.com'.$post->find('abbr')[0]->parent()->getAttribute('href');
$item->thumbnailUri = $thumbnail;
$item->content = $content;
$item->title = $title;
$item->author = $author;

View file

@ -7,7 +7,7 @@ class FlickrExploreBridge extends BridgeAbstract{
$this->name = "Flickr Explore";
$this->uri = "https://www.flickr.com/explore";
$this->description = "Returns the latest interesting images from Flickr";
$this->update = "2016-07-30";
$this->update = "2016-08-09";
}
@ -30,8 +30,7 @@ class FlickrExploreBridge extends BridgeAbstract{
$item = new \Item();
$item->uri = 'https://flickr.com/photo.gne?id='.$imageID;
$item->thumbnailUri = $imageURI;
$item->content = '<a href="' . $item->uri . '"><img src="' . $item->thumbnailUri . '" /></a>'; // FIXME: Filter javascript ?
$item->content = '<a href="' . $item->uri . '"><img src="' . $imageURI . '" /></a>'; // FIXME: Filter javascript ?
$item->title = $imageJSON->photo->title->_content;
$this->items[] = $item;
}

View file

@ -7,7 +7,7 @@ class FlickrTagBridge extends BridgeAbstract{
$this->name = "Flickr TagUser";
$this->uri = "http://www.flickr.com/";
$this->description = "Returns the tagged or user images from Flickr";
$this->update = "2014-05-26";
$this->update = "2016-08-09";
$this->parameters["By keyword"] =
'[
@ -44,8 +44,8 @@ class FlickrTagBridge extends BridgeAbstract{
foreach($html->find('span.photo_container') as $element) {
$item = new \Item();
$item->uri = 'http://flickr.com'.$element->find('a',0)->href;
$item->thumbnailUri = $element->find('img',0)->getAttribute('data-defer-src');
$item->content = '<a href="' . $item->uri . '"><img src="' . $item->thumbnailUri . '" /></a>'; // FIXME: Filter javascript ?
$thumbnailUri = $element->find('img',0)->getAttribute('data-defer-src');
$item->content = '<a href="' . $item->uri . '"><img src="' . $thumbnailUri . '" /></a>'; // FIXME: Filter javascript ?
$item->title = $element->find('a',0)->title;
$this->items[] = $item;
}

View file

@ -7,7 +7,7 @@ class FootitoBridge extends BridgeAbstract{
$this->name = "Footito";
$this->uri = "http://www.footito.fr/";
$this->description = "Footito";
$this->update = "2016-08-06";
$this->update = "2016-08-09";
}
@ -36,7 +36,7 @@ class FootitoBridge extends BridgeAbstract{
$info = $element->find('div.infos', 0);
$item->timestamp = strtotime($info->find('time', 0)->datetime);
$item->name = $info->find('a.auteur', 0)->plaintext;
$item->author = $info->find('a.auteur', 0)->plaintext;
$this->items[] = $item;
}

View file

@ -8,7 +8,7 @@ class Freenews extends RssExpander {
$this->name = "Freenews";
$this->uri = "http://freenews.fr";
$this->description = "Un site d'actualité pour les freenautes (mais ne parlant pas que de la freebox). Ne rentrez pas d'id si vous voulez accéder aux actualités générales.";
$this->update = "26/03/2014";
$this->update = "2016-08-09";
$this->parameters[] =
'[
@ -38,7 +38,7 @@ class Freenews extends RssExpander {
$content = $articlePage->find('.post-container', 0);
$item->content = $content->innertext;
$item->name = $articlePage->find('a[rel=author]', 0)->innertext;
$item->author = $articlePage->find('a[rel=author]', 0)->innertext;
// format should parse 2014-03-25T16:21:20Z. But, according to http://stackoverflow.com/a/10478469, it is not that simple
$item->timestamp = $this->RSS_2_0_time_to_timestamp($newsItem);
return $item;

View file

@ -7,7 +7,7 @@ class FuturaSciencesBridge extends BridgeAbstract {
$this->name = 'Futura-Sciences Bridge';
$this->uri = 'http://www.futura-sciences.com/';
$this->description = 'Returns the newest articles.';
$this->update = '2016-08-06';
$this->update = '2016-08-09';
$this->parameters[] =
'[
@ -209,7 +209,6 @@ class FuturaSciencesBridge extends BridgeAbstract {
$item->author = ExtractAuthor($article, $element);
$item->uri = $article_url;
$item->title = StripCDATA($element->find('title', 0)->innertext);
$item->thumbnailUri = StripCDATA($element->find('enclosure', 0)->url);
$item->timestamp = strtotime(StripCDATA($element->find('pubDate', 0)->plaintext));
$item->content = trim($contents);
$this->items[] = $item;

View file

@ -9,7 +9,7 @@ class GBAtempBridge extends BridgeAbstract {
$this->name = 'GBAtemp';
$this->uri = $this->getURI();
$this->description = 'GBAtemp is a user friendly underground video game community.';
$this->update = '2016-08-06';
$this->update = '2016-08-09';
$this->parameters[] =
'[
@ -56,13 +56,12 @@ class GBAtempBridge extends BridgeAbstract {
} return $string;
}
private function build_item($uri, $title, $author, $timestamp, $thumnail, $content) {
private function build_item($uri, $title, $author, $timestamp, $content) {
$item = new \Item();
$item->uri = $uri;
$item->title = $title;
$item->author = $author;
$item->timestamp = $timestamp;
$item->thumbnailUri = $thumnail;
$item->content = $content;
return $item;
}
@ -97,17 +96,15 @@ class GBAtempBridge extends BridgeAbstract {
if ($typeFilter == 'N') {
foreach ($html->find('li[class=news_item full]') as $newsItem) {
$url = $this->getURI().$newsItem->find('a', 0)->href;
$img = $this->getURI().$newsItem->find('img', 0)->src;
$time = intval($this->ExtractFromDelimiters($newsItem->find('abbr.DateTime', 0)->outertext, 'data-time="', '"'));
$author = $newsItem->find('a.username', 0)->plaintext;
$title = $newsItem->find('a', 1)->plaintext;
$content = $this->fetch_post_content($url, $this->getURI());
$this->items[] = $this->build_item($url, $title, $author, $time, $img, $content);
$this->items[] = $this->build_item($url, $title, $author, $time, $content);
}
} else if ($typeFilter == 'R') {
foreach ($html->find('li.portal_review') as $reviewItem) {
$url = $this->getURI().$reviewItem->find('a', 0)->href;
$img = $this->getURI().$this->ExtractFromDelimiters($reviewItem->find('a', 0)->style, 'image:url(', ')');
$title = $reviewItem->find('span.review_title', 0)->plaintext;
$content = $this->file_get_html($url) or $this->returnError('Could not request GBAtemp: '.$uri, 500);
$author = $content->find('a.username', 0)->plaintext;
@ -118,7 +115,7 @@ class GBAtempBridge extends BridgeAbstract {
$procons = $content->find('table.review_procons', 0)->outertext;
$scores = $content->find('table.reviewscores', 0)->outertext;
$content = $this->cleanup_post_content($intro.$review.$subheader.$procons.$scores, $this->getURI());
$this->items[] = $this->build_item($url, $title, $author, $time, $img, $content);
$this->items[] = $this->build_item($url, $title, $author, $time, $content);
}
} else if ($typeFilter == 'T') {
foreach ($html->find('li.portal-tutorial') as $tutorialItem) {
@ -127,7 +124,7 @@ class GBAtempBridge extends BridgeAbstract {
$time = intval($this->ExtractFromDelimiters($tutorialItem->find('abbr.DateTime', 0)->outertext, 'data-time="', '"'));
$author = $tutorialItem->find('a.username', 0)->plaintext;
$content = $this->fetch_post_content($url, $this->getURI());
$this->items[] = $this->build_item($url, $title, $author, $time, '', $content);
$this->items[] = $this->build_item($url, $title, $author, $time, $content);
}
} else if ($typeFilter == 'F') {
foreach ($html->find('li.rc_item') as $postItem) {
@ -136,7 +133,7 @@ class GBAtempBridge extends BridgeAbstract {
$time = intval($this->ExtractFromDelimiters($postItem->find('abbr.DateTime', 0)->outertext, 'data-time="', '"'));
$author = $postItem->find('a.username', 0)->plaintext;
$content = $this->fetch_post_content($url, $this->getURI());
$this->items[] = $this->build_item($url, $title, $author, $time, '', $content);
$this->items[] = $this->build_item($url, $title, $author, $time, $content);
}
}
}

View file

@ -10,7 +10,7 @@ class Gawker extends RssExpander{
$this->name = "Gawker media";
$this->uri = "http://feeds.gawker.com/";
$this->description = "A bridge allowing access to any of the numerous Gawker media blogs (Lifehacker, deadspin, Kotaku, Jezebel, and so on. Notice you have to give its id to find the RSS stream in gawker maze";
$this->update = "27/03/2014";
$this->update = "2016-08-09";
$this->parameters[] =
'[
@ -53,7 +53,7 @@ class Gawker extends RssExpander{
$vcard = $articlePage->find('.vcard', 0);
if(is_object($vcard)) {
$authorLink = $vcard->find('a', 0);
$item->name = $authorLink->innertext;
$item->author = $authorLink->innertext;
// TODO use author link href to fill the feed info
}
// $this->message("item quite loaded : ".var_export($item, true));

View file

@ -7,7 +7,7 @@ class GelbooruBridge extends BridgeAbstract{
$this->name = "Gelbooru";
$this->uri = "http://gelbooru.com/";
$this->description = "Returns images from given page";
$this->update = "2014-05-25";
$this->update = "2016-08-09";
$this->parameters[] =
'[
@ -42,10 +42,10 @@ class GelbooruBridge extends BridgeAbstract{
$item->uri = 'http://gelbooru.com/'.$element->find('a', 0)->href;
$item->postid = (int)preg_replace("/[^0-9]/",'', $element->getAttribute('id'));
$item->timestamp = time();
$item->thumbnailUri = $element->find('img', 0)->src;
$thumbnailUri = $element->find('img', 0)->src;
$item->tags = $element->find('img', 0)->getAttribute('alt');
$item->title = 'Gelbooru | '.$item->postid;
$item->content = '<a href="' . $item->uri . '"><img src="' . $item->thumbnailUri . '" /></a><br>Tags: '.$item->tags;
$item->content = '<a href="' . $item->uri . '"><img src="' . $thumbnailUri . '" /></a><br>Tags: '.$item->tags;
$this->items[] = $item;
}
}

View file

@ -12,7 +12,7 @@ class GithubIssueBridge extends BridgeAbstract{
$this->name = 'Github Issue';
$this->uri = '';
$this->description = 'Returns the comments of a github project issue';
$this->update = '2016-06-25';
$this->update = '2016-08-09';
$this->parameters[]=
'[
@ -40,7 +40,7 @@ class GithubIssueBridge extends BridgeAbstract{
foreach($html->find('.js-comment-container') as $comment){
$item = new \Item();
$item->name=$comment->find('img',0)->getAttribute('alt');
$item->author=$comment->find('img',0)->getAttribute('alt');
$comment=$comment->firstChild()->nextSibling();

View file

@ -12,7 +12,7 @@ class GitlabCommitsBridge extends BridgeAbstract{
$this->name = 'Gitlab Commits';
$this->uri = '';
$this->description = 'Returns the commits of a project hosted on a gitlab instance';
$this->update = '2016-08-06';
$this->update = '2016-08-09';
$this->parameters[] =
'[
@ -64,7 +64,7 @@ class GitlabCommitsBridge extends BridgeAbstract{
$item->title=$a->plaintext;
}
if(in_array('commit-author-link',$classes)){
$item->name=trim($a->plaintext);
$item->author=trim($a->plaintext);
}
}

View file

@ -10,7 +10,7 @@ class HDWallpapersBridge extends BridgeAbstract {
$this->name = "HD Wallpapers Bridge";
$this->uri = "http://www.hdwallpapers.in/";
$this->description = "Returns the latests wallpapers from HDWallpapers";
$this->update = "2015-04-08";
$this->update = "2016-08-09";
$this->parameters[] =
'[
@ -63,8 +63,7 @@ class HDWallpapersBridge extends BridgeAbstract {
$item->uri = $baseUri.'/download'.str_replace('wallpapers.html', $this->resolution.'.jpg', $element->href);
$item->timestamp = time();
$item->title = $element->find('p', 0)->text();
$item->thumbnailUri = $baseUri.$thumbnail->src;
$item->content = $item->title.'<br><a href="'.$item->uri.'"><img src="'.$item->thumbnailUri.'" /></a>';
$item->content = $item->title.'<br><a href="'.$item->uri.'"><img src="'.$baseUri.$thumbnail->src.'" /></a>';
$this->items[] = $item;
$num++;

View file

@ -7,7 +7,7 @@ class HentaiHavenBridge extends BridgeAbstract{
$this->name = "Hentai Haven";
$this->uri = "http://hentaihaven.org/";
$this->description = "Returns releases from Hentai Haven";
$this->update = "2016-08-06";
$this->update = "2016-08-09";
}
@ -16,10 +16,10 @@ class HentaiHavenBridge extends BridgeAbstract{
foreach($html->find('div.zoe-grid') as $element) {
$item = new \Item();
$item->uri = $this->getURI().$element->find('div.brick-content h3 a', 0)->href;
$item->thumbnailUri = $element->find('a.thumbnail-image img', 0)->getAttribute('data-src');
$thumbnailUri = $element->find('a.thumbnail-image img', 0)->getAttribute('data-src');
$item->title = mb_convert_encoding(trim($element->find('div.brick-content h3 a', 0)->innertext), 'UTF-8', 'HTML-ENTITIES');
$item->tags = $element->find('div.oFlyout_bg div.oFlyout div.flyoutContent span.tags', 0)->plaintext;
$item->content = 'Tags: ' . $item->tags.'<br><br><a href="' . $item->uri . '"><img width="300" height="169" src="' . $item->thumbnailUri . '" /></a><br>' . $element->find('div.oFlyout_bg div.oFlyout div.flyoutContent p.description', 0)->innertext;
$item->content = 'Tags: ' . $item->tags.'<br><br><a href="' . $item->uri . '"><img width="300" height="169" src="' . $thumbnailUri . '" /></a><br>' . $element->find('div.oFlyout_bg div.oFlyout div.flyoutContent p.description', 0)->innertext;
$this->items[] = $item;
}
}

View file

@ -6,7 +6,7 @@ class JapanExpoBridge extends BridgeAbstract{
$this->name = 'JapanExpo';
$this->uri = 'http://www.japan-expo-paris.com/fr/actualites';
$this->description = 'Returns most recent entries from Japan Expo actualités.';
$this->update = '2016-06-12';
$this->update = '2016-08-09';
$this->parameters[] =
'[
{
@ -96,7 +96,6 @@ class JapanExpoBridge extends BridgeAbstract{
$item->uri = $url;
$item->title = $title;
$item->timestamp = $timestamp;
$item->thumbnailUri = $thumbnail;
$item->content = $content;
$this->items[] = $item;
$count++;

View file

@ -7,7 +7,7 @@ class KonachanBridge extends BridgeAbstract{
$this->name = "Konachan";
$this->uri = "http://konachan.com/";
$this->description = "Returns images from given page";
$this->update = "2014-05-25";
$this->update = "2016-08-09";
$this->parameters[] =
'[
@ -44,9 +44,8 @@ class KonachanBridge extends BridgeAbstract{
$item->postid = $json['id'];
$item->timestamp = $json['created_at'];
$item->imageUri = $json['file_url'];
$item->thumbnailUri = $json['preview_url'];
$item->title = 'Konachan | '.$json['id'];
$item->content = '<a href="' . $item->imageUri . '"><img src="' . $item->thumbnailUri . '" /></a><br>Tags: '.$json['tags'];
$item->content = '<a href="' . $item->imageUri . '"><img src="' . $json['preview_url'] . '" /></a><br>Tags: '.$json['tags'];
$this->items[] = $item;
}
}

View file

@ -12,7 +12,7 @@ class LWNprevBridge extends BridgeAbstract{
$this->name = 'LWN Free Weekly Edition';
$this->uri = 'https://lwn.net/free/bigpage';
$this->description = 'LWN Free Weekly Edition available one week late';
$this->update = '2016-19-01';
$this->update = '2016-08-09';
}
@ -88,14 +88,14 @@ class LWNprevBridge extends BridgeAbstract{
switch($h2NextSibling->getAttribute('class')){
case 'FeatureByline':
$item->name=$h2NextSibling->getElementsByTagName('b')->item(0)->textContent;
$item->author=$h2NextSibling->getElementsByTagName('b')->item(0)->textContent;
break;
case 'GAByline':
$text=$h2NextSibling->textContent;
$item->name=substr($text,strpos($text,'by '));
$item->author=substr($text,strpos($text,'by '));
break;
default:
$item->name='LWN';
$item->author='LWN';
break;
};

View file

@ -7,7 +7,7 @@ class LeMondeInformatiqueBridge extends BridgeAbstract {
$this->name = "Le Monde Informatique";
$this->uri = "http://www.lemondeinformatique.fr/";
$this->description = "Returns the newest articles.";
$this->update = "2016-01-28";
$this->update = "2016-08-09";
}
@ -45,14 +45,12 @@ class LeMondeInformatiqueBridge extends BridgeAbstract {
$article_uri = substr($article_uri, strpos($article_uri, '<link>') + 6);
$article_uri = substr($article_uri, 0, strpos($article_uri, '</link>'));
$article_html = $this->file_get_html($article_uri) or $this->returnError('Could not request LeMondeInformatique: '.$article_uri, 500);
$thumbnailUri = $article_html->find('div#article', 0)->find('img#illustration', 0)->src;
$article_content = CleanArticle($article_html->find('div#article', 0)->innertext);
$article_title = $article_html->find('h1.cleanprint-title', 0)->plaintext;
//Build and add final item
$item = new \Item();
$item->uri = $article_uri;
$item->thumbnailUri = $thumbnailUri;
$item->title = $article_title;
$item->author = StripCDATA($element->find('dc:creator', 0)->innertext);
$item->timestamp = strtotime($element->find('dc:date', 0)->plaintext);

View file

@ -10,7 +10,7 @@ class Les400Culs extends RssExpander{
$this->name = "Les 400 Culs";
$this->uri = "http://sexes.blogs.liberation.fr";
$this->description = "La planete sexe vue par Agnes Girard via rss-bridge";
$this->update = "20/02/2014";
$this->update = "2016-08-09";
}
@ -34,7 +34,7 @@ class Les400Culs extends RssExpander{
// $content = $articlePage->find('.post-container', 0);
$item->content = (string) $newsItem->description;
$item->name = (string) $newsItem->author;
$item->author = (string) $newsItem->author;
$item->timestamp = $this->RSS_2_0_time_to_timestamp($newsItem);
return $item;
}

View file

@ -7,7 +7,7 @@ class LesJoiesDuCodeBridge extends BridgeAbstract{
$this->name = "Les Joies Du Code";
$this->uri = "http://lesjoiesducode.fr/";
$this->description = "LesJoiesDuCode";
$this->update = "2016-08-06";
$this->update = "2016-08-09";
}
@ -36,7 +36,7 @@ class LesJoiesDuCodeBridge extends BridgeAbstract{
if($pos > 0)
{
$auteur = trim(str_replace("*/", "", substr($auteur->innertext, ($pos + 2))));
$item->name = $auteur;
$item->author = $auteur;
}

View file

@ -7,7 +7,7 @@ class LinkedInCompany extends BridgeAbstract{
$this->name = "LinkedIn Company";
$this->uri = "https://www.linkedin.com/";
$this->description = "Returns most recent actus from Company on LinkedIn. (https://www.linkedin.com/company/<strong style=\"font-weight:bold;\">apple</strong>)";
$this->update = "2015-12-22";
$this->update = "2016-08-09";
$this->parameters[] =
'[
@ -31,7 +31,6 @@ class LinkedInCompany extends BridgeAbstract{
$item->uri = $link;
$item->title = mb_substr(strip_tags($element->find('span.share-body', 0)->innertext), 0 ,100);
$item->content = strip_tags($element->find('span.share-body', 0)->innertext);
$item->thumbnailUri = htmlspecialchars_decode($element->find('img', 0)->attr['data-li-lazy-load-src']);
$this->items[] = $item;
$i++;
}

View file

@ -7,7 +7,7 @@ class LolibooruBridge extends BridgeAbstract{
$this->name = "Lolibooru";
$this->uri = "http://lolibooru.moe/";
$this->description = "Returns images from given page and tags";
$this->update = "2015-03-21";
$this->update = "2016-08-09";
$this->parameters[] =
'[
@ -45,9 +45,8 @@ class LolibooruBridge extends BridgeAbstract{
$item->postid = $json['id'];
$item->timestamp = $json['created_at'];
$item->imageUri = $json['file_url'];
$item->thumbnailUri = $json['preview_url'];
$item->title = 'Lolibooru | '.$json['id'];
$item->content = '<a href="' . $item->imageUri . '"><img src="' . $item->thumbnailUri . '" /></a><br>Tags: '.$json['tags'];
$item->content = '<a href="' . $item->imageUri . '"><img src="' . $json['preview_url'] . '" /></a><br>Tags: '.$json['tags'];
$this->items[] = $item;
}
}

View file

@ -8,7 +8,7 @@ class MangareaderBridge extends BridgeAbstract{
$this->name = "Mangareader Bridge";
$this->uri = "http://www.mangareader.net";
$this->description = "Returns the latest updates, popular mangas or manga updates (new chapters)";
$this->update = "2016-01-22";
$this->update = "2016-08-09";
$this->parameters["Get latest updates"] = '[]';
$this->parameters["Get popular mangas"] =
@ -281,15 +281,15 @@ class MangareaderBridge extends BridgeAbstract{
// The thumbnail is encrypted in a css-style...
// format: "background-image:url('<the part which is actually interesting>')"
$mangaimgelement = $xpath->query(".//*[@class='imgsearchresults']", $manga)->item(0)->getAttribute('style');
$thumbnail = substr($mangaimgelement, 22, strlen($mangaimgelement) - 24);
$item = new \Item();
$item->title = htmlspecialchars($xpath->query(".//*[@class='manga_name']//a", $manga)->item(0)->nodeValue);
$item->uri = 'http://www.mangareader.net' . $xpath->query(".//*[@class='manga_name']//a", $manga)->item(0)->getAttribute('href');
$item->author = htmlspecialchars($xpath->query("//*[@class='author_name']", $manga)->item(0)->nodeValue);
$item->chaptercount = $xpath->query(".//*[@class='chapter_count']", $manga)->item(0)->nodeValue;
$item->genre = htmlspecialchars($xpath->query(".//*[@class='manga_genre']", $manga)->item(0)->nodeValue);
$item->thumbnailUri = substr($mangaimgelement, 22, strlen($mangaimgelement) - 24);
$item->content = '<a href="' . $item->uri . '"><img src="' . $item->thumbnailUri . '" alt="' . $item->title . '" /></a><p>' . $item->genre . '</p><p>' . $item->chaptercount . '</p>';
$item->content = '<a href="' . $item->uri . '"><img src="' . $thumbnail . '" alt="' . $item->title . '" /></a><p>' . $item->genre . '</p><p>' . $item->chaptercount . '</p>';
$this->items[] = $item;
}
}

View file

@ -7,7 +7,7 @@ class MilbooruBridge extends BridgeAbstract{
$this->name = "Milbooru";
$this->uri = "http://sheslostcontrol.net/moe/shimmie/";
$this->description = "Returns images from given page";
$this->update = "2014-05-25";
$this->update = "2016-08-09";
$this->parameters[] =
'[
@ -39,10 +39,10 @@ class MilbooruBridge extends BridgeAbstract{
$item->uri = 'http://sheslostcontrol.net/moe/shimmie/'.$element->find('a', 0)->href;
$item->postid = (int)preg_replace("/[^0-9]/",'', $element->find('a', 0)->getAttribute('data-post-id'));
$item->timestamp = time();
$item->thumbnailUri = 'http://sheslostcontrol.net/moe/shimmie/'.$element->find('img', 0)->src;
$thumbnailUri = 'http://sheslostcontrol.net/moe/shimmie/'.$element->find('img', 0)->src;
$item->tags = $element->find('a', 0)->getAttribute('data-tags');
$item->title = 'Milbooru | '.$item->postid;
$item->content = '<a href="' . $item->uri . '"><img src="' . $item->thumbnailUri . '" /></a><br>Tags: '.$item->tags;
$item->content = '<a href="' . $item->uri . '"><img src="' . $thumbnailUri . '" /></a><br>Tags: '.$item->tags;
$this->items[] = $item;
}
}

View file

@ -7,7 +7,7 @@ class MspabooruBridge extends BridgeAbstract{
$this->name = "Mspabooru";
$this->uri = "http://mspabooru.com/";
$this->description = "Returns images from given page";
$this->update = "2014-05-25";
$this->update = "2016-08-09";
$this->parameters[] =
'[
@ -42,10 +42,10 @@ class MspabooruBridge extends BridgeAbstract{
$item->uri = 'http://mspabooru.com/'.$element->find('a', 0)->href;
$item->postid = (int)preg_replace("/[^0-9]/",'', $element->getAttribute('id'));
$item->timestamp = time();
$item->thumbnailUri = $element->find('img', 0)->src;
$thumbnailUri = $element->find('img', 0)->src;
$item->tags = $element->find('img', 0)->getAttribute('alt');
$item->title = 'Mspabooru | '.$item->postid;
$item->content = '<a href="' . $item->uri . '"><img src="' . $item->thumbnailUri . '" /></a><br>Tags: '.$item->tags;
$item->content = '<a href="' . $item->uri . '"><img src="' . $thumbnailUri . '" /></a><br>Tags: '.$item->tags;
$this->items[] = $item;
}
}

View file

@ -6,7 +6,7 @@ class NakedSecurityBridge extends BridgeAbstract {
$this->name = 'Naked Security';
$this->uri = 'https://nakedsecurity.sophos.com/';
$this->description = 'Returns the newest articles.';
$this->update = '2016-08-06';
$this->update = '2016-08-09';
}
public function collectData(array $param) {
@ -60,7 +60,6 @@ class NakedSecurityBridge extends BridgeAbstract {
$item = new \Item();
$item->uri = $article_uri;
$item->title = $article_title;
$item->thumbnailUri = $article_image;
$item->author = $article_html->find('a[rel=author]', 0)->plaintext;
$item->timestamp = strtotime($element->find('pubDate', 0)->plaintext);
$item->content = $article_content;

View file

@ -6,7 +6,7 @@ class NeuviemeArtBridge extends BridgeAbstract {
$this->name = "9ème Art";
$this->uri = "http://www.9emeart.fr/";
$this->description = "Returns the newest articles.";
$this->update = "2016-08-06";
$this->update = "2016-08-09";
}
public function collectData(array $param) {
@ -46,7 +46,6 @@ class NeuviemeArtBridge extends BridgeAbstract {
$item = new \Item();
$item->uri = $article_uri;
$item->title = $article_title;
$item->thumbnailUri = $element->find('enclosure', 0)->url;
$item->author = $article_html->find('a[class=upp transition_fast upp]', 0)->plaintext;
$item->timestamp = strtotime($element->find('pubDate', 0)->plaintext);
$item->content = $article_content;

View file

@ -6,7 +6,7 @@ class NextInpactBridge extends BridgeAbstract {
$this->name = "NextInpact Bridge";
$this->uri = "http://www.nextinpact.com/";
$this->description = "Returns the newest articles.";
$this->update = "2016-08-06";
$this->update = "2016-08-09";
}
private function StripCDATA($string) {
@ -35,7 +35,6 @@ class NextInpactBridge extends BridgeAbstract {
$item = new \Item();
$item->title = $this->StripCDATA($element->find('title', 0)->innertext);
$item->uri = $this->StripCDATA($element->find('guid', 0)->plaintext);
$item->thumbnailUri = $this->StripCDATA($element->find('enclosure', 0)->url);
$item->author = $this->StripCDATA($element->find('creator', 0)->innertext);
$item->timestamp = strtotime($element->find('pubDate', 0)->plaintext);
$item->content = $this->ExtractContent($item->uri);

View file

@ -7,7 +7,7 @@ class NextgovBridge extends BridgeAbstract {
$this->name = 'Nextgov Bridge';
$this->uri = 'https://www.nextgov.com/';
$this->description = 'USA Federal technology news, best practices, and web 2.0 tools.';
$this->update = '2016-08-06';
$this->update = '2016-08-09';
$this->parameters[] =
'[
@ -79,14 +79,10 @@ class NextgovBridge extends BridgeAbstract {
.'<p><b>'.$article_subtitle.'</b></p>'
.trim($contents);
if ($article_thumbnail == '')
$article_thumbnail = 'http://cdn.nextgov.com/nextgov/images/logo.png';
$item = new \Item();
$item->uri = $article_url;
$item->title = $article_title;
$item->author = $article_author;
$item->thumbnailUri = $article_thumbnail;
$item->timestamp = $article_timestamp;
$item->content = $contents;
$this->items[] = $item;

View file

@ -11,7 +11,7 @@ class PickyWallpapersBridge extends BridgeAbstract {
$this->name = "PickyWallpapers Bridge";
$this->uri = "http://www.pickywallpapers.com/";
$this->description = "Returns the latests wallpapers from PickyWallpapers";
$this->update = "2014-03-31";
$this->update = "2016-08-09";
$this->parameters[] =
'[
@ -68,7 +68,6 @@ class PickyWallpapersBridge extends BridgeAbstract {
$item->uri = str_replace('www', 'wallpaper', $baseUri).'/'.$this->resolution.'/'.basename($element->src);
$item->timestamp = time();
$item->title = $element->alt;
$item->thumbnailUri = $element->src;
$item->content = $item->title.'<br><a href="'.$item->uri.'">'.$element.'</a>';
$this->items[] = $item;

View file

@ -5,6 +5,7 @@ class RTBFBridge extends BridgeAbstract {
$this->uri = "http://www.rtbf.be/auvio/emissions";
$this->description = "Returns the newest RTBF videos by series ID";
$this->maintainer = "Frenzie";
$this->update = "2016-08-09";
$this->parameters[] =
'[
@ -33,10 +34,10 @@ class RTBFBridge extends BridgeAbstract {
$item->uri = 'http://www.rtbf.be/auvio/detail?id='.$item->id;
$thumbnailUriSrcSet = explode(',', $element->find('figure .www-img-16by9 img', 0)->getAttribute('data-srcset'));
$thumbnailUriLastSrc = end($thumbnailUriSrcSet);
$item->thumbnailUri = explode(' ', $thumbnailUriLastSrc)[0];
$thumbnailUri = explode(' ', $thumbnailUriLastSrc)[0];
$item->title = trim($element->find('h3',0)->plaintext) . ' - ' . trim($element->find('h4',0)->plaintext);
$item->timestamp = strtotime($element->find('time', 0)->getAttribute('datetime'));
$item->content = '<a href="' . $item->uri . '"><img src="' . $item->thumbnailUri . '" /></a>';
$item->content = '<a href="' . $item->uri . '"><img src="' . $thumbnailUri . '" /></a>';
$this->items[] = $item;
$count++;
}

View file

@ -7,7 +7,7 @@ class Releases3DSBridge extends BridgeAbstract {
$this->name = "3DS Scene Releases";
$this->uri = "http://www.3dsdb.com/";
$this->description = "Returns the newest scene releases.";
$this->update = "2015-09-17";
$this->update = "2016-08-09";
}
@ -108,7 +108,6 @@ class Releases3DSBridge extends BridgeAbstract {
$item->title = $name;
$item->author = $publisher;
$item->timestamp = $ignDate;
$item->thumbnailUri = $ignCoverArt;
$item->uri = empty($ignLink) ? $searchLinkDuckDuckGo : $ignLink;
$item->content = $ignDescription.$releaseDescription.$releaseSearchLinks;
$this->items[] = $item;

View file

@ -7,7 +7,7 @@ class Rule34Bridge extends BridgeAbstract{
$this->name = "Rule34";
$this->uri = "http://rule34.xxx/";
$this->description = "Returns images from given page";
$this->update = "2014-05-25";
$this->update = "2016-08-09";
$this->parameters[] =
'[
@ -41,10 +41,10 @@ class Rule34Bridge extends BridgeAbstract{
$item->uri = 'http://rule34.xxx/'.$element->find('a', 0)->href;
$item->postid = (int)preg_replace("/[^0-9]/",'', $element->getAttribute('id'));
$item->timestamp = time();
$item->thumbnailUri = $element->find('img', 0)->src;
$thumbnailUri = $element->find('img', 0)->src;
$item->tags = $element->find('img', 0)->getAttribute('alt');
$item->title = 'Rule34 | '.$item->postid;
$item->content = '<a href="' . $item->uri . '"><img src="' . $item->thumbnailUri . '" /></a><br>Tags: '.$item->tags;
$item->content = '<a href="' . $item->uri . '"><img src="' . $thumbnailUri . '" /></a><br>Tags: '.$item->tags;
$this->items[] = $item;
}
}

View file

@ -7,7 +7,7 @@ class Rule34pahealBridge extends BridgeAbstract{
$this->name = "Rule34paheal";
$this->uri = "http://rule34.paheal.net/";
$this->description = "Returns images from given page";
$this->update = "2014-05-25";
$this->update = "2016-08-09";
$this->parameters[] =
'[
@ -40,10 +40,10 @@ class Rule34pahealBridge extends BridgeAbstract{
$item->uri = 'http://rule34.paheal.net'.$element->find('a', 0)->href;
$item->postid = (int)preg_replace("/[^0-9]/",'', $element->find('img', 0)->getAttribute('id'));
$item->timestamp = time();
$item->thumbnailUri = $element->find('img', 0)->src;
$thumbnailUri = $element->find('img', 0)->src;
$item->tags = $element->getAttribute('data-tags');
$item->title = 'Rule34paheal | '.$item->postid;
$item->content = '<a href="' . $item->uri . '"><img src="' . $item->thumbnailUri . '" /></a><br>Tags: '.$item->tags;
$item->content = '<a href="' . $item->uri . '"><img src="' . $thumbnailUri . '" /></a><br>Tags: '.$item->tags;
$this->items[] = $item;
}
}

View file

@ -7,7 +7,7 @@ class SafebooruBridge extends BridgeAbstract{
$this->name = "Safebooru";
$this->uri = "http://safebooru.org/";
$this->description = "Returns images from given page";
$this->update = "2014-05-25";
$this->update = "2016-08-09";
$this->parameters[] =
'[
@ -42,10 +42,10 @@ class SafebooruBridge extends BridgeAbstract{
$item->uri = 'http://safebooru.org/'.$element->find('a', 0)->href;
$item->postid = (int)preg_replace("/[^0-9]/",'', $element->getAttribute('id'));
$item->timestamp = time();
$item->thumbnailUri = $element->find('img', 0)->src;
$thumbnailUri = $element->find('img', 0)->src;
$item->tags = $element->find('img', 0)->getAttribute('alt');
$item->title = 'Safebooru | '.$item->postid;
$item->content = '<a href="' . $item->uri . '"><img src="' . $item->thumbnailUri . '" /></a><br>Tags: '.$item->tags;
$item->content = '<a href="' . $item->uri . '"><img src="' . $thumbnailUri . '" /></a><br>Tags: '.$item->tags;
$this->items[] = $item;
}
}

View file

@ -7,7 +7,7 @@ class SakugabooruBridge extends BridgeAbstract{
$this->name = "Sakugabooru";
$this->uri = "http://sakuga.yshi.org/";
$this->description = "Returns images from given page";
$this->update = "2014-05-25";
$this->update = "2016-08-09";
$this->parameters[] =
'[
@ -44,9 +44,8 @@ class SakugabooruBridge extends BridgeAbstract{
$item->postid = $json['id'];
$item->timestamp = $json['created_at'];
$item->imageUri = $json['file_url'];
$item->thumbnailUri = $json['preview_url'];
$item->title = 'Sakugabooru | '.$json['id'];
$item->content = '<a href="' . $item->imageUri . '"><img src="' . $item->thumbnailUri . '" /></a><br>Tags: '.$json['tags'];
$item->content = '<a href="' . $item->imageUri . '"><img src="' . $json['preview_url'] . '" /></a><br>Tags: '.$json['tags'];
$this->items[] = $item;
}
}

View file

@ -8,7 +8,7 @@ class SensCritiqueBridge extends BridgeAbstract {
$this->name = "Sens Critique";
$this->uri = "http://www.senscritique.com";
$this->description = "Sens Critique news";
$this->update = "2016-08-06";
$this->update = "2016-08-09";
$this->parameters[] =
'[
@ -118,7 +118,7 @@ class SensCritiqueBridge extends BridgeAbstract {
foreach ($list->find('li') as $movie) {
$item = new \Item();
$item->name = htmlspecialchars_decode($movie->find('.elco-title a', 0)->plaintext, ENT_QUOTES) . ' ' . $movie->find('.elco-date', 0)->plaintext;
$item->author = htmlspecialchars_decode($movie->find('.elco-title a', 0)->plaintext, ENT_QUOTES) . ' ' . $movie->find('.elco-date', 0)->plaintext;
$item->title = $movie->find('.elco-title a', 0)->plaintext . ' ' . $movie->find('.elco-date', 0)->plaintext;
$item->content = '<em>' . $movie->find('.elco-original-title', 0)->plaintext . '</em><br><br>' .
$movie->find('.elco-baseline', 0)->plaintext . '<br>' .

View file

@ -8,7 +8,7 @@ class Sexactu extends BridgeAbstract{
$this->name = "Sexactu";
$this->uri = "http://www.gqmagazine.fr";
$this->description = "Sexactu via rss-bridge";
$this->update = "2016-08-06";
$this->update = "2016-08-09";
}
@ -42,7 +42,7 @@ $replace = array('January', 'February', 'March', 'April', 'May', 'June', 'July',
$date = strtotime($dateText);
$item->timestamp = $date;
$item->name = "Maïa Mazaurette";
$item->author = "Maïa Mazaurette";
$elementText = $element->find('.text-container', 0);
// don't forget to replace images server url with gq one
foreach($elementText->find('img') as $image) {

View file

@ -7,7 +7,7 @@ class SiliconBridge extends BridgeAbstract {
$this->name = "Silicon.fr";
$this->uri = "http://www.silicon.fr/";
$this->description = "Returns the newest articles.";
$this->update = "2015-09-08";
$this->update = "2016-08-09";
}
@ -48,7 +48,6 @@ class SiliconBridge extends BridgeAbstract {
//Build and add final item
$item = new \Item();
$item->uri = $article_uri;
$item->thumbnailUri = $thumbnailUri;
$item->title = StripCDATA($element->find('title', 0)->innertext);
$item->author = StripCDATA($element->find('dc:creator', 0)->innertext);
$item->timestamp = strtotime($element->find('pubDate', 0)->plaintext);

View file

@ -10,7 +10,7 @@ class SoundCloudBridge extends BridgeAbstract{
$this->name = "Soundcloud Bridge";
$this->uri = "http://www.soundcloud.com/";
$this->description = "Returns 10 newest music from user profile";
$this->update = "2016-08-06";
$this->update = "2016-08-09";
$this->parameters[] =
'[
@ -40,7 +40,7 @@ class SoundCloudBridge extends BridgeAbstract{
for ($i=0; $i < 10; $i++) {
$item = new \Item();
$item->name = $tracks[$i]->user->username .' - '. $tracks[$i]->title;
$item->author = $tracks[$i]->user->username .' - '. $tracks[$i]->title;
$item->title = $tracks[$i]->user->username .' - '. $tracks[$i]->title;
$item->content = '<audio src="'. $tracks[$i]->uri .'/stream?client_id='. self::CLIENT_ID .'">';
$item->id = 'https://soundcloud.com/'. urlencode($this->request) .'/'. urlencode($tracks[$i]->permalink);

View file

@ -12,7 +12,7 @@ class StripeAPIChangeLogBridge extends BridgeAbstract{
$this->name = 'Stripe API Changelog';
$this->uri = '';
$this->description = 'Returns the changes made to the stripe.com API';
$this->update = '2016-06-20';
$this->update = '2016-08-09';
}
public function collectData(array $param){
@ -24,7 +24,7 @@ class StripeAPIChangeLogBridge extends BridgeAbstract{
$item=new \Item();
$item->title=trim($change->plaintext);
$item->uri='https://stripe.com/docs/upgrades#'.$item->title;
$item->name='stripe';
$item->author='stripe';
$item->content=$change->nextSibling()->outertext;
$item->timestamp=strtotime($item->title);
$this->items[]=$item;

View file

@ -10,7 +10,7 @@ class SuperbWallpapersBridge extends BridgeAbstract {
$this->name = "Superb Wallpapers Bridge";
$this->uri = "http://www.superbwallpapers.com/";
$this->description = "Returns the latests wallpapers from SuperbWallpapers";
$this->update = "2015-04-08";
$this->update = "2016-08-09";
$this->parameters[] =
'[
@ -61,7 +61,6 @@ class SuperbWallpapersBridge extends BridgeAbstract {
$item->uri = str_replace('200x125', $this->resolution, $thumbnail->src);
$item->timestamp = time();
$item->title = $element->title;
$item->thumbnailUri = $thumbnail->src;
$item->content = $item->title.'<br><a href="'.$item->uri.'">'.$thumbnail.'</a>';
$this->items[] = $item;

View file

@ -7,7 +7,7 @@ class T411Bridge extends BridgeAbstract {
$this->name = 'T411';
$this->uri = $this->getURI();
$this->description = 'Returns the 10 newest torrents with specified search terms <br /> Use url part after "?" mark when using their search engine.';
$this->update = '2016-08-06';
$this->update = '2016-08-09';
$this->parameters[] =
'[
@ -63,15 +63,6 @@ class T411Bridge extends BridgeAbstract {
$item_desc = $item_html->find('div.description', 0);
$item_author = $item_html->find('a.profile', 0)->innertext;
//Retrieve image for thumbnail or generic logo fallback
$item_image = $this->getURI().'themes/blue/images/logo.png';
foreach ($item_desc->find('img') as $img) {
if (strpos($img->src, 'prez') === false && strpos($img->src, '/ad/') === false) {
$item_image = $img->src;
break;
}
}
//Cleanup advertisments
$divs = explode('<div class="align-center">', $item_desc->innertext);
$item_desc = '';
@ -86,7 +77,6 @@ class T411Bridge extends BridgeAbstract {
$item->title = $item_title;
$item->author = $item_author;
$item->timestamp = $item_date;
$item->thumbnailUri = $item_image;
$item->content = $item_desc;
$this->items[] = $item;
$limit++;

View file

@ -7,7 +7,7 @@ class TagBoardBridge extends BridgeAbstract{
$this->name = "TagBoard";
$this->uri = "http://www.TagBoard.com";
$this->description = "Returns most recent results from TagBoard.";
$this->update = "2014-09-10";
$this->update = "2016-08-09";
$this->parameters[] =
'[
@ -31,9 +31,9 @@ class TagBoardBridge extends BridgeAbstract{
$item = new Item();
$item->uri = $element->{'permalink'};
$item->title = $element->{'text'};
$item->thumbnailUri = $element->{'photos'}[0]->{'m'};
if (isset($item->thumbnailUri)) {
$item->content = '<a href="' . $item->uri . '"><img src="' . $item->thumbnailUri . '" /></a>';
$thumbnailUri = $element->{'photos'}[0]->{'m'};
if (isset($thumbnailUri)) {
$item->content = '<a href="' . $item->uri . '"><img src="' . $thumbnailUri . '" /></a>';
}else{
$item->content = $element->{'html'};
}

View file

@ -7,7 +7,7 @@ class TbibBridge extends BridgeAbstract{
$this->name = "Tbib";
$this->uri = "http://tbib.org/";
$this->description = "Returns images from given page";
$this->update = "2014-05-25";
$this->update = "2016-08-09";
$this->parameters[] =
'[
@ -41,10 +41,10 @@ class TbibBridge extends BridgeAbstract{
$item->uri = 'http://tbib.org/'.$element->find('a', 0)->href;
$item->postid = (int)preg_replace("/[^0-9]/",'', $element->getAttribute('id'));
$item->timestamp = time();
$item->thumbnailUri = $element->find('img', 0)->src;
$thumbnailUri = $element->find('img', 0)->src;
$item->tags = $element->find('img', 0)->getAttribute('alt');
$item->title = 'Tbib | '.$item->postid;
$item->content = '<a href="' . $item->uri . '"><img src="' . $item->thumbnailUri . '" /></a><br>Tags: '.$item->tags;
$item->content = '<a href="' . $item->uri . '"><img src="' . $thumbnailUri . '" /></a><br>Tags: '.$item->tags;
$this->items[] = $item;
}
}

View file

@ -7,7 +7,7 @@ class TheCodingLoveBridge extends BridgeAbstract{
$this->name = "The Coding Love";
$this->uri = "http://thecodinglove.com/";
$this->description = "The Coding Love";
$this->update = "2016-08-06";
$this->update = "2016-08-09";
}
@ -37,7 +37,7 @@ class TheCodingLoveBridge extends BridgeAbstract{
if($pos > 0)
{
$auteur = trim(str_replace("*/", "", substr($auteur->innertext, ($pos + 2))));
$item->name = $auteur;
$item->author = $auteur;
}

View file

@ -7,7 +7,7 @@ class TheHackerNewsBridge extends BridgeAbstract {
$this->name = 'The Hacker News Bridge';
$this->uri = 'https://thehackernews.com/';
$this->description = 'Cyber Security, Hacking, Technology News.';
$this->update = '2016-08-06';
$this->update = '2016-08-09';
}
@ -55,7 +55,6 @@ class TheHackerNewsBridge extends BridgeAbstract {
$article_author = trim($element->find('span.vcard', 0)->plaintext);
$article_title = $element->find('a.entry-title', 0)->plaintext;
$article_timestamp = strtotime($element->find('span.updated', 0)->plaintext);
$article_thumbnail = $element->find('img', 0)->src;
$article = $this->file_get_html($article_url) or $this->returnError('Could not request TheHackerNews: '.$article_url, 500);
$contents = $article->find('div.articlebodyonly', 0)->innertext;
@ -66,7 +65,6 @@ class TheHackerNewsBridge extends BridgeAbstract {
$item->uri = $article_url;
$item->title = $article_title;
$item->author = $article_author;
$item->thumbnailUri = $article_thumbnail;
$item->timestamp = $article_timestamp;
$item->content = trim($contents);
$this->items[] = $item;

View file

@ -10,7 +10,7 @@ class TheOatmealBridge extends RssExpander{
$this->name = "The Oatmeal";
$this->uri = "http://theoatmeal.com/";
$this->description = "Un petit site de dessins assez rigolos";
$this->update = "2015-07-03";
$this->update = "2016-08-09";
}
@ -53,9 +53,9 @@ class TheOatmealBridge extends RssExpander{
$item->content = $content->innertext;
$this->message("dc content is ".var_export($dc, true));
$item->name = (string) $dc->creator;
$item->author = (string) $dc->creator;
$item->timestamp = DateTime::createFromFormat(DateTime::ISO8601, $dc->date)->getTimestamp();
$this->message("writtem by ".$item->name." on ".$item->timestamp);
$this->message("writtem by ".$item->author." on ".$item->timestamp);
return $item;
}

View file

@ -13,7 +13,7 @@ class TwitchApiBridge extends BridgeAbstract{
$this->name = "Twitch API Bridge";
$this->uri = "http://www.twitch.tv";
$this->description = "Returns the newest broadcasts or highlights by channel name using the Twitch API (v3)";
$this->update = "2016-01-09";
$this->update = "2016-08-09";
$this->parameters["Get channel without limit"] =
'[
@ -140,10 +140,9 @@ class TwitchApiBridge extends BridgeAbstract{
$item = new \Item();
$item->id = $video->_id;
$item->uri = $video->url;
$item->thumbnailUri = $video->preview;
$item->title = htmlspecialchars($video->title);
$item->timestamp = strtotime($video->recorded_at);
$item->content = '<a href="' . $item->uri . '"><img src="' . $item->thumbnailUri . '" /></a><br><a href="' . $item->uri . '">' . $item->title . '</a>';
$item->content = '<a href="' . $item->uri . '"><img src="' . $video->preview . '" /></a><br><a href="' . $item->uri . '">' . $item->title . '</a>';
$this->items[] = $item;
// Stop once the number of requested items is reached

View file

@ -7,7 +7,7 @@ class UnsplashBridge extends BridgeAbstract {
$this->name = "Unsplash Bridge";
$this->uri = "http://unsplash.com/";
$this->description = "Returns the latests photos from Unsplash";
$this->update = "2015-03-02";
$this->update = "2016-08-09";
$this->parameters[] =
'[
@ -61,8 +61,7 @@ class UnsplashBridge extends BridgeAbstract {
$thumbnail->src).'.jpg'; // '.jpg' only for format hint
$item->timestamp = time();
$item->title = $thumbnail->alt;
$item->thumbnailUri = $thumbnail->src;
$item->content = $item->title.'<br><a href="'.$item->uri.'"><img src="'.$item->thumbnailUri.'" /></a>';
$item->content = $item->title.'<br><a href="'.$item->uri.'"><img src="'.$thumbnail->src.'" /></a>';
$this->items[] = $item;
$num++;

View file

@ -7,7 +7,7 @@ class ViadeoCompany extends BridgeAbstract{
$this->name = "Viadeo Company";
$this->uri = "https://www.viadeo.com/";
$this->description = "Returns most recent actus from Company on Viadeo. (http://www.viadeo.com/fr/company/<strong style=\"font-weight:bold;\">apple</strong>)";
$this->update = "2015-12-22";
$this->update = "2016-08-09";
$this->parameters[] =
'[
@ -30,8 +30,7 @@ class ViadeoCompany extends BridgeAbstract{
$item = new \Item();
$item->uri = $link;
$item->title = mb_substr($element->find('p', 0)->innertext, 0 ,100);
$item->content = $element->find('p', 0)->innertext;
$item->thumbnailUri = str_replace('//', 'http://', $element->find('img.usage-article__image_only', 0)->src);
$item->content = $element->find('p', 0)->innertext;;
$this->items[] = $item;
$i++;
}

View file

@ -11,7 +11,7 @@ class WallpaperStopBridge extends BridgeAbstract {
$this->name = "WallpaperStop Bridge";
$this->uri = "http://www.wallpaperstop.com/";
$this->description = "Returns the latests wallpapers from WallpaperStop";
$this->update = "2014-11-05";
$this->update = "2016-08-09";
$this->parameters[] =
'[
@ -73,8 +73,7 @@ class WallpaperStopBridge extends BridgeAbstract {
$item->id = $matches[3];
$item->timestamp = time();
$item->title = $thumbnail->title;
$item->thumbnailUri = $baseUri.$thumbnail->src;
$item->content = $item->title.'<br><a href="'.$wplink.'"><img src="'.$item->thumbnailUri.'" /></a>';
$item->content = $item->title.'<br><a href="'.$wplink.'"><img src="'.$baseUri.$thumbnail->src.'" /></a>';
$this->items[] = $item;
$num++;

View file

@ -6,7 +6,7 @@ class WeLiveSecurityBridge extends BridgeAbstract {
$this->name = 'We Live Security';
$this->uri = 'http://www.welivesecurity.com/';
$this->description = 'Returns the newest articles.';
$this->update = '2016-08-06';
$this->update = '2016-08-09';
}
public function collectData(array $param) {
@ -49,7 +49,6 @@ class WeLiveSecurityBridge extends BridgeAbstract {
$item = new \Item();
$item->uri = $article_url;
$item->thumbnailUri = $article_image;
$item->title = $element->find('title', 0)->plaintext;
$item->author = $article_html->find('a[rel=author]', 0)->plaintext;
$item->timestamp = strtotime($element->find('pubDate', 0)->plaintext);

View file

@ -10,7 +10,7 @@ class WhydBridge extends BridgeAbstract{
$this->name = "Whyd Bridge";
$this->uri = "http://www.whyd.com/";
$this->description = "Returns 10 newest music from user profile";
$this->update = "2016-08-06";
$this->update = "2016-08-09";
$this->parameters[] =
'[
@ -48,7 +48,7 @@ class WhydBridge extends BridgeAbstract{
for($i = 0; $i < 10; $i++) {
$track = $html->find('div.post', $i);
$item = new \Item();
$item->name = $track->find('h2', 0)->plaintext;
$item->author = $track->find('h2', 0)->plaintext;
$item->title = $track->find('h2', 0)->plaintext;
$item->content = $track->find('a.thumb',0) . '<br/>' . $track->find('h2', 0)->plaintext;
$item->id = 'http://www.whyd.com' . $track->find('a.no-ajaxy',0)->getAttribute('href');

View file

@ -12,7 +12,7 @@ class WorldOfTanks extends HttpCachingBridgeAbstract{
$this->name = "World of Tanks";
$this->uri = "http://worldoftanks.eu/";
$this->description = "News about the tank slaughter game.";
$this->update = "2016-08-06";
$this->update = "2016-08-09";
$this->parameters[] =
'[
@ -89,7 +89,6 @@ class WorldOfTanks extends HttpCachingBridgeAbstract{
HTMLSanitizer::defaultImageSrcTo($content, WORLD_OF_TANKS);
$item->title = $content->find('h1', 0)->innertext;
$item->content = $content->find('.b-content', 0)->innertext;
// $item->name = $auteur->innertext;
$item->timestamp = $content->find('.b-statistic_time', 0)->getAttribute("data-timestamp");
$this->items[] = $item;
}

View file

@ -7,7 +7,7 @@ class XbooruBridge extends BridgeAbstract{
$this->name = "Xbooru";
$this->uri = "http://xbooru.com/";
$this->description = "Returns images from given page";
$this->update = "2014-05-25";
$this->update = "2016-08-09";
$this->parameters[] =
'[
@ -41,10 +41,10 @@ class XbooruBridge extends BridgeAbstract{
$item->uri = 'http://xbooru.com/'.$element->find('a', 0)->href;
$item->postid = (int)preg_replace("/[^0-9]/",'', $element->getAttribute('id'));
$item->timestamp = time();
$item->thumbnailUri = $element->find('img', 0)->src;
$thumbnailUri = $element->find('img', 0)->src;
$item->tags = $element->find('img', 0)->getAttribute('alt');
$item->title = 'Xbooru | '.$item->postid;
$item->content = '<a href="' . $item->uri . '"><img src="' . $item->thumbnailUri . '" /></a><br>Tags: '.$item->tags;
$item->content = '<a href="' . $item->uri . '"><img src="' . $thumbnailUri . '" /></a><br>Tags: '.$item->tags;
$this->items[] = $item;
}
}

View file

@ -7,7 +7,7 @@ class YandereBridge extends BridgeAbstract{
$this->name = "Yande.re";
$this->uri = "https://yande.re/";
$this->description = "Returns images from given page and tags";
$this->update = "2014-05-25";
$this->update = "2016-08-09";
$this->parameters[] =
'[
@ -44,9 +44,8 @@ class YandereBridge extends BridgeAbstract{
$item->postid = $json['id'];
$item->timestamp = $json['created_at'];
$item->imageUri = $json['file_url'];
$item->thumbnailUri = $json['preview_url'];
$item->title = 'Yandere | '.$json['id'];
$item->content = '<a href="' . $item->imageUri . '"><img src="' . $item->thumbnailUri . '" /></a><br>Tags: '.$json['tags'];
$item->content = '<a href="' . $item->imageUri . '"><img src="' . $json['preview_url'] . '" /></a><br>Tags: '.$json['tags'];
$this->items[] = $item;
}
}

View file

@ -14,7 +14,7 @@ class YoutubeBridge extends BridgeAbstract {
$this->homepage = $this->getURI();
$this->description = 'Returns the 10 newest videos by username/channel/playlist or search';
$this->maintainer = 'mitsukarenai';
$this->update = '02/05/2016';
$this->update = '2016-08-09';
$this->parameters['By username'] =
'[
@ -83,8 +83,8 @@ class YoutubeBridge extends BridgeAbstract {
$item->author = $author;
$item->timestamp = $time;
$item->uri = $this->getURI().'watch?v='.$vid;
$item->thumbnailUri = str_replace('/www.', '/img.', $this->getURI()).'vi/'.$vid.'/0.jpg';
$item->content = '<a href="'.$item->uri.'"><img src="'.$item->thumbnailUri.'" /></a><br />'.$desc;
$thumbnailUri = str_replace('/www.', '/img.', $this->getURI()).'vi/'.$vid.'/0.jpg';
$item->content = '<a href="'.$item->uri.'"><img src="'.$thumbnailUri.'" /></a><br />'.$desc;
$this->items[] = $item;
}

View file

@ -7,7 +7,7 @@ class ZDNetBridge extends BridgeAbstract {
$this->name = 'ZDNet Bridge';
$this->uri = 'http://www.zdnet.com/';
$this->description = 'Technology News, Analysis, Comments and Product Reviews for IT Professionals.';
$this->update = '2016-08-06';
$this->update = '2016-08-09';
$this->parameters[] =
// http://www.zdnet.com/zdnet.opml
@ -286,14 +286,10 @@ class ZDNetBridge extends BridgeAbstract {
.'<p><b>'.$article_subtitle.'</b></p>'
.$contents;
if ($thumbnail == '')
$thumbnail = 'http://zdnet1.cbsistatic.com/fly/bundles/zdnetcss/images/logos/logo-192x192.png';
$item = new \Item();
$item->author = $author;
$item->uri = $article_url;
$item->title = $article_title;
$item->thumbnailUri = $thumbnail;
$item->timestamp = $article_timestamp;
$item->content = $contents;
$this->items[] = $item;

View file

@ -1,9 +1,4 @@
<?php
function xml_encode($text) {
return htmlspecialchars($text, ENT_XML1);
}
/**
* Atom
* Documentation Source http://en.wikipedia.org/wiki/Atom_%28standard%29 and http://tools.ietf.org/html/rfc4287
@ -18,46 +13,32 @@ class AtomFormat extends FormatAbstract{
$httpHost = isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : '';
$httpInfo = isset($_SERVER['PATH_INFO']) ? $_SERVER['PATH_INFO'] : '';
$serverRequestUri = xml_encode($_SERVER['REQUEST_URI']);
$serverRequestUri = $this->xml_encode($_SERVER['REQUEST_URI']);
$extraInfos = $this->getExtraInfos();
$title = xml_encode($extraInfos['name']);
$uri = $extraInfos['uri'];
$icon = xml_encode('http://icons.better-idea.org/icon?url='. $uri .'&size=64');
$uri = xml_encode($uri);
$title = $this->xml_encode($extraInfos['name']);
$uri = !empty($extraInfos['uri']) ? $extraInfos['uri'] : 'https://github.com/sebsauvage/rss-bridge';
$icon = $this->xml_encode('http://icons.better-idea.org/icon?url='. $uri .'&size=64');
$uri = $this->xml_encode($uri);
$entries = '';
foreach($this->getDatas() as $data){
$entryName = is_null($data->name) ? $title : xml_encode($data->name);
$entryAuthor = is_null($data->author) ? $uri : xml_encode($data->author);
$entryTitle = is_null($data->title) ? '' : xml_encode($data->title);
$entryUri = is_null($data->uri) ? '' : xml_encode($data->uri);
$entryTimestamp = is_null($data->timestamp) ? '' : xml_encode(date(DATE_ATOM, $data->timestamp));
// We prevent content from closing the CDATA too early.
$entryContent = is_null($data->content) ? '' : '<![CDATA[' . $this->sanitizeHtml(str_replace(']]>','',$data->content)) . ']]>';
// We generate a list of the enclosure links
$entryEnclosures = "";
foreach($data->enclosures as $enclosure) {
$entryEnclosures .= "<link rel=\"enclosure\" href=\"".$enclosure."\"></link>";
}
$entryAuthor = is_null($data->author) ? '' : $this->xml_encode($data->author);
$entryTitle = is_null($data->title) ? '' : $this->xml_encode($data->title);
$entryUri = is_null($data->uri) ? '' : $this->xml_encode($data->uri);
$entryTimestamp = is_null($data->timestamp) ? '' : $this->xml_encode(date(DATE_ATOM, $data->timestamp));
$entryContent = is_null($data->content) ? '' : $this->xml_encode($this->sanitizeHtml($data->content));
$entries .= <<<EOD
<entry>
<author>
<name>{$entryName}</name>
<uri>{$entryAuthor}</uri>
<name>{$entryAuthor}</name>
</author>
<title type="html"><![CDATA[{$entryTitle}]]></title>
<link rel="alternate" type="text/html" href="{$entryUri}" />
<id>{$entryUri}</id>
<updated>{$entryTimestamp}</updated>
<content type="html">{$entryContent}</content>
{$entryEnclosures}
</entry>
EOD;
@ -108,4 +89,8 @@ EOD;
return parent::display();
}
private function xml_encode($text) {
return htmlspecialchars($text, ENT_XML1);
}
}

View file

@ -12,22 +12,23 @@ class HtmlFormat extends FormatAbstract{
$extraInfos = $this->getExtraInfos();
$title = htmlspecialchars($extraInfos['name']);
$uri = htmlspecialchars($extraInfos['uri']);
$atomquery = str_replace('format=HtmlFormat', 'format=AtomFormat', htmlentities($_SERVER['QUERY_STRING']));
$atomquery = str_replace('format=HtmlFormat', 'format=AtomFormat', htmlentities($_SERVER['QUERY_STRING']));
$mrssquery = str_replace('format=HtmlFormat', 'format=MrssFormat', htmlentities($_SERVER['QUERY_STRING']));
$entries = '';
foreach($this->getDatas() as $data){
$entryUri = is_null($data->uri) ? $uri : $data->uri;
$entryTitle = is_null($data->title) ? '' : $this->sanitizeHtml(strip_tags($data->title));
$entryTimestamp = is_null($data->timestamp) ? '' : '<time datetime="' . date(DATE_ATOM, $data->timestamp) . '">' . date(DATE_ATOM, $data->timestamp) . '</time>';
$entryAuthor = is_null($data->author) ? '' : '<br /><p class="author">by: ' . $data->author . '</p>';
$entryTitle = is_null($data->title) ? '' : $this->sanitizeHtml(strip_tags($data->title));
$entryUri = is_null($data->uri) ? $uri : $data->uri;
$entryTimestamp = is_null($data->timestamp) ? '' : '<time datetime="' . date(DATE_ATOM, $data->timestamp) . '">' . date(DATE_ATOM, $data->timestamp) . '</time>';
$entryContent = is_null($data->content) ? '' : '<div class="content">' . $this->sanitizeHtml($data->content). '</div>';
$entries .= <<<EOD
<section class="feeditem">
<h2><a class="itemtitle" href="{$entryUri}">{$entryTitle}</a></h2>
{$entryTimestamp}
{$entryAuthor}
{$entryContent}
<h2><a class="itemtitle" href="{$entryUri}">{$entryTitle}</a></h2>
{$entryTimestamp}
{$entryAuthor}
{$entryContent}
</section>
EOD;
@ -39,14 +40,18 @@ EOD;
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>{$title}</title>
<link href="css/HtmlFormat.css" rel="stylesheet">
<meta name="robots" content="noindex, follow">
<meta charset="UTF-8">
<title>{$title}</title>
<link href="css/HtmlFormat.css" rel="stylesheet">
<meta name="robots" content="noindex, follow">
</head>
<body>
<h1 class="pagetitle"><a href="{$uri}" target="_blank">{$title}</a></h1>
<div class="buttons"><a href="./#bridge-{$_GET['bridge']}"><button class="backbutton"> back to rss-bridge</button></a><a href="./?{$atomquery}"><button class="rss-feed">RSS feed</button></a></div>
<h1 class="pagetitle"><a href="{$uri}" target="_blank">{$title}</a></h1>
<div class="buttons">
<a href="./#bridge-{$_GET['bridge']}"><button class="backbutton"> back to rss-bridge</button></a>
<a href="./?{$atomquery}"><button class="rss-feed">RSS feed (ATOM)</button></a>
<a href="./?{$mrssquery}"><button class="rss-feed">RSS feed (MRSS)</button></a>
</div>
{$entries}
</body>
</html>

View file

@ -13,23 +13,19 @@ class MrssFormat extends FormatAbstract{
$httpHost = isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : '';
$httpInfo = isset($_SERVER['PATH_INFO']) ? $_SERVER['PATH_INFO'] : '';
$serverRequestUri = htmlspecialchars($_SERVER['REQUEST_URI']);
$serverRequestUri = $this->xml_encode($_SERVER['REQUEST_URI']);
$extraInfos = $this->getExtraInfos();
$title = htmlspecialchars($extraInfos['name']);
$uri = htmlspecialchars($extraInfos['uri']);
$icon = 'http://g.etfv.co/'. $uri .'?icon.jpg';
$title = $this->xml_encode($extraInfos['name']);
$uri = $this->xml_encode(!empty($extraInfos['uri']) ? $extraInfos['uri'] : 'https://github.com/sebsauvage/rss-bridge');
$items = '';
foreach($this->getDatas() as $data){
$itemTitle = strip_tags(is_null($data->title) ? '' : $data->title);
$itemUri = is_null($data->uri) ? '' : $data->uri;
$itemAuthor = is_null($data->author) ? '' : $data->author;
$itemThumbnailUri = is_null($data->thumbnailUri) ? '' : $data->thumbnailUri;
$itemTimestamp = is_null($data->timestamp) ? '' : date(DATE_RFC2822, $data->timestamp);
// We prevent content from closing the CDATA too early.
$itemContent = is_null($data->content) ? '' : htmlspecialchars($this->sanitizeHtml(str_replace(']]>','',$data->content)));
$itemAuthor = is_null($data->author) ? '' : $this->xml_encode($data->author);
$itemTitle = strip_tags(is_null($data->title) ? '' : $this->xml_encode($data->title));
$itemUri = is_null($data->uri) ? '' : $this->xml_encode($data->uri);
$itemTimestamp = is_null($data->timestamp) ? '' : $this->xml_encode(date(DATE_RFC2822, $data->timestamp));
$itemContent = is_null($data->content) ? '' : $this->xml_encode($this->sanitizeHtml($data->content));
$items .= <<<EOD
<item>
@ -39,8 +35,6 @@ class MrssFormat extends FormatAbstract{
<pubDate>{$itemTimestamp}</pubDate>
<description>{$itemContent}</description>
<author>{$itemAuthor}</author>
<media:title>{$itemTitle}</media:title>
<media:thumbnail url="{$itemThumbnailUri}" />
</item>
EOD;
@ -59,8 +53,9 @@ EOD;
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>{$title}</title>
<link>{$uri}/</link>
<link>http{$https}://{$httpHost}{$httpInfo}/</link>
<description>{$title}</description>
<atom:link rel="alternate" type="text/html" href="{$uri}" />
<atom:link rel="self" href="http{$https}://{$httpHost}{$serverRequestUri}" />
{$items}
</channel>
@ -85,4 +80,8 @@ EOD;
return parent::display();
}
private function xml_encode($text) {
return htmlspecialchars($text, ENT_XML1);
}
}