1
0
Fork 0
forked from blallo/rss-bridge

bridges: use BridgeAbstract::getSimpleHTMLDOM

instead of BridgeAbstract::file_get_html

Signed-off-by: Pierre Mazière <pierre.maziere@gmx.com>
This commit is contained in:
Pierre Mazière 2016-07-08 19:06:35 +02:00
parent f43bbda83e
commit 3c0d13c1bb
121 changed files with 1212 additions and 396 deletions

View file

@ -15,7 +15,7 @@ class ABCTabsBridge extends BridgeAbstract{
public function collectData(array $param){ public function collectData(array $param){
$html = ''; $html = '';
$html = $this->file_get_html('http://www.abc-tabs.com/tablatures/nouveautes.html') or $this->returnClientError('No results for this query.'); $html = $this->getSimpleHTMLDOM('http://www.abc-tabs.com/tablatures/nouveautes.html') or $this->returnClientError('No results for this query.');
$table = $html->find('table#myTable', 0)->children(1); $table = $html->find('table#myTable', 0)->children(1);
foreach ($table->find('tr') as $tab) foreach ($table->find('tr') as $tab)

View file

@ -29,7 +29,7 @@ class AcrimedBridge extends RssExpander{
$item->title = trim($newsItem->title); $item->title = trim($newsItem->title);
$item->timestamp = strtotime($dc->date); $item->timestamp = strtotime($dc->date);
$articlePage = $this->file_get_html($newsItem->link); $articlePage = $this->getSimpleHTMLDOM($newsItem->link);
$article = $hs->sanitize($articlePage->find('article.article1', 0)->innertext); $article = $hs->sanitize($articlePage->find('article.article1', 0)->innertext);
$article = HTMLSanitizer::defaultImageSrcTo($article, "http://www.acrimed.org/"); $article = HTMLSanitizer::defaultImageSrcTo($article, "http://www.acrimed.org/");

View file

@ -64,7 +64,7 @@ class AllocineFRBridge extends BridgeAbstract{
// Update bridge name to match selection // Update bridge name to match selection
$this->name .= ' : ' . $category; $this->name .= ' : ' . $category;
$html = $this->file_get_html($this->uri) or $this->returnServerError("Could not request {$this->uri}!"); $html = $this->getSimpleTMLOM($this->uri) or $this->returnServerError("Could not request {$this->uri}!");
foreach($html->find('figure.media-meta-fig') as $element) foreach($html->find('figure.media-meta-fig') as $element)
{ {

View file

@ -67,7 +67,7 @@ class AnimeUltimeBridge extends BridgeAbstract {
//Retrive page contents //Retrive page contents
$website = 'http://www.anime-ultime.net/'; $website = 'http://www.anime-ultime.net/';
$url = $website.'history-0-1/'.$requestFilter; $url = $website.'history-0-1/'.$requestFilter;
$html = $this->file_get_html($url) or $this->returnServerError('Could not request Anime-Ultime: '.$url); $html = $this->getSimpleHTMLDOM($url) or $this->returnServerError('Could not request Anime-Ultime: '.$url);
//Relases are sorted by day : process each day individually //Relases are sorted by day : process each day individually
foreach ($html->find('div.history', 0)->find('h3') as $daySection) { foreach ($html->find('div.history', 0)->find('h3') as $daySection) {

View file

@ -26,7 +26,7 @@ class BandcampBridge extends BridgeAbstract{
$html = ''; $html = '';
if (isset($param['tag'])) { if (isset($param['tag'])) {
$this->request = $param['tag']; $this->request = $param['tag'];
$html = $this->file_get_html('http://bandcamp.com/tag/'.urlencode($this->request).'?sort_field=date') or $this->returnServerError('No results for this query.'); $html = $this->getSimpleHTMLDOM('http://bandcamp.com/tag/'.urlencode($this->request).'?sort_field=date') or $this->returnServerError('No results for this query.');
} }
else { else {
$this->returnClientError('You must specify tag (/tag/...)'); $this->returnClientError('You must specify tag (/tag/...)');

View file

@ -14,7 +14,7 @@ class BastaBridge extends BridgeAbstract{
return preg_replace('/src=["\']{1}([^"\']+)/ims', 'src=\'http://www.bastamag.net/$1\'', $content); return preg_replace('/src=["\']{1}([^"\']+)/ims', 'src=\'http://www.bastamag.net/$1\'', $content);
} }
$html = $this->file_get_html('http://www.bastamag.net/spip.php?page=backend') or $this->returnServerError('Could not request Bastamag.'); $html = $this->getSimpleHTMLDOM('http://www.bastamag.net/spip.php?page=backend') or $this->returnServerError('Could not request Bastamag.');
$limit = 0; $limit = 0;
foreach($html->find('item') as $element) { foreach($html->find('item') as $element) {

View file

@ -12,7 +12,7 @@ class BlaguesDeMerdeBridge extends BridgeAbstract{
} }
public function collectData(array $param){ public function collectData(array $param){
$html = $this->file_get_html('http://www.blaguesdemerde.fr/') or $this->returnServerError('Could not request BDM.'); $html = $this->getSimpleHTMLDOM('http://www.blaguesdemerde.fr/') or $this->returnServerError('Could not request BDM.');
foreach($html->find('article.joke_contener') as $element) { foreach($html->find('article.joke_contener') as $element) {
$item = new Item(); $item = new Item();

View file

@ -43,7 +43,7 @@ class BooruprojectBridge extends BridgeAbstract{
if (empty($param['i'])) { if (empty($param['i'])) {
$this->returnServerError('Please enter a ***.booru.org instance.'); $this->returnServerError('Please enter a ***.booru.org instance.');
} }
$html = $this->file_get_html("http://".$param['i'].".booru.org/index.php?page=post&s=list&pid=".$page.$tags) or $this->returnServerError('Could not request Booruproject.'); $html = $this->getSimpleHTMLDOM("http://".$param['i'].".booru.org/index.php?page=post&s=list&pid=".$page.$tags) or $this->returnServerError('Could not request Booruproject.');
foreach($html->find('div[class=content] span') as $element) { foreach($html->find('div[class=content] span') as $element) {

View file

@ -9,7 +9,7 @@ class CADBridge extends BridgeAbstract{
} }
private function CADExtractContent($url) { private function CADExtractContent($url) {
$html3 = $this->file_get_html($url); $html3 = $this->getSimpleHTMLDOM($url);
// The request might fail due to missing https support or wrong URL // The request might fail due to missing https support or wrong URL
if($html3 == false) if($html3 == false)
@ -27,7 +27,6 @@ class CADBridge extends BridgeAbstract{
default: default:
return 'Daily comic not released yet'; return 'Daily comic not released yet';
} }
$img = implode ($url2[0]); $img = implode ($url2[0]);
$html3->clear(); $html3->clear();
unset ($html3); unset ($html3);
@ -45,7 +44,7 @@ class CADBridge extends BridgeAbstract{
return $string; return $string;
} }
$html = $this->file_get_html('http://cdn2.cad-comic.com/rss.xml') or $this->returnServerError('Could not request CAD.'); $html = $this->getSimpleHTMLDOM('http://cdn2.cad-comic.com/rss.xml') or $this->returnServerError('Could not request CAD.');
$limit = 0; $limit = 0;
foreach($html->find('item') as $element) { foreach($html->find('item') as $element) {

View file

@ -51,7 +51,7 @@ class CNETBridge extends BridgeAbstract {
$this->topicName = $param['topic']; $this->topicName = $param['topic'];
$pageUrl = 'http://www.cnet.com/'.(empty($this->topicName) ? '' : 'topics/'.$this->topicName.'/'); $pageUrl = 'http://www.cnet.com/'.(empty($this->topicName) ? '' : 'topics/'.$this->topicName.'/');
$html = $this->file_get_html($pageUrl) or $this->returnServerError('Could not request CNET: '.$pageUrl); $html = $this->getSimpleHTMLDOM($pageUrl) or $this->returnServerError('Could not request CNET: '.$pageUrl);
$limit = 0; $limit = 0;
foreach($html->find('div.assetBody') as $element) { foreach($html->find('div.assetBody') as $element) {
@ -64,7 +64,7 @@ class CNETBridge extends BridgeAbstract {
if (!empty($article_title) && !empty($article_uri) && strpos($article_uri, '/news/') !== false) { if (!empty($article_title) && !empty($article_uri) && strpos($article_uri, '/news/') !== false) {
$article_html = $this->file_get_html($article_uri) or $this->returnServerError('Could not request CNET: '.$article_uri); $article_html = $this->getSimpleHTMLDOM($article_uri) or $this->returnServerError('Could not request CNET: '.$article_uri);
$article_content = trim(CleanArticle(ExtractFromDelimiters($article_html, '<div class="articleContent', '<footer>'))); $article_content = trim(CleanArticle(ExtractFromDelimiters($article_html, '<div class="articleContent', '<footer>')));

View file

@ -0,0 +1,56 @@
<?php
class CoinDeskBridge extends BridgeAbstract{
public function loadMetadatas() {
$this->maintainer = "mitsukarenai";
$this->name = "CoinDesk";
$this->uri = "http://www.coindesk.com/";
$this->description = "Returns the 5 newest posts from CoinDesk (full text)";
$this->update = "2014-05-30";
}
public function collectData(array $param){
function CoinDeskStripCDATA($string) {
$string = str_replace('<![CDATA[', '', $string);
$string = str_replace(']]>', '', $string);
return $string;
}
function CoinDeskExtractContent($url) {
$html2 = $this->getSimpleHTMLDOM($url);
$text = $html2->find('div.single-content', 0)->innertext;
$text = strip_tags($text, '<p><a><img>');
return $text;
}
$html = $this->getSimpleHTMLDOM('http://www.coindesk.com/feed/atom/') or $this->returnError('Could not request CoinDesk.', 404);
$limit = 0;
foreach($html->find('entry') as $element) {
if($limit < 5) {
$item = new \Item();
$item->title = CoinDeskStripCDATA($element->find('title', 0)->innertext);
$item->author = $element->find('author', 0)->plaintext;
$item->uri = $element->find('link', 0)->href;
$item->timestamp = strtotime($element->find('published', 0)->plaintext);
$item->content = CoinDeskExtractContent($item->uri);
$this->items[] = $item;
$limit++;
}
}
}
public function getName(){
return 'CoinDesk';
}
public function getURI(){
return 'http://www.coindesk.com/';
}
public function getCacheDuration(){
return 1800; // 30min
}
}

View file

@ -33,7 +33,7 @@ class CollegeDeFranceBridge extends BridgeAbstract{
* </a> * </a>
* </li> * </li>
*/ */
$html = $this->file_get_html('http://www.college-de-france.fr/components/search-audiovideo.jsp?fulltext=&siteid=1156951719600&lang=FR&type=all') or $this->returnServerError('Could not request CollegeDeFrance.'); $html = $this->getSimpleHTMLDOM('http://www.college-de-france.fr/components/search-audiovideo.jsp?fulltext=&siteid=1156951719600&lang=FR&type=all') or $this->returnServerError('Could not request CollegeDeFrance.');
foreach($html->find('a[data-target]') as $element) { foreach($html->find('a[data-target]') as $element) {
$item = new \Item(); $item = new \Item();
$item->title = $element->find('.title', 0)->plaintext; $item->title = $element->find('.title', 0)->plaintext;

View file

@ -10,7 +10,7 @@ class CommonDreamsBridge extends BridgeAbstract{
} }
private function CommonDreamsExtractContent($url) { private function CommonDreamsExtractContent($url) {
$html3 = $this->file_get_html($url); $html3 = $this->getSimpleHTMLDOM($url);
$text = $html3->find('div[class=field--type-text-with-summary]', 0)->innertext; $text = $html3->find('div[class=field--type-text-with-summary]', 0)->innertext;
$html3->clear(); $html3->clear();
unset ($html3); unset ($html3);
@ -25,7 +25,7 @@ class CommonDreamsBridge extends BridgeAbstract{
return $string; return $string;
} }
$html = $this->file_get_html('http://www.commondreams.org/rss.xml') or $this->returnServerError('Could not request CommonDreams.'); $html = $this->getSimpleHTMLDOM('http://www.commondreams.org/rss.xml') or $this->returnServerError('Could not request CommonDreams.');
$limit = 0; $limit = 0;
foreach($html->find('item') as $element) { foreach($html->find('item') as $element) {
if($limit < 4) { if($limit < 4) {

View file

@ -13,7 +13,7 @@ class CopieDoubleBridge extends BridgeAbstract{
public function collectData(array $param){ public function collectData(array $param){
$html = $this->file_get_html('http://www.copie-double.com/') or $this->returnServerError('Could not request CopieDouble.'); $html = $this->getSimpleHTMLDOM('http://www.copie-double.com/') or $this->returnServerError('Could not request CopieDouble.');
$table = $html->find('table table', 2); $table = $html->find('table table', 2);
foreach($table->find('tr') as $element) foreach($table->find('tr') as $element)

View file

@ -15,7 +15,7 @@ class CourrierInternationalBridge extends BridgeAbstract{
$html = ''; $html = '';
$html = $this->file_get_html('http://www.courrierinternational.com/') or $this->returnServerError('Error.'); $html = $this->getSimpleHTMLDOM('http://www.courrierinternational.com/') or $this->returnServerError('Error.');
@ -33,7 +33,7 @@ class CourrierInternationalBridge extends BridgeAbstract{
$item->uri = "http://courrierinternational.fr/".$item->uri; $item->uri = "http://courrierinternational.fr/".$item->uri;
} }
$page = $this->file_get_html($item->uri); $page = $this->getSimpleHTMLDOM($item->uri);
$cleaner = new HTMLSanitizer(); $cleaner = new HTMLSanitizer();

View file

@ -44,7 +44,7 @@ class CpasbienBridge extends HttpCachingBridgeAbstract{
$html = ''; $html = '';
if (isset($param['q'])) { /* keyword search mode */ if (isset($param['q'])) { /* keyword search mode */
$this->request = str_replace(" ","-",trim($param['q'])); $this->request = str_replace(" ","-",trim($param['q']));
$html = $this->file_get_html($this->uri.'/recherche/'.urlencode($this->request).'.html') or $this->returnServerError('No results for this query.'); $html = $this->getSimpleHTMLDOM($this->uri.'/recherche/'.urlencode($this->request).'.html') or $this->returnServerError('No results for this query.');
} }
else { else {
$this->returnClientError('You must specify a keyword (?q=...).'); $this->returnClientError('You must specify a keyword (?q=...).');

View file

@ -28,7 +28,7 @@ class CryptomeBridge extends BridgeAbstract{
// If you want HTTPS access instead, uncomment the following line: // If you want HTTPS access instead, uncomment the following line:
//$link = 'https://secure.netsolhost.com/cryptome.org/'; //$link = 'https://secure.netsolhost.com/cryptome.org/';
$html = $this->file_get_html($link) or $this->returnServerError('Could not request Cryptome.'); $html = $this->getSimpleHTMLDOM($link) or $this->returnServerError('Could not request Cryptome.');
if (!empty($param['n'])) { /* number of documents */ if (!empty($param['n'])) { /* number of documents */
$num = min(max(1, $param['n']+0), $num); $num = min(max(1, $param['n']+0), $num);
} }

View file

@ -47,7 +47,7 @@ class DailymotionBridge extends BridgeAbstract{
function getMetadata($id) { function getMetadata($id) {
$metadata=array(); $metadata=array();
$html2 = file_get_html('http://www.dailymotion.com/video/'.$id) or $this->returnServerError('Could not request Dailymotion.'); $html2 = $this->getSimpleHTMLDOM('http://www.dailymotion.com/video/'.$id) or $this->returnServerError('Could not request Dailymotion.');
$metadata['title'] = $html2->find('meta[property=og:title]', 0)->getAttribute('content'); $metadata['title'] = $html2->find('meta[property=og:title]', 0)->getAttribute('content');
$metadata['timestamp'] = strtotime($html2->find('meta[property=video:release_date]', 0)->getAttribute('content') ); $metadata['timestamp'] = strtotime($html2->find('meta[property=video:release_date]', 0)->getAttribute('content') );
$metadata['thumbnailUri'] = $html2->find('meta[property=og:image]', 0)->getAttribute('content'); $metadata['thumbnailUri'] = $html2->find('meta[property=og:image]', 0)->getAttribute('content');
@ -63,15 +63,15 @@ class DailymotionBridge extends BridgeAbstract{
if (isset($param['u'])) { // user timeline mode if (isset($param['u'])) { // user timeline mode
$this->request = $param['u']; $this->request = $param['u'];
$html = $this->file_get_html('http://www.dailymotion.com/user/'.urlencode($this->request).'/1') or $this->returnServerError('Could not request Dailymotion.'); $html = $this->getSimpleHTMLDOM('http://www.dailymotion.com/user/'.urlencode($this->request).'/1') or $this->returnServerError('Could not request Dailymotion.');
} }
else if (isset($param['p'])) { // playlist mode else if (isset($param['p'])) { // playlist mode
$this->request = strtok($param['p'], '_'); $this->request = strtok($param['p'], '_');
$html = $this->file_get_html('http://www.dailymotion.com/playlist/'.urlencode($this->request).'') or $this->returnServerError('Could not request Dailymotion.'); $html = $this->getSimpleHTMLDOM('http://www.dailymotion.com/playlist/'.urlencode($this->request).'') or $this->returnServerError('Could not request Dailymotion.');
} }
else if (isset($param['s'])) { // search mode else if (isset($param['s'])) { // search mode
$this->request = $param['s']; $page = 1; if (isset($param['pa'])) $page = (int)preg_replace("/[^0-9]/",'', $param['pa']); $this->request = $param['s']; $page = 1; if (isset($param['pa'])) $page = (int)preg_replace("/[^0-9]/",'', $param['pa']);
$html = $this->file_get_html('http://www.dailymotion.com/search/'.urlencode($this->request).'/'.$page.'') or $this->returnServerError('Could not request Dailymotion.'); $html = $this->getSimpleHTMLDOM('http://www.dailymotion.com/search/'.urlencode($this->request).'/'.$page.'') or $this->returnServerError('Could not request Dailymotion.');
} }
else { else {
$this->returnClientError('You must either specify a Dailymotion username (?u=...) or a playlist id (?p=...) or search (?s=...)'); $this->returnClientError('You must either specify a Dailymotion username (?u=...) or a playlist id (?p=...) or search (?s=...)');

View file

@ -31,7 +31,7 @@ class DanbooruBridge extends BridgeAbstract{
if (isset($param['t'])) { if (isset($param['t'])) {
$tags = urlencode($param['t']); $tags = urlencode($param['t']);
} }
$html = $this->file_get_html("http://donmai.us/posts?&page=$page&tags=$tags") or $this->returnServerError('Could not request Danbooru.'); $html = $this->getSimpleHTMLDOM("http://donmai.us/posts?&page=$page&tags=$tags") or $this->returnServerError('Could not request Danbooru.');
foreach($html->find('div[id=posts] article') as $element) { foreach($html->find('div[id=posts] article') as $element) {
$item = new \Item(); $item = new \Item();
$item->uri = 'http://donmai.us'.$element->find('a', 0)->href; $item->uri = 'http://donmai.us'.$element->find('a', 0)->href;

View file

@ -15,7 +15,7 @@ class DansTonChatBridge extends BridgeAbstract{
$html = ''; $html = '';
$link = 'http://danstonchat.com/latest.html'; $link = 'http://danstonchat.com/latest.html';
$html = $this->file_get_html($link) or $this->returnServerError('Could not request DansTonChat.'); $html = $this->getSimpleHTMLDOM($link) or $this->returnServerError('Could not request DansTonChat.');
foreach($html->find('div.item') as $element) { foreach($html->find('div.item') as $element) {
$item = new \Item(); $item = new \Item();

View file

@ -82,7 +82,7 @@ class DauphineLibereBridge extends BridgeAbstract {
} }
private function ExtractContent($url, $context) { private function ExtractContent($url, $context) {
$html2 = $this->file_get_html($url, false, $context); $html2 = $this->getSimpleHTMLDOM($url,false,$context);
$text = $html2->find('div.column', 0)->innertext; $text = $html2->find('div.column', 0)->innertext;
$text = preg_replace('@<script[^>]*?>.*?</script>@si', '', $text); $text = preg_replace('@<script[^>]*?>.*?</script>@si', '', $text);
return $text; return $text;
@ -102,10 +102,10 @@ class DauphineLibereBridge extends BridgeAbstract {
if (isset($param['u'])) { /* user timeline mode */ if (isset($param['u'])) { /* user timeline mode */
$this->request = $param['u']; $this->request = $param['u'];
$html = $this->file_get_html('http://www.ledauphine.com/'.$this->request.'/rss', false, $context) or $this->returnServerError('Could not request DauphineLibere.'); $html = $this->getSimpleHTMLDOM('http://www.ledauphine.com/'.$this->request.'/rss',false,$context) or $this->returnServerError('Could not request DauphineLibere.');
} }
else { else {
$html = $this->file_get_html('http://www.ledauphine.com/rss', false, $context) or $this->returnServerError('Could not request DauphineLibere.'); $html = $this->getSimpleHTMLDOM('http://www.ledauphine.com/rss',false,$context) or $this->returnServerError('Could not request DauphineLibere.');
} }
$limit = 0; $limit = 0;

View file

@ -35,14 +35,14 @@ class DeveloppezDotComBridge extends BridgeAbstract{
} }
private function DeveloppezDotComExtractContent($url) { private function DeveloppezDotComExtractContent($url) {
$articleHTMLContent = $this->file_get_html($url); $articleHTMLContent = $this->getSimpleHTMLDOM($url);
$text = $this->convert_smart_quotes($articleHTMLContent->find('div.content', 0)->innertext); $text = $this->convert_smart_quotes($articleHTMLContent->find('div.content', 0)->innertext);
$text = utf8_encode($text); $text = utf8_encode($text);
return trim($text); return trim($text);
} }
public function collectData(array $param){ public function collectData(array $param){
$rssFeed = $this->file_get_html('http://www.developpez.com/index/rss') or $this->returnServerError('Could not request http://www.developpez.com/index/rss'); $rssFeed = $this->getSimpleHTMLDOM('http://www.developpez.com/index/rss') or $this->returnServerError('Could not request http://www.developpez.com/index/rss');
$limit = 0; $limit = 0;
foreach($rssFeed->find('item') as $element) { foreach($rssFeed->find('item') as $element) {

View file

@ -13,7 +13,7 @@ class DilbertBridge extends BridgeAbstract {
public function collectData(array $param) { public function collectData(array $param) {
$html = $this->file_get_html($this->getURI()) or $this->returnServerError('Could not request Dilbert: '.$this->getURI()); $html = $this->getSimpleHTMLDOM($this->getURI()) or $this->returnServerError('Could not request Dilbert: '.$this->getURI());
foreach ($html->find('section.comic-item') as $element) { foreach ($html->find('section.comic-item') as $element) {

View file

@ -32,7 +32,7 @@ class DollbooruBridge extends BridgeAbstract{
if (isset($param['t'])) { if (isset($param['t'])) {
$tags = urlencode($param['t']); $tags = urlencode($param['t']);
} }
$html = $this->file_get_html("http://dollbooru.org/post/list/$tags/$page") or $this->returnServerError('Could not request Dollbooru.'); $html = $this->getSimpleHTMLDOM("http://dollbooru.org/post/list/$tags/$page") or $this->returnServerError('Could not request Dollbooru.');
foreach($html->find('div[class=shm-image-list] a') as $element) { foreach($html->find('div[class=shm-image-list] a') as $element) {

View file

@ -22,7 +22,7 @@ class DuckDuckGoBridge extends BridgeAbstract{
$html = ''; $html = '';
$link = 'http://duckduckgo.com/html/?q='.$param[u].'+sort:date'; $link = 'http://duckduckgo.com/html/?q='.$param[u].'+sort:date';
$html = $this->file_get_html($link) or $this->returnServerError('Could not request DuckDuckGo.'); $html = $this->getSimpleHTMLDOM($link) or $this->returnServerError('Could not request DuckDuckGo.');
foreach($html->find('div.results_links') as $element) { foreach($html->find('div.results_links') as $element) {
$item = new \Item(); $item = new \Item();

View file

@ -44,7 +44,7 @@ class EZTVBridge extends BridgeAbstract{
foreach($showList as $showID){ foreach($showList as $showID){
// Get show page // Get show page
$html = $this->file_get_html('https://eztv.ch/shows/'.rawurlencode($showID).'/') or $this->returnServerError('Could not request EZTV for id "'.$showID.'"'); $html = $this->getSimpleHTMLDOM('https://eztv.ch/shows/'.rawurlencode($showID).'/') or $this->returnServerError('Could not request EZTV for id "'.$showID.'"');
// Loop on each element that look like an episode entry... // Loop on each element that look like an episode entry...
foreach($html->find('.forum_header_border') as $element) { foreach($html->find('.forum_header_border') as $element) {

View file

@ -13,7 +13,7 @@ class EliteDangerousGalnetBridge extends BridgeAbstract
public function collectData(array $param) public function collectData(array $param)
{ {
$html = $this->file_get_html('https://community.elitedangerous.com/galnet') or $this->returnServerError('Error while downloading the website content'); $html = $this->getSimpleHTMLDOM('https://community.elitedangerous.com/galnet') or $this->returnServerError('Error while downloading the website content');
foreach($html->find('div.article') as $element) { foreach($html->find('div.article') as $element) {
$item = new Item(); $item = new Item();

View file

@ -63,7 +63,7 @@ class ElsevierBridge extends BridgeAbstract{
public function collectData(array $param){ public function collectData(array $param){
$uri = 'http://www.journals.elsevier.com/' . $param['j'] . '/recent-articles/'; $uri = 'http://www.journals.elsevier.com/' . $param['j'] . '/recent-articles/';
$html = file_get_html($uri) or $this->returnServerError('No results for Elsevier journal '.$param['j']); $html = $this->getSimpleHTMLDOM($uri) or $this->returnServerError('No results for Elsevier journal '.$param['j']);
foreach($html->find('.pod-listing') as $article){ foreach($html->find('.pod-listing') as $article){
$item = new \Item(); $item = new \Item();

56
bridges/FSBridge.php Normal file
View file

@ -0,0 +1,56 @@
<?php
class FSBridge extends BridgeAbstract{
public function loadMetadatas() {
$this->maintainer = "qwertygc";
$this->name = "Futurasciences";
$this->uri = "http://www.futura-sciences.com";
$this->description = "Returns the 5 newest posts from FS (full text)";
$this->update = "03/11/2015";
}
public function collectData(array $param){
function FS_StripCDATA($string) {
$string = str_replace('<![CDATA[', '', $string);
$string = str_replace(']]>', '', $string);
return $string;
}
function FS_ExtractContent($url) {
$html2 = $this->getSimpleHTMLDOM($url);
$text = $html2->find('div.fiche-actualite', 0)->innertext;
$text = preg_replace('@<script[^>]*?>.*?</script>@si', '', $text);
return $text;
}
$html = $this->getSimpleHTMLDOM('http://www.futura-sciences.com/rss/actualites.xml') or $this->returnError('Could not request Futura Sciences.', 404);
$limit = 0;
foreach($html->find('item') as $element) {
if($limit < 5) {
$item = new \Item();
$item->title = FS_StripCDATA($element->find('title', 0)->innertext);
$item->uri = FS_StripCDATA($element->find('guid', 0)->plaintext);
$item->timestamp = strtotime($element->find('pubDate', 0)->plaintext);
$item->content = FS_ExtractContent($item->uri);
$this->items[] = $item;
$limit++;
}
}
}
public function getName(){
return 'Futura Sciences';
}
public function getURI(){
return 'http://www.futura-sciences.com/';
}
public function getCacheDuration(){
return 3600; // 1 hour
// return 0; // 1 hour
}
}

View file

@ -109,9 +109,9 @@ class FacebookBridge extends BridgeAbstract{
if (is_null($html)) { if (is_null($html)) {
if (isset($param['u'])) { if (isset($param['u'])) {
if (!strpos($param['u'], "/")) { if (!strpos($param['u'], "/")) {
$html = $this->file_get_html('https://www.facebook.com/'.urlencode($param['u']).'?_fb_noscript=1') or $this->returnServerError('No results for this query.'); $html = $this->getSimpleHTMLDOM('https://www.facebook.com/'.urlencode($param['u']).'?_fb_noscript=1') or $this->returnServerError('No results for this query.');
} else { } else {
$html = $this->file_get_html('https://www.facebook.com/pages/'.$param['u'].'?_fb_noscript=1') or $this->returnServerError('No results for this query.'); $html = $this->getSimpleHTMLDOM('https://www.facebook.com/pages/'.$param['u'].'?_fb_noscript=1') or $this->returnServerError('No results for this query.');
} }
} else { } else {
$this->returnClientError('You must specify a Facebook username.'); $this->returnClientError('You must specify a Facebook username.');

View file

@ -14,7 +14,7 @@ Class FierPandaBridge extends BridgeAbstract{
public function collectData(array $param){ public function collectData(array $param){
$link = 'http://www.fier-panda.fr/'; $link = 'http://www.fier-panda.fr/';
$html = $this->file_get_html($link) or $this->returnServerError('Could not request Fier Panda.'); $html = $this->getSimpleHTMLDOM($link) or $this->returnServerError('Could not request Fier Panda.');
foreach($html->find('div.container-content article') as $element) { foreach($html->find('div.container-content article') as $element) {
$item = new \Item(); $item = new \Item();

View file

@ -12,7 +12,7 @@ class FlickrExploreBridge extends BridgeAbstract{
} }
public function collectData(array $param){ public function collectData(array $param){
$html = $this->file_get_html('https://www.flickr.com/explore') or $this->returnServerError('Could not request Flickr.'); $html = $this->getSimpleHTMLDOM('https://www.flickr.com/explore') or $this->returnServerError('Could not request Flickr.');
foreach($html->find('.photo-list-photo-view') as $element) { foreach($html->find('.photo-list-photo-view') as $element) {
// Get the styles // Get the styles

View file

@ -27,14 +27,14 @@ class FlickrTagBridge extends BridgeAbstract{
} }
public function collectData(array $param){ public function collectData(array $param){
$html = $this->file_get_html('http://www.flickr.com/search/?q=vendee&s=rec') or $this->returnServerError('Could not request Flickr.'); $html = $this->getSimpleHTMLDOM('http://www.flickr.com/search/?q=vendee&s=rec') or $this->returnServerError('Could not request Flickr.');
if (isset($param['q'])) { /* keyword search mode */ if (isset($param['q'])) { /* keyword search mode */
$this->request = $param['q']; $this->request = $param['q'];
$html = $this->file_get_html('http://www.flickr.com/search/?q='.urlencode($this->request).'&s=rec') or $this->returnServerError('No results for this query.'); $html = $this->getSimpleHTMLDOM('http://www.flickr.com/search/?q='.urlencode($this->request).'&s=rec') or $this->returnServerError('No results for this query.');
} }
elseif (isset($param['u'])) { /* user timeline mode */ elseif (isset($param['u'])) { /* user timeline mode */
$this->request = $param['u']; $this->request = $param['u'];
$html = $this->file_get_html('http://www.flickr.com/photos/'.urlencode($this->request).'/') or $this->returnServerError('Requested username can\'t be found.'); $html = $this->getSimpleHTMLDOM('http://www.flickr.com/photos/'.urlencode($this->request).'/') or $this->returnServerError('Requested username can\'t be found.');
} }
else { else {

View file

@ -12,7 +12,7 @@ class FootitoBridge extends BridgeAbstract{
} }
public function collectData(array $param){ public function collectData(array $param){
$html = $this->file_get_html('http://www.footito.fr/') or $this->returnServerError('Could not request Footito.'); $html = $this->getSimpleHTMLDOM('http://www.footito.fr/') or $this->returnServerError('Could not request Footito.');
foreach($html->find('div.post') as $element) { foreach($html->find('div.post') as $element) {
$item = new Item(); $item = new Item();

View file

@ -32,7 +32,7 @@ class FourchanBridge extends BridgeAbstract{
$this->returnClientError('You must specify the thread URL.'); $this->returnClientError('You must specify the thread URL.');
$url = 'https://boards.4chan.org'.$thread['path'].''; $url = 'https://boards.4chan.org'.$thread['path'].'';
$html = $this->file_get_html($url) or $this->returnServerError("Could not request 4chan, thread not found"); $html = $this->getSimpleHTMLDOM($url) or $this->returnServerError("Could not request 4chan, thread not found");
foreach($html->find('div.postContainer') as $element) { foreach($html->find('div.postContainer') as $element) {
$item = new \Item(); $item = new \Item();

View file

@ -0,0 +1,69 @@
<?php
class FrandroidBridge extends BridgeAbstract
{
public function loadMetadatas() {
$this->maintainer = "Daiyousei";
$this->name = "Frandroid";
$this->uri = "http://www.frandroid.com/";
$this->description = "Returns the RSS feed from Frandroid (full text articles)";
$this->update = "2015-03-05";
}
public function collectData(array $param)
{
function FrandroidStripCDATA($string)
{
$string = str_replace('<![CDATA[', '', $string);
$string = str_replace(']]>', '', $string);
return $string;
}
function FrandroidExtractContent($url)
{
$html2 = $this->getSimpleHTMLDOM($url);
$html3 = $html2->find('div.post-content', 0);
$html3->find('div.no-sidebar-ad-top', 0)->outertext = '';
$ret = $html3->find('div.shortcode-container');
foreach ($ret as $value) {
$value->outertext = '';
}
$html3->find('div#hrr-link', 0)->outertext = '';
$text = $html3->innertext;
$text = strip_tags($text, '<h1><span><h2><p><b><a><blockquote><img><em><ul><ol>');
return $text;
}
$html = $this->getSimpleHTMLDOM('http://feeds.feedburner.com/Frandroid?format=xml') or $this->returnError('Could not request Frandroid.', 404);
$limit = 0;
foreach ($html->find('item') as $element) {
if ($limit < 5) {
$item = new \Item();
$item->title = FrandroidStripCDATA($element->find('title', 0)->innertext);
$item->uri = FrandroidStripCDATA($element->find('guid', 0)->plaintext);
$item->timestamp = strtotime($element->find('pubDate', 0)->plaintext);
$item->content = FrandroidExtractContent($item->uri);
$this->items[] = $item;
$limit++;
}
}
}
public function getName()
{
return 'Frandroid';
}
public function getURI()
{
return 'http://www.frandroid.com/';
}
public function getCacheDuration()
{
return 300; // 5min
}
}

View file

@ -172,13 +172,13 @@ class FuturaSciencesBridge extends BridgeAbstract {
$this->returnClientError('Invalid "feed" parameter.'.$url); $this->returnClientError('Invalid "feed" parameter.'.$url);
$url = $this->getURI().'rss/'.$param['feed'].'.xml'; $url = $this->getURI().'rss/'.$param['feed'].'.xml';
$html = $this->file_get_html($url) or $this->returnServerError('Could not request Futura-Sciences: '.$url); $html = $this->getSimpleHTMLDOM($url) or $this->returnServerError('Could not request Futura-Sciences: '.$url);
$limit = 0; $limit = 0;
foreach($html->find('item') as $element) { foreach($html->find('item') as $element) {
if ($limit < 10) { if ($limit < 10) {
$article_url = str_replace('#xtor=RSS-8', '', StripCDATA($element->find('guid', 0)->plaintext)); $article_url = str_replace('#xtor=RSS-8', '', StripCDATA($element->find('guid', 0)->plaintext));
$article = $this->file_get_html($article_url) or $this->returnServerError('Could not request Futura-Sciences: '.$article_url); $article = $this->getSimpleHTMLDOM($article_url) or $this->returnServerError('Could not request Futura-Sciences: '.$article_url);
$contents = $article->find('div.content', 0)->innertext; $contents = $article->find('div.content', 0)->innertext;
foreach (array( foreach (array(

View file

@ -74,7 +74,7 @@ class GBAtempBridge extends BridgeAbstract {
} }
private function fetch_post_content($uri, $site_url) { private function fetch_post_content($uri, $site_url) {
$html = $this->file_get_html($uri) or $this->returnServerError('Could not request GBAtemp: '.$uri); $html = $this->getSimpleHTMLDOM($uri) or $this->returnServerError('Could not request GBAtemp: '.$uri);
$content = $html->find('div.messageContent', 0)->innertext; $content = $html->find('div.messageContent', 0)->innertext;
return $this->cleanup_post_content($content, $site_url); return $this->cleanup_post_content($content, $site_url);
} }
@ -91,7 +91,7 @@ class GBAtempBridge extends BridgeAbstract {
} else $this->returnClientError('The provided type filter is invalid. Expecting N, R, T, or F.'); } else $this->returnClientError('The provided type filter is invalid. Expecting N, R, T, or F.');
} else $this->returnClientError('Please provide a type filter. Expecting N, R, T, or F.'); } else $this->returnClientError('Please provide a type filter. Expecting N, R, T, or F.');
$html = $this->file_get_html($this->uri) or $this->returnServerError('Could not request GBAtemp.'); $html = $this->getSimpleHTMLDOM($this->uri) or $this->returnServerError('Could not request GBAtemp.');
if ($typeFilter == 'N') { if ($typeFilter == 'N') {
foreach ($html->find('li[class=news_item full]') as $newsItem) { foreach ($html->find('li[class=news_item full]') as $newsItem) {
@ -106,7 +106,7 @@ class GBAtempBridge extends BridgeAbstract {
foreach ($html->find('li.portal_review') as $reviewItem) { foreach ($html->find('li.portal_review') as $reviewItem) {
$url = $this->uri.$reviewItem->find('a', 0)->href; $url = $this->uri.$reviewItem->find('a', 0)->href;
$title = $reviewItem->find('span.review_title', 0)->plaintext; $title = $reviewItem->find('span.review_title', 0)->plaintext;
$content = $this->file_get_html($url) or $this->returnServerError('Could not request GBAtemp: '.$uri); $content = $this->getSimpleHTMLDOM($url) or $this->returnServerError('Could not request GBAtemp: '.$uri);
$author = $content->find('a.username', 0)->plaintext; $author = $content->find('a.username', 0)->plaintext;
$time = intval($this->ExtractFromDelimiters($content->find('abbr.DateTime', 0)->outertext, 'data-time="', '"')); $time = intval($this->ExtractFromDelimiters($content->find('abbr.DateTime', 0)->outertext, 'data-time="', '"'));
$intro = '<p><b>'.($content->find('div#review_intro', 0)->plaintext).'</b></p>'; $intro = '<p><b>'.($content->find('div#review_intro', 0)->plaintext).'</b></p>';

View file

@ -34,7 +34,7 @@ class GelbooruBridge extends BridgeAbstract{
if (isset($param['t'])) { if (isset($param['t'])) {
$tags = urlencode($param['t']); $tags = urlencode($param['t']);
} }
$html = $this->file_get_html("http://gelbooru.com/index.php?page=post&s=list&tags=$tags&pid=$page") or $this->returnServerError('Could not request Gelbooru.'); $html = $this->getSimpleHTMLDOM("http://gelbooru.com/index.php?page=post&s=list&tags=$tags&pid=$page") or $this->returnServerError('Could not request Gelbooru.');
foreach($html->find('div[class=content] span') as $element) { foreach($html->find('div[class=content] span') as $element) {

View file

@ -33,7 +33,7 @@ class GiphyBridge extends BridgeAbstract{
$html = ''; $html = '';
$base_url = 'http://giphy.com'; $base_url = 'http://giphy.com';
if (isset($param['s'])) { /* keyword search mode */ if (isset($param['s'])) { /* keyword search mode */
$html = $this->file_get_html($base_url.'/search/'.urlencode($param['s'].'/')) or $this->returnServerError('No results for this query.'); $html = $this->getSimpleHTMLDOM($base_url.'/search/'.urlencode($param['s'].'/')) or $this->returnServerError('No results for this query.');
} }
else { else {
$this->returnClientError('You must specify a search worf (?s=...).'); $this->returnClientError('You must specify a search worf (?s=...).');
@ -51,7 +51,7 @@ class GiphyBridge extends BridgeAbstract{
$node = $entry->first_child(); $node = $entry->first_child();
$href = $node->getAttribute('href'); $href = $node->getAttribute('href');
$html2 = $this->file_get_html($base_url . $href) or $this->returnServerError('No results for this query.'); $html2 = $this->getSimpleHTMLDOM($base_url . $href) or $this->returnServerError('No results for this query.');
$figure = $html2->getElementByTagName('figure'); $figure = $html2->getElementByTagName('figure');
$img = $figure->firstChild(); $img = $figure->firstChild();
$caption = $figure->lastChild(); $caption = $figure->lastChild();

View file

@ -34,7 +34,7 @@ class GithubIssueBridge extends BridgeAbstract{
public function collectData(array $param){ public function collectData(array $param){
$uri = 'https://github.com/'.$param['u'].'/'.$param['p'].'/issues/'.$param['i']; $uri = 'https://github.com/'.$param['u'].'/'.$param['p'].'/issues/'.$param['i'];
$html = file_get_html($uri) $html = $this->getSimpleHTMLDOM($uri)
or $this->returnServerError('No results for Github Issue '.$param['i'].' in project '.$param['u'].'/'.$param['p']); or $this->returnServerError('No results for Github Issue '.$param['i'].' in project '.$param['u'].'/'.$param['p']);
foreach($html->find('.js-comment-container') as $comment){ foreach($html->find('.js-comment-container') as $comment){

View file

@ -44,7 +44,7 @@ class GitlabCommitsBridge extends BridgeAbstract{
$uri.='master'; $uri.='master';
} }
$html = file_get_html($uri) $html = $this->getSimpleHTMLDOM($uri)
or $this->returnServerError('No results for Gitlab Commits of project '.$param['uri'].'/'.$param['u'].'/'.$param['p']); or $this->returnServerError('No results for Gitlab Commits of project '.$param['uri'].'/'.$param['u'].'/'.$param['p']);

View file

@ -14,7 +14,7 @@ class GizmodoFRBridge extends BridgeAbstract{
public function collectData(array $param){ public function collectData(array $param){
function GizmodoFRExtractContent($url) { function GizmodoFRExtractContent($url) {
$articleHTMLContent = $this->file_get_html($url); $articleHTMLContent = $this->getSimpleHTMLDOM($url);
$text = $articleHTMLContent->find('div.entry-thumbnail', 0)->innertext; $text = $articleHTMLContent->find('div.entry-thumbnail', 0)->innertext;
$text = $text.$articleHTMLContent->find('div.entry-excerpt', 0)->innertext; $text = $text.$articleHTMLContent->find('div.entry-excerpt', 0)->innertext;
$text = $text.$articleHTMLContent->find('div.entry-content', 0)->innertext; $text = $text.$articleHTMLContent->find('div.entry-content', 0)->innertext;
@ -26,7 +26,7 @@ class GizmodoFRBridge extends BridgeAbstract{
return $text; return $text;
} }
$rssFeed = $this->file_get_html('http://www.gizmodo.fr/feed') or $this->returnServerError('Could not request http://www.gizmodo.fr/feed'); $rssFeed = $this->getSimpleHTMLDOM('http://www.gizmodo.fr/feed') or $this->returnServerError('Could not request http://www.gizmodo.fr/feed');
$limit = 0; $limit = 0;
foreach($rssFeed->find('item') as $element) { foreach($rssFeed->find('item') as $element) {

View file

@ -33,8 +33,8 @@ class GooglePlusPostBridge extends BridgeAbstract
$this->request = $param['username']; $this->request = $param['username'];
// get content parsed // get content parsed
// $html = $this->file_get_html(__DIR__ . '/../posts2.html' // $html = $this->getSimpleHTMLDOM(__DIR__ . '/../posts2.html'
$html = $this->file_get_html(self::GOOGLE_PLUS_BASE_URL . urlencode($this->request) . '/posts' $html = $this->getSimpleHTMLDOM(self::GOOGLE_PLUS_BASE_URL . urlencode($this->request) . '/posts'
// force language // force language
, false, stream_context_create(array('http'=> array( , false, stream_context_create(array('http'=> array(
'header' => 'Accept-Language: fr,fr-be,fr-fr;q=0.8,en;q=0.4,en-us;q=0.2;*' . "\r\n" 'header' => 'Accept-Language: fr,fr-be,fr-fr;q=0.8,en;q=0.4,en-us;q=0.2;*' . "\r\n"

View file

@ -35,7 +35,7 @@ class GoogleSearchBridge extends BridgeAbstract{
if (isset($param['q'])) { /* keyword search mode */ if (isset($param['q'])) { /* keyword search mode */
$this->request = $param['q']; $this->request = $param['q'];
$html = $this->file_get_html('https://www.google.com/search?q=' . urlencode($this->request) . '&num=100&complete=0&tbs=qdr:y,sbd:1') or $this->returnServerError('No results for this query.'); $html = $this->getSimpleHTMLDOM('https://www.google.com/search?q=' . urlencode($this->request) . '&num=100&complete=0&tbs=qdr:y,sbd:1') or $this->returnServerError('No results for this query.');
} }
else{ else{
$this->returnClientError('You must specify a keyword (?q=...).'); $this->returnClientError('You must specify a keyword (?q=...).');

View file

@ -16,7 +16,7 @@ class GuruMedBridge extends BridgeAbstract{
} }
public function collectData(array $param){ public function collectData(array $param){
$html = $this->file_get_html('http://gurumed.org/feed') or $this->returnServerError('Could not request Gurumed.'); $html = $this->getSimpleHTMLDOM('http://gurumed.org/feed') or $this->returnServerError('Could not request Gurumed.');
$limit = 0; $limit = 0;
foreach($html->find('item') as $element) { foreach($html->find('item') as $element) {

View file

@ -48,7 +48,7 @@ class HDWallpapersBridge extends BridgeAbstract {
for ($page = 1; $page <= $lastpage; $page++) { for ($page = 1; $page <= $lastpage; $page++) {
$link = $baseUri.'/'.$category.'/page/'.$page; $link = $baseUri.'/'.$category.'/page/'.$page;
$html = $this->file_get_html($link) or $this->returnServerError('No results for this query.'); $html = $this->getSimpleHTMLDOM($link) or $this->returnServerError('No results for this query.');
if ($page === 1) { if ($page === 1) {
preg_match('/page\/(\d+)$/', $html->find('.pagination a', -2)->href, $matches); preg_match('/page\/(\d+)$/', $html->find('.pagination a', -2)->href, $matches);

View file

@ -12,7 +12,7 @@ class HentaiHavenBridge extends BridgeAbstract{
} }
public function collectData(array $param){ public function collectData(array $param){
$html = $this->file_get_html('http://hentaihaven.org/') or $this->returnServerError('Could not request Hentai Haven.'); $html = $this->getSimpleHTMLDOM('http://hentaihaven.org/') or $this->returnServerError('Could not request Hentai Haven.');
foreach($html->find('div.zoe-grid') as $element) { foreach($html->find('div.zoe-grid') as $element) {
$item = new \Item(); $item = new \Item();
$item->uri = $element->find('div.brick-content h3 a', 0)->href; $item->uri = $element->find('div.brick-content h3 a', 0)->href;

View file

@ -25,7 +25,7 @@ class IdenticaBridge extends BridgeAbstract{
$html = ''; $html = '';
if (isset($param['u'])) { /* user timeline mode */ if (isset($param['u'])) { /* user timeline mode */
$this->request = $param['u']; $this->request = $param['u'];
$html = $this->file_get_html('https://identi.ca/'.urlencode($this->request)) or $this->returnServerError('Requested username can\'t be found.'); $html = $this->getSimpleHTMLDOM('https://identi.ca/'.urlencode($this->request)) or $this->returnServerError('Requested username can\'t be found.');
} }
else { else {
$this->returnClientError('You must specify an Identica username (?u=...).'); $this->returnClientError('You must specify an Identica username (?u=...).');

View file

@ -25,7 +25,7 @@ class InstagramBridge extends BridgeAbstract{
$html = ''; $html = '';
if (isset($param['u'])) { /* user timeline mode */ if (isset($param['u'])) { /* user timeline mode */
$this->request = $param['u']; $this->request = $param['u'];
$html = $this->file_get_html('http://instagram.com/'.urlencode($this->request)) or $this->returnServerError('Could not request Instagram.'); $html = $this->getSimpleHTMLDOM('http://instagram.com/'.urlencode($this->request)) or $this->returnServerError('Could not request Instagram.');
} }
else { else {
$this->returnClientError('You must specify a Instagram username (?u=...).'); $this->returnClientError('You must specify a Instagram username (?u=...).');

View file

@ -59,7 +59,7 @@ class JapanExpoBridge extends BridgeAbstract{
}; };
$link = 'http://www.japan-expo-paris.com/fr/actualites'; $link = 'http://www.japan-expo-paris.com/fr/actualites';
$html = $this->file_get_html($link) or $this->returnServerError('Could not request JapanExpo: '.$link); $html = $this->getSimpleHTMLDOM($link) or $this->returnServerError('Could not request JapanExpo: '.$link);
$fullcontent = (!empty($param['mode']) && $param['mode'] == 'full'); $fullcontent = (!empty($param['mode']) && $param['mode'] == 'full');
$count = 0; $count = 0;
@ -73,7 +73,7 @@ class JapanExpoBridge extends BridgeAbstract{
if ($fullcontent) { if ($fullcontent) {
if ($count < 5) { if ($count < 5) {
$article_html = $this->file_get_html($url) or $this->returnServerError('Could not request JapanExpo: '.$url); $article_html = $this->getSimpleHTMLDOM($url) or $this->returnServerError('Could not request JapanExpo: '.$url);
$header = $article_html->find('header.pageHeadBox', 0); $header = $article_html->find('header.pageHeadBox', 0);
$timestamp = strtotime($header->find('time', 0)->datetime); $timestamp = strtotime($header->find('time', 0)->datetime);
$title_html = $header->find('div.section', 0)->next_sibling(); $title_html = $header->find('div.section', 0)->next_sibling();

View file

@ -31,7 +31,7 @@ class KonachanBridge extends BridgeAbstract{
if (isset($param['t'])) { if (isset($param['t'])) {
$tags = urlencode($param['t']); $tags = urlencode($param['t']);
} }
$html = $this->file_get_html("http://konachan.com/post?page=$page&tags=$tags") or $this->returnServerError('Could not request Konachan.'); $html = $this->getSimpleHTMLDOM("http://konachan.com/post?page=$page&tags=$tags") or $this->returnServerError('Could not request Konachan.');
$input_json = explode('Post.register(', $html); $input_json = explode('Post.register(', $html);
foreach($input_json as $element) foreach($input_json as $element)
$data[] = preg_replace('/}\)(.*)/', '}', $element); $data[] = preg_replace('/}\)(.*)/', '}', $element);

View file

@ -16,14 +16,14 @@ class KoreusBridge extends BridgeAbstract{
} }
private function KoreusExtractContent($url) { private function KoreusExtractContent($url) {
$html2 = $this->file_get_html($url); $html2 = $this->getSimpeHTMLDOM($url);
$text = $html2->find('p[class=itemText]', 0)->innertext; $text = $html2->find('p[class=itemText]', 0)->innertext;
$text = utf8_encode(preg_replace('/(Sur le m.+?)+$/i','',$text)); $text = utf8_encode(preg_replace('/(Sur le m.+?)+$/i','',$text));
return $text; return $text;
} }
public function collectData(array $param){ public function collectData(array $param){
$html = $this->file_get_html('http://feeds.feedburner.com/Koreus-articles') or $this->returnServerError('Could not request Koreus.'); $html = $this->getSimpleHTMLDOM('http://feeds.feedburner.com/Koreus-articles') or $this->returnServerError('Could not request Koreus.');
$limit = 0; $limit = 0;
foreach($html->find('item') as $element) { foreach($html->find('item') as $element) {

View file

@ -239,7 +239,7 @@ class LeBonCoinBridge extends BridgeAbstract{
else { else {
$link = 'http://www.leboncoin.fr/' . $param['c'] . '/offres/' . $param['r'] . '/?f=a&th=1&q=' . urlencode($param['k']); $link = 'http://www.leboncoin.fr/' . $param['c'] . '/offres/' . $param['r'] . '/?f=a&th=1&q=' . urlencode($param['k']);
} }
$html = $this->file_get_html($link) or $this->returnServerError('Could not request LeBonCoin.'); $html = $this->getSimpleHTMLDOM($link) or $this->returnServerError('Could not request LeBonCoin.');
$list = $html->find('.tabsContent', 0); $list = $html->find('.tabsContent', 0);
if($list === NULL) { if($list === NULL) {

View file

@ -16,7 +16,7 @@ class LeJournalDuGeekBridge extends BridgeAbstract{
} }
private function LeJournalDuGeekExtractContent($url) { private function LeJournalDuGeekExtractContent($url) {
$articleHTMLContent = $this->file_get_html($url); $articleHTMLContent = $this->getSimpleHMLDOM($url);
$text = $articleHTMLContent->find('div.post-content', 0)->innertext; $text = $articleHTMLContent->find('div.post-content', 0)->innertext;
foreach($articleHTMLContent->find('a.more') as $element) { foreach($articleHTMLContent->find('a.more') as $element) {
@ -38,7 +38,7 @@ class LeJournalDuGeekBridge extends BridgeAbstract{
} }
public function collectData(array $param){ public function collectData(array $param){
$rssFeed = $this->file_get_html('http://www.journaldugeek.com/rss') or $this->returnServerError('Could not request http://www.journaldugeek.com/rss'); $rssFeed = $this->getSimpleHTMLDOM('http://www.journaldugeek.com/rss') or $this->returnServerError('Could not request http://www.journaldugeek.com/rss');
$limit = 0; $limit = 0;
foreach($rssFeed->find('item') as $element) { foreach($rssFeed->find('item') as $element) {

View file

@ -34,7 +34,7 @@ class LeMondeInformatiqueBridge extends BridgeAbstract {
} }
$feedUrl = 'http://www.lemondeinformatique.fr/rss/rss.xml'; $feedUrl = 'http://www.lemondeinformatique.fr/rss/rss.xml';
$html = $this->file_get_html($feedUrl) or $this->returnServerError('Could not request LeMondeInformatique: '.$feedUrl); $html = $this->getSimpleHTMLDOM($feedUrl) or $this->returnServerError('Could not request LeMondeInformatique: '.$feedUrl);
$limit = 0; $limit = 0;
foreach($html->find('item') as $element) { foreach($html->find('item') as $element) {
@ -44,7 +44,7 @@ class LeMondeInformatiqueBridge extends BridgeAbstract {
$article_uri = $element->innertext; $article_uri = $element->innertext;
$article_uri = substr($article_uri, strpos($article_uri, '<link>') + 6); $article_uri = substr($article_uri, strpos($article_uri, '<link>') + 6);
$article_uri = substr($article_uri, 0, strpos($article_uri, '</link>')); $article_uri = substr($article_uri, 0, strpos($article_uri, '</link>'));
$article_html = $this->file_get_html($article_uri) or $this->returnServerError('Could not request LeMondeInformatique: '.$article_uri); $article_html = $this->getSimpleHTMLDOM($article_uri) or $this->returnServerError('Could not request LeMondeInformatique: '.$article_uri);
$article_content = CleanArticle($article_html->find('div#article', 0)->innertext); $article_content = CleanArticle($article_html->find('div#article', 0)->innertext);
$article_title = $article_html->find('h1.cleanprint-title', 0)->plaintext; $article_title = $article_html->find('h1.cleanprint-title', 0)->plaintext;

View file

@ -0,0 +1,55 @@
<?php
class LeMotDuJourBridge extends BridgeAbstract{
public function loadMetadatas() {
$this->maintainer = "qwertygc";
$this->name = "LeMotDuJour Bridge";
$this->uri = "http://www.lemotdujour.com/";
$this->description = "Returns the newest articles.";
$this->update = "2014-05-25";
}
public function collectData(array $param){
function StripCDATA($string) {
$string = str_replace('<![CDATA[', '', $string);
$string = str_replace(']]>', '', $string);
return $string;
}
function ExtractContent($url) {
$html2 = $this->getSimpleHTMLDOM($url);
$text = $html2->find('div.single-contenu', 0)->innertext;
return $text;
}
$html = $this->getSimpleHTMLDOM('http://feeds2.feedburner.com/lemotdujour/lemotdujour') or $this->returnError('Could not request LeMotDuJour.', 404);
$limit = 0;
foreach($html->find('item') as $element) {
if($limit < 10) {
$item = new \Item();
$item->title = StripCDATA($element->find('title', 0)->innertext);
$item->uri = StripCDATA($element->find('guid', 0)->plaintext);
$item->timestamp = strtotime($element->find('pubDate', 0)->plaintext);
$item->content = ExtractContent($item->uri);
$this->items[] = $item;
$limit++;
}
}
}
public function getName(){
return 'LeMotDuJour Bridge';
}
public function getURI(){
return 'http://lemotdujour.com/';
}
public function getCacheDuration(){
return 3600*2; // 2 hours
// return 0; // 2 hours
}
}

View file

@ -12,7 +12,7 @@ class LesJoiesDuCodeBridge extends BridgeAbstract{
} }
public function collectData(array $param){ public function collectData(array $param){
$html = $this->file_get_html('http://lesjoiesducode.fr/') or $this->returnServerError('Could not request LesJoiesDuCode.'); $html = $this->getSimpleHTMLDOM('http://lesjoiesducode.fr/') or $this->returnServerError('Could not request LesJoiesDuCode.');
foreach($html->find('div.blog-post') as $element) { foreach($html->find('div.blog-post') as $element) {
$item = new Item(); $item = new Item();

View file

@ -13,7 +13,7 @@ class LichessBridge extends BridgeAbstract
public function collectData(array $param) public function collectData(array $param)
{ {
$xml_feed = $this->file_get_html('http://fr.lichess.org/blog.atom') or $this->returnServerError('Could not retrieve Lichess blog feed.'); $xml_feed = $this->getSimpleHTMLDOM('http://fr.lichess.org/blog.atom') or $this->returnServerError('Could not retrieve Lichess blog feed.');
$posts_loaded = 0; $posts_loaded = 0;
foreach($xml_feed->find('entry') as $entry) foreach($xml_feed->find('entry') as $entry)
@ -37,7 +37,7 @@ class LichessBridge extends BridgeAbstract
private function retrieve_lichess_post($blog_post_uri) private function retrieve_lichess_post($blog_post_uri)
{ {
$blog_post_html = $this->file_get_html($blog_post_uri); $blog_post_html = $this->getSimpleHTMLDOM($blog_post_uri);
$blog_post_div = $blog_post_html->find('#lichess_blog', 0); $blog_post_div = $blog_post_html->find('#lichess_blog', 0);
$post_chapo = $blog_post_div->find('.shortlede', 0)->innertext; $post_chapo = $blog_post_div->find('.shortlede', 0)->innertext;

View file

@ -22,7 +22,7 @@ class LinkedInCompany extends BridgeAbstract{
$html = ''; $html = '';
$link = 'https://www.linkedin.com/company/'.$param[c]; $link = 'https://www.linkedin.com/company/'.$param[c];
$html = $this->file_get_html($link) or $this->returnServerError('Could not request LinkedIn.'); $html = $this->getSimpleHTMLDOM($link) or $this->returnServerError('Could not request LinkedIn.');
foreach($html->find('//*[@id="my-feed-post"]/li') as $element) { foreach($html->find('//*[@id="my-feed-post"]/li') as $element) {
$title = $element->find('span.share-body', 0)->innertext; $title = $element->find('span.share-body', 0)->innertext;

View file

@ -32,7 +32,7 @@ class LolibooruBridge extends BridgeAbstract{
if (isset($param['t'])) { if (isset($param['t'])) {
$tags = urlencode($param['t']); $tags = urlencode($param['t']);
} }
$html = $this->file_get_html("http://lolibooru.moe/post?page=$page&tags=$tags") or $this->returnServerError('Could not request Lolibooru.'); $html = $this->getSimpleHTMLDOM("http://lolibooru.moe/post?page=$page&tags=$tags") or $this->returnServerError('Could not request Lolibooru.');
$input_json = explode('Post.register(', $html); $input_json = explode('Post.register(', $html);
foreach($input_json as $element) foreach($input_json as $element)
$data[] = preg_replace('/}\)(.*)/', '}', $element); $data[] = preg_replace('/}\)(.*)/', '}', $element);

60
bridges/MalikiBridge.php Normal file
View file

@ -0,0 +1,60 @@
<?php
class MalikiBridge extends BridgeAbstract{
public function loadMetadatas() {
$this->maintainer = "mitsukarenai";
$this->name = "Maliki";
$this->uri = "http://www.maliki.com/";
$this->description = "Returns Maliki's newest strips";
$this->update = "2014-05-30";
}
public function collectData(array $param){
$html = $this->getSimpleHTMLDOM('http://www.maliki.com/') or $this->returnError('Could not request Maliki.', 404);
$count=0;
$latest=1; $latest_title="";
$latest = $html->find('div.conteneur_page a', 1)->href;
$latest_title = $html->find('div.conteneur_page img', 0)->title;
function MalikiExtractContent($url) {
$html2 = $this->getSimpleHTMLDOM($url);
$text = 'http://www.maliki.com/'.$html2->find('img', 0)->src;
$text = '<img alt="" src="'.$text.'"/><br>'.$html2->find('div.imageetnews', 0)->plaintext;
return $text;
}
$item = new \Item();
$item->uri = 'http://www.maliki.com/'.$latest;
$item->title = $latest_title;
$item->timestamp = time();
$item->content = MalikiExtractContent($item->uri);
$this->items[] = $item;
foreach($html->find('div.boite_strip') as $element) {
if(!empty($element->find('a',0)->href) and $count < 3) {
$item = new \Item();
$item->uri = 'http://www.maliki.com/'.$element->find('a',0)->href;
$item->title = $element->find('img',0)->title;
$item->timestamp = strtotime(str_replace('/', '-', $element->find('span.stylepetit', 0)->innertext));
$item->content = MalikiExtractContent($item->uri);
$this->items[] = $item;
$count++;
}
}
}
public function getName(){
return 'Maliki';
}
public function getURI(){
return 'http://www.maliki.com/';
}
public function getCacheDuration(){
return 86400*6; // 6 days
}
}

View file

@ -0,0 +1,58 @@
<?php
class MemoLinuxBridge extends BridgeAbstract{
public function loadMetadatas() {
$this->maintainer = "qwertygc";
$this->name = "MemoLinux";
$this->uri = "http://memo-linux.com/";
$this->description = "Returns the 10 newest posts from MemoLinux (full text)";
$this->update = "2015-01-30";
}
public function collectData(array $param){
function StripCDATA($string) {
$string = str_replace('<![CDATA[', '', $string);
$string = str_replace(']]>', '', $string);
return $string;
}
function ExtractContent($url) {
$html2 = $this->getSimpleHTMLDOM($url);
$text = $html2->find('div.entry-content', 0)->innertext;
$text = preg_replace('@<script[^>]*?>.*?</script>@si', '', $text);
$text = preg_replace('@<div[^>]*?>.*?</div>@si', '', $text);
$text = preg_replace("/<h1.*/", '', $text);
return $text;
}
$html = $this->getSimpleHTMLDOM('http://memo-linux.com/feed/') or $this->returnError('Could not request MemoLinux.', 404);
$limit = 0;
foreach($html->find('item') as $element) {
if($limit < 10) {
$item = new \Item();
$item->title = StripCDATA($element->find('title', 0)->innertext);
$item->uri = StripCDATA($element->find('guid', 0)->plaintext);
$item->timestamp = strtotime($element->find('pubDate', 0)->plaintext);
$item->content = ExtractContent($item->uri);
$this->items[] = $item;
$limit++;
}
}
}
public function getName(){
return 'MemoLinux';
}
public function getURI(){
return 'http://memo-linux.com/feed/';
}
public function getCacheDuration(){
return 3600*12; // 12 hours
}
}

View file

@ -31,7 +31,7 @@ class MilbooruBridge extends BridgeAbstract{
if (isset($param['t'])) { if (isset($param['t'])) {
$tags = urlencode($param['t']); $tags = urlencode($param['t']);
} }
$html = $this->file_get_html("http://sheslostcontrol.net/moe/shimmie/index.php?q=/post/list/$tags/$page") or $this->returnServerError('Could not request Milbooru.'); $html = $this->getSimpleHTMLDOM("http://sheslostcontrol.net/moe/shimmie/index.php?q=/post/list/$tags/$page") or $this->returnServerError('Could not request Milbooru.');
foreach($html->find('div[class=shm-image-list] span[class=thumb]') as $element) { foreach($html->find('div[class=shm-image-list] span[class=thumb]') as $element) {

View file

@ -10,7 +10,7 @@ class MondeDiploBridge extends BridgeAbstract{
} }
public function collectData(array $param){ public function collectData(array $param){
$html = $this->file_get_html($this->uri) or $this->returnServerError('Could not request MondeDiplo. for : ' . $link); $html = $this->getSimpleHTMLDOM($this->uri) or $this->returnServerError('Could not request MondeDiplo. for : ' . $link);
foreach($html->find('div.unarticle') as $article) { foreach($html->find('div.unarticle') as $article) {
$element = $article->parent(); $element = $article->parent();

View file

@ -10,13 +10,13 @@ class MsnMondeBridge extends BridgeAbstract{
} }
private function MsnMondeExtractContent($url, &$item) { private function MsnMondeExtractContent($url, &$item) {
$html2 = $this->file_get_html($url); $html2 = $this->getSimpleHTLDOM($url);
$item->content = $html2->find('#content', 0)->find('article', 0)->find('section', 0)->plaintext; $item->content = $html2->find('#content', 0)->find('article', 0)->find('section', 0)->plaintext;
$item->timestamp = strtotime($html2->find('.authorinfo-txt', 0)->find('time', 0)->datetime); $item->timestamp = strtotime($html2->find('.authorinfo-txt', 0)->find('time', 0)->datetime);
} }
public function collectData(array $param){ public function collectData(array $param){
$html = $this->file_get_html($this->uri) or $this->returnServerError('Could not request MsnMonde.'); $html = $this->getSimpleHTMLDOM($this->uri) or $this->returnServerError('Could not request MsnMonde.');
$limit = 0; $limit = 0;
foreach($html->find('.smalla') as $article) { foreach($html->find('.smalla') as $article) {
if($limit < 10) { if($limit < 10) {

View file

@ -34,7 +34,7 @@ class MspabooruBridge extends BridgeAbstract{
if (isset($param['t'])) { if (isset($param['t'])) {
$tags = urlencode($param['t']); $tags = urlencode($param['t']);
} }
$html = $this->file_get_html("http://mspabooru.com/index.php?page=post&s=list&tags=$tags&pid=$page") or $this->returnServerError('Could not request Mspabooru.'); $html = $this->getSimpleHTMLDOM("http://mspabooru.com/index.php?page=post&s=list&tags=$tags&pid=$page") or $this->returnServerError('Could not request Mspabooru.');
foreach($html->find('div[class=content] span') as $element) { foreach($html->find('div[class=content] span') as $element) {

View file

@ -36,7 +36,7 @@ class NakedSecurityBridge extends BridgeAbstract {
} }
$feedUrl = 'https://feeds.feedburner.com/nakedsecurity?format=xml'; $feedUrl = 'https://feeds.feedburner.com/nakedsecurity?format=xml';
$html = $this->file_get_html($feedUrl) or $this->returnServerError('Could not request '.$this->getName().': '.$feedUrl); $html = $this->getSimpleHTMLDOM($feedUrl) or $this->returnServerError('Could not request '.$this->getName().': '.$feedUrl);
$limit = 0; $limit = 0;
foreach ($html->find('item') as $element) { foreach ($html->find('item') as $element) {
@ -44,7 +44,7 @@ class NakedSecurityBridge extends BridgeAbstract {
//Retrieve article Uri and get that page //Retrieve article Uri and get that page
$article_uri = $element->find('guid', 0)->plaintext; $article_uri = $element->find('guid', 0)->plaintext;
$article_html = $this->file_get_html($article_uri) or $this->returnServerError('Could not request '.$this->getName().': '.$article_uri); $article_html = $this->getSimpleHTMLDOM($article_uri) or $this->returnServerError('Could not request '.$this->getName().': '.$article_uri);
//Build article contents from corresponding elements //Build article contents from corresponding elements
$article_title = trim($element->find('title', 0)->plaintext); $article_title = trim($element->find('title', 0)->plaintext);

View file

@ -13,7 +13,7 @@ class NasaApodBridge extends BridgeAbstract{
public function collectData(array $param) { public function collectData(array $param) {
$html = $this->file_get_html('http://apod.nasa.gov/apod/archivepix.html') or $this->returnServerError('Error while downloading the website content'); $html = $this->getSimpleHTMLDOM('http://apod.nasa.gov/apod/archivepix.html') or $this->returnServerError('Error while downloading the website content');
$list = explode("<br>", $html->find('b', 0)->innertext); $list = explode("<br>", $html->find('b', 0)->innertext);
for($i = 0; $i < 3;$i++) for($i = 0; $i < 3;$i++)
@ -25,7 +25,7 @@ class NasaApodBridge extends BridgeAbstract{
$uri = 'http://apod.nasa.gov/apod/'.$uri_page; $uri = 'http://apod.nasa.gov/apod/'.$uri_page;
$item->uri = $uri; $item->uri = $uri;
$picture_html = $this->file_get_html($uri); $picture_html = $this->getSimpleHTMLDOM($uri);
$picture_html_string = $picture_html->innertext; $picture_html_string = $picture_html->innertext;
//Extract image and explanation //Extract image and explanation

View file

@ -20,7 +20,7 @@ class NeuviemeArtBridge extends BridgeAbstract {
} }
$feedUrl = 'http://www.9emeart.fr/9emeart.rss'; $feedUrl = 'http://www.9emeart.fr/9emeart.rss';
$html = $this->file_get_html($feedUrl) or $this->returnServerError('Could not request 9eme Art: '.$feedUrl); $html = $this->getSimpleHTMLDOM($feedUrl) or $this->returnServerError('Could not request 9eme Art: '.$feedUrl);
$limit = 0; $limit = 0;
foreach ($html->find('item') as $element) { foreach ($html->find('item') as $element) {
@ -28,7 +28,7 @@ class NeuviemeArtBridge extends BridgeAbstract {
//Retrieve article Uri and get that page //Retrieve article Uri and get that page
$article_uri = $element->find('guid', 0)->plaintext; $article_uri = $element->find('guid', 0)->plaintext;
$article_html = $this->file_get_html($article_uri) or $this->returnServerError('Could not request 9eme Art: '.$article_uri); $article_html = $this->getSimpleHTMLDOM($article_uri) or $this->returnServerError('Could not request 9eme Art: '.$article_uri);
//Build article contents from corresponding elements //Build article contents from corresponding elements
$article_title = trim($element->find('title', 0)->plaintext); $article_title = trim($element->find('title', 0)->plaintext);

View file

@ -16,7 +16,7 @@ class NextInpactBridge extends BridgeAbstract {
} }
private function ExtractContent($url) { private function ExtractContent($url) {
$html2 = $this->file_get_html($url); $html2 = $this->getSimpleHTLDOM($url);
$text = '<p><em>'.$html2->find('span.sub_title', 0)->innertext.'</em></p>' $text = '<p><em>'.$html2->find('span.sub_title', 0)->innertext.'</em></p>'
.'<p><img src="'.$html2->find('div.container_main_image_article', 0)->find('img.dedicated',0)->src.'" alt="-" /></p>' .'<p><img src="'.$html2->find('div.container_main_image_article', 0)->find('img.dedicated',0)->src.'" alt="-" /></p>'
.'<div>'.$html2->find('div[itemprop=articleBody]', 0)->innertext.'</div>'; .'<div>'.$html2->find('div[itemprop=articleBody]', 0)->innertext.'</div>';
@ -27,7 +27,7 @@ class NextInpactBridge extends BridgeAbstract {
} }
public function collectData(array $param) { public function collectData(array $param) {
$html = $this->file_get_html('http://www.nextinpact.com/rss/news.xml') or $this->returnServerError('Could not request NextInpact.'); $html = $this->getSimpleHTMLDOM('http://www.nextinpact.com/rss/news.xml') or $this->returnServerError('Could not request NextInpact.');
$limit = 0; $limit = 0;
foreach($html->find('item') as $element) { foreach($html->find('item') as $element) {

View file

@ -10,7 +10,7 @@ class NiceMatinBridge extends BridgeAbstract{
} }
private function NiceMatinExtractContent($url) { private function NiceMatinExtractContent($url) {
$html = $this->file_get_html($url); $html = $this->getSimpleHTMLDOM($url);
if(!$html) if(!$html)
$this->returnServerError('Could not acquire content from url: ' . $url . '!'); $this->returnServerError('Could not acquire content from url: ' . $url . '!');
@ -24,7 +24,7 @@ class NiceMatinBridge extends BridgeAbstract{
} }
public function collectData(array $param){ public function collectData(array $param){
$html = $this->file_get_html('http://www.nicematin.com/derniere-minute/rss') or $this->returnServerError('Could not request NiceMatin.'); $html = $this->getSimpleHTMLDOM('http://www.nicematin.com/derniere-minute/rss') or $this->returnServerError('Could not request NiceMatin.');
$limit = 0; $limit = 0;
foreach($html->find('item') as $element) { foreach($html->find('item') as $element) {

View file

@ -26,7 +26,7 @@ class NovelUpdatesBridge extends BridgeAbstract{
if(strpos($thread['path'], 'series/') === FALSE) if(strpos($thread['path'], 'series/') === FALSE)
$this->returnClientError('You must specify the novel URL.'); $this->returnClientError('You must specify the novel URL.');
$url = 'http://www.novelupdates.com'.$thread['path'].''; $url = 'http://www.novelupdates.com'.$thread['path'].'';
$fullhtml = $this->file_get_html($url) or $this->returnServerError("Could not request NovelUpdates, novel not found"); $fullhtml = $this->getSimpleHTMLDOM($url) or $this->returnServerError("Could not request NovelUpdates, novel not found");
$this->request = $fullhtml->find('h4.seriestitle', 0)->plaintext; $this->request = $fullhtml->find('h4.seriestitle', 0)->plaintext;
// dirty fix for nasty simpledom bug: https://github.com/sebsauvage/rss-bridge/issues/259 // dirty fix for nasty simpledom bug: https://github.com/sebsauvage/rss-bridge/issues/259
// forcefully removes tbody // forcefully removes tbody

View file

@ -42,7 +42,6 @@ class NumeramaBridge extends BridgeAbstract{
$limit++; $limit++;
} }
} }
} }
public function getCacheDuration() { public function getCacheDuration() {

View file

@ -68,7 +68,7 @@ class OpenClassroomsBridge extends BridgeAbstract{
$html = ''; $html = '';
$link = 'https://openclassrooms.com/courses?categories='.$param['u'].'&title=&sort=updatedAt+desc'; $link = 'https://openclassrooms.com/courses?categories='.$param['u'].'&title=&sort=updatedAt+desc';
$html = $this->file_get_html($link) or $this->returnServerError('Could not request OpenClassrooms.'); $html = $this->getSimpleHTMLDOM($link) or $this->returnServerError('Could not request OpenClassrooms.');
foreach($html->find('.courseListItem') as $element) { foreach($html->find('.courseListItem') as $element) {
$item = new \Item(); $item = new \Item();

View file

@ -0,0 +1,56 @@
<?php
class OpenTheoryBridge extends BridgeAbstract{
public function loadMetadatas() {
$this->maintainer = "qwertygc";
$this->name = "Opentheory";
$this->uri = "http://open1theory.com";
$this->description = "Returns the 5 newest posts from OpenTheory (full text)";
$this->update = "02-08-2014";
}
public function collectData(array $param){
function StripCDATA($string) {
$string = str_replace('<![CDATA[', '', $string);
$string = str_replace(']]>', '', $string);
return $string;
}
function ExtractContent($url) {
$html2 = $this->getSimpleHTMLDOM($url);
$text = $html2->find('div.entry-content', 0)->innertext;
$text = preg_replace('@<script[^>]*?>.*?</script>@si', '', $text);
return $text;
}
$html = $this->getSimpleHTMLDOM('http://open1theory.com/feed') or $this->returnError('Could not request OpenTheory.', 404);
$limit = 0;
foreach($html->find('item') as $element) {
if($limit < 5) {
$item = new \Item();
$item->title = StripCDATA($element->find('title', 0)->innertext);
$item->uri = StripCDATA($element->find('guid', 0)->plaintext);
$item->timestamp = strtotime($element->find('pubDate', 0)->plaintext);
$item->content = ExtractContent($item->uri);
$this->items[] = $item;
$limit++;
}
}
}
public function getName(){
return 'OpenTheory';
}
public function getURI(){
return 'http://open1theory.com/feed';
}
public function getCacheDuration(){
return 3600; // 1 hour
// return 0; // 1 hour
}
}

View file

@ -66,7 +66,7 @@ class ParuVenduImmoBridge extends BridgeAbstract
$link .= '&lo='.urlencode($param['lo']); $link .= '&lo='.urlencode($param['lo']);
} }
$html = $this->file_get_html($link) or $this->returnServerError('Could not request paruvendu.'); $html = $this->getSimpleHTMLDOM($link) or $this->returnServerError('Could not request paruvendu.');
foreach($html->find('div.annonce a') as $element) { foreach($html->find('div.annonce a') as $element) {

View file

@ -55,7 +55,7 @@ class PickyWallpapersBridge extends BridgeAbstract {
for ($page = 1; $page <= $lastpage; $page++) { for ($page = 1; $page <= $lastpage; $page++) {
$link = $baseUri.'/'.$this->resolution.'/'.$this->category.'/'.(!empty($this->subcategory)?$this->subcategory.'/':'').'page-'.$page.'/'; $link = $baseUri.'/'.$this->resolution.'/'.$this->category.'/'.(!empty($this->subcategory)?$this->subcategory.'/':'').'page-'.$page.'/';
$html = $this->file_get_html($link) or $this->returnServerError('No results for this query.'); $html = $this->getSimpleHTMLDOM($link) or $this->returnServerError('No results for this query.');
if ($page === 1) { if ($page === 1) {
preg_match('/page-(\d+)\/$/', $html->find('.pages li a', -2)->href, $matches); preg_match('/page-(\d+)\/$/', $html->find('.pages li a', -2)->href, $matches);

View file

@ -51,12 +51,12 @@ class PinterestBridge extends BridgeAbstract{
$this->username = $param['u']; $this->username = $param['u'];
$this->board = $param['b']; $this->board = $param['b'];
$html = $this->file_get_html($this->getURI().'/'.urlencode($this->username).'/'.urlencode($this->board)) or $this->returnServerError('Username and/or board not found'); $html = $this->getSimpleHTMLDOM($this->getURI().'/'.urlencode($this->username).'/'.urlencode($this->board)) or $this->returnServerError('Username and/or board not found');
} else if (isset($param['q'])) } else if (isset($param['q']))
{ {
$this->query = $param['q']; $this->query = $param['q'];
$html = $this->file_get_html($this->getURI().'/search/?q='.urlencode($this->query)) or $this->returnServerError('Could not request Pinterest.'); $html = $this->getSimpleHTMLDOM($this->getURI().'/search/?q='.urlencode($this->query)) or $this->returnServerError('Could not request Pinterest.');
} }
else { else {

View file

@ -10,13 +10,13 @@ class PlanetLibreBridge extends BridgeAbstract{
} }
private function PlanetLibreExtractContent($url){ private function PlanetLibreExtractContent($url){
$html2 = $this->file_get_html($url); $html2 = $this->geSimpleHTMLDOM($url);
$text = $html2->find('div[class="post-text"]', 0)->innertext; $text = $html2->find('div[class="post-text"]', 0)->innertext;
return $text; return $text;
} }
public function collectData(array $param){ public function collectData(array $param){
$html = $this->file_get_html('http://www.planet-libre.org/') or $this->returnServerError('Could not request PlanetLibre.'); $html = $this->getSimpleHTMLDOM('http://www.planet-libre.org/') or $this->returnServerError('Could not request PlanetLibre.');
$limit = 0; $limit = 0;
foreach($html->find('div.post') as $element) { foreach($html->find('div.post') as $element) {
if($limit < 5) { if($limit < 5) {

View file

@ -14,7 +14,7 @@ class ProjectMGameBridge extends BridgeAbstract{
public function collectData(array $param){ public function collectData(array $param){
$html = ''; $html = '';
$html = $this->file_get_html('http://projectmgame.com/en/') or $this->returnServerError('Error while downloading the Project M homepage'); $html = $this->getSimpleHTMLDOM('http://projectmgame.com/en/') or $this->returnServerError('Error while downloading the Project M homepage');
foreach($html->find('article') as $article) { foreach($html->find('article') as $article) {
$item = new \Item(); $item = new \Item();

View file

@ -25,7 +25,7 @@ class RTBFBridge extends BridgeAbstract {
$count = 0; $count = 0;
if (isset($param['c'])) { if (isset($param['c'])) {
$html = $this->file_get_html('http://www.rtbf.be/auvio/emissions/detail?id='.$param['c']) or $this->returnServerError('Could not request RTBF.'); $html = $this->getSimpleHTMLDOM('http://www.rtbf.be/auvio/emissions/detail?id='.$param['c']) or $this->returnServerError('Could not request RTBF.');
foreach($html->find('section[id!=widget-ml-avoiraussi-] .rtbf-media-grid article') as $element) { foreach($html->find('section[id!=widget-ml-avoiraussi-] .rtbf-media-grid article') as $element) {
if($count < $limit) { if($count < $limit) {

53
bridges/RaymondBridge.php Normal file
View file

@ -0,0 +1,53 @@
<?php
class RaymondBridge extends BridgeAbstract{
public function loadMetadatas() {
$this->maintainer = "pit-fgfjiudghdf";
$this->name = "Raymond";
$this->uri = "http://www.raymond.cc";
$this->description = "Returns the 3 newest posts from Raymond.cc (full text)";
$this->update = "2014-05-26";
}
public function collectData(array $param){
function raymondStripCDATA($string) {
$string = str_replace('<![CDATA[', '', $string);
$string = str_replace(']]>', '', $string);
return $string;
}
function raymondExtractContent($url) {
$html2 = $this->getSimpleHTMLDOM($url);
$text = $html2->find('div.entry-content', 0)->innertext;
$text = preg_replace('/class="ad".*/', '', $text);
$text = strip_tags($text, '<p><a><i><strong><em><img>');
$text = str_replace('(adsbygoogle = window.adsbygoogle || []).push({});', '', $text);
return $text;
}
$html = $this->getSimpleHTMLDOM('http://www.raymond.cc/blog/feed') or $this->returnError('Could not request raymond.', 404);
$limit = 0;
foreach($html->find('item') as $element) {
if($limit < 3) {
$item = new \Item();
$item->title = raymondStripCDATA($element->find('title', 0)->innertext);
$item->uri = raymondStripCDATA($element->find('guid', 0)->plaintext);
$item->timestamp = strtotime($element->find('pubDate', 0)->plaintext);
$item->content = raymondExtractContent($item->uri);
$this->items[] = $item;
$limit++;
}
}
}
public function getName(){
return 'raymond';
}
public function getURI(){
return 'http://www.raymond.cc/blog';
}
public function getCacheDuration(){
return 3600*12; // 12 hour
}
}

View file

@ -66,7 +66,7 @@ class Releases3DSBridge extends BridgeAbstract {
//Retrieve cover art and short desc from IGN? //Retrieve cover art and short desc from IGN?
$ignResult = false; $ignDescription = ''; $ignLink = ''; $ignDate = time(); $ignCoverArt = ''; $ignResult = false; $ignDescription = ''; $ignLink = ''; $ignDate = time(); $ignCoverArt = '';
$ignSearchUrl = 'http://www.ign.com/search?q='.urlencode($name); $ignSearchUrl = 'http://www.ign.com/search?q='.urlencode($name);
if ($ignResult = $this->file_get_html($ignSearchUrl)) { if ($ignResult = $this->getSimpleHTMLDOM($ignSearchUrl)) {
$ignCoverArt = $ignResult->find('div.search-item-media', 0)->find('img', 0)->src; $ignCoverArt = $ignResult->find('div.search-item-media', 0)->find('img', 0)->src;
$ignDesc = $ignResult->find('div.search-item-description', 0)->plaintext; $ignDesc = $ignResult->find('div.search-item-description', 0)->plaintext;
$ignLink = $ignResult->find('div.search-item-sub-title', 0)->find('a', 1)->href; $ignLink = $ignResult->find('div.search-item-sub-title', 0)->find('a', 1)->href;

View file

@ -10,7 +10,7 @@ class ReporterreBridge extends BridgeAbstract{
} }
private function ExtractContentReporterre($url) { private function ExtractContentReporterre($url) {
$html2 = $this->file_get_html($url); $html2 = $this->getSimpleHTMLDOM($url);
foreach($html2->find('div[style=text-align:justify]') as $e) { foreach($html2->find('div[style=text-align:justify]') as $e) {
$text = $e->outertext; $text = $e->outertext;
@ -27,7 +27,7 @@ class ReporterreBridge extends BridgeAbstract{
} }
public function collectData(array $param){ public function collectData(array $param){
$html = $this->file_get_html('http://www.reporterre.net/spip.php?page=backend') or $this->returnServerError('Could not request Reporterre.'); $html = $this->getSimpleHTMLDOM('http://www.reporterre.net/spip.php?page=backend') or $this->returnServerError('Could not request Reporterre.');
$limit = 0; $limit = 0;
foreach($html->find('item') as $element) { foreach($html->find('item') as $element) {

View file

@ -22,7 +22,7 @@ class Rue89Bridge extends BridgeAbstract{
public function collectData(array $param){ public function collectData(array $param){
$html = $this->file_get_html('http://api.rue89.nouvelobs.com/feed') or $this->returnServerError('Could not request Rue89.'); $html = $this->getSimpleHTMLDOM('http://api.rue89.nouvelobs.com/feed') or $this->returnServerError('Could not request Rue89.');
$limit = 0; $limit = 0;
foreach($html->find('item') as $element) { foreach($html->find('item') as $element) {

View file

@ -33,7 +33,7 @@ class Rule34Bridge extends BridgeAbstract{
if (isset($param['t'])) { if (isset($param['t'])) {
$tags = urlencode($param['t']); $tags = urlencode($param['t']);
} }
$html = $this->file_get_html("http://rule34.xxx/index.php?page=post&s=list&tags=$tags&pid=$page") or $this->returnServerError('Could not request Rule34.'); $html = $this->getSimpleHTMLDOM("http://rule34.xxx/index.php?page=post&s=list&tags=$tags&pid=$page") or $this->returnServerError('Could not request Rule34.');
foreach($html->find('div[class=content] span') as $element) { foreach($html->find('div[class=content] span') as $element) {

View file

@ -32,7 +32,7 @@ class Rule34pahealBridge extends BridgeAbstract{
if (isset($param['t'])) { if (isset($param['t'])) {
$tags = urlencode($param['t']); $tags = urlencode($param['t']);
} }
$html = $this->file_get_html("http://rule34.paheal.net/post/list/$tags/$page") or $this->returnServerError('Could not request Rule34paheal.'); $html = $this->getSimpleHTMLDOM("http://rule34.paheal.net/post/list/$tags/$page") or $this->returnServerError('Could not request Rule34paheal.');
foreach($html->find('div[class=shm-image-list] div[class=shm-thumb]') as $element) { foreach($html->find('div[class=shm-image-list] div[class=shm-thumb]') as $element) {

View file

@ -34,7 +34,7 @@ class SafebooruBridge extends BridgeAbstract{
if (isset($param['t'])) { if (isset($param['t'])) {
$tags = urlencode($param['t']); $tags = urlencode($param['t']);
} }
$html = $this->file_get_html("http://safebooru.org/index.php?page=post&s=list&tags=$tags&pid=$page") or $this->returnServerError('Could not request Safebooru.'); $html = $this->getSimpleHTMLDOM("http://safebooru.org/index.php?page=post&s=list&tags=$tags&pid=$page") or $this->returnServerError('Could not request Safebooru.');
foreach($html->find('div[class=content] span') as $element) { foreach($html->find('div[class=content] span') as $element) {

View file

@ -31,7 +31,7 @@ class SakugabooruBridge extends BridgeAbstract{
if (isset($param['t'])) { if (isset($param['t'])) {
$tags = urlencode($param['t']); $tags = urlencode($param['t']);
} }
$html = $this->file_get_html("http://sakuga.yshi.org/post?page=$page&tags=$tags") or $this->returnServerError('Could not request Sakugabooru.'); $html = $this->getSimpleHTMLDOM("http://sakuga.yshi.org/post?page=$page&tags=$tags") or $this->returnServerError('Could not request Sakugabooru.');
$input_json = explode('Post.register(', $html); $input_json = explode('Post.register(', $html);
foreach($input_json as $element) foreach($input_json as $element)
$data[] = preg_replace('/}\)(.*)/', '}', $element); $data[] = preg_replace('/}\)(.*)/', '}', $element);

54
bridges/ScilogsBridge.php Normal file
View file

@ -0,0 +1,54 @@
<?php
class ScilogsBridge extends BridgeAbstract{
public function loadMetadatas() {
$this->maintainer = "qwertygc";
$this->name = "Scilogs Bridge";
$this->uri = "http://www.scilogs.fr/";
$this->description = "Returns the newest articles.";
$this->update = "2014-05-25";
}
public function collectData(array $param){
function ScilogsStripCDATA($string) {
$string = str_replace('<![CDATA[', '', $string);
$string = str_replace(']]>', '', $string);
return $string;
}
function ScilogsExtractContent($url) {
$html2 = $this->getSimpleHTMLDOM($url);
$text = $html2->find('div.entrybody', 0)->innertext;
return $text;
}
$html = $this->getSimpleHTMLDOM('http://www.scilogs.fr/?wpmu-feed=posts') or $this->returnError('Could not request Scilogs.', 404);
$limit = 0;
foreach($html->find('item') as $element) {
if($limit < 10) {
$item = new \Item();
$item->title = ScilogsStripCDATA($element->find('title', 0)->innertext);
$item->uri = ScilogsStripCDATA($element->find('guid', 0)->plaintext);
$item->timestamp = strtotime($element->find('pubDate', 0)->plaintext);
$item->content = ScilogsExtractContent($item->uri);
$this->items[] = $item;
$limit++;
}
}
}
public function getName(){
return 'Scilogs Bridge';
}
public function getURI(){
return 'http://scilogs.fr/';
}
public function getCacheDuration(){
return 3600*2; // 2 hours
}
}

View file

@ -13,7 +13,7 @@ class ScmbBridge extends BridgeAbstract{
public function collectData(array $param){ public function collectData(array $param){
$html = ''; $html = '';
$html = $this->file_get_html('http://secouchermoinsbete.fr/') or $this->returnServerError('Could not request Se Coucher Moins Bete.'); $html = $this->getSimpleHTMLDOM('http://secouchermoinsbete.fr/') or $this->returnServerError('Could not request Se Coucher Moins Bete.');
foreach($html->find('article') as $article) { foreach($html->find('article') as $article) {
$item = new \Item(); $item = new \Item();

View file

@ -25,7 +25,7 @@ class ScoopItBridge extends BridgeAbstract{
$this->request = $param['u']; $this->request = $param['u'];
$link = 'http://scoop.it/search?q=' .urlencode($this->request); $link = 'http://scoop.it/search?q=' .urlencode($this->request);
$html = $this->file_get_html($link) or $this->returnServerError('Could not request ScoopIt. for : ' . $link); $html = $this->getSimpleHTMLDOM($link) or $this->returnServerError('Could not request ScoopIt. for : ' . $link);
foreach($html->find('div.post-view') as $element) { foreach($html->find('div.post-view') as $element) {
$item = new Item(); $item = new Item();

View file

@ -0,0 +1,55 @@
<?php
class SegfaultMintBridge extends BridgeAbstract{
public function loadMetadatas() {
$this->maintainer = "qwertygc";
$this->name = "SegfaultMint";
$this->uri = "http://segfault.linuxmint.com/";
$this->description = "Returns the 5 newest posts from SegfaultMint (full text)";
$this->update = "2014-07-05";
}
public function collectData(array $param){
function StripCDATA($string) {
$string = str_replace('<![CDATA[', '', $string);
$string = str_replace(']]>', '', $string);
return $string;
}
function ExtractContent($url) {
$html2 = $this->getSimpleHTMLDOM($url);
$text = $html2->find('div.post-bodycopy', 0)->innertext;
$text = preg_replace('@<script[^>]*?>.*?</script>@si', '', $text);
return $text;
}
$html = $this->getSimpleHTMLDOM('http://segfault.linuxmint.com/feed/') or $this->returnError('Could not request segfault.', 404);
$limit = 0;
foreach($html->find('item') as $element) {
if($limit < 5) {
$item = new \Item();
$item->title = StripCDATA($element->find('title', 0)->innertext);
$item->uri = StripCDATA($element->find('guid', 0)->plaintext);
$item->timestamp = strtotime($element->find('pubDate', 0)->plaintext);
$item->content = ExtractContent($item->uri);
$this->items[] = $item;
$limit++;
}
}
}
public function getName(){
return 'Segfault Mint';
}
public function getURI(){
return 'http://segfault.linuxmint.com/feed/';
}
public function getCacheDuration(){
return 3600*24; // 24 hours
}
}

View file

@ -15,7 +15,7 @@ class Sexactu extends BridgeAbstract{
$find = array('janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'novembre', 'décembre'); $find = array('janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'novembre', 'décembre');
$replace = array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'); $replace = array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');
$html = $this->file_get_html($this->getURI()) or $this->returnServerError('Could not request '.$this->getURI()); $html = $this->getSimpleHTMLDOM($this->getURI()) or $this->returnServerError('Could not request '.$this->getURI());
foreach($html->find('.content-holder') as $contentHolder) { foreach($html->find('.content-holder') as $contentHolder) {
// only use first list as second one only contains pages numbers // only use first list as second one only contains pages numbers

View file

@ -20,7 +20,7 @@ class SiliconBridge extends BridgeAbstract {
} }
$feedUrl = 'http://www.silicon.fr/feed'; $feedUrl = 'http://www.silicon.fr/feed';
$html = $this->file_get_html($feedUrl) or $this->returnServerError('Could not request Silicon: '.$feedUrl); $html = $this->getSimpleHTMLDOM($feedUrl) or $this->returnServerError('Could not request Silicon: '.$feedUrl);
$limit = 0; $limit = 0;
foreach($html->find('item') as $element) { foreach($html->find('item') as $element) {
@ -30,7 +30,7 @@ class SiliconBridge extends BridgeAbstract {
$article_uri = $element->innertext; $article_uri = $element->innertext;
$article_uri = substr($article_uri, strpos($article_uri, '<link>') + 6); $article_uri = substr($article_uri, strpos($article_uri, '<link>') + 6);
$article_uri = substr($article_uri, 0, strpos($article_uri, '</link>')); $article_uri = substr($article_uri, 0, strpos($article_uri, '</link>'));
$article_html = $this->file_get_html($article_uri) or $this->returnServerError('Could not request Silicon: '.$article_uri); $article_html = $this->getSimpleHTMLDOM($article_uri) or $this->returnServerError('Could not request Silicon: '.$article_uri);
//Build article contents from corresponding elements //Build article contents from corresponding elements
$thumbnailUri = $element->find('enclosure', 0)->url; $thumbnailUri = $element->find('enclosure', 0)->url;

View file

@ -16,7 +16,7 @@ class StripeAPIChangeLogBridge extends BridgeAbstract{
} }
public function collectData(array $param){ public function collectData(array $param){
$html = $this->file_get_html('https://stripe.com/docs/upgrades') $html = $this->getSimpleHTMLDOM('https://stripe.com/docs/upgrades')
or $this->returnServerError('No results for Stripe API Changelog'); or $this->returnServerError('No results for Stripe API Changelog');

View file

@ -47,12 +47,12 @@ class SuperbWallpapersBridge extends BridgeAbstract {
// Get last page number // Get last page number
$link = $baseUri.'/'.$this->category.'/9999.html'; $link = $baseUri.'/'.$this->category.'/9999.html';
$html = $this->file_get_html($link); $html = $this->getSimpleHTMLDOM($link);
$lastpage = min($html->find('.paging .cpage', 0)->innertext(), ceil($max/36)); $lastpage = min($html->find('.paging .cpage', 0)->innertext(), ceil($max/36));
for ($page = 1; $page <= $lastpage; $page++) { for ($page = 1; $page <= $lastpage; $page++) {
$link = $baseUri.'/'.$this->category.'/'.$page.'.html'; $link = $baseUri.'/'.$this->category.'/'.$page.'.html';
$html = $this->file_get_html($link) or $this->returnServerError('No results for this query.'); $html = $this->getSimpleHTMLDOM($link) or $this->returnServerError('No results for this query.');
foreach($html->find('.wpl .i a') as $element) { foreach($html->find('.wpl .i a') as $element) {
$thumbnail = $element->find('img', 0); $thumbnail = $element->find('img', 0);

View file

@ -36,7 +36,7 @@ class T411Bridge extends BridgeAbstract {
//Retrieve torrent listing from search results, which does not contain torrent description //Retrieve torrent listing from search results, which does not contain torrent description
$url = $this->uri.'torrents/search/?'.$param['search'].'&order=added&type=desc'; $url = $this->uri.'torrents/search/?'.$param['search'].'&order=added&type=desc';
$html = $this->file_get_html($url) or $this->returnServerError('Could not request t411: '.$url); $html = $this->getSimpleHTMLDOM($url) or $this->returnServerError('Could not request t411: '.$url);
$results = $html->find('table.results', 0); $results = $html->find('table.results', 0);
if (is_null($results)) if (is_null($results))
$this->returnServerError('No results from t411: '.$url); $this->returnServerError('No results from t411: '.$url);
@ -57,7 +57,7 @@ class T411Bridge extends BridgeAbstract {
$item_date = strtotime($element->find('dd', 0)->plaintext); $item_date = strtotime($element->find('dd', 0)->plaintext);
//Retrieve full description from torrent page //Retrieve full description from torrent page
if ($item_html = $this->file_get_html($item_uri)) { if ($item_html = $this->getSimpleHTMLDOM($item_uri)) {
//Retrieve data from page contents //Retrieve data from page contents
$item_desc = $item_html->find('div.description', 0); $item_desc = $item_html->find('div.description', 0);

View file

@ -24,7 +24,7 @@ class TagBoardBridge extends BridgeAbstract{
$this->request = $param['u']; $this->request = $param['u'];
$link = 'https://post-cache.tagboard.com/search/' .$this->request; $link = 'https://post-cache.tagboard.com/search/' .$this->request;
$html = $this->file_get_html($link) or $this->returnServerError('Could not request TagBoard for : ' . $link); $html = $this->getSimpleHTMLDOM($link) or $this->returnServerError('Could not request TagBoard for : ' . $link);
$parsed_json = json_decode($html); $parsed_json = json_decode($html);
foreach($parsed_json->{'posts'} as $element) { foreach($parsed_json->{'posts'} as $element) {

Some files were not shown because too many files have changed in this diff Show more