This commit is contained in:
logmanoriginal 2016-08-26 19:54:42 +02:00
commit 737942ae7a
132 changed files with 717 additions and 505 deletions

View file

@ -12,7 +12,7 @@ class ABCTabsBridge extends BridgeAbstract{
} }
public function collectData(array $param){ public function collectData(){
$html = ''; $html = '';
$html = $this->getSimpleHTMLDOM('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);

View file

@ -10,9 +10,9 @@ class AcrimedBridge extends RssExpander{
} }
public function collectData(array $param){ public function collectData(){
parent::collectExpandableDatas($param, "http://www.acrimed.org/spip.php?page=backend"); parent::collectExpandableDatas("http://www.acrimed.org/spip.php?page=backend");
} }

View file

@ -24,14 +24,15 @@ class AllocineFRBridge extends BridgeAbstract{
); );
} }
public function collectData(array $params){ public function collectData(){
$params=$this->parameters[$this->queriedContext];
// Check all parameters // Check all parameters
if(!isset($params['category'])) if(!isset($params['category']['value']))
$this->returnClientError('You must specify a valid category (&category= )!'); $this->returnClientError('You must specify a valid category (&category= )!');
$category = ''; $category = '';
switch($params['category']){ switch($params['category']['value']){
case 'faux-raccord': case 'faux-raccord':
$this->uri = 'http://www.allocine.fr/video/programme-12284/saison-24580/'; $this->uri = 'http://www.allocine.fr/video/programme-12284/saison-24580/';
$category = 'Faux Raccord'; $category = 'Faux Raccord';

View file

@ -24,13 +24,14 @@ class AnimeUltimeBridge extends BridgeAbstract {
); );
} }
public function collectData(array $param) { public function collectData(){
$param=$this->parameters[$this->queriedContext];
//Add type filter if provided //Add type filter if provided
$typeFilter = ''; $typeFilter = '';
if (!empty($param['type'])) { if (!empty($param['type']['value'])) {
if ($param['type'] == 'A' || $param['type'] == 'D' || $param['type'] == 'T') { if ($param['type']['value'] == 'A' || $param['type']['value'] == 'D' || $param['type']['value'] == 'T') {
$typeFilter = $param['type']; $typeFilter = $param['type']['value'];
if ($typeFilter == 'A') { $this->filter = 'Anime'; } if ($typeFilter == 'A') { $this->filter = 'Anime'; }
if ($typeFilter == 'D') { $this->filter = 'Drama'; } if ($typeFilter == 'D') { $this->filter = 'Drama'; }
if ($typeFilter == 'T') { $this->filter = 'Tokusatsu'; } if ($typeFilter == 'T') { $this->filter = 'Tokusatsu'; }

View file

@ -42,7 +42,7 @@ class ArstechnicaBridge extends BridgeAbstract {
return $text; return $text;
} }
public function collectData(array $param) { public function collectData(){
$html = $this->getSimpleHTMLDOM('http://feeds.arstechnica.com/arstechnica/index') or $this->returnServerError('Could not request NextInpact.'); $html = $this->getSimpleHTMLDOM('http://feeds.arstechnica.com/arstechnica/index') or $this->returnServerError('Could not request NextInpact.');
$limit = 0; $limit = 0;

View file

@ -45,21 +45,14 @@ class Arte7Bridge extends BridgeAbstract{
); );
} }
protected function extractVideoset($category='toutes-les-videos', $lang='fr'){
public function collectData(array $param){
function extractVideoset($category='toutes-les-videos', $lang='fr')
{
$url = 'http://www.arte.tv/guide/'.$lang.'/plus7/'.$category; $url = 'http://www.arte.tv/guide/'.$lang.'/plus7/'.$category;
$input = $this->getContents($url) or die('Could not request ARTE.'); $input = $this->getContents($url) or die('Could not request ARTE.');
if(strpos($input, 'categoryVideoSet') !== FALSE) if(strpos($input, 'categoryVideoSet') !== FALSE){
{
$input = explode('categoryVideoSet: ', $input); $input = explode('categoryVideoSet: ', $input);
$input = explode('}},', $input[1]); $input = explode('}},', $input[1]);
$input = $input[0].'}}'; $input = $input[0].'}}';
} }else{
else
{
$input = explode('videoSet: ', $input); $input = explode('videoSet: ', $input);
$input = explode('}]},', $input[1]); $input = explode('}]},', $input[1]);
$input = $input[0].'}]}'; $input = $input[0].'}]}';
@ -68,12 +61,15 @@ class Arte7Bridge extends BridgeAbstract{
return $input; return $input;
} }
public function collectData(){
$param=$this->parameters[$this->queriedContext];
$category='toutes-les-videos'; $lang='fr'; $category='toutes-les-videos'; $lang='fr';
if (!empty($param['catfr'])) if (!empty($param['catfr']['value']))
$category=$param['catfr']; $category=$param['catfr']['value'];
if (!empty($param['catde'])) if (!empty($param['catde']['value']))
{ $category=$param['catde']; $lang='de'; } { $category=$param['catde']['value']; $lang='de'; }
$input_json = extractVideoset($category, $lang); $input_json = $this->extractVideoset($category, $lang);
foreach($input_json['videos'] as $element) { foreach($input_json['videos'] as $element) {
$item = array(); $item = array();

View file

@ -10,15 +10,17 @@ class AskfmBridge extends BridgeAbstract{
$this->parameters["Ask.fm username"] = array( $this->parameters["Ask.fm username"] = array(
'u'=>array( 'u'=>array(
'name'=>'Username' 'name'=>'Username',
'required'=>true
) )
); );
} }
public function collectData(array $param){ public function collectData(){
$param=$this->parameters[$this->queriedContext];
$html = ''; $html = '';
if (isset($param['u'])) { if (isset($param['u']['value'])) {
$this->request = $param['u']; $this->request = $param['u']['value'];
$html = $this->getSimpleHTMLDOM('http://ask.fm/'.urlencode($this->request).'/answers/more?page=0') or $this->returnServerError('Requested username can\'t be found.'); $html = $this->getSimpleHTMLDOM('http://ask.fm/'.urlencode($this->request).'/answers/more?page=0') or $this->returnServerError('Requested username can\'t be found.');
} }
else { else {

View file

@ -18,10 +18,11 @@ class BandcampBridge extends BridgeAbstract{
); );
} }
public function collectData(array $param){ public function collectData(){
$param=$this->parameters[$this->queriedContext];
$html = ''; $html = '';
if (isset($param['tag'])) { if (isset($param['tag']['value'])) {
$this->request = $param['tag']; $this->request = $param['tag']['value'];
$html = $this->getSimpleHTMLDOM('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 {

View file

@ -7,7 +7,7 @@ class BastaBridge extends BridgeAbstract{
$this->description = "Returns the newest articles."; $this->description = "Returns the newest articles.";
} }
public function collectData(array $param){ public function collectData(){
// Replaces all relative image URLs by absolute URLs. Relative URLs always start with 'local/'! // Replaces all relative image URLs by absolute URLs. Relative URLs always start with 'local/'!
function ReplaceImageUrl($content){ function ReplaceImageUrl($content){
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);

View file

@ -10,7 +10,7 @@ class BlaguesDeMerdeBridge extends BridgeAbstract{
} }
public function collectData(array $param){ public function collectData(){
$html = $this->getSimpleHTMLDOM('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) {

View file

@ -19,29 +19,30 @@ class BooruprojectBridge extends BridgeAbstract{
} }
public function collectData(array $param){ public function collectData(){
$param=$this->parameters[$this->queriedContext];
$page = 0; $tags = ''; $page = 0; $tags = '';
if (!empty($param['p'])) { if (!empty($param['p']['value'])) {
$page = (int)preg_replace("/[^0-9]/",'', $param['p']); $page = (int)preg_replace("/[^0-9]/",'', $param['p']['value']);
$page = $page - 1; $page = $page - 1;
$page = $page * 20; $page = $page * 20;
} }
if (!empty($param['t'])) { if (!empty($param['t']['value'])) {
$tags = '&tags='.urlencode($param['t']); $tags = '&tags='.urlencode($param['t']['value']);
} }
if (empty($param['i'])) { if (empty($param['i']['value'])) {
$this->returnServerError('Please enter a ***.booru.org instance.'); $this->returnServerError('Please enter a ***.booru.org instance.');
} }
$html = $this->getSimpleHTMLDOM("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']['value'].".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) {
$item = array(); $item = array();
$item['uri'] = 'http://'.$param['i'].'.booru.org/'.$element->find('a', 0)->href; $item['uri'] = 'http://'.$param['i']['value'].'.booru.org/'.$element->find('a', 0)->href;
$item['postid'] = (int)preg_replace("/[^0-9]/",'', $element->find('a', 0)->getAttribute('id')); $item['postid'] = (int)preg_replace("/[^0-9]/",'', $element->find('a', 0)->getAttribute('id'));
$item['timestamp'] = time(); $item['timestamp'] = time();
$item['tags'] = $element->find('img', 0)->getAttribute('title'); $item['tags'] = $element->find('img', 0)->getAttribute('title');
$item['title'] = 'Booruproject '.$param['i'].' | '.$item['postid']; $item['title'] = 'Booruproject '.$param['i']['value'].' | '.$item['postid'];
$item['content'] = '<a href="' . $item['uri'] . '"><img src="' . $element->find('img', 0)->src . '" /></a><br>Tags: '.$item['tags']; $item['content'] = '<a href="' . $item['uri'] . '"><img src="' . $element->find('img', 0)->src . '" /></a><br>Tags: '.$item['tags'];
$this->items[] = $item; $this->items[] = $item;
} }

View file

@ -34,7 +34,7 @@ class CADBridge extends BridgeAbstract{
return '<img src="'.$img.'"/>'; return '<img src="'.$img.'"/>';
} }
public function collectData(array $param){ public function collectData(){
function CADUrl($string) { function CADUrl($string) {
$html2 = explode("\"", $string); $html2 = explode("\"", $string);
$string = $html2[1]; $string = $html2[1];

View file

@ -15,7 +15,8 @@ class CNETBridge extends BridgeAbstract {
); );
} }
public function collectData(array $param) { public function collectData(){
$param=$this->parameters[$this->queriedContext];
function ExtractFromDelimiters($string, $start, $end) { function ExtractFromDelimiters($string, $start, $end) {
if (strpos($string, $start) !== false) { if (strpos($string, $start) !== false) {
@ -42,8 +43,8 @@ class CNETBridge extends BridgeAbstract {
return $article_html; return $article_html;
} }
if (!empty($param['topic'])) if (!empty($param['topic']['value']))
$this->topicName = $param['topic']; $this->topicName = $param['topic']['value'];
$pageUrl = 'http://www.cnet.com/'.(empty($this->topicName) ? '' : 'topics/'.$this->topicName.'/'); $pageUrl = 'http://www.cnet.com/'.(empty($this->topicName) ? '' : 'topics/'.$this->topicName.'/');
$html = $this->getSimpleHTMLDOM($pageUrl) or $this->returnServerError('Could not request CNET: '.$pageUrl); $html = $this->getSimpleHTMLDOM($pageUrl) or $this->returnServerError('Could not request CNET: '.$pageUrl);

View file

@ -73,12 +73,13 @@ class CastorusBridge extends BridgeAbstract {
return $price->innertext; return $price->innertext;
} }
public function collectData(array $params){ public function collectData(){
if(isset($params['zip'])) $params=$this->parameters[$this->queriedContext];
$zip_filter = trim($params['zip']); if(isset($params['zip']['value']))
$zip_filter = trim($params['zip']['value']);
if(isset($params['city'])) if(isset($params['city']['value']))
$city_filter = trim($params['city']); $city_filter = trim($params['city']['value']);
$html = $this->getSimpleHTMLDOM($this->uri); $html = $this->getSimpleHTMLDOM($this->uri);

View file

@ -8,7 +8,7 @@ class CollegeDeFranceBridge extends BridgeAbstract{
$this->description = "Returns the latest audio and video from CollegeDeFrance"; $this->description = "Returns the latest audio and video from CollegeDeFrance";
} }
public function collectData(array $param) { public function collectData(){
$months = array( $months = array(
'01' => 'janv.', '01' => 'janv.',
'02' => 'févr.', '02' => 'févr.',

View file

@ -16,7 +16,7 @@ class CommonDreamsBridge extends BridgeAbstract{
return $text; return $text;
} }
public function collectData(array $param){ public function collectData(){
function CommonDreamsUrl($string) { function CommonDreamsUrl($string) {
$html2 = explode(" ", $string); $html2 = explode(" ", $string);

View file

@ -11,7 +11,7 @@ class CopieDoubleBridge extends BridgeAbstract{
} }
public function collectData(array $param){ public function collectData(){
$html = $this->getSimpleHTMLDOM('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);

View file

@ -10,7 +10,7 @@ class CourrierInternationalBridge extends BridgeAbstract{
} }
public function collectData(array $param){ public function collectData(){
$html = ''; $html = '';

View file

@ -1,23 +1,6 @@
<?php <?php
// simple_html_dom funtion to get the dom from contents instead from file
function content_get_html($contents, $maxLen=-1, $lowercase = true, $forceTagsClosed=true, $target_charset = DEFAULT_TARGET_CHARSET, $stripRN=true, $defaultBRText=DEFAULT_BR_TEXT, $defaultSpanText=DEFAULT_SPAN_TEXT)
{
// We DO force the tags to be terminated.
$dom = new simple_html_dom(null, $lowercase, $forceTagsClosed, $target_charset, $stripRN, $defaultBRText, $defaultSpanText);
if (empty($contents) || strlen($contents) > MAX_FILE_SIZE)
{
return false;
}
// The second parameter can force the selectors to all be lowercase.
$dom->load($contents, $lowercase, $stripRN);
return $dom;
}
class CpasbienBridge extends HttpCachingBridgeAbstract{ class CpasbienBridge extends HttpCachingBridgeAbstract{
private $request;
public function loadMetadatas() { public function loadMetadatas() {
$this->maintainer = "lagaisse"; $this->maintainer = "lagaisse";
@ -36,14 +19,13 @@ class CpasbienBridge extends HttpCachingBridgeAbstract{
} }
public function collectData(array $param){ public function collectData(){
$this->loadMetadatas(); $param=$this->parameters[$this->queriedContext];
$html = ''; $html = '';
if (isset($param['q'])) { /* keyword search mode */ if (isset($param['q']['value'])) { /* keyword search mode */
$this->request = str_replace(" ","-",trim($param['q'])); $request = str_replace(" ","-",trim($param['q']['value']));
$html = $this->getSimpleHTMLDOM($this->uri.'/recherche/'.urlencode($this->request).'.html') or $this->returnServerError('No results for this query.'); $html = $this->getSimpleHTMLDOM($this->uri.'/recherche/'.urlencode($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=...).');
} }
@ -51,7 +33,7 @@ class CpasbienBridge extends HttpCachingBridgeAbstract{
if ($episode->getAttribute('class')=='ligne0' || $episode->getAttribute('class')=='ligne1') if ($episode->getAttribute('class')=='ligne0' || $episode->getAttribute('class')=='ligne1')
{ {
$htmlepisode=content_get_html($this->get_cached($episode->find('a', 0)->getAttribute('href'))); $htmlepisode=str_get_html($this->get_cached($episode->find('a', 0)->getAttribute('href')));
$item = array(); $item = array();
$item['author'] = $episode->find('a', 0)->text(); $item['author'] = $episode->find('a', 0)->text();
@ -60,23 +42,24 @@ class CpasbienBridge extends HttpCachingBridgeAbstract{
$textefiche=$htmlepisode->find('#textefiche', 0)->find('p',1); $textefiche=$htmlepisode->find('#textefiche', 0)->find('p',1);
if (isset($textefiche)) { if (isset($textefiche)) {
$item['content'] = $textefiche->text(); $item['content'] = $textefiche->text();
} } else {
else { $p=$htmlepisode->find('#textefiche',0)->find('p');
if(!empty($p)){
$item['content'] = $htmlepisode->find('#textefiche', 0)->find('p',0)->text(); $item['content'] = $htmlepisode->find('#textefiche', 0)->find('p',0)->text();
} }
}
$item['id'] = $episode->find('a', 0)->getAttribute('href'); $item['id'] = $episode->find('a', 0)->getAttribute('href');
$item['uri'] = $this->uri . $htmlepisode->find('#telecharger',0)->getAttribute('href'); $item['uri'] = $this->uri . $htmlepisode->find('#telecharger',0)->getAttribute('href');
$this->items[] = $item; $this->items[] = $item;
} }
} }
} }
public function getName(){ public function getName(){
return (!empty($this->request) ? $this->request .' - ' : '') . $this->name; return $this->parameters[$this->queriedContext]['q']['value']
.' : '.$this->name;
} }
public function getCacheDuration(){ public function getCacheDuration(){

View file

@ -18,7 +18,8 @@ class CryptomeBridge extends BridgeAbstract{
} }
public function collectData(array $param){ public function collectData(){
$param=$this->parameters[$this->queriedContext];
$html = ''; $html = '';
$num = 20; $num = 20;
$link = 'http://cryptome.org/'; $link = 'http://cryptome.org/';
@ -26,8 +27,8 @@ class CryptomeBridge extends BridgeAbstract{
//$link = 'https://secure.netsolhost.com/cryptome.org/'; //$link = 'https://secure.netsolhost.com/cryptome.org/';
$html = $this->getSimpleHTMLDOM($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']['value'])) { /* number of documents */
$num = min(max(1, $param['n']+0), $num); $num = min(max(1, $param['n']['value']+0), $num);
} }

View file

@ -17,11 +17,16 @@ class DailymotionBridge extends BridgeAbstract{
$this->parameters["By playlist id"] = array( $this->parameters["By playlist id"] = array(
'p'=>array( 'p'=>array(
'name'=>'playlist id', 'name'=>'playlist id',
'type'=>'text') 'type'=>'text',
'required'=>true
)
); );
$this->parameters["From search results"] = array( $this->parameters["From search results"] = array(
's'=>array('name'=>'Search keyword'), 's'=>array(
'name'=>'Search keyword',
'required'=>true
),
'pa'=>array( 'pa'=>array(
'name'=>'Page', 'name'=>'Page',
'type'=>'number' 'type'=>'number'
@ -40,21 +45,22 @@ class DailymotionBridge extends BridgeAbstract{
return $metadata; return $metadata;
} }
public function collectData(array $param){ public function collectData(){
$param=$this->parameters[$this->queriedContext];
$html = ''; $html = '';
$limit = 5; $limit = 5;
$count = 0; $count = 0;
if (isset($param['u'])) { // user timeline mode if (isset($param['u']['value'])) { // user timeline mode
$this->request = $param['u']; $this->request = $param['u']['value'];
$html = $this->getSimpleHTMLDOM('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']['value'])) { // playlist mode
$this->request = strtok($param['p'], '_'); $this->request = strtok($param['p']['value'], '_');
$html = $this->getSimpleHTMLDOM('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']['value'])) { // search mode
$this->request = $param['s']; $page = 1; if (isset($param['pa'])) $page = (int)preg_replace("/[^0-9]/",'', $param['pa']); $this->request = $param['s']['value']; $page = 1; if (isset($param['pa']['value'])) $page = (int)preg_replace("/[^0-9]/",'', $param['pa']['value']);
$html = $this->getSimpleHTMLDOM('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 {

View file

@ -14,13 +14,14 @@ class DanbooruBridge extends BridgeAbstract{
); );
} }
public function collectData(array $param){ public function collectData(){
$param=$this->parameters[$this->queriedContext];
$page = 1;$tags=''; $page = 1;$tags='';
if (isset($param['p'])) { if (isset($param['p']['value'])) {
$page = (int)preg_replace("/[^0-9]/",'', $param['p']); $page = (int)preg_replace("/[^0-9]/",'', $param['p']['value']);
} }
if (isset($param['t'])) { if (isset($param['t']['value'])) {
$tags = urlencode($param['t']); $tags = urlencode($param['t']['value']);
} }
$html = $this->getSimpleHTMLDOM("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) {

View file

@ -10,7 +10,7 @@ class DansTonChatBridge extends BridgeAbstract{
} }
public function collectData(array $param){ public function collectData(){
$html = ''; $html = '';
$link = 'http://danstonchat.com/latest.html'; $link = 'http://danstonchat.com/latest.html';

View file

@ -40,7 +40,8 @@ class DauphineLibereBridge extends BridgeAbstract {
return $text; return $text;
} }
public function collectData(array $param){ public function collectData(){
$param=$this->parameters[$this->queriedContext];
// Simulate Mozilla user-agent to fix error 403 (Forbidden) // Simulate Mozilla user-agent to fix error 403 (Forbidden)
$opts = array('http' => $opts = array('http' =>
@ -52,8 +53,8 @@ class DauphineLibereBridge extends BridgeAbstract {
$context = stream_context_create($opts); $context = stream_context_create($opts);
if (isset($param['u'])) { /* user timeline mode */ if (isset($param['u']['value'])) { /* user timeline mode */
$this->request = $param['u']; $this->request = $param['u']['value'];
$html = $this->getSimpleHTMLDOM('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 {

View file

@ -35,7 +35,7 @@ class DemoBridge extends BridgeAbstract{
); );
} }
public function collectData(array $param){ public function collectData(){
$item = array(); $item = array();
$item['author'] = "Me!"; $item['author'] = "Me!";

View file

@ -40,7 +40,7 @@ class DeveloppezDotComBridge extends BridgeAbstract{
return trim($text); return trim($text);
} }
public function collectData(array $param){ public function collectData(){
$rssFeed = $this->getSimpleHTMLDOM('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;

View file

@ -10,7 +10,7 @@ class DilbertBridge extends BridgeAbstract {
} }
public function collectData(array $param) { public function collectData(){
$html = $this->getSimpleHTMLDOM($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());

View file

@ -18,13 +18,14 @@ class DollbooruBridge extends BridgeAbstract{
); );
} }
public function collectData(array $param){ public function collectData(){
$param=$this->parameters[$this->queriedContext];
$page = 0;$tags=''; $page = 0;$tags='';
if (isset($param['p'])) { if (isset($param['p']['value'])) {
$page = (int)preg_replace("/[^0-9]/",'', $param['p']); $page = (int)preg_replace("/[^0-9]/",'', $param['p']['value']);
} }
if (isset($param['t'])) { if (isset($param['t']['value'])) {
$tags = urlencode($param['t']); $tags = urlencode($param['t']['value']);
} }
$html = $this->getSimpleHTMLDOM("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.');

View file

@ -15,9 +15,10 @@ class DuckDuckGoBridge extends BridgeAbstract{
); );
} }
public function collectData(array $param){ public function collectData(){
$param=$this->parameters[$this->queriedContext];
$html = ''; $html = '';
$link = 'http://duckduckgo.com/html/?q='.$param['u'].'+sort:date'; $link = 'http://duckduckgo.com/html/?q='.$param['u']['value'].'+sort:date';
$html = $this->getSimpleHTMLDOM($link) or $this->returnServerError('Could not request DuckDuckGo.'); $html = $this->getSimpleHTMLDOM($link) or $this->returnServerError('Could not request DuckDuckGo.');

View file

@ -17,7 +17,8 @@ class EZTVBridge extends BridgeAbstract{
); );
} }
public function collectData(array $param){ public function collectData(){
$param=$this->parameters[$this->queriedContext];
// Make timestamp from relative released time in table // Make timestamp from relative released time in table
function makeTimestamp($relativeReleaseTime){ function makeTimestamp($relativeReleaseTime){
@ -33,11 +34,11 @@ class EZTVBridge extends BridgeAbstract{
} }
// Check for ID provided // Check for ID provided
if (!isset($param['i'])) if (!isset($param['i']['value']))
$this->returnClientError('You must provide a list of ID (?i=showID1,showID2,...)'); $this->returnClientError('You must provide a list of ID (?i=showID1,showID2,...)');
// Loop on show ids // Loop on show ids
$showList = explode(",",$param['i']); $showList = explode(",",$param['i']['value']);
foreach($showList as $showID){ foreach($showList as $showID){
// Get show page // Get show page

View file

@ -10,7 +10,7 @@ class EliteDangerousGalnetBridge extends BridgeAbstract
$this->description = "Returns the latest page of news from Galnet"; $this->description = "Returns the latest page of news from Galnet";
} }
public function collectData(array $param) public function collectData()
{ {
$html = $this->getSimpleHTMLDOM('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) {

View file

@ -58,9 +58,10 @@ class ElsevierBridge extends BridgeAbstract{
return ''; return '';
} }
public function collectData(array $param){ public function collectData(){
$uri = 'http://www.journals.elsevier.com/' . $param['j'] . '/recent-articles/'; $param=$this->parameters[$this->queriedContext];
$html = $this->getSimpleHTMLDOM($uri) or $this->returnServerError('No results for Elsevier journal '.$param['j']); $uri = 'http://www.journals.elsevier.com/' . $param['j']['value'] . '/recent-articles/';
$html = $this->getSimpleHTMLDOM($uri) or $this->returnServerError('No results for Elsevier journal '.$param['j']['value']);
foreach($html->find('.pod-listing') as $article){ foreach($html->find('.pod-listing') as $article){
$item = array(); $item = array();

View file

@ -8,7 +8,7 @@ class EstCeQuonMetEnProdBridge extends BridgeAbstract {
$this->description = 'Should we put a website in production today? (French)'; $this->description = 'Should we put a website in production today? (French)';
} }
public function collectData(array $param) { public function collectData(){
function ExtractFromDelimiters($string, $start, $end) { function ExtractFromDelimiters($string, $start, $end) {
if (strpos($string, $start) !== false) { if (strpos($string, $start) !== false) {
$section_retrieved = substr($string, strpos($string, $start) + strlen($start)); $section_retrieved = substr($string, strpos($string, $start) + strlen($start));

View file

@ -16,7 +16,8 @@ class FacebookBridge extends BridgeAbstract{
); );
} }
public function collectData(array $param) { public function collectData(){
$param=$this->parameters[$this->queriedContext];
//Extract a string using start and end delimiters //Extract a string using start and end delimiters
function ExtractFromDelimiters($string, $start, $end) { function ExtractFromDelimiters($string, $start, $end) {
@ -104,11 +105,11 @@ class FacebookBridge extends BridgeAbstract{
//Retrieve page contents //Retrieve page contents
if (is_null($html)) { if (is_null($html)) {
if (isset($param['u'])) { if (isset($param['u']['value'])) {
if (!strpos($param['u'], "/")) { if (!strpos($param['u']['value'], "/")) {
$html = $this->getSimpleHTMLDOM('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']['value']).'?_fb_noscript=1') or $this->returnServerError('No results for this query.');
} else { } else {
$html = $this->getSimpleHTMLDOM('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']['value'].'?_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.');
@ -148,7 +149,7 @@ class FacebookBridge extends BridgeAbstract{
if(isset($element)) { if(isset($element)) {
$author = str_replace(' | Facebook', '', $html->find('title#pageTitle', 0)->innertext); $author = str_replace(' | Facebook', '', $html->find('title#pageTitle', 0)->innertext);
$profilePic = 'https://graph.facebook.com/'.$param['u'].'/picture?width=200&amp;height=200'; $profilePic = 'https://graph.facebook.com/'.$param['u']['value'].'/picture?width=200&amp;height=200';
$this->name = $author; $this->name = $author;
foreach($element->children() as $post) { foreach($element->children() as $post) {
@ -207,8 +208,8 @@ class FacebookBridge extends BridgeAbstract{
} }
public function setDatas(array $param){ public function setDatas(array $param){
if (isset($param['captcha_response'])) if (isset($param['captcha_response']['value']))
unset($param['captcha_response']); unset($param['captcha_response']['value']);
parent::setDatas($param); parent::setDatas($param);
} }

View file

@ -10,7 +10,7 @@ Class FierPandaBridge extends BridgeAbstract{
} }
public function collectData(array $param){ public function collectData(){
$link = 'http://www.fier-panda.fr/'; $link = 'http://www.fier-panda.fr/';
$html = $this->getSimpleHTMLDOM($link) or $this->returnServerError('Could not request Fier Panda.'); $html = $this->getSimpleHTMLDOM($link) or $this->returnServerError('Could not request Fier Panda.');

View file

@ -10,7 +10,7 @@ class FlickrExploreBridge extends BridgeAbstract{
} }
public function collectData(array $param){ public function collectData(){
$html = $this->getSimpleHTMLDOM('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) {

View file

@ -17,14 +17,15 @@ class FlickrTagBridge extends BridgeAbstract{
); );
} }
public function collectData(array $param){ public function collectData(){
$param=$this->parameters[$this->queriedContext];
$html = $this->getSimpleHTMLDOM('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']['value'])) { /* keyword search mode */
$this->request = $param['q']; $this->request = $param['q']['value'];
$html = $this->getSimpleHTMLDOM('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']['value'])) { /* user timeline mode */
$this->request = $param['u']; $this->request = $param['u']['value'];
$html = $this->getSimpleHTMLDOM('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.');
} }

View file

@ -10,7 +10,7 @@ class FootitoBridge extends BridgeAbstract{
} }
public function collectData(array $param){ public function collectData(){
$html = $this->getSimpleHTMLDOM('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) {

View file

@ -14,12 +14,13 @@ class FourchanBridge extends BridgeAbstract{
} }
public function collectData(array $param){ public function collectData(){
$param=$this->parameters[$this->queriedContext];
if (!isset($param['t'])) if (!isset($param['t']['value']))
$this->returnClientError('You must specify the thread URL (?t=...)'); $this->returnClientError('You must specify the thread URL (?t=...)');
$thread = parse_url($param['t']) or $this->returnClientError('This URL seems malformed, please check it.'); $thread = parse_url($param['t']['value']) or $this->returnClientError('This URL seems malformed, please check it.');
if($thread['host'] !== 'boards.4chan.org') if($thread['host'] !== 'boards.4chan.org')
$this->returnClientError('4chan thread URL only.'); $this->returnClientError('4chan thread URL only.');

View file

@ -8,14 +8,10 @@ class FreenewsBridge extends RssExpander {
$this->name = "Freenews"; $this->name = "Freenews";
$this->uri = "http://freenews.fr"; $this->uri = "http://freenews.fr";
$this->description = "Un site d'actualité pour les freenautes (mais ne parlant pas que de la freebox). Ne rentrez pas d'id si vous voulez accéder aux actualités générales."; $this->description = "Un site d'actualité pour les freenautes (mais ne parlant pas que de la freebox). Ne rentrez pas d'id si vous voulez accéder aux actualités générales.";
$this->parameters[] = array(
'id'=>array('name'=>'Id de la rubrique (sans le \'-\')')
);
} }
public function collectData(array $param){ public function collectData(){
parent::collectExpandableDatas($param, FREENEWS_RSS); parent::collectExpandableDatas(FREENEWS_RSS);
} }
protected function parseRSSItem($newsItem) { protected function parseRSSItem($newsItem) {

View file

@ -81,7 +81,8 @@ class FuturaSciencesBridge extends BridgeAbstract {
); );
} }
public function collectData(array $param) { public function collectData(){
$param=$this->parameters[$this->queriedContext];
function StripCDATA($string) { function StripCDATA($string) {
$string = str_replace('<![CDATA[', '', $string); $string = str_replace('<![CDATA[', '', $string);
@ -138,10 +139,10 @@ class FuturaSciencesBridge extends BridgeAbstract {
return ''; return '';
} }
$url = $this->getURI().'rss/'.$param['feed'].'.xml'; $url = $this->getURI().'rss/'.$param['feed']['value'].'.xml';
if (empty($param['feed'])) if (empty($param['feed']['value']))
$this->returnClientError('Please select a feed to display.'.$url); $this->returnClientError('Please select a feed to display.'.$url);
if ($param['feed'] !== preg_replace('/[^a-zA-Z-\/]+/', '', $param['feed']) || substr_count($param['feed'], '/') > 1 || strlen($param['feed'] > 64)) if ($param['feed']['value'] !== preg_replace('/[^a-zA-Z-\/]+/', '', $param['feed']['value']) || substr_count($param['feed']['value'], '/') > 1 || strlen($param['feed']['value'] > 64))
$this->returnClientError('Invalid "feed" parameter.'.$url); $this->returnClientError('Invalid "feed" parameter.'.$url);
$html = $this->getSimpleHTMLDOM($url) or $this->returnServerError('Could not request Futura-Sciences: '.$url); $html = $this->getSimpleHTMLDOM($url) or $this->returnServerError('Could not request Futura-Sciences: '.$url);

View file

@ -63,11 +63,12 @@ class GBAtempBridge extends BridgeAbstract {
return $this->cleanup_post_content($content, $site_url); return $this->cleanup_post_content($content, $site_url);
} }
public function collectData(array $param) { public function collectData(){
$param=$this->parameters[$this->queriedContext];
$typeFilter = ''; $typeFilter = '';
if (!empty($param['type'])) { if (!empty($param['type']['value'])) {
if ($param['type'] == 'N' || $param['type'] == 'R' || $param['type'] == 'T' || $param['type'] == 'F') { if ($param['type']['value'] == 'N' || $param['type']['value'] == 'R' || $param['type']['value'] == 'T' || $param['type']['value'] == 'F') {
$typeFilter = $param['type']; $typeFilter = $param['type']['value'];
if ($typeFilter == 'N') { $this->filter = 'News'; } if ($typeFilter == 'N') { $this->filter = 'News'; }
if ($typeFilter == 'R') { $this->filter = 'Review'; } if ($typeFilter == 'R') { $this->filter = 'Review'; }
if ($typeFilter == 'T') { $this->filter = 'Tutorial'; } if ($typeFilter == 'T') { $this->filter = 'Tutorial'; }

View file

@ -12,7 +12,10 @@ class GawkerBridge extends RssExpander{
$this->description = "A bridge allowing access to any of the numerous Gawker media blogs (Lifehacker, deadspin, Kotaku, Jezebel, and so on. Notice you have to give its id to find the RSS stream in gawker maze"; $this->description = "A bridge allowing access to any of the numerous Gawker media blogs (Lifehacker, deadspin, Kotaku, Jezebel, and so on. Notice you have to give its id to find the RSS stream in gawker maze";
$this->parameters[] = array( $this->parameters[] = array(
'site'=>array('name'=>'site id to put in uri between feeds.gawker.com and /full .. which is obviously not full AT ALL') 'site'=>array(
'name'=>'site id to put in uri between feeds.gawker.com and /full .. which is obviously not full AT ALL',
'required'=>true
)
); );
} }
@ -21,15 +24,16 @@ class GawkerBridge extends RssExpander{
return RSS_PREFIX.$name.RSS_SUFFIX; return RSS_PREFIX.$name.RSS_SUFFIX;
} }
public function collectData(array $param){ public function collectData(){
if (empty($param['site'])) { $param=$this->parameters[$this->queriedContext];
if (empty($param['site']['value'])) {
trigger_error("If no site is provided, nothing is gonna happen", E_USER_ERROR); trigger_error("If no site is provided, nothing is gonna happen", E_USER_ERROR);
} else { } else {
$this->name = $param['site']; $this->name = $param['site']['value'];
$url = $this->toURI(strtolower($param['site'])); $url = $this->toURI(strtolower($param['site']['value']));
} }
$this->debugMessage("loading feed from ".$this->getURI()); $this->debugMessage("loading feed from ".$this->getURI());
parent::collectExpandableDatas($param, $url); parent::collectExpandableDatas($url);
} }
protected function parseRSSItem($newsItem) { protected function parseRSSItem($newsItem) {

View file

@ -18,15 +18,16 @@ class GelbooruBridge extends BridgeAbstract{
} }
public function collectData(array $param){ public function collectData(){
$param=$this->parameters[$this->queriedContext];
$page = 0; $page = 0;
if (isset($param['p'])) { if (isset($param['p']['value'])) {
$page = (int)preg_replace("/[^0-9]/",'', $param['p']); $page = (int)preg_replace("/[^0-9]/",'', $param['p']['value']);
$page = $page - 1; $page = $page - 1;
$page = $page * 63; $page = $page * 63;
} }
if (isset($param['t'])) { if (isset($param['t']['value'])) {
$tags = urlencode($param['t']); $tags = urlencode($param['t']['value']);
} }
$html = $this->getSimpleHTMLDOM("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.');

View file

@ -10,35 +10,34 @@ class GiphyBridge extends BridgeAbstract{
$this->uri = "http://giphy.com/"; $this->uri = "http://giphy.com/";
$this->description = "Bridge for giphy.com"; $this->description = "Bridge for giphy.com";
$this->parameters["By tag"] = array( $this->parameters[] = array(
's'=>array('name'=>'search tag') 's'=>array('name'=>'search tag'),
);
$this->parameters["Without tag"] = array(
'n'=>array( 'n'=>array(
'name'=>'max number of returned items', 'name'=>'max number of returned items',
'type'=>'number' 'type'=>'number'
) )
); );
} }
public function collectData(array $param){ public function collectData(){
$param=$this->parameters[$this->queriedContext];
$html = ''; $html = '';
$base_url = 'http://giphy.com'; $base_url = 'http://giphy.com';
if (isset($param['s'])) { /* keyword search mode */ if (isset($param['s']['value'])) { /* keyword search mode */
$html = $this->getSimpleHTMLDOM($base_url.'/search/'.urlencode($param['s'].'/')) or $this->returnServerError('No results for this query.'); $html = $this->getSimpleHTMLDOM($base_url.'/search/'.urlencode($param['s']['value'].'/')) 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=...).');
} }
$max = GIPHY_LIMIT; $max = GIPHY_LIMIT;
if (isset($param['n'])) { if (isset($param['n']['value'])) {
$max = (integer) $param['n']; $max = (integer) $param['n']['value'];
} }
$limit = 0; $limit = 0;
$kw = urlencode($param['s']); $kw = urlencode($param['s']['value']);
foreach($html->find('div.hoverable-gif') as $entry) { foreach($html->find('div.hoverable-gif') as $entry) {
if($limit < $max) { if($limit < $max) {
$node = $entry->first_child(); $node = $entry->first_child();

View file

@ -28,12 +28,13 @@ class GithubIssueBridge extends BridgeAbstract{
); );
} }
public function collectData(array $param){ public function collectData(){
$uri = 'https://github.com/'.$param['u'].'/'.$param['p'].'/issues/'.(isset($param['i'])?$param['i']:''); $param=$this->parameters[$this->queriedContext];
$uri = 'https://github.com/'.$param['u']['value'].'/'.$param['p']['value'].'/issues/'.(isset($param['i']['value'])?$param['i']['value']:'');
$html = $this->getSimpleHTMLDOM($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']['value'].' in project '.$param['u']['value'].'/'.$param['p']['value']);
if(isset($param['i'])){ if(isset($param['i']['value'])){
foreach($html->find('.js-comment-container') as $comment){ foreach($html->find('.js-comment-container') as $comment){
$item = array(); $item = array();

View file

@ -33,29 +33,30 @@ class GitlabCommitsBridge extends BridgeAbstract{
); );
} }
public function collectData(array $param){ public function collectData(){
$uri = $param['uri'].'/'.$param['u'].'/'.$param['p'].'/commits/'; $param=$this->parameters[$this->queriedContext];
if(isset($param['b'])){ $uri = $param['uri']['value'].'/'.$param['u']['value'].'/'.$param['p']['value'].'/commits/';
$uri.=$param['b']; if(isset($param['b']['value'])){
$uri.=$param['b']['value'];
}else{ }else{
$uri.='master'; $uri.='master';
} }
$html = $this->getSimpleHTMLDOM($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']['value'].'/'.$param['u']['value'].'/'.$param['p']['value']);
foreach($html->find('li.commit') as $commit){ foreach($html->find('li.commit') as $commit){
$item = array(); $item = array();
$item['uri']=$param['uri']; $item['uri']=$param['uri']['value'];
foreach($commit->getElementsByTagName('a') as $a){ foreach($commit->getElementsByTagName('a') as $a){
$classes=explode(' ',$a->getAttribute("class")); $classes=explode(' ',$a->getAttribute("class"));
if(in_array('commit-short-id',$classes) || if(in_array('commit-short-id',$classes) ||
in_array('commit_short_id',$classes)){ in_array('commit_short_id',$classes)){
$href=$a->getAttribute('href'); $href=$a->getAttribute('href');
$item['uri'].=substr($href,strpos($href,'/'.$param['u'].'/'.$param['p'])); $item['uri'].=substr($href,strpos($href,'/'.$param['u']['value'].'/'.$param['p']['value']));
} }
if(in_array('commit-row-message',$classes)){ if(in_array('commit-row-message',$classes)){
$item['title']=$a->plaintext; $item['title']=$a->plaintext;

View file

@ -10,7 +10,7 @@ class GizmodoFRBridge extends BridgeAbstract{
} }
public function collectData(array $param){ public function collectData(){
function GizmodoFRExtractContent($url) { function GizmodoFRExtractContent($url) {
$articleHTMLContent = $this->getSimpleHTMLDOM($url); $articleHTMLContent = $this->getSimpleHTMLDOM($url);

View file

@ -12,21 +12,24 @@ class GooglePlusPostBridge extends BridgeAbstract
$this->description = "Returns user public post (without API)."; $this->description = "Returns user public post (without API).";
$this->parameters[] = array( $this->parameters[] = array(
'username'=>array('name'=>'username or Id') 'username'=>array(
'name'=>'username or Id',
'required'=>true
)
); );
} }
const GOOGLE_PLUS_BASE_URL = 'https://plus.google.com/'; const GOOGLE_PLUS_BASE_URL = 'https://plus.google.com/';
public function collectData(array $param) public function collectData()
{ {
if (!isset($param['username'])) if (!isset($param['username']['value']))
{ {
$this->returnClientError('You must specify a username (?username=...).'); $this->returnClientError('You must specify a username (?username=...).');
} }
$this->request = $param['username']; $this->request = $param['username']['value'];
// get content parsed // get content parsed
// $html = $this->getSimpleHTMLDOM(__DIR__ . '/../posts2.html' // $html = $this->getSimpleHTMLDOM(__DIR__ . '/../posts2.html'
$html = $this->getSimpleHTMLDOM(self::GOOGLE_PLUS_BASE_URL . urlencode($this->request) . '/posts' $html = $this->getSimpleHTMLDOM(self::GOOGLE_PLUS_BASE_URL . urlencode($this->request) . '/posts'

View file

@ -25,11 +25,12 @@ class GoogleSearchBridge extends BridgeAbstract{
} }
public function collectData(array $param){ public function collectData(){
$param=$this->parameters[$this->queriedContext];
$html = ''; $html = '';
if (isset($param['q'])) { /* keyword search mode */ if (isset($param['q']['value'])) { /* keyword search mode */
$this->request = $param['q']; $this->request = $param['q']['value'];
$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.'); $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{

View file

@ -14,7 +14,7 @@ class GuruMedBridge extends BridgeAbstract{
return $string; return $string;
} }
public function collectData(array $param){ public function collectData(){
$html = $this->getSimpleHTMLDOM('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;

View file

@ -21,12 +21,13 @@ class HDWallpapersBridge extends BridgeAbstract {
); );
} }
public function collectData(array $param){ public function collectData(){
$param=$this->parameters[$this->queriedContext];
$html = ''; $html = '';
$baseUri = 'http://www.hdwallpapers.in'; $baseUri = 'http://www.hdwallpapers.in';
$this->category = $param['c'] ?: 'latest_wallpapers'; // Latest default $this->category = $param['c']['value'] ?: 'latest_wallpapers'; // Latest default
$this->resolution = $param['r'] ?: '1920x1200'; // Wide wallpaper default $this->resolution = $param['r']['value'] ?: '1920x1200'; // Wide wallpaper default
$category = $this->category; $category = $this->category;
if (strrpos($category, 'wallpapers') !== strlen($category)-strlen('wallpapers')) { if (strrpos($category, 'wallpapers') !== strlen($category)-strlen('wallpapers')) {
@ -34,7 +35,7 @@ class HDWallpapersBridge extends BridgeAbstract {
} }
$num = 0; $num = 0;
$max = $param['m'] ?: 14; $max = $param['m']['value'] ?: 14;
$lastpage = 1; $lastpage = 1;
for ($page = 1; $page <= $lastpage; $page++) { for ($page = 1; $page <= $lastpage; $page++) {

View file

@ -10,7 +10,7 @@ class HentaiHavenBridge extends BridgeAbstract{
} }
public function collectData(array $param){ public function collectData(){
$html = $this->getSimpleHTMLDOM('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 = array(); $item = array();

View file

@ -11,15 +11,19 @@ class IdenticaBridge extends BridgeAbstract{
$this->description = "Returns user timelines"; $this->description = "Returns user timelines";
$this->parameters[] = array( $this->parameters[] = array(
'u'=>array('name'=>'username') 'u'=>array(
'name'=>'username',
'required'=>true
)
); );
} }
public function collectData(array $param){ public function collectData(){
$param=$this->parameters[$this->queriedContext];
$html = ''; $html = '';
if (isset($param['u'])) { /* user timeline mode */ if (isset($param['u']['value'])) { /* user timeline mode */
$this->request = $param['u']; $this->request = $param['u']['value'];
$html = $this->getSimpleHTMLDOM('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 {
@ -31,7 +35,7 @@ class IdenticaBridge extends BridgeAbstract{
$item['uri'] = html_entity_decode($dent->find('a', 0)->href); // get dent link $item['uri'] = html_entity_decode($dent->find('a', 0)->href); // get dent link
$item['timestamp'] = strtotime($dent->find('abbr.easydate', 0)->plaintext); // extract dent timestamp $item['timestamp'] = strtotime($dent->find('abbr.easydate', 0)->plaintext); // extract dent timestamp
$item['content'] = trim($dent->find('div.activity-content', 0)->innertext); // extract dent text $item['content'] = trim($dent->find('div.activity-content', 0)->innertext); // extract dent text
$item['title'] = $param['u'] . ' | ' . $item['content']; $item['title'] = $param['u']['value'] . ' | ' . $item['content'];
$this->items[] = $item; $this->items[] = $item;
} }
} }

View file

@ -16,10 +16,11 @@ class InstagramBridge extends BridgeAbstract{
} }
public function collectData(array $param){ public function collectData(){
$param=$this->parameters[$this->queriedContext];
$html = ''; $html = '';
if (isset($param['u'])) { /* user timeline mode */ if (isset($param['u']['value'])) { /* user timeline mode */
$this->request = $param['u']; $this->request = $param['u']['value'];
$html = $this->getSimpleHTMLDOM('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 {

View file

@ -89,23 +89,24 @@ class IsoHuntBridge extends BridgeAbstract{
); );
} }
public function collectData(array $params){ public function collectData(){
$params=$this->parameters[$this->queriedContext];
$request_path = '/'; // We'll request the main page by default $request_path = '/'; // We'll request the main page by default
if(isset($params['latest_category'])){ // Requesting one of the latest categories if(isset($params['latest_category']['value'])){ // Requesting one of the latest categories
$this->request_latest_category($params['latest_category']); $this->request_latest_category($params['latest_category']['value']);
} elseif(isset($params['torrent_category'])){ // Requesting one of the torrent categories } elseif(isset($params['torrent_category']['value'])){ // Requesting one of the torrent categories
$order_popularity = false; $order_popularity = false;
if(isset($params['torrent_popularity'])) if(isset($params['torrent_popularity']['value']))
$order_popularity = $params['torrent_popularity'] === "on"; $order_popularity = $params['torrent_popularity']['value'];
$this->request_torrent_category($params['torrent_category'], $order_popularity); $this->request_torrent_category($params['torrent_category']['value'], $order_popularity);
} else if(isset($params['search_name'])){ // Requesting search } else if(isset($params['search_name']['value'])){ // Requesting search
if(isset($params['search_category'])) if(isset($params['search_category']['value']))
$this->request_search($params['search_name'], $params['search_category']); $this->request_search($params['search_name']['value'], $params['search_category']['value']);
else else
$this->request_search($params['search_name']); $this->request_search($params['search_name']['value']);
} else { } else {
$this->returnClientError('Unknown request!'); $this->returnClientError('Unknown request!');
} }

View file

@ -18,7 +18,8 @@ class JapanExpoBridge extends BridgeAbstract{
); );
} }
public function collectData(array $param) { public function collectData(){
$param=$this->parameters[$this->queriedContext];
function french_pubdate_to_timestamp($date_to_parse) { function french_pubdate_to_timestamp($date_to_parse) {
return strtotime( return strtotime(
@ -50,7 +51,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->getSimpleHTMLDOM($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']['value']) && $param['mode']['value'] == 'full');
$count = 0; $count = 0;
foreach ($html->find('a._tile2') as $element) { foreach ($html->find('a._tile2') as $element) {

View file

@ -17,13 +17,14 @@ class KonachanBridge extends BridgeAbstract{
); );
} }
public function collectData(array $param){ public function collectData(){
$param=$this->parameters[$this->queriedContext];
$page = 1;$tags=''; $page = 1;$tags='';
if (isset($param['p'])) { if (isset($param['p']['value'])) {
$page = (int)preg_replace("/[^0-9]/",'', $param['p']); $page = (int)preg_replace("/[^0-9]/",'', $param['p']['value']);
} }
if (isset($param['t'])) { if (isset($param['t']['value'])) {
$tags = urlencode($param['t']); $tags = urlencode($param['t']['value']);
} }
$html = $this->getSimpleHTMLDOM("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);

View file

@ -21,7 +21,7 @@ class KoreusBridge extends BridgeAbstract{
return $text; return $text;
} }
public function collectData(array $param){ public function collectData(){
$html = $this->getSimpleHTMLDOM('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;

View file

@ -39,21 +39,22 @@ class KununuBridge extends BridgeAbstract{
); );
} }
public function collectData(array $params){ public function collectData(){
$params=$this->parameters[$this->queriedContext];
// Get Site // Get Site
$site = strtolower(trim($params['site'])); $site = strtolower(trim($params['site']['value']));
if(!isset($site) || empty($site) || !$this->site_is_valid($site)) if(!isset($site) || empty($site) || !$this->site_is_valid($site))
$this->returnClientError('You must specify a valid site (&site=...)!'); $this->returnClientError('You must specify a valid site (&site=...)!');
// Get Company (fixing whitespace and umlauts) // Get Company (fixing whitespace and umlauts)
$company = $this->encode_umlauts(strtolower(str_replace(' ', '-', trim($params['company'])))); $company = $this->encode_umlauts(strtolower(str_replace(' ', '-', trim($params['company']['value']))));
if(!isset($company) || empty($company)) if(!isset($company) || empty($company))
$this->returnClientError('You must specify a company (&company=...)!'); $this->returnClientError('You must specify a company (&company=...)!');
$full = false; // By default we'll load only short article $full = false; // By default we'll load only short article
if(isset($params['full'])) if(isset($params['full']['value']))
$full = strtolower(trim($params['full'])) === 'on'; $full = strtolower(trim($params['full']['value']));
// Get reviews section name (depends on site) // Get reviews section name (depends on site)
$section = ''; $section = '';

View file

@ -35,7 +35,7 @@ class LWNprevBridge extends BridgeAbstract{
} }
} }
public function collectData(array $param){ public function collectData(){
// Because the LWN page is written in loose HTML and not XHTML, // Because the LWN page is written in loose HTML and not XHTML,
// Simple HTML Dom is not accurate enough for the job // Simple HTML Dom is not accurate enough for the job

View file

@ -138,14 +138,15 @@ class LeBonCoinBridge extends BridgeAbstract{
} }
public function collectData(array $param){ public function collectData(){
$param=$this->parameters[$this->queriedContext];
$html = ''; $html = '';
if (empty($param['c'])) { if (empty($param['c']['value'])) {
$link = 'http://www.leboncoin.fr/annonces/offres/' . $param['r'] . '/?f=a&th=1&q=' . urlencode($param['k']); $link = 'http://www.leboncoin.fr/annonces/offres/' . $param['r']['value'] . '/?f=a&th=1&q=' . urlencode($param['k']['value']);
} }
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']['value'] . '/offres/' . $param['r']['value'] . '/?f=a&th=1&q=' . urlencode($param['k']['value']);
} }
$html = $this->getSimpleHTMLDOM($link) or $this->returnServerError('Could not request LeBonCoin.'); $html = $this->getSimpleHTMLDOM($link) or $this->returnServerError('Could not request LeBonCoin.');

View file

@ -36,7 +36,7 @@ class LeJournalDuGeekBridge extends BridgeAbstract{
return $text; return $text;
} }
public function collectData(array $param){ public function collectData(){
$rssFeed = $this->getSimpleHTMLDOM('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;

View file

@ -10,7 +10,7 @@ class LeMondeInformatiqueBridge extends BridgeAbstract {
} }
public function collectData(array $param) { public function collectData(){
function StripCDATA($string) { function StripCDATA($string) {
$string = str_replace('<![CDATA[', '', $string); $string = str_replace('<![CDATA[', '', $string);

View file

@ -14,8 +14,8 @@ class Les400CulsBridge extends RssExpander{
} }
public function collectData(array $param){ public function collectData(){
parent::collectExpandableDatas($param, SEXE_FEED); parent::collectExpandableDatas(SEXE_FEED);
} }
protected function parseRSSItem($newsItem) { protected function parseRSSItem($newsItem) {

View file

@ -10,7 +10,7 @@ class LesJoiesDuCodeBridge extends BridgeAbstract{
} }
public function collectData(array $param){ public function collectData(){
$html = $this->getSimpleHTMLDOM('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) {

View file

@ -10,7 +10,7 @@ class LichessBridge extends BridgeAbstract
$this->description = 'Returns the 5 newest posts from the Lichess blog (full text)'; $this->description = 'Returns the 5 newest posts from the Lichess blog (full text)';
} }
public function collectData(array $param) public function collectData()
{ {
$xml_feed = $this->getSimpleHTMLDOM('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.');

View file

@ -16,9 +16,10 @@ class LinkedInCompany extends BridgeAbstract{
); );
} }
public function collectData(array $param){ public function collectData(){
$param=$this->parameters[$this->queriedContext];
$html = ''; $html = '';
$link = 'https://www.linkedin.com/company/'.$param['c']; $link = 'https://www.linkedin.com/company/'.$param['c']['value'];
$html = $this->getSimpleHTMLDOM($link) or $this->returnServerError('Could not request LinkedIn.'); $html = $this->getSimpleHTMLDOM($link) or $this->returnServerError('Could not request LinkedIn.');

View file

@ -17,13 +17,14 @@ class LolibooruBridge extends BridgeAbstract{
); );
} }
public function collectData(array $param){ public function collectData(){
$param=$this->parameters[$this->queriedContext];
$page = 1; $tags = ''; $page = 1; $tags = '';
if (isset($param['p'])) { if (isset($param['p']['value'])) {
$page = (int)preg_replace("/[^0-9]/",'', $param['p']); $page = (int)preg_replace("/[^0-9]/",'', $param['p']['value']);
} }
if (isset($param['t'])) { if (isset($param['t']['value'])) {
$tags = urlencode($param['t']); $tags = urlencode($param['t']['value']);
} }
$html = $this->getSimpleHTMLDOM("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);

View file

@ -76,7 +76,8 @@ class MangareaderBridge extends BridgeAbstract{
); );
} }
public function collectData(array $param){ public function collectData(){
$param=$this->parameters[$this->queriedContext];
$this->request = ''; $this->request = '';
@ -84,21 +85,21 @@ class MangareaderBridge extends BridgeAbstract{
$path = "latest"; $path = "latest";
$limit = MANGAREADER_LIMIT; $limit = MANGAREADER_LIMIT;
if(isset($param['category'])){ // Get popular updates if(isset($param['category']['value'])){ // Get popular updates
$type = "popular"; $type = "popular";
$path = "popular"; $path = "popular";
if($param['category'] !== "all"){ if($param['category']['value'] !== "all"){
$path .= "/" . $param['category']; $path .= "/" . $param['category']['value'];
} }
} }
if(isset($param['path'])){ // Get manga updates if(isset($param['path']['value'])){ // Get manga updates
$type = "path"; $type = "path";
$path = $param['path']; $path = $param['path']['value'];
} }
if(isset($param['limit']) && $param['limit'] !== ""){ // Get manga updates (optional parameter) if(isset($param['limit']['value']) && $param['limit']['value'] !== ""){ // Get manga updates (optional parameter)
$limit = $param['limit']; $limit = $param['limit']['value'];
} }
// We'll use the DOM parser for this as it makes navigation easier // We'll use the DOM parser for this as it makes navigation easier

View file

@ -17,13 +17,14 @@ class MilbooruBridge extends BridgeAbstract{
); );
} }
public function collectData(array $param){ public function collectData(){
$param=$this->parameters[$this->queriedContext];
$page = 0;$tags=''; $page = 0;$tags='';
if (isset($param['p'])) { if (isset($param['p']['value'])) {
$page = (int)preg_replace("/[^0-9]/",'', $param['p']); $page = (int)preg_replace("/[^0-9]/",'', $param['p']['value']);
} }
if (isset($param['t'])) { if (isset($param['t']['value'])) {
$tags = urlencode($param['t']); $tags = urlencode($param['t']['value']);
} }
$html = $this->getSimpleHTMLDOM("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.');

View file

@ -8,7 +8,7 @@ class MondeDiploBridge extends BridgeAbstract{
$this->description = "Returns most recent results from MondeDiplo."; $this->description = "Returns most recent results from MondeDiplo.";
} }
public function collectData(array $param){ public function collectData(){
$html = $this->getSimpleHTMLDOM($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) {

View file

@ -14,7 +14,7 @@ class MsnMondeBridge extends BridgeAbstract{
$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(){
$html = $this->getSimpleHTMLDOM($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) {

View file

@ -18,15 +18,16 @@ class MspabooruBridge extends BridgeAbstract{
} }
public function collectData(array $param){ public function collectData(){
$param=$this->parameters[$this->queriedContext];
$page = 0;$tags=''; $page = 0;$tags='';
if (isset($param['p'])) { if (isset($param['p']['value'])) {
$page = (int)preg_replace("/[^0-9]/",'', $param['p']); $page = (int)preg_replace("/[^0-9]/",'', $param['p']['value']);
$page = $page - 1; $page = $page - 1;
$page = $page * 50; $page = $page * 50;
} }
if (isset($param['t'])) { if (isset($param['t']['value'])) {
$tags = urlencode($param['t']); $tags = urlencode($param['t']['value']);
} }
$html = $this->getSimpleHTMLDOM("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.');

View file

@ -8,7 +8,7 @@ class NakedSecurityBridge extends BridgeAbstract {
$this->description = 'Returns the newest articles.'; $this->description = 'Returns the newest articles.';
} }
public function collectData(array $param) { public function collectData(){
function StripRecursiveHTMLSection($string, $tag_name, $tag_start) { function StripRecursiveHTMLSection($string, $tag_name, $tag_start) {
$open_tag = '<'.$tag_name; $open_tag = '<'.$tag_name;

View file

@ -10,7 +10,7 @@ class NasaApodBridge extends BridgeAbstract{
} }
public function collectData(array $param) { public function collectData(){
$html = $this->getSimpleHTMLDOM('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);

View file

@ -8,7 +8,7 @@ class NeuviemeArtBridge extends BridgeAbstract {
$this->description = "Returns the newest articles."; $this->description = "Returns the newest articles.";
} }
public function collectData(array $param) { public function collectData(){
function StripWithDelimiters($string, $start, $end) { function StripWithDelimiters($string, $start, $end) {
while (strpos($string, $start) !== false) { while (strpos($string, $start) !== false) {

View file

@ -25,7 +25,7 @@ class NextInpactBridge extends BridgeAbstract {
return $text; return $text;
} }
public function collectData(array $param) { public function collectData(){
$html = $this->getSimpleHTMLDOM('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;

View file

@ -28,7 +28,8 @@ class NextgovBridge extends BridgeAbstract {
); );
} }
public function collectData(array $param) { public function collectData(){
$param=$this->parameters[$this->queriedContext];
function ExtractFromDelimiters($string, $start, $end) { function ExtractFromDelimiters($string, $start, $end) {
if (strpos($string, $start) !== false) { if (strpos($string, $start) !== false) {
@ -46,7 +47,7 @@ class NextgovBridge extends BridgeAbstract {
} return $string; } return $string;
} }
$category = $param['category']; $category = $param['category']['value'];
if (empty($category)) if (empty($category))
$category = 'all'; $category = 'all';
if ($category !== preg_replace('/[^a-z-]+/', '', $category) || strlen($category > 32)) if ($category !== preg_replace('/[^a-z-]+/', '', $category) || strlen($category > 32))

View file

@ -22,7 +22,7 @@ class NiceMatinBridge extends BridgeAbstract{
return $text; return $text;
} }
public function collectData(array $param){ public function collectData(){
$html = $this->getSimpleHTMLDOM('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;

View file

@ -15,10 +15,11 @@ class NovelUpdatesBridge extends BridgeAbstract{
); );
} }
public function collectData(array $param){ public function collectData(){
if (!isset($param['n'])) $param=$this->parameters[$this->queriedContext];
if (!isset($param['n']['value']))
$this->returnClientError('You must specify the novel URL (/series/...)'); $this->returnClientError('You must specify the novel URL (/series/...)');
$thread = parse_url($param['n']) or $this->returnClientError('This URL seems malformed, please check it.'); $thread = parse_url($param['n']['value']) or $this->returnClientError('This URL seems malformed, please check it.');
if($thread['host'] !== 'www.novelupdates.com') if($thread['host'] !== 'www.novelupdates.com')
$this->returnClientError('NovelUpdates URL only.'); $this->returnClientError('NovelUpdates URL only.');
if(strpos($thread['path'], 'series/') === FALSE) if(strpos($thread['path'], 'series/') === FALSE)

View file

@ -10,7 +10,7 @@ class NumeramaBridge extends BridgeAbstract{
} }
public function collectData(array $param) { public function collectData(){
function NumeramaStripCDATA($string) { function NumeramaStripCDATA($string) {
$string = str_replace('<![CDATA[', '', $string); $string = str_replace('<![CDATA[', '', $string);

View file

@ -29,14 +29,15 @@ class OpenClassroomsBridge extends BridgeAbstract{
} }
public function collectData(array $param){ public function collectData(){
if (empty($param['u'])) $param=$this->parameters[$this->queriedContext];
if (empty($param['u']['value']))
{ {
$this->returnServerError('Error: You must chose a category.'); $this->returnServerError('Error: You must chose a category.');
} }
$html = ''; $html = '';
$link = 'https://openclassrooms.com/courses?categories='.$param['u'].'&title=&sort=updatedAt+desc'; $link = 'https://openclassrooms.com/courses?categories='.$param['u']['value'].'&title=&sort=updatedAt+desc';
$html = $this->getSimpleHTMLDOM($link) or $this->returnServerError('Could not request OpenClassrooms.'); $html = $this->getSimpleHTMLDOM($link) or $this->returnServerError('Could not request OpenClassrooms.');

View file

@ -29,7 +29,7 @@ class ParuVenduImmoBridge extends BridgeAbstract
); );
} }
public function collectData(array $param) public function collectData()
{ {
$html = ''; $html = '';
$num = 20; $num = 20;
@ -37,22 +37,22 @@ class ParuVenduImmoBridge extends BridgeAbstract
$maison = '&tbMai=1&tbVil=1&tbCha=1&tbPro=1&tbHot=1&tbMou=1&tbFer=1'; $maison = '&tbMai=1&tbVil=1&tbCha=1&tbPro=1&tbHot=1&tbMou=1&tbFer=1';
$link = $this->uri.'/immobilier/annonceimmofo/liste/listeAnnonces?tt=1'.$appartment.$maison; $link = $this->uri.'/immobilier/annonceimmofo/liste/listeAnnonces?tt=1'.$appartment.$maison;
if (isset($param['minarea'])) { if (isset($param['minarea']['value'])) {
$this->request .= ' '.$param['minarea'].' m2'; $this->request .= ' '.$param['minarea']['value'].' m2';
$link .= '&sur0='.urlencode($param['minarea']); $link .= '&sur0='.urlencode($param['minarea']['value']);
} }
if (isset($param['maxprice'])) { if (isset($param['maxprice']['value'])) {
$link .= '&px1='.urlencode($param['maxprice']); $link .= '&px1='.urlencode($param['maxprice']['value']);
} }
if (isset($param['pa'])) { if (isset($param['pa']['value'])) {
$link .= '&pa='.urlencode($param['pa']); $link .= '&pa='.urlencode($param['pa']['value']);
} }
if (isset($param['lo'])) { if (isset($param['lo']['value'])) {
$this->request .= ' In: '.$param['lo']; $this->request .= ' In: '.$param['lo']['value'];
$link .= '&lo='.urlencode($param['lo']); $link .= '&lo='.urlencode($param['lo']['value']);
} }
$html = $this->getSimpleHTMLDOM($link) or $this->returnServerError('Could not request paruvendu.'); $html = $this->getSimpleHTMLDOM($link) or $this->returnServerError('Could not request paruvendu.');

View file

@ -28,19 +28,20 @@ class PickyWallpapersBridge extends BridgeAbstract {
} }
public function collectData(array $param){ public function collectData(){
$param=$this->parameters[$this->queriedContext];
$html = ''; $html = '';
if (!isset($param['c'])) { if (!isset($param['c']['value'])) {
$this->returnClientError('You must specify at least a category (?c=...).'); $this->returnClientError('You must specify at least a category (?c=...).');
} else { } else {
$baseUri = 'http://www.pickywallpapers.com'; $baseUri = 'http://www.pickywallpapers.com';
$this->category = $param['c']; $this->category = $param['c']['value'];
$this->subcategory = $param['s'] ?: ''; $this->subcategory = $param['s']['value'] ?: '';
$this->resolution = $param['r'] ?: '1920x1200'; // Wide wallpaper default $this->resolution = $param['r']['value'] ?: '1920x1200'; // Wide wallpaper default
$num = 0; $num = 0;
$max = $param['m'] ?: 12; $max = $param['m']['value'] ?: 12;
$lastpage = 1; $lastpage = 1;
for ($page = 1; $page <= $lastpage; $page++) { for ($page = 1; $page <= $lastpage; $page++) {

View file

@ -22,27 +22,28 @@ class PinterestBridge extends BridgeAbstract{
); );
} }
public function collectData(array $param){ public function collectData(){
$param=$this->parameters[$this->queriedContext];
$html = ''; $html = '';
if (isset($param['u']) || isset($param['b'])) { if (isset($param['u']['value']) || isset($param['b']['value'])) {
if (empty($param['u'])) if (empty($param['u']['value']))
{ {
$this->returnClientError('You must specify a Pinterest username (?u=...).'); $this->returnClientError('You must specify a Pinterest username (?u=...).');
} }
if (empty($param['b'])) if (empty($param['b']['value']))
{ {
$this->returnClientError('You must specify a Pinterest board for this username (?b=...).'); $this->returnClientError('You must specify a Pinterest board for this username (?b=...).');
} }
$this->username = $param['u']; $this->username = $param['u']['value'];
$this->board = $param['b']; $this->board = $param['b']['value'];
$html = $this->getSimpleHTMLDOM($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']['value']))
{ {
$this->query = $param['q']; $this->query = $param['q']['value'];
$html = $this->getSimpleHTMLDOM($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.');
} }

View file

@ -14,7 +14,7 @@ class PlanetLibreBridge extends BridgeAbstract{
return $text; return $text;
} }
public function collectData(array $param){ public function collectData(){
$html = $this->getSimpleHTMLDOM('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) {

View file

@ -11,7 +11,7 @@ class ProjectMGameBridge extends BridgeAbstract{
} }
public function collectData(array $param){ public function collectData(){
$html = ''; $html = '';
$html = $this->getSimpleHTMLDOM('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');

View file

@ -15,13 +15,14 @@ class RTBFBridge extends BridgeAbstract {
); );
} }
public function collectData(array $param) { public function collectData(){
$param=$this->parameters[$this->queriedContext];
$html = ''; $html = '';
$limit = 10; $limit = 10;
$count = 0; $count = 0;
if (isset($param['c'])) { if (isset($param['c']['value'])) {
$html = $this->getSimpleHTMLDOM('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']['value']) 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) {

View file

@ -10,7 +10,7 @@ class Releases3DSBridge extends BridgeAbstract {
} }
public function collectData(array $param) { public function collectData(){
function ExtractFromDelimiters($string, $start, $end) { function ExtractFromDelimiters($string, $start, $end) {
if (strpos($string, $start) !== false) { if (strpos($string, $start) !== false) {

View file

@ -25,7 +25,7 @@ class ReporterreBridge extends BridgeAbstract{
return $text; return $text;
} }
public function collectData(array $param){ public function collectData(){
$html = $this->getSimpleHTMLDOM('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;

View file

@ -19,7 +19,7 @@ class Rue89Bridge extends BridgeAbstract{
} }
public function collectData(array $param){ public function collectData(){
$html = $this->getSimpleHTMLDOM('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.');

View file

@ -18,15 +18,16 @@ class Rule34Bridge extends BridgeAbstract{
} }
public function collectData(array $param){ public function collectData(){
$param=$this->parameters[$this->queriedContext];
$page = 0;$tags=''; $page = 0;$tags='';
if (isset($param['p'])) { if (isset($param['p']['value'])) {
$page = (int)preg_replace("/[^0-9]/",'', $param['p']); $page = (int)preg_replace("/[^0-9]/",'', $param['p']['value']);
$page = $page - 1; $page = $page - 1;
$page = $page * 50; $page = $page * 50;
} }
if (isset($param['t'])) { if (isset($param['t']['value'])) {
$tags = urlencode($param['t']); $tags = urlencode($param['t']['value']);
} }
$html = $this->getSimpleHTMLDOM("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.');

View file

@ -18,13 +18,14 @@ class Rule34pahealBridge extends BridgeAbstract{
} }
public function collectData(array $param){ public function collectData(){
$param=$this->parameters[$this->queriedContext];
$page = 0;$tags=''; $page = 0;$tags='';
if (isset($param['p'])) { if (isset($param['p']['value'])) {
$page = (int)preg_replace("/[^0-9]/",'', $param['p']); $page = (int)preg_replace("/[^0-9]/",'', $param['p']['value']);
} }
if (isset($param['t'])) { if (isset($param['t']['value'])) {
$tags = urlencode($param['t']); $tags = urlencode($param['t']['value']);
} }
$html = $this->getSimpleHTMLDOM("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.');

View file

@ -18,15 +18,16 @@ class SafebooruBridge extends BridgeAbstract{
} }
public function collectData(array $param){ public function collectData(){
$param=$this->parameters[$this->queriedContext];
$page = 0;$tags=''; $page = 0;$tags='';
if (isset($param['p'])) { if (isset($param['p']['value'])) {
$page = (int)preg_replace("/[^0-9]/",'', $param['p']); $page = (int)preg_replace("/[^0-9]/",'', $param['p']['value']);
$page = $page - 1; $page = $page - 1;
$page = $page * 40; $page = $page * 40;
} }
if (isset($param['t'])) { if (isset($param['t']['value'])) {
$tags = urlencode($param['t']); $tags = urlencode($param['t']['value']);
} }
$html = $this->getSimpleHTMLDOM("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.');

View file

@ -18,13 +18,14 @@ class SakugabooruBridge extends BridgeAbstract{
} }
public function collectData(array $param){ public function collectData(){
$param=$this->parameters[$this->queriedContext];
$page = 1;$tags=''; $page = 1;$tags='';
if (isset($param['p'])) { if (isset($param['p']['value'])) {
$page = (int)preg_replace("/[^0-9]/",'', $param['p']); $page = (int)preg_replace("/[^0-9]/",'', $param['p']['value']);
} }
if (isset($param['t'])) { if (isset($param['t']['value'])) {
$tags = urlencode($param['t']); $tags = urlencode($param['t']['value']);
} }
$html = $this->getSimpleHTMLDOM("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);

View file

@ -10,7 +10,7 @@ class ScmbBridge extends BridgeAbstract{
} }
public function collectData(array $param){ public function collectData(){
$html = ''; $html = '';
$html = $this->getSimpleHTMLDOM('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.');

View file

@ -17,10 +17,11 @@ class ScoopItBridge extends BridgeAbstract{
} }
public function collectData(array $param){ public function collectData(){
$param=$this->parameters[$this->queriedContext];
$html = ''; $html = '';
if ($param['u'] != '') { if ($param['u']['value'] != '') {
$this->request = $param['u']; $this->request = $param['u']['value'];
$link = 'http://scoop.it/search?q=' .urlencode($this->request); $link = 'http://scoop.it/search?q=' .urlencode($this->request);
$html = $this->getSimpleHTMLDOM($link) or $this->returnServerError('Could not request ScoopIt. for : ' . $link); $html = $this->getSimpleHTMLDOM($link) or $this->returnServerError('Could not request ScoopIt. for : ' . $link);

View file

@ -37,18 +37,19 @@ class SensCritiqueBridge extends BridgeAbstract {
); );
} }
public function collectData(array $param) { public function collectData(){
if ((isset($param['m']) && $param['m'])) { $param=$this->parameters[$this->queriedContext];
if ((isset($param['m']['value']) && $param['m']['value'])) {
$this->collectMoviesData(); $this->collectMoviesData();
} else if ((isset($param['s']) && $param['s'])) { } else if ((isset($param['s']['value']) && $param['s']['value'])) {
$this->collectSeriesData(); $this->collectSeriesData();
} else if ((isset($param['g']) && $param['g'])) { } else if ((isset($param['g']['value']) && $param['g']['value'])) {
$this->collectGamesData(); $this->collectGamesData();
} else if ((isset($param['b']) && $param['b'])) { } else if ((isset($param['b']['value']) && $param['b']['value'])) {
$this->collectBooksData(); $this->collectBooksData();
} else if ((isset($param['bd']) && $param['bd'])) { } else if ((isset($param['bd']['value']) && $param['bd']['value'])) {
$this->collectBDsData(); $this->collectBDsData();
} else if ((isset($param['mu']) && $param['mu'])) { } else if ((isset($param['mu']['value']) && $param['mu']['value'])) {
$this->collectMusicsData(); $this->collectMusicsData();
} else { } else {
$this->returnClientError('You must choose a category'); $this->returnClientError('You must choose a category');

View file

@ -10,7 +10,7 @@ class Sexactu extends BridgeAbstract{
} }
public function collectData(array $param){ public function collectData(){
$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');

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