Merge pull request #341 from LogMANOriginal/CleanupBridges

Cleanup bridges
This commit is contained in:
Mitsu 2016-08-10 12:05:34 +02:00 committed by GitHub
commit cd7eb1b8fe
107 changed files with 274 additions and 1441 deletions

View file

@ -29,16 +29,4 @@ class ABCTabsBridge extends BridgeAbstract{
$this->items[] = $item;
}
}
public function getName() {
return "ABC Tabs Bridge";
}
public function getURI() {
return "http://www.abc-tabs.com/";
}
}

View file

@ -7,7 +7,7 @@ class AcrimedBridge extends RssExpander{
$this->name = "Acrimed Bridge";
$this->uri = "http://www.acrimed.org/";
$this->description = "Returns the newest articles.";
$this->update = "2014-05-25";
$this->update = "2016-08-09";
}
@ -40,18 +40,6 @@ class AcrimedBridge extends RssExpander{
}
public function getName() {
return "Acrimed Bridge";
}
public function getURI() {
return "http://www.acrimed.org/";
}
public function getCacheDuration(){
return 4800; // 2 hours
}

View file

@ -1,54 +1,94 @@
<?php
class AllocineFRBridge extends BridgeAbstract{
private $_URL = "http://www.allocine.fr/video/programme-12284/saison-24580/";
private $_NOM = "Faux Raccord";
public function loadMetadatas() {
$this->maintainer = "superbaillot.net";
$this->name = "Allo Cine : Faux Raccord";
$this->uri = "http://www.allocine.fr/video/programme-12284/saison-24580/";
$this->description = "Allo Cine : Faux Raccord";
$this->update = "2016-08-06";
$this->maintainer = "superbaillot.net";
$this->name = "Allo Cine Bridge";
$this->uri = "http://www.allocine.fr";
$this->description = "Bridge for allocine.fr";
$this->update = "2016-08-10";
}
$this->parameters[] =
'[
{
"name" : "category",
"identifier" : "category",
"type" : "list",
"required" : "true",
"exampleValue" : "Faux Raccord",
"title" : "Select your category",
"values" :
[
{
"name" : "Faux Raccord",
"value" : "faux-raccord"
},
{
"name" : "Top 5",
"value" : "top-5"
},
{
"name" : "Tueurs En Serie",
"value" : "tuers-en-serie"
}
]
}
]';
}
public function collectData(array $param){
$html = $this->file_get_html($this->_URL) or $this->returnError('Could not request Allo cine.', 404);
public function collectData(array $params){
// Check all parameters
if(!isset($params['category']))
$this->returnError('You must specify a valid category (&category= )!', 400);
$category = '';
switch($params['category']){
case 'faux-raccord':
$this->uri = 'http://www.allocine.fr/video/programme-12284/saison-24580/';
$category = 'Faux Raccord';
break;
case 'top-5':
$this->uri = 'http://www.allocine.fr/video/programme-12299/saison-22542/';
$category = 'Top 5';
break;
case 'tuers-en-serie':
$this->uri = 'http://www.allocine.fr/video/programme-12286/saison-22938/';
$category = 'Tueurs en Séries';
break;
default:
$this->returnError('You must select a valid category!', 400);
}
// Update bridge name to match selection
$this->name .= ' : ' . $category;
$html = $this->file_get_html($this->uri) or $this->returnError("Could not request {$this->uri}!", 404);
foreach($html->find('figure.media-meta-fig') as $element)
{
$item = new Item();
$titre = $element->find('div.titlebar h3.title a', 0);
$title = $element->find('div.titlebar h3.title a', 0);
$content = trim($element->innertext);
$figCaption = strpos($content, $this->_NOM);
$figCaption = strpos($content, $category);
if($figCaption !== false)
{
$content = str_replace('src="/', 'src="http://www.allocine.fr/',$content);
$content = str_replace('href="/', 'href="http://www.allocine.fr/',$content);
$content = str_replace('src=\'/', 'src=\'http://www.allocine.fr/',$content);
$content = str_replace('href=\'/', 'href=\'http://www.allocine.fr/',$content);
$content = str_replace('src="/', 'src="http://www.allocine.fr/', $content);
$content = str_replace('href="/', 'href="http://www.allocine.fr/', $content);
$content = str_replace('src=\'/', 'src=\'http://www.allocine.fr/', $content);
$content = str_replace('href=\'/', 'href=\'http://www.allocine.fr/', $content);
$item->content = $content;
$item->title = trim($titre->innertext);
$item->uri = "http://www.allocine.fr" . $titre->href;
$item->title = trim($title->innertext);
$item->uri = "http://www.allocine.fr" . $title->href;
$this->items[] = $item;
}
}
}
public function getName(){
return 'Allo Cine : ' . $this->_NOM;
}
public function getURI(){
return $this->_URL;
}
public function getCacheDuration(){
return 25200; // 7 hours
}
}
?>

View file

@ -1,54 +0,0 @@
<?php
class AllocineT5Bridge extends BridgeAbstract{
private $_URL = "http://www.allocine.fr/video/programme-12299/saison-22542/";
private $_NOM = "Top 5";
public function loadMetadatas() {
$this->maintainer = "superbaillot.net";
$this->name = "Allo Cine : Top 5";
$this->uri = "http://www.allocine.fr/video/programme-12299/saison-22542/";
$this->description = "Allo Cine : Top 5 via rss-bridge";
$this->update = "2016-08-06";
}
public function collectData(array $param){
$html = $this->file_get_html($this->_URL) or $this->returnError('Could not request Allo cine.', 404);
foreach($html->find('figure.media-meta-fig') as $element)
{
$item = new Item();
$titre = $element->find('div.titlebar h3.title a', 0);
$content = trim($element->innertext);
$figCaption = strpos($content, $this->_NOM);
if($figCaption !== false)
{
$content = str_replace('src="/', 'src="http://www.allocine.fr/',$content);
$content = str_replace('href="/', 'href="http://www.allocine.fr/',$content);
$content = str_replace('src=\'/', 'src=\'http://www.allocine.fr/',$content);
$content = str_replace('href=\'/', 'href=\'http://www.allocine.fr/',$content);
$item->content = $content;
$item->title = trim($titre->innertext);
$item->uri = "http://www.allocine.fr" . $titre->href;
$this->items[] = $item;
}
}
}
public function getName(){
return 'Allo Cine : ' . $this->_NOM;
}
public function getURI(){
return $this->_URL;
}
public function getCacheDuration(){
return 25200; // 7 hours
}
}
?>

View file

@ -1,54 +0,0 @@
<?php
class AllocineTueursEnSerieBridge extends BridgeAbstract{
private $_URL = "http://www.allocine.fr/video/programme-12286/saison-22938/";
private $_NOM = "Tueurs en Séries";
public function loadMetadatas() {
$this->maintainer = "superbaillot.net";
$this->name = "Allo Cine : Tueurs En Serie";
$this->uri = "http://www.allocine.fr/video/programme-12286/saison-22938/";
$this->description = "Allo Cine : Tueurs En Serie";
$this->update = "2016-08-06";
}
public function collectData(array $param){
$html = $this->file_get_html($this->_URL) or $this->returnError('Could not request Allo cine.', 404);
foreach($html->find('figure.media-meta-fig') as $element)
{
$item = new Item();
$titre = $element->find('div.titlebar h3.title a', 0);
$content = trim($element->innertext);
$figCaption = strpos($content, $this->_NOM);
if($figCaption !== false)
{
$content = str_replace('src="/', 'src="http://www.allocine.fr/',$content);
$content = str_replace('href="/', 'href="http://www.allocine.fr/',$content);
$content = str_replace('src=\'/', 'src=\'http://www.allocine.fr/',$content);
$content = str_replace('href=\'/', 'href=\'http://www.allocine.fr/',$content);
$item->content = $content;
$item->title = trim($titre->innertext);
$item->uri = "http://www.allocine.fr" . $titre->href;
$this->items[] = $item;
}
}
}
public function getName(){
return 'Allo Cine : ' . $this->_NOM;
}
public function getURI(){
return $this->_URL;
}
public function getCacheDuration(){
return 25200; // 7 hours
}
}
?>

View file

@ -125,10 +125,6 @@ class AnimeUltimeBridge extends BridgeAbstract {
return 'Latest '.$this->filter.' - Anime-Ultime Bridge';
}
public function getURI() {
return 'http://www.anime-ultime.net/';
}
public function getCacheDuration() {
return 3600*3; // 3 hours
}

View file

@ -62,17 +62,8 @@ class ArstechnicaBridge extends BridgeAbstract {
}
public function getName() {
return 'ArsTechnica';
}
public function getCacheDuration() {
return 7200; // 2h
}
public function getURI() {
return "http://arstechnica.com";
}
}

View file

@ -156,14 +156,6 @@ class Arte7Bridge extends BridgeAbstract{
}
}
public function getName(){
return 'Arte7';
}
public function getURI(){
return 'http://www.arte.tv/';
}
public function getCacheDuration(){
return 1800; // 30 minutes
}

View file

@ -51,10 +51,6 @@ class BandcampBridge extends BridgeAbstract{
return (!empty($this->request) ? $this->request .' - ' : '') .'Bandcamp Tag';
}
public function getURI(){
return 'http://bandcamp.com';
}
public function getCacheDuration(){
return 600; // 10 minutes
}

View file

@ -5,7 +5,7 @@ class BastaBridge extends BridgeAbstract{
$this->name = "Bastamag Bridge";
$this->uri = "http://www.bastamag.net/";
$this->description = "Returns the newest articles.";
$this->update = "2016-08-02";
$this->update = "2016-08-09";
}
public function collectData(array $param){
@ -30,14 +30,6 @@ class BastaBridge extends BridgeAbstract{
}
}
public function getName(){
return 'Bastamag Bridge';
}
public function getURI(){
return 'http://bastamag.net/';
}
public function getCacheDuration(){
return 3600*2; // 2 hours
}

View file

@ -32,14 +32,6 @@ class BlaguesDeMerdeBridge extends BridgeAbstract{
}
}
public function getName(){
return 'blaguesdemerde';
}
public function getURI(){
return 'http://www.blaguesdemerde.fr/';
}
public function getCacheDuration(){
return 7200; // 2h hours
}

View file

@ -58,14 +58,6 @@ class BooruprojectBridge extends BridgeAbstract{
}
}
public function getName(){
return 'Booruproject';
}
public function getURI(){
return 'http://booru.org/';
}
public function getCacheDuration(){
return 1800; // 30 minutes
}

View file

@ -5,7 +5,7 @@ class CADBridge extends BridgeAbstract{
$this->name = "CAD Bridge";
$this->uri = "http://www.cad-comic.com/";
$this->description = "Returns the newest articles.";
$this->update = "2016-08-06";
$this->update = "2016-08-09";
}
private function CADExtractContent($url) {
@ -63,14 +63,6 @@ class CADBridge extends BridgeAbstract{
}
}
public function getName(){
return 'CAD Bridge';
}
public function getURI(){
return 'http://www.cad-comic.com/';
}
public function getCacheDuration(){
return 3600*2; // 2 hours
}

View file

@ -3,9 +3,9 @@ class CastorusBridge extends BridgeAbstract {
public function loadMetadatas(){
$this->maintainer = "logmanoriginal";
$this->name = "Castorus Bridge";
$this->uri = $this->getURI();
$this->uri = 'http://www.castorus.com';
$this->description = "Returns the latest changes";
$this->update = "2016-08-06";
$this->update = "2016-08-09";
$this->parameters["Get latest changes"] = '[]';
$this->parameters["Get latest changes via ZIP code"] =
@ -49,7 +49,7 @@ class CastorusBridge extends BridgeAbstract {
if(!$url)
$this->returnError('Cannot find url!', 404);
return $this->getURI() . $url->href;
return $this->uri . $url->href;
}
// Extracts the time from an activity
@ -85,10 +85,10 @@ class CastorusBridge extends BridgeAbstract {
if(isset($params['city']))
$city_filter = trim($params['city']);
$html = $this->file_get_html($this->getURI());
$html = $this->file_get_html($this->uri);
if(!$html)
$this->returnError('Could not load data from ' . $this->getURI() . '!', 404);
$this->returnError('Could not load data from ' . $this->uri . '!', 404);
$activities = $html->find('div#activite/li');
@ -116,14 +116,6 @@ class CastorusBridge extends BridgeAbstract {
}
}
public function getName(){
return 'Castorus Bridge';
}
public function getURI(){
return 'http://www.castorus.com';
}
public function getCacheDuration(){
return 600; // 10 minutes
}

View file

@ -6,7 +6,7 @@ class CollegeDeFranceBridge extends BridgeAbstract{
$this->name = "CollegeDeFrance";
$this->uri = "http://www.college-de-france.fr/";
$this->description = "Returns the latest audio and video from CollegeDeFrance";
$this->update = "2016-05-01";
$this->update = "2016-08-09";
}
public function collectData(array $param) {
@ -54,14 +54,6 @@ class CollegeDeFranceBridge extends BridgeAbstract{
}
}
public function getName(){
return 'CollegeDeFrance';
}
public function getURI(){
return 'http://www.college-de-france.fr/';
}
public function getCacheDuration(){
return 3600*3; // 3 hours
}

View file

@ -6,7 +6,7 @@ class CommonDreamsBridge extends BridgeAbstract{
$this->name = "CommonDreams Bridge";
$this->uri = "http://www.commondreams.org/";
$this->description = "Returns the newest articles.";
$this->update = "2016-08-06";
$this->update = "2016-08-09";
}
private function CommonDreamsExtractContent($url) {
@ -39,12 +39,4 @@ class CommonDreamsBridge extends BridgeAbstract{
}
}
}
public function getName(){
return 'CommonDreams Bridge';
}
public function getURI(){
return 'http://www.commondreams.org/';
}
}

View file

@ -7,7 +7,7 @@ class CopieDoubleBridge extends BridgeAbstract{
$this->name = "CopieDouble";
$this->uri = "http://www.copie-double.com/";
$this->description = "CopieDouble";
$this->update = "2016-08-06";
$this->update = "2016-08-09";
}
@ -42,14 +42,6 @@ class CopieDoubleBridge extends BridgeAbstract{
}
}
public function getName(){
return 'CopieDouble';
}
public function getURI(){
return 'http://www.copie-double.com';
}
public function getCacheDuration(){
return 14400; // 4 hours
}

View file

@ -4,10 +4,10 @@ class CourrierInternationalBridge extends BridgeAbstract{
public function loadMetadatas() {
$this->maintainer = "teromene";
$this->name = "CourrierInternational";
$this->name = "Courrier International Bridge";
$this->uri = "http://CourrierInternational.fr/";
$this->description = "Courrier International bridge";
$this->update = "01/09/2015";
$this->update = "2016-08-09";
}
@ -61,14 +61,6 @@ class CourrierInternationalBridge extends BridgeAbstract{
}
public function getName(){
return 'Courrier International Bridge';
}
public function getURI(){
return 'http://courrierinternational.com';
}
public function getCacheDuration(){
return 300; // 5 minutes
}

View file

@ -7,7 +7,7 @@ class CryptomeBridge extends BridgeAbstract{
$this->name = "Cryptome";
$this->uri = "http://cryptome.org/";
$this->description = "Returns the N most recent documents.";
$this->update = "";
$this->update = "2016-08-09";
$this->parameters[] =
'[
@ -46,14 +46,6 @@ class CryptomeBridge extends BridgeAbstract{
}
}
public function getName(){
return 'Cryptome';
}
public function getURI(){
return 'https://secure.netsolhost.com/cryptome.org/';
}
public function getCacheDuration(){
return 21600; // 6 hours
}

View file

@ -96,10 +96,6 @@ class DailymotionBridge extends BridgeAbstract{
return (!empty($this->request) ? $this->request .' - ' : '') .'Dailymotion Bridge';
}
public function getURI(){
return 'https://www.dailymotion.com/';
}
public function getCacheDuration(){
return 3600*3; // 3 hours
}

View file

@ -45,14 +45,6 @@ class DanbooruBridge extends BridgeAbstract{
}
}
public function getName(){
return 'Danbooru';
}
public function getURI(){
return 'http://donmai.us/';
}
public function getCacheDuration(){
return 1800; // 30 minutes
}

View file

@ -5,9 +5,9 @@ class DansTonChatBridge extends BridgeAbstract{
$this->maintainer = "Astalaseven";
$this->name = "DansTonChat Bridge";
$this->uri = "http://danstonchat.com/latest.html";
$this->uri = "http://danstonchat.com";
$this->description = "Returns latest quotes from DansTonChat.";
$this->update = "2014-05-25";
$this->update = "2016-08-09";
}
@ -26,14 +26,6 @@ class DansTonChatBridge extends BridgeAbstract{
}
}
public function getName(){
return 'DansTonChat';
}
public function getURI(){
return 'http://danstonchat.com';
}
public function getCacheDuration(){
return 21600; // 6 hours
}

View file

@ -4,10 +4,10 @@ class DauphineLibereBridge extends BridgeAbstract {
public function loadMetadatas() {
$this->maintainer = "qwertygc";
$this->name = "DauphineLibereBridge Bridge";
$this->name = "Dauphine Bridge";
$this->uri = "http://www.ledauphine.com/";
$this->description = "Returns the newest articles.";
$this->update = "2016-08-06";
$this->update = "2016-08-09";
$this->parameters[] =
'[
@ -122,14 +122,6 @@ class DauphineLibereBridge extends BridgeAbstract {
}
}
public function getName(){
return 'Dauphine Bridge';
}
public function getURI(){
return 'http://ledauphine.com/';
}
public function getCacheDuration(){
return 3600*2; // 2 hours
}

View file

@ -64,18 +64,6 @@ class DemoBridge extends BridgeAbstract{
}
public function getName() {
return "DemoBridge";
}
public function getURI() {
return "http://github.com/sebsauvage/rss-bridge";
}
public function getCacheDuration(){
return 00; // 1 hour
}

View file

@ -6,7 +6,7 @@ class DeveloppezDotComBridge extends BridgeAbstract{
$this->name = "Developpez.com Actus (FR)";
$this->uri = "http://www.developpez.com/";
$this->description = "Returns the 15 newest posts from DeveloppezDotCom (full text).";
$this->update = "2016-08-06";
$this->update = "2016-08-09";
}
private function DeveloppezDotComStripCDATA($string) {
@ -59,14 +59,6 @@ class DeveloppezDotComBridge extends BridgeAbstract{
}
}
public function getName(){
return 'DeveloppezDotCom';
}
public function getURI(){
return 'http://www.developpez.com/';
}
public function getCacheDuration(){
return 1800; // 30min
}

View file

@ -48,14 +48,6 @@ class DollbooruBridge extends BridgeAbstract{
}
}
public function getName(){
return 'Dollbooru';
}
public function getURI(){
return 'http://dollbooru.org/';
}
public function getCacheDuration(){
return 1800; // 30 minutes
}

View file

@ -7,7 +7,7 @@ class DuckDuckGoBridge extends BridgeAbstract{
$this->name = "DuckDuckGo";
$this->uri = "https://duckduckgo.com/";
$this->description = "Returns most recent results from DuckDuckGo.";
$this->update = "2014-05-25";
$this->update = "2016-08-09";
$this->parameters[] =
'[
@ -33,14 +33,6 @@ class DuckDuckGoBridge extends BridgeAbstract{
}
}
public function getName(){
return 'DuckDuckGo';
}
public function getURI(){
return 'https://duckduckgo.com';
}
public function getCacheDuration(){
return 21600; // 6 hours
}

View file

@ -7,7 +7,7 @@ class EZTVBridge extends BridgeAbstract{
$this->name = "EZTV";
$this->uri = "https://eztv.ch/";
$this->description = "Returns list of *recent* torrents for a specific show on EZTV. Get showID from URLs in https://eztv.ch/shows/showID/show-full-name.";
$this->update = "2016-08-06";
$this->update = "2016-08-09";
$this->parameters[] =
'[
@ -72,12 +72,4 @@ class EZTVBridge extends BridgeAbstract{
}
}
}
public function getName(){
return 'EZTV';
}
public function getURI(){
return 'https://eztv.ch/';
}
}

View file

@ -8,7 +8,7 @@ class EliteDangerousGalnetBridge extends BridgeAbstract
$this->name = "Elite: Dangerous Galnet";
$this->uri = "https://community.elitedangerous.com/galnet";
$this->description = "Returns the latest page of news from Galnet";
$this->update = "2016-04-06";
$this->update = "2016-08-09";
}
public function collectData(array $param)
@ -36,16 +36,6 @@ class EliteDangerousGalnetBridge extends BridgeAbstract
}
}
public function getName()
{
return 'Elite: Dangerous Galnet';
}
public function getURI()
{
return 'https://community.elitedangerous.com/galnet';
}
public function getCacheDuration()
{
return 3600 * 2; // 2 hours

View file

@ -76,14 +76,6 @@ class ElsevierBridge extends BridgeAbstract{
}
}
public function getName(){
return 'Elsevier journals recent articles';
}
public function getURI(){
return 'http://www.journals.elsevier.com';
}
public function getCacheDuration(){
return 43200; // 12h
}

View file

@ -7,7 +7,7 @@ Class FierPandaBridge extends BridgeAbstract{
$this->name = "Fier Panda Bridge";
$this->uri = "http://www.fier-panda.fr/";
$this->description = "Returns latest articles from Fier Panda.";
$this->update = "2015-12-11";
$this->update = "2016-08-09";
}
@ -27,14 +27,6 @@ Class FierPandaBridge extends BridgeAbstract{
}
}
public function getName(){
return 'Fier Panda';
}
public function getURI(){
return 'http://www.fier-panda.fr';
}
public function getCacheDuration(){
return 21600; // 6 hours
}

View file

@ -36,14 +36,6 @@ class FlickrExploreBridge extends BridgeAbstract{
}
}
public function getName(){
return 'Flickr Explore';
}
public function getURI(){
return 'https://www.flickr.com/explore';
}
public function getCacheDuration(){
return 21600; // 6 hours
}

View file

@ -51,14 +51,6 @@ class FlickrTagBridge extends BridgeAbstract{
}
}
public function getName(){
return 'Flickr Tag';
}
public function getURI(){
return 'http://www.flickr.com/search/';
}
public function getCacheDuration(){
return 21600; // 6 hours
}

View file

@ -41,12 +41,4 @@ class FootitoBridge extends BridgeAbstract{
$this->items[] = $item;
}
}
public function getName(){
return 'footito';
}
public function getURI(){
return 'http://www.footito.fr/';
}
}

View file

@ -7,7 +7,7 @@ class FourchanBridge extends BridgeAbstract{
$this->name = "4chan";
$this->uri = "https://www.4chan.org/";
$this->description = "Returns posts from the specified thread";
$this->update = "2015-02-01";
$this->update = "2016-08-09";
$this->parameters[] =
'[
@ -60,14 +60,6 @@ class FourchanBridge extends BridgeAbstract{
$this->items = array_reverse($this->items);
}
public function getName(){
return '4chan';
}
public function getURI(){
return 'https://www.4chan.org/';
}
public function getCacheDuration(){
return 300; // 5min
}

View file

@ -7,7 +7,7 @@ class GBAtempBridge extends BridgeAbstract {
$this->maintainer = 'ORelio';
$this->name = 'GBAtemp';
$this->uri = $this->getURI();
$this->uri = 'http://gbatemp.net/';
$this->description = 'GBAtemp is a user friendly underground video game community.';
$this->update = '2016-08-09';
@ -91,20 +91,20 @@ class GBAtempBridge extends BridgeAbstract {
} else $this->returnError('The provided type filter is invalid. Expecting N, R, T, or F.', 400);
} else $this->returnError('Please provide a type filter. Expecting N, R, T, or F.', 400);
$html = $this->file_get_html($this->getURI()) or $this->returnError('Could not request GBAtemp.', 500);
$html = $this->file_get_html($this->uri) or $this->returnError('Could not request GBAtemp.', 500);
if ($typeFilter == 'N') {
foreach ($html->find('li[class=news_item full]') as $newsItem) {
$url = $this->getURI().$newsItem->find('a', 0)->href;
$url = $this->uri.$newsItem->find('a', 0)->href;
$time = intval($this->ExtractFromDelimiters($newsItem->find('abbr.DateTime', 0)->outertext, 'data-time="', '"'));
$author = $newsItem->find('a.username', 0)->plaintext;
$title = $newsItem->find('a', 1)->plaintext;
$content = $this->fetch_post_content($url, $this->getURI());
$content = $this->fetch_post_content($url, $this->uri);
$this->items[] = $this->build_item($url, $title, $author, $time, $content);
}
} else if ($typeFilter == 'R') {
foreach ($html->find('li.portal_review') as $reviewItem) {
$url = $this->getURI().$reviewItem->find('a', 0)->href;
$url = $this->uri.$reviewItem->find('a', 0)->href;
$title = $reviewItem->find('span.review_title', 0)->plaintext;
$content = $this->file_get_html($url) or $this->returnError('Could not request GBAtemp: '.$uri, 500);
$author = $content->find('a.username', 0)->plaintext;
@ -114,25 +114,25 @@ class GBAtempBridge extends BridgeAbstract {
$subheader = '<p><b>'.$content->find('div.review_subheader', 0)->plaintext.'</b></p>';
$procons = $content->find('table.review_procons', 0)->outertext;
$scores = $content->find('table.reviewscores', 0)->outertext;
$content = $this->cleanup_post_content($intro.$review.$subheader.$procons.$scores, $this->getURI());
$content = $this->cleanup_post_content($intro.$review.$subheader.$procons.$scores, $this->uri);
$this->items[] = $this->build_item($url, $title, $author, $time, $content);
}
} else if ($typeFilter == 'T') {
foreach ($html->find('li.portal-tutorial') as $tutorialItem) {
$url = $this->getURI().$tutorialItem->find('a', 0)->href;
$url = $this->uri.$tutorialItem->find('a', 0)->href;
$title = $tutorialItem->find('a', 0)->plaintext;
$time = intval($this->ExtractFromDelimiters($tutorialItem->find('abbr.DateTime', 0)->outertext, 'data-time="', '"'));
$author = $tutorialItem->find('a.username', 0)->plaintext;
$content = $this->fetch_post_content($url, $this->getURI());
$content = $this->fetch_post_content($url, $this->uri);
$this->items[] = $this->build_item($url, $title, $author, $time, $content);
}
} else if ($typeFilter == 'F') {
foreach ($html->find('li.rc_item') as $postItem) {
$url = $this->getURI().$postItem->find('a', 1)->href;
$url = $this->uri.$postItem->find('a', 1)->href;
$title = $postItem->find('a', 1)->plaintext;
$time = intval($this->ExtractFromDelimiters($postItem->find('abbr.DateTime', 0)->outertext, 'data-time="', '"'));
$author = $postItem->find('a.username', 0)->plaintext;
$content = $this->fetch_post_content($url, $this->getURI());
$content = $this->fetch_post_content($url, $this->uri);
$this->items[] = $this->build_item($url, $title, $author, $time, $content);
}
}
@ -142,10 +142,6 @@ class GBAtempBridge extends BridgeAbstract {
return 'GBAtemp'.(empty($this->filter) ? '' : ' '.$this->filter).' Bridge';
}
public function getURI() {
return 'http://gbatemp.net/';
}
public function getCacheDuration() {
return ($this->filter === 'Forum') ? 300 : 3600; // 5 minutes / 1 hour
}

View file

@ -50,14 +50,6 @@ class GelbooruBridge extends BridgeAbstract{
}
}
public function getName(){
return 'Gelbooru';
}
public function getURI(){
return 'http://gelbooru.com/';
}
public function getCacheDuration(){
return 1800; // 30 minutes
}

View file

@ -9,7 +9,7 @@ class GiphyBridge extends BridgeAbstract{
$this->name = "Giphy Bridge";
$this->uri = "http://giphy.com/";
$this->description = "Bridge for giphy.com";
$this->update = "2016-08-06";
$this->update = "2016-08-09";
$this->parameters["By tag"] =
'[
@ -81,14 +81,6 @@ class GiphyBridge extends BridgeAbstract{
}
}
public function getName(){
return 'Giphy Bridge';
}
public function getURI(){
return 'http://giphy.com/';
}
public function getCacheDuration(){
return 300; // 5 minutes
}

View file

@ -53,14 +53,6 @@ class GithubIssueBridge extends BridgeAbstract{
}
}
public function getName(){
return 'Github Issue';
}
public function getURI(){
return '';
}
public function getCacheDuration(){
return 600; // ten minutes
}

View file

@ -79,12 +79,4 @@ class GitlabCommitsBridge extends BridgeAbstract{
$this->items[]=$item;
}
}
public function getName(){
return 'Gitlab Commits';
}
public function getURI(){
return '';
}
}

View file

@ -7,7 +7,7 @@ class GizmodoFRBridge extends BridgeAbstract{
$this->name = "GizmodoFR";
$this->uri = "http://www.gizmodo.fr/";
$this->description = "Returns the 15 newest posts from GizmodoFR (full text).";
$this->update = "2014-07-14";
$this->update = "2016-08-09";
}
@ -43,14 +43,6 @@ class GizmodoFRBridge extends BridgeAbstract{
}
public function getName(){
return 'GizmodoFR';
}
public function getURI(){
return 'http://www.gizmodo.fr/';
}
public function getCacheDuration(){
return 1800; // 30min
}

View file

@ -17,7 +17,7 @@ class GoogleSearchBridge extends BridgeAbstract{
$this->name = "Google search";
$this->uri = "https://www.google.com/";
$this->description = "Returns most recent results from Google search.";
$this->update = "2014-05-25";
$this->update = "2016-08-09";
$this->parameters[] =
'[
@ -62,10 +62,6 @@ class GoogleSearchBridge extends BridgeAbstract{
return (!empty($this->request) ? $this->request .' - ' : '') .'Google search';
}
public function getURI(){
return 'http://google.com';
}
public function getCacheDuration(){
return 1800; // 30 minutes
}

View file

@ -6,7 +6,7 @@ class GuruMedBridge extends BridgeAbstract{
$this->name = "GuruMed";
$this->uri = "http://www.gurumed.org";
$this->description = "Returns the 5 newest posts from Gurumed (full text)";
$this->update = "2016-08-06";
$this->update = "2016-08-09";
}
private function GurumedStripCDATA($string) {
@ -31,12 +31,4 @@ class GuruMedBridge extends BridgeAbstract{
}
}
}
public function getName(){
return 'Gurumed';
}
public function getURI(){
return 'http://gurumed.org/';
}
}

View file

@ -77,10 +77,6 @@ class HDWallpapersBridge extends BridgeAbstract {
return 'HDWallpapers - '.str_replace(['__', '_'], [' & ', ' '], $this->category).' ['.$this->resolution.']';
}
public function getURI(){
return 'http://www.hdwallpapers.in';
}
public function getCacheDuration(){
return 43200; // 12 hours
}

View file

@ -15,7 +15,7 @@ class HentaiHavenBridge extends BridgeAbstract{
$html = $this->file_get_html('http://hentaihaven.org/') or $this->returnError('Could not request Hentai Haven.', 404);
foreach($html->find('div.zoe-grid') as $element) {
$item = new \Item();
$item->uri = $this->getURI().$element->find('div.brick-content h3 a', 0)->href;
$item->uri = $element->find('div.brick-content h3 a', 0)->href;
$thumbnailUri = $element->find('a.thumbnail-image img', 0)->getAttribute('data-src');
$item->title = mb_convert_encoding(trim($element->find('div.brick-content h3 a', 0)->innertext), 'UTF-8', 'HTML-ENTITIES');
$item->tags = $element->find('div.oFlyout_bg div.oFlyout div.flyoutContent span.tags', 0)->plaintext;
@ -23,12 +23,7 @@ class HentaiHavenBridge extends BridgeAbstract{
$this->items[] = $item;
}
}
public function getName(){
return 'Hentai Haven';
}
public function getURI(){
return '';
}
public function getCacheDuration(){
return 21600; // 6 hours
}

View file

@ -9,7 +9,7 @@ class InstagramBridge extends BridgeAbstract{
$this->name = "Instagram Bridge";
$this->uri = "http://instagram.com/";
$this->description = "Returns the newest images";
$this->update = "2016-08-06";
$this->update = "2016-08-09";
$this->parameters[] =
'[
@ -77,8 +77,4 @@ class InstagramBridge extends BridgeAbstract{
public function getName(){
return (!empty($this->request) ? $this->request .' - ' : '') .'Instagram Bridge';
}
public function getURI(){
return 'http://instagram.com/';
}
}

View file

@ -3,7 +3,7 @@ class JapanExpoBridge extends BridgeAbstract{
public function loadMetadatas() {
$this->maintainer = 'Ginko';
$this->name = 'JapanExpo';
$this->name = 'Japan Expo Actualités';
$this->uri = 'http://www.japan-expo-paris.com/fr/actualites';
$this->description = 'Returns most recent entries from Japan Expo actualités.';
$this->update = '2016-08-09';
@ -102,14 +102,6 @@ class JapanExpoBridge extends BridgeAbstract{
}
}
public function getName(){
return 'Japan Expo Actualités';
}
public function getURI(){
return 'http://www.japan-expo-paris.com/fr/actualites';
}
public function getCacheDuration(){
return 14400; // 4 hours
}

View file

@ -50,14 +50,6 @@ class KonachanBridge extends BridgeAbstract{
}
}
public function getName(){
return 'Konachan';
}
public function getURI(){
return 'http://konachan.com/post';
}
public function getCacheDuration(){
return 1800; // 30 minutes
}

View file

@ -6,7 +6,7 @@ class KoreusBridge extends BridgeAbstract{
$this->name = "Koreus";
$this->uri = "http://www.koreus.com/";
$this->description = "Returns the 5 newest posts from Koreus (full text)";
$this->update = "2016-08-06";
$this->update = "2016-08-09";
}
private function KoreusStripCDATA($string) {
@ -38,12 +38,4 @@ class KoreusBridge extends BridgeAbstract{
}
}
}
public function getName(){
return 'Koreus';
}
public function getURI(){
return 'http://www.koreus.com/';
}
}

View file

@ -160,14 +160,6 @@ class LWNprevBridge extends BridgeAbstract{
}
}
public function getName(){
return 'LWN Free Weekly Edition';
}
public function getURI(){
return 'https://lwn.net/free/bigpage';
}
public function getCacheDuration(){
return 604800; // one week
}

View file

@ -7,7 +7,7 @@ class LeBonCoinBridge extends BridgeAbstract{
$this->name = "LeBonCoin";
$this->uri = "http://www.leboncoin.fr";
$this->description = "Returns most recent results from LeBonCoin for a region, and optionally a category and a keyword .";
$this->update = "2016-08-06";
$this->update = "2016-08-09";
$this->parameters[] =
'[
@ -275,12 +275,4 @@ class LeBonCoinBridge extends BridgeAbstract{
$this->items[] = $item;
}
}
public function getName(){
return 'LeBonCoin';
}
public function getURI(){
return 'http://www.leboncoin.fr';
}
}

View file

@ -6,7 +6,7 @@ class LeJournalDuGeekBridge extends BridgeAbstract{
$this->name = "journaldugeek.com (FR)";
$this->uri = "http://www.journaldugeek.com/";
$this->description = "Returns the 5 newest posts from LeJournalDuGeek (full text).";
$this->update = "2016-08-06";
$this->update = "2016-08-09";
}
private function LeJournalDuGeekStripCDATA($string) {
@ -54,14 +54,6 @@ class LeJournalDuGeekBridge extends BridgeAbstract{
}
}
public function getName(){
return 'LeJournalDuGeek';
}
public function getURI(){
return 'http://www.journaldugeek.com/';
}
public function getCacheDuration(){
return 1800; // 30min
}

View file

@ -61,14 +61,6 @@ class LeMondeInformatiqueBridge extends BridgeAbstract {
}
}
public function getName() {
return 'Le Monde Informatique';
}
public function getURI() {
return 'http://www.lemondeinformatique.fr/';
}
public function getCacheDuration() {
return 1800; // 30 minutes
}

View file

@ -48,14 +48,6 @@ class LesJoiesDuCodeBridge extends BridgeAbstract{
}
}
public function getName(){
return 'Les Joies Du Code';
}
public function getURI(){
return 'http://lesjoiesducode.fr/';
}
public function getCacheDuration(){
return 7200; // 2h hours
}

View file

@ -37,14 +37,6 @@ class LinkedInCompany extends BridgeAbstract{
}
}
public function getName(){
return 'LinkedIn';
}
public function getURI(){
return 'https://www.linkedin.com';
}
public function getCacheDuration(){
return 21600; // 6 hours
}

View file

@ -51,14 +51,6 @@ class LolibooruBridge extends BridgeAbstract{
}
}
public function getName(){
return 'Lolibooru';
}
public function getURI(){
return 'http://lolibooru.moe/post';
}
public function getCacheDuration(){
return 1800; // 30 minutes
}

View file

@ -328,10 +328,6 @@ class MangareaderBridge extends BridgeAbstract{
return (!empty($this->request) ? $this->request . ' - ' : '') . 'Mangareader Bridge';
}
public function getURI(){
return 'http://www.mangareader.net';
}
public function getCacheDuration(){
return 10800; // 3 hours
}

View file

@ -47,14 +47,6 @@ class MilbooruBridge extends BridgeAbstract{
}
}
public function getName(){
return 'Milbooru';
}
public function getURI(){
return 'http://sheslostcontrol.net/moe/shimmie/';
}
public function getCacheDuration(){
return 1800; // 30 minutes
}

View file

@ -3,33 +3,25 @@ class MondeDiploBridge extends BridgeAbstract{
public function loadMetadatas() {
$this->maintainer = "Pitchoule";
$this->name = "MondeDiplo";
$this->uri = "http://www.monde-diplomatique.fr";
$this->name = 'Monde Diplomatique';
$this->uri = 'http://www.monde-diplomatique.fr';
$this->description = "Returns most recent results from MondeDiplo.";
$this->update = "2016-08-03";
$this->update = "2016-08-09";
}
public function collectData(array $param){
$html = $this->file_get_html($this->getURI()) or $this->returnError('Could not request MondeDiplo. for : ' . $link , 404);
$html = $this->file_get_html($this->uri) or $this->returnError('Could not request MondeDiplo. for : ' . $link , 404);
foreach($html->find('div.unarticle') as $article) {
$element = $article->parent();
$item = new Item();
$item->uri = $this->getURI() . $element->href;
$item->uri = $this->uri . $element->href;
$item->title = $element->find('h3', 0)->plaintext;
$item->content = $element->find('div.dates_auteurs', 0)->plaintext . '<br>' . strstr($element->find('div', 0)->plaintext, $element->find('div.dates_auteurs', 0)->plaintext, true);
$this->items[] = $item;
}
}
public function getName(){
return 'Monde Diplomatique';
}
public function getURI(){
return 'http://www.monde-diplomatique.fr';
}
public function getCacheDuration(){
return 21600; // 6 hours
}

View file

@ -3,10 +3,10 @@ class MsnMondeBridge extends BridgeAbstract{
public function loadMetadatas() {
$this->maintainer = "kranack";
$this->name = "MSN Actu Monde";
$this->uri = "http://www.msn.com/fr-fr/actualite/monde";
$this->name = 'MSN Actu Monde';
$this->uri = 'http://www.msn.com/fr-fr/actualite/monde';
$this->description = "Returns the 10 newest posts from MSN Actualités (full text)";
$this->update = "2016-08-06";
$this->update = "2016-08-09";
}
private function MsnMondeExtractContent($url, &$item) {
@ -16,7 +16,7 @@ class MsnMondeBridge extends BridgeAbstract{
}
public function collectData(array $param){
$html = $this->file_get_html($this->getURI()) or $this->returnError('Could not request MsnMonde.', 404);
$html = $this->file_get_html($this->uri) or $this->returnError('Could not request MsnMonde.', 404);
$limit = 0;
foreach($html->find('.smalla') as $article) {
if($limit < 10) {
@ -29,12 +29,4 @@ class MsnMondeBridge extends BridgeAbstract{
}
}
}
public function getName(){
return 'MSN Actu Monde';
}
public function getURI(){
return 'http://www.msn.com/fr-fr/actualite/monde';
}
}

View file

@ -50,14 +50,6 @@ class MspabooruBridge extends BridgeAbstract{
}
}
public function getName(){
return 'Mspabooru';
}
public function getURI(){
return 'http://mspabooru.com/';
}
public function getCacheDuration(){
return 1800; // 30 minutes
}

View file

@ -7,7 +7,7 @@ class NasaApodBridge extends BridgeAbstract{
$this->name = "NASA APOD Bridge";
$this->uri = "http://apod.nasa.gov/apod/astropix.html";
$this->description = "Returns the 3 latest NASA APOD pictures and explanations";
$this->update = "2014-08-27";
$this->update = "2016-08-09";
}
@ -45,14 +45,6 @@ class NasaApodBridge extends BridgeAbstract{
}
}
public function getName(){
return 'NASA APOD';
}
public function getURI(){
return 'http://apod.nasa.gov/apod/astropix.html';
}
public function getCacheDuration(){
return 3600*12; // 12 hours
}

View file

@ -3,7 +3,7 @@ class NeuviemeArtBridge extends BridgeAbstract {
public function loadMetadatas() {
$this->maintainer = "ORelio";
$this->name = "9ème Art";
$this->name = '9ème Art Bridge';
$this->uri = "http://www.9emeart.fr/";
$this->description = "Returns the newest articles.";
$this->update = "2016-08-09";
@ -54,12 +54,4 @@ class NeuviemeArtBridge extends BridgeAbstract {
}
}
}
public function getName() {
return '9ème Art Bridge';
}
public function getURI() {
return 'http://www.9emeart.fr/';
}
}
}

View file

@ -43,12 +43,4 @@ class NextInpactBridge extends BridgeAbstract {
}
}
}
public function getName() {
return 'Nextinpact Bridge';
}
public function getURI() {
return 'http://www.nextinpact.com/';
}
}

View file

@ -6,7 +6,7 @@ class NiceMatinBridge extends BridgeAbstract{
$this->name = "NiceMatin";
$this->uri = "http://www.nicematin.com/";
$this->description = "Returns the 10 newest posts from NiceMatin (full text)";
$this->update = "2016-08-06";
$this->update = "2016-08-09";
}
private function NiceMatinExtractContent($url) {
@ -45,12 +45,4 @@ class NiceMatinBridge extends BridgeAbstract{
}
}
}
public function getName(){
return 'NiceMatin';
}
public function getURI(){
return 'http://www.nicematin.com/';
}
}

View file

@ -7,7 +7,7 @@ class NovelUpdatesBridge extends BridgeAbstract{
$this->name = "Novel Updates";
$this->uri = "http://www.novelupdates.com/";
$this->description = "Returns releases from Novel Updates";
$this->update = "2016-08-06";
$this->update = "2016-08-09";
$this->parameters[] =
'[
{
@ -44,12 +44,11 @@ class NovelUpdatesBridge extends BridgeAbstract{
$this->items[] = $item;
}
}
public function getName(){
return (!empty($this->request) ? $this->request.' - ' : '') .'Novel Updates';
}
public function getURI(){
return 'http://www.novelupdates.com/';
}
public function getCacheDuration(){
return 21600; // 6 hours
}

View file

@ -7,7 +7,7 @@ class NumeramaBridge extends BridgeAbstract{
$this->name = 'Numerama';
$this->uri = 'http://www.numerama.com/';
$this->description = 'Returns the 5 newest posts from Numerama (full text)';
$this->update = '2016-07-19';
$this->update = '2016-08-09';
}
@ -19,7 +19,7 @@ class NumeramaBridge extends BridgeAbstract{
return $string;
}
$feed = $this->getURI().'feed/';
$feed = $this->uri.'feed/';
$html = $this->file_get_html($feed) or $this->returnError('Could not request Numerama: '.$feed, 500);
$limit = 0;
@ -45,14 +45,6 @@ class NumeramaBridge extends BridgeAbstract{
}
public function getName() {
return 'Numerama';
}
public function getURI() {
return 'http://www.numerama.com/';
}
public function getCacheDuration() {
return 1800; // 30min
}

View file

@ -7,7 +7,7 @@ class OpenClassroomsBridge extends BridgeAbstract{
$this->name = "OpenClassrooms Bridge";
$this->uri = "https://openclassrooms.com/";
$this->description = "Returns latest tutorials from OpenClassrooms.";
$this->update = "2015-10-30";
$this->update = "2016-08-09";
$this->parameters[] =
@ -79,14 +79,6 @@ class OpenClassroomsBridge extends BridgeAbstract{
}
}
public function getName(){
return 'OpenClassrooms';
}
public function getURI(){
return 'https://openclassrooms.com/';
}
public function getCacheDuration(){
return 21600; // 6 hours
}

View file

@ -8,9 +8,9 @@ class ParuVenduImmoBridge extends BridgeAbstract
$this->maintainer = "polo2ro";
$this->name = "Paru Vendu Immobilier";
$this->uri = "http://www.paruvendu.fr/immobilier/";
$this->uri = "http://www.paruvendu.fr";
$this->description = "Returns the ads from the first page of search result.";
$this->update = "2015-02-02";
$this->update = "2016-08-09";
$this->parameters[] =
@ -46,7 +46,7 @@ class ParuVenduImmoBridge extends BridgeAbstract
$num = 20;
$appartment = '&tbApp=1&tbDup=1&tbChb=1&tbLof=1&tbAtl=1&tbPla=1';
$maison = '&tbMai=1&tbVil=1&tbCha=1&tbPro=1&tbHot=1&tbMou=1&tbFer=1';
$link = $this->getURI().'/immobilier/annonceimmofo/liste/listeAnnonces?tt=1'.$appartment.$maison;
$link = $this->uri.'/immobilier/annonceimmofo/liste/listeAnnonces?tt=1'.$appartment.$maison;
if (isset($param['minarea'])) {
$this->request .= ' '.$param['minarea'].' m2';
@ -90,7 +90,7 @@ class ParuVenduImmoBridge extends BridgeAbstract
list($href) = explode('#', $element->href);
$item = new \Item();
$item->uri = $this->getURI().$href;
$item->uri = $this->uri.$href;
$item->title = $element->title;
$item->content = $img.$desc.$price;
$this->items[] = $item;
@ -102,10 +102,6 @@ class ParuVenduImmoBridge extends BridgeAbstract
return 'Paru Vendu Immobilier'.$this->request;
}
public function getURI(){
return 'http://www.paruvendu.fr';
}
public function getCacheDuration(){
return 10800; // 3 hours
}

View file

@ -83,10 +83,6 @@ class PickyWallpapersBridge extends BridgeAbstract {
return 'PickyWallpapers - '.$this->category.(!empty($this->subcategory) ? ' > '.$this->subcategory : '').' ['.$this->resolution.']';
}
public function getURI(){
return 'http://www.pickywallpapers.com';
}
public function getCacheDuration(){
return 43200; // 12 hours
}

View file

@ -6,7 +6,7 @@ class PlanetLibreBridge extends BridgeAbstract{
$this->name = "PlanetLibre";
$this->uri = "http://www.planet-libre.org";
$this->description = "Returns the 5 newest posts from PlanetLibre (full text)";
$this->update = "2016-08-06";
$this->update = "2016-08-09";
}
private function PlanetLibreExtractContent($url){
@ -31,12 +31,6 @@ class PlanetLibreBridge extends BridgeAbstract{
}
}
public function getName(){
return 'PlanetLibre';
}
public function getURI(){
return 'http://www.planet-libre.org/';
}
public function getCacheDuration(){
return 3600*2; // 1 hour
}

View file

@ -7,7 +7,7 @@ class ProjectMGameBridge extends BridgeAbstract{
$this->name = "Project M Game Bridge";
$this->uri = "http://projectmgame.com/en/";
$this->description = "Returns the newest articles.";
$this->update = "2014-08-27";
$this->update = "2016-08-09";
}
@ -33,14 +33,6 @@ class ProjectMGameBridge extends BridgeAbstract{
}
}
public function getName(){
return 'Project M Game Bridge';
}
public function getURI(){
return 'http://projectmgame.com/en/';
}
public function getCacheDuration(){
return 10800; //3 hours
}

View file

@ -52,10 +52,6 @@ class RTBFBridge extends BridgeAbstract {
return (!empty($this->request) ? $this->request .' - ' : '') .'RTBF Bridge';
}
public function getURI(){
return 'http://www.rtbf.be/auvio/emissions';
}
public function getCacheDuration(){
return 21600; // 6 hours
}

View file

@ -118,14 +118,6 @@ class Releases3DSBridge extends BridgeAbstract {
}
}
public function getName() {
return '3DS Scene Releases';
}
public function getURI() {
return 'http://www.3dsdb.com/';
}
public function getCacheDuration() {
return 10800; //3 hours
}

View file

@ -6,7 +6,7 @@ class ReporterreBridge extends BridgeAbstract{
$this->name = "Reporterre Bridge";
$this->uri = "http://www.reporterre.net/";
$this->description = "Returns the newest articles.";
$this->update = "2016-08-06";
$this->update = "2016-08-09";
}
private function ExtractContentReporterre($url) {
@ -20,7 +20,7 @@ class ReporterreBridge extends BridgeAbstract{
unset ($html2);
// Replace all relative urls with absolute ones
$text = preg_replace('/(href|src)(\=[\"\'])(?!http)([^"\']+)/ims', "$1$2" . $this->getURI() . "$3", $text);
$text = preg_replace('/(href|src)(\=[\"\'])(?!http)([^"\']+)/ims', "$1$2" . $this->uri . "$3", $text);
$text = strip_tags($text, '<p><br><a><img>');
return $text;
@ -42,12 +42,4 @@ class ReporterreBridge extends BridgeAbstract{
}
}
}
public function getName(){
return 'Reporterre Bridge';
}
public function getURI(){
return 'http://www.reporterre.net/';
}
}

View file

@ -7,7 +7,7 @@ class Rue89Bridge extends BridgeAbstract{
$this->name = "Rue89";
$this->uri = "http://rue89.nouvelobs.com/";
$this->description = "Returns the 5 newest posts from Rue89 (full text)";
$this->update = "2016-08-06";
$this->update = "2016-08-09";
}
@ -44,10 +44,4 @@ class Rue89Bridge extends BridgeAbstract{
}
}
public function getName(){
return 'Rue89';
}
public function getURI(){
return 'http://rue89.nouvelobs.com/';
}
}

View file

@ -49,14 +49,6 @@ class Rule34Bridge extends BridgeAbstract{
}
}
public function getName(){
return 'Rule34';
}
public function getURI(){
return 'http://rule34.xxx/';
}
public function getCacheDuration(){
return 1800; // 30 minutes
}

View file

@ -48,14 +48,6 @@ class Rule34pahealBridge extends BridgeAbstract{
}
}
public function getName(){
return 'Rule34paheal';
}
public function getURI(){
return 'http://rule34.paheal.net/';
}
public function getCacheDuration(){
return 1800; // 30 minutes
}

View file

@ -50,14 +50,6 @@ class SafebooruBridge extends BridgeAbstract{
}
}
public function getName(){
return 'Safebooru';
}
public function getURI(){
return 'http://safebooru.org/';
}
public function getCacheDuration(){
return 1800; // 30 minutes
}

View file

@ -50,14 +50,6 @@ class SakugabooruBridge extends BridgeAbstract{
}
}
public function getName(){
return 'Sakugabooru';
}
public function getURI(){
return 'http://sakuga.yshi.org/post';
}
public function getCacheDuration(){
return 1800; // 30 minutes
}

View file

@ -7,7 +7,7 @@ class ScmbBridge extends BridgeAbstract{
$this->name = "Se Coucher Moins Bête Bridge";
$this->uri = "http://secouchermoinsbete.fr/";
$this->description = "Returns the newest anecdotes.";
$this->update = "2014-05-25";
$this->update = "2016-08-09";
}
@ -38,14 +38,6 @@ class ScmbBridge extends BridgeAbstract{
}
}
public function getName(){
return 'Se Coucher Moins Bête Bridge';
}
public function getURI(){
return 'http://secouchermoinsbete.fr/';
}
public function getCacheDuration(){
return 21600; // 6 hours
}

View file

@ -7,7 +7,7 @@ class ScoopItBridge extends BridgeAbstract{
$this->name = "ScoopIt";
$this->uri = "http://www.scoop.it";
$this->description = "Returns most recent results from ScoopIt.";
$this->update = "2014-06-13";
$this->update = "2016-08-09";
$this->parameters[] =
'[
@ -39,14 +39,6 @@ class ScoopItBridge extends BridgeAbstract{
}
}
public function getName(){
return 'ScooptIt';
}
public function getURI(){
return 'http://Scoop.it';
}
public function getCacheDuration(){
return 21600; // 6 hours
}

View file

@ -131,10 +131,6 @@ class SensCritiqueBridge extends BridgeAbstract {
}
}
public function getURI() {
return (trim($this->uri) === "") ? "http://www.senscritique.com" : $this->uri;
}
public function getCacheDuration(){
return 21600; // 6 hours
}

View file

@ -1,5 +1,4 @@
<?php
define("GQ", "http://www.gqmagazine.fr");
class Sexactu extends BridgeAbstract{
public function loadMetadatas() {
@ -33,7 +32,7 @@ $replace = array('January', 'February', 'March', 'April', 'May', 'June', 'July',
$titleData = $titleDetails->find('h2', 0)->find('a',0);
$titleTimestamp =$titleDetails->find('h4',0);
$item->title = $this->correctCase(trim($titleData->innertext));
$item->uri = GQ.$titleData->href;
$item->uri = $this->uri.$titleData->href;
// Fugly date parsing due to the fact my DNS-323 doesn't support php intl extension
$dateText = $titleTimestamp->innertext;
@ -46,7 +45,7 @@ $replace = array('January', 'February', 'March', 'April', 'May', 'June', 'July',
$elementText = $element->find('.text-container', 0);
// don't forget to replace images server url with gq one
foreach($elementText->find('img') as $image) {
$image->src = GQ.$image->src;
$image->src = $this->uri.$image->src;
}
$item->content = $elementText->innertext;
$this->items[] = $item;
@ -58,12 +57,8 @@ $replace = array('January', 'February', 'March', 'April', 'May', 'June', 'July',
}
}
public function getName(){
return 'Sexactu';
}
public function getURI(){
return GQ.'/sexactu';
return $this->uri.'/sexactu';
}
public function getCacheDuration(){

View file

@ -4,8 +4,8 @@ class SiliconBridge extends BridgeAbstract {
public function loadMetadatas() {
$this->maintainer = "ORelio";
$this->name = "Silicon.fr";
$this->uri = "http://www.silicon.fr/";
$this->name = 'Silicon Bridge';
$this->uri = 'http://www.silicon.fr/';
$this->description = "Returns the newest articles.";
$this->update = "2016-08-09";
@ -58,16 +58,7 @@ class SiliconBridge extends BridgeAbstract {
}
}
public function getName() {
return 'Silicon Bridge';
}
public function getURI() {
return 'http://www.silicon.fr/';
}
public function getCacheDuration() {
return 1800; // 30 minutes
// return 0;
}
}

View file

@ -10,7 +10,7 @@ class StripeAPIChangeLogBridge extends BridgeAbstract{
$this->maintainer = 'Pierre Mazière';
$this->name = 'Stripe API Changelog';
$this->uri = '';
$this->uri = 'https://stripe.com/docs/upgrades';
$this->description = 'Returns the changes made to the stripe.com API';
$this->update = '2016-08-09';
}
@ -31,14 +31,6 @@ class StripeAPIChangeLogBridge extends BridgeAbstract{
}
}
public function getName(){
return 'Stripe API Changelog';
}
public function getURI(){
return 'https://stripe.com/docs/upgrades';
}
public function getCacheDuration(){
return 86400; // one day
}

View file

@ -75,10 +75,6 @@ class SuperbWallpapersBridge extends BridgeAbstract {
return 'HDWallpapers - '.$this->category.' ['.$this->resolution.']';
}
public function getURI(){
return 'http://www.superbwallpapers.com';
}
public function getCacheDuration(){
return 43200; // 12 hours
}

View file

@ -4,8 +4,8 @@ class T411Bridge extends BridgeAbstract {
public function loadMetadatas() {
$this->maintainer = 'ORelio';
$this->name = 'T411';
$this->uri = $this->getURI();
$this->name = 'T411 Bridge';
$this->uri = 'https://t411.ch/';
$this->description = 'Returns the 10 newest torrents with specified search terms <br /> Use url part after "?" mark when using their search engine.';
$this->update = '2016-08-09';
@ -35,7 +35,7 @@ class T411Bridge extends BridgeAbstract {
}
//Retrieve torrent listing from search results, which does not contain torrent description
$url = $this->getURI().'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->returnError('Could not request t411: '.$url, 500);
$results = $html->find('table.results', 0);
if (is_null($results))
@ -52,7 +52,7 @@ class T411Bridge extends BridgeAbstract {
usleep(500000); //So we need to wait (500ms)
//Retrieve data from RSS entry
$item_uri = $this->getURI().'torrents/details/?id='.ExtractFromDelimiters($element->find('a.nfo', 0)->outertext, '?id=', '"');
$item_uri = $this->uri.'torrents/details/?id='.ExtractFromDelimiters($element->find('a.nfo', 0)->outertext, '?id=', '"');
$item_title = ExtractFromDelimiters($element->outertext, '" title="', '"');
$item_date = strtotime($element->find('dd', 0)->plaintext);
@ -84,13 +84,5 @@ class T411Bridge extends BridgeAbstract {
}
}
}
public function getName() {
return "T411 Bridge";
}
public function getURI() {
return 'https://t411.ch/';
}
}

View file

@ -45,10 +45,6 @@ class TagBoardBridge extends BridgeAbstract{
return 'tagboard - ' .$this->request;
}
public function getURI(){
return 'http://TagBoard.com';
}
public function getCacheDuration(){
return 21600; // 6 hours
}

View file

@ -49,14 +49,6 @@ class TbibBridge extends BridgeAbstract{
}
}
public function getName(){
return 'Tbib';
}
public function getURI(){
return 'http://tbib.org/';
}
public function getCacheDuration(){
return 1800; // 30 minutes
}

View file

@ -49,14 +49,6 @@ class TheCodingLoveBridge extends BridgeAbstract{
}
}
public function getName(){
return 'The Coding Love';
}
public function getURI(){
return 'http://thecodinglove.com/';
}
public function getCacheDuration(){
return 7200; // 2h hours
}

View file

@ -7,7 +7,7 @@ class ThePirateBayBridge extends BridgeAbstract{
$this->name = "The Pirate Bay";
$this->uri = "https://thepiratebay.org/";
$this->description = "Returns results for the keywords. You can put several list of keywords by separating them with a semicolon (e.g. \"one show;another show\")";
$this->update = "2016-08-06";
$this->update = "2016-08-09";
$this->parameters[] =
'[
@ -80,12 +80,4 @@ class ThePirateBayBridge extends BridgeAbstract{
}
}
}
public function getName(){
return 'The Pirate Bay';
}
public function getURI(){
return 'https://thepiratebay.org/';
}
}

View file

@ -164,10 +164,6 @@ class TwitchApiBridge extends BridgeAbstract{
return (!empty($this->channel) ? $this->channel . ' - ' : '') . 'Twitch API Bridge';
}
public function getURI(){
return 'https://www.twitch.tv';
}
public function getCacheDuration(){
return 10800; // 3 hours
}

View file

@ -1,22 +1,35 @@
<?php
//Based on https://github.com/mitsukarenai/twitterbridge-noapi
class TwitterBridge extends BridgeAbstract{
private $request;
public function loadMetadatas() {
$this->maintainer = "mitsukarenai";
$this->name = "Twitter Bridge";
$this->uri = "http://twitter.com/";
$this->description = "Returns user timelines or keyword/hashtag search results (without using their API).";
$this->update = "2014-05-25";
$this->uri = "https://twitter.com/";
$this->description = "Returns tweets by keyword/hashtag or user name";
$this->update = "2016-08-10";
$this->parameters["global"] =
'[
{
"name" : "Hide profile pictures",
"identifier" : "pic",
"type" : "checkbox",
"required" : "false",
"exampleValue" : "checked",
"title" : "Activate to hide profile pictures in content"
}
]';
$this->parameters["By keyword or hashtag"] =
'[
{
"name" : "Keyword or #hashtag",
"identifier" : "q"
"identifier" : "q",
"type" : "text",
"required" : "true",
"exampleValue" : "rss-bridge, #rss-bridge",
"title" : "Insert a keyword or hashtag"
}
]';
@ -24,61 +37,96 @@ class TwitterBridge extends BridgeAbstract{
'[
{
"name" : "username",
"identifier" : "u"
"identifier" : "u",
"type" : "text",
"required" : "true",
"exampleValue" : "sebsauvage",
"title" : "Insert a user name"
}
]';
}
public function collectData(array $param){
$html = '';
if (isset($param['q'])) { /* keyword search mode */
$this->request = $param['q'];
$html = $this->file_get_html('https://twitter.com/search?q='.urlencode($this->request).'&f=tweets') or $this->returnError('No results for this query.', 404);
}
elseif (isset($param['u'])) { /* user timeline mode */
$this->request = $param['u'];
$html = $this->file_get_html('http://twitter.com/'.urlencode($this->request)) or $this->returnError('Requested username can\'t be found.', 404);
}
else {
$this->returnError('You must specify a keyword (?q=...) or a Twitter username (?u=...).', 400);
}
foreach($html->find('div.js-stream-tweet') as $tweet) {
$item = new \Item();
$item->username = $tweet->getAttribute('data-screen-name'); // extract username and sanitize
$item->fullname = $tweet->getAttribute('data-name'); // extract fullname (pseudonym)
$item->avatar = $tweet->find('img', 0)->src; // get avatar link
$item->id = $tweet->getAttribute('data-tweet-id'); // get TweetID
$item->uri = 'https://twitter.com'.$tweet->find('a.js-permalink', 0)->getAttribute('href'); // get tweet link
$item->timestamp = $tweet->find('span.js-short-timestamp', 0)->getAttribute('data-time'); // extract tweet timestamp
// processing content links
foreach($tweet->find('a') as $link) {
if($link->hasAttribute('data-expanded-url') ) {
$link->href = $link->getAttribute('data-expanded-url');
}
$link->removeAttribute('data-expanded-url');
$link->removeAttribute('data-query-source');
$link->removeAttribute('rel');
$link->removeAttribute('class');
$link->removeAttribute('target');
$link->removeAttribute('title');
public function collectData(array $param){
$html = '';
if (isset($param['q'])) { /* keyword search mode */
$html = $this->file_get_html('https://twitter.com/search?q='.urlencode($param['q']).'&f=tweets') or $this->returnError('No results for this query.', 404);
}
elseif (isset($param['u'])) { /* user timeline mode */
$html = $this->file_get_html('https://twitter.com/'.urlencode($param['u']).'/with_replies') or $this->returnError('Requested username can\'t be found.', 404);
}
else {
$this->returnError('You must specify a keyword (?q=...) or a Twitter username (?u=...).', 400);
}
$item->content = str_replace('href="/', 'href="https://twitter.com/', strip_tags($tweet->find('p.js-tweet-text', 0)->innertext, '<a>')); // extract tweet text
$item->title = $item->fullname . ' (@' . $item->username . ') | ' . html_entity_decode(strip_tags($item->content),ENT_QUOTES,'UTF-8');
$this->items[] = $item;
}
}
public function getName(){
return (!empty($this->request) ? $this->request .' - ' : '') .'Twitter Bridge';
}
$hidePictures = false;
if (isset($param['pic']))
$hidePictures = $param['pic'] === 'on';
public function getURI(){
return 'http://twitter.com';
}
foreach($html->find('div.js-stream-tweet') as $tweet) {
$item = new \Item();
// extract username and sanitize
$item->username = $tweet->getAttribute('data-screen-name');
// extract fullname (pseudonym)
$item->fullname = $tweet->getAttribute('data-name');
// get author
$item->author = $item->fullname . ' (@' . $item->username . ')';
// get avatar link
$item->avatar = $tweet->find('img', 0)->src;
// get TweetID
$item->id = $tweet->getAttribute('data-tweet-id');
// get tweet link
$item->uri = 'https://twitter.com'.$tweet->find('a.js-permalink', 0)->getAttribute('href');
// extract tweet timestamp
$item->timestamp = $tweet->find('span.js-short-timestamp', 0)->getAttribute('data-time');
// generate the title
$item->title = strip_tags($tweet->find('p.js-tweet-text', 0)->innertext);
// processing content links
foreach($tweet->find('a') as $link) {
if($link->hasAttribute('data-expanded-url') ) {
$link->href = $link->getAttribute('data-expanded-url');
}
$link->removeAttribute('data-expanded-url');
$link->removeAttribute('data-query-source');
$link->removeAttribute('rel');
$link->removeAttribute('class');
$link->removeAttribute('target');
$link->removeAttribute('title');
}
public function getCacheDuration(){
return 300; // 5 minutes
}
// process emojis (reduce size)
foreach($tweet->find('img.Emoji') as $img){
$img->style .= ' height: 1em;';
}
// get tweet text
$cleanedTweet = str_replace('href="/', 'href="https://twitter.com/', $tweet->find('p.js-tweet-text', 0)->innertext);
// Add picture to content
$picture_html = '';
if(!$hidePictures){
$picture_html = <<<EOD
<a href="https://twitter.com/{$item->username}"><img style="align: top; width:75 px; border: 1px solid black;" alt="{$item->username}" src="{$item->avatar}" title="{$item->fullname}" /></a>
EOD;
}
// add content
$item->content = <<<EOD
<div style="display: inline-block; vertical-align: top;">
{$picture_html}
</div>
<div style="display: inline-block; vertical-align: top;">
<blockquote>{$cleanedTweet}</blockquote>
</div>
EOD;
// put out
$this->items[] = $item;
}
}
public function getCacheDuration(){
return 300; // 5 minutes
}
}

View file

@ -1,85 +0,0 @@
<?php
//Based on https://github.com/mitsukarenai/twitterbridge-noapi
class TwitterBridgeClean extends BridgeAbstract{
private $request;
public function loadMetadatas() {
$this->maintainer = "vinzv";
$this->name = "Twitter Bridge Clean";
$this->uri = "http://twitter.com/";
$this->description = "Returns user timelines without username in title or search results for keywords/hashtags (without using their API).";
$this->update = "2015-03-07";
$this->parameters["By keyword or hashtag"] =
'[
{
"name" : "Keyword or #hashtag",
"identifier" : "q"
}
]';
$this->parameters["By username"] =
'[
{
"name" : "username",
"identifier" : "u"
}
]';
}
public function collectData(array $param){
$html = '';
if (isset($param['q'])) { /* keyword search mode */
$this->request = $param['q'];
$html = $this->file_get_html('https://twitter.com/search?q='.urlencode($this->request).'&f=tweets') or $this->returnError('No results for this query.', 404);
}
elseif (isset($param['u'])) { /* user timeline mode */
$this->request = $param['u'];
$html = $this->file_get_html('http://twitter.com/'.urlencode($this->request)) or $this->returnError('Requested username can\'t be found.', 404);
}
else {
$this->returnError('You must specify a keyword (?q=...) or a Twitter username (?u=...).', 400);
}
foreach($html->find('div.js-stream-tweet') as $tweet) {
$item = new \Item();
$item->username = $tweet->getAttribute('data-screen-name'); // extract username and sanitize
$item->fullname = $tweet->getAttribute('data-name'); // extract fullname (pseudonym)
$item->avatar = $tweet->find('img', 0)->src; // get avatar link
$item->id = $tweet->getAttribute('data-tweet-id'); // get TweetID
$item->uri = 'https://twitter.com'.$tweet->find('a.js-permalink', 0)->getAttribute('href'); // get tweet link
$item->timestamp = $tweet->find('span.js-short-timestamp', 0)->getAttribute('data-time'); // extract tweet timestamp
// processing content links
foreach($tweet->find('a') as $link) {
if($link->hasAttribute('data-expanded-url') ) {
$link->href = $link->getAttribute('data-expanded-url');
}
$link->removeAttribute('data-expanded-url');
$link->removeAttribute('data-query-source');
$link->removeAttribute('rel');
$link->removeAttribute('class');
$link->removeAttribute('target');
$link->removeAttribute('title');
$link->removeAttribute('dir');
}
$item->content = str_replace('pic.twitter.com', 'https://pic.twitter.com', strip_tags($tweet->find('p.js-tweet-text', 0)->innertext)); // extract tweet text
$item->title = html_entity_decode($item->content,ENT_QUOTES,'UTF-8');
$this->items[] = $item;
}
}
public function getName(){
return (!empty($this->request) ? $this->request .' - ' : '') .'Twitter Bridge';
}
public function getURI(){
return 'http://twitter.com';
}
public function getCacheDuration(){
return 300; // 5 minutes
}
}

View file

@ -1,90 +0,0 @@
<?php
//Based on https://github.com/sebsauvage/rss-bridge/blob/master/bridges/TwitterBridgeClean.php by vinzv
class TwitterBridgeCleanExtended extends BridgeAbstract{
private $request;
public function loadMetadatas() {
$this->maintainer = "Max Mehl";
$this->name = "Twitter Bridge Clean Extended";
$this->uri = "http://twitter.com/";
$this->description = "Returns user timelines showing RTs correctly or search results for keywords/hashtags (without using their API).";
$this->update = "2016-01-27";
$this->parameters["By keyword or hashtag"] =
'[
{
"name" : "Keyword or #hashtag",
"identifier" : "q"
}
]';
$this->parameters["By username"] =
'[
{
"name" : "username",
"identifier" : "u"
}
]';
}
public function collectData(array $param){
$html = '';
if (isset($param['q'])) { /* keyword search mode */
$this->request = $param['q'];
$html = $this->file_get_html('https://twitter.com/search?q='.urlencode($this->request).'&f=tweets') or $this->returnError('No results for this query.', 404);
}
elseif (isset($param['u'])) { /* user timeline mode */
$this->request = $param['u'];
$html = $this->file_get_html('http://twitter.com/'.urlencode($this->request)) or $this->returnError('Requested username can\'t be found.', 404);
}
else {
$this->returnError('You must specify a keyword (?q=...) or a Twitter username (?u=...).', 400);
}
foreach($html->find('div.js-stream-tweet') as $tweet) {
$item = new \Item();
$item->username = $tweet->getAttribute('data-screen-name'); // extract username and sanitize
$item->fullname = $tweet->getAttribute('data-name'); // extract fullname (pseudonym)
$item->avatar = $tweet->find('img', 0)->src; // get avatar link
$item->id = $tweet->getAttribute('data-tweet-id'); // get TweetID
$item->uri = 'https://twitter.com'.$tweet->find('a.js-permalink', 0)->getAttribute('href'); // get tweet link
$item->timestamp = $tweet->find('span.js-short-timestamp', 0)->getAttribute('data-time'); // extract tweet timestamp
// processing content links
foreach($tweet->find('a') as $link) {
if($link->hasAttribute('data-expanded-url') ) {
$link->href = $link->getAttribute('data-expanded-url');
}
$link->removeAttribute('data-expanded-url');
$link->removeAttribute('data-query-source');
$link->removeAttribute('rel');
$link->removeAttribute('class');
$link->removeAttribute('target');
$link->removeAttribute('title');
$link->removeAttribute('dir');
}
$item->content = str_replace('pic.twitter.com', 'https://pic.twitter.com', strip_tags($tweet->find('p.js-tweet-text', 0)->innertext)); // extract tweet text
if(isset($param['u'])) {
if($item->username != $param['u']) {
$item->content = '&#9851; @' . $item->username . ': ' . $item->content;
}
}
$item->title = html_entity_decode($item->content,ENT_QUOTES,'UTF-8');
$this->items[] = $item;
}
}
public function getName(){
return (!empty($this->request) ? $this->request : '');
}
public function getURI(){
return 'http://twitter.com';
}
public function getCacheDuration(){
return 300; // 5 minutes
}
}

View file

@ -1,92 +0,0 @@
<?php
class TwitterBridgeExtended extends BridgeAbstract{
public function loadMetadatas() {
$this->maintainer = "mitsukarenai";
$this->name = "Twitter Bridge Extended";
$this->uri = "https://twitter.com/";
$this->description = "(same as Twitter Bridge, but with avatar, replies and RTs)";
$this->update = "2014-05-25";
$this->parameters["By keyword or hashtag"] =
'[
{
"name" : "Keyword or #hashtag",
"identifier" : "q"
}
]';
$this->parameters["By username"] =
'[
{
"name" : "username",
"identifier" : "u"
}
]';
}
public function collectData(array $param){
$html = '';
if (isset($param['q'])) { /* keyword search mode */
$html = $this->file_get_html('https://twitter.com/search?q='.urlencode($param['q']).'&f=tweets') or $this->returnError('No results for this query.', 404);
}
elseif (isset($param['u'])) { /* user timeline mode */
$html = $this->file_get_html('https://twitter.com/'.urlencode($param['u']).'/with_replies') or $this->returnError('Requested username can\'t be found.', 404);
}
else {
$this->returnError('You must specify a keyword (?q=...) or a Twitter username (?u=...).', 400);
}
foreach($html->find('div.js-stream-tweet') as $tweet) {
$item = new \Item();
// extract username and sanitize
$item->username = $tweet->getAttribute('data-screen-name');
// extract fullname (pseudonym)
$item->fullname = $tweet->getAttribute('data-name');
// get avatar link
$item->avatar = $tweet->find('img', 0)->src;
// get TweetID
$item->id = $tweet->getAttribute('data-tweet-id');
// get tweet link
$item->uri = 'https://twitter.com'.$tweet->find('a.js-permalink', 0)->getAttribute('href');
// extract tweet timestamp
$item->timestamp = $tweet->find('span.js-short-timestamp', 0)->getAttribute('data-time');
// extract plaintext
$item->content_simple = str_replace('href="/', 'href="https://twitter.com/', html_entity_decode(strip_tags($tweet->find('p.js-tweet-text', 0)->innertext, '<a>')));
// processing content links
foreach($tweet->find('a') as $link) {
if($link->hasAttribute('data-expanded-url') ) {
$link->href = $link->getAttribute('data-expanded-url');
}
$link->removeAttribute('data-expanded-url');
$link->removeAttribute('data-query-source');
$link->removeAttribute('rel');
$link->removeAttribute('class');
$link->removeAttribute('target');
$link->removeAttribute('title');
}
// get tweet text
$item->content = '<a href="https://twitter.com/'.$item->username.'"><img style="align:top;width:75px;" alt="avatar" src="'.$item->avatar.'" />'.$item->username.'</a> '.$item->fullname.'<br/><blockquote>'.str_replace('href="/', 'href="https://twitter.com/', $tweet->find('p.js-tweet-text', 0)->innertext).'</blockquote>';
// generate the title
$item->title = $item->fullname . ' (@'. $item->username . ') | ' . $item->content_simple;
// put out
$this->items[] = $item;
}
}
public function getName(){
return 'Twitter Bridge Extended';
}
public function getURI(){
return 'http://twitter.com';
}
public function getCacheDuration(){
return 300; // 5 minutes
}
}

View file

@ -1,161 +0,0 @@
<?php
class TwitterBridgeTweaked extends BridgeAbstract{
public function loadMetadatas() {
$this->maintainer = "kraoc";
$this->name = "Twitter Bridge Tweaked";
$this->uri = "https://twitter.com/";
$this->description = "(same as Twitter Bridge Extended, but with cleaned title & content)";
$this->update = "2016-08-06";
$this->parameters["By keyword or hashtag"] =
'[
{
"name" : "Keyword or #hashtag",
"identifier" : "q"
}
]';
$this->parameters["By username"] =
'[
{
"name" : "username",
"identifier" : "u"
}
]';
}
private function containsTLD($string) {
preg_match(
"/(AC($|\/)|\.AD($|\/)|\.AE($|\/)|\.AERO($|\/)|\.AF($|\/)|\.AG($|\/)|\.AI($|\/)|\.AL($|\/)|\.AM($|\/)|\.AN($|\/)|\.AO($|\/)|\.AQ($|\/)|\.AR($|\/)|\.ARPA($|\/)|\.AS($|\/)|\.ASIA($|\/)|\.AT($|\/)|\.AU($|\/)|\.AW($|\/)|\.AX($|\/)|\.AZ($|\/)|\.BA($|\/)|\.BB($|\/)|\.BD($|\/)|\.BE($|\/)|\.BF($|\/)|\.BG($|\/)|\.BH($|\/)|\.BI($|\/)|\.BIZ($|\/)|\.BJ($|\/)|\.BM($|\/)|\.BN($|\/)|\.BO($|\/)|\.BR($|\/)|\.BS($|\/)|\.BT($|\/)|\.BV($|\/)|\.BW($|\/)|\.BY($|\/)|\.BZ($|\/)|\.CA($|\/)|\.CAT($|\/)|\.CC($|\/)|\.CD($|\/)|\.CF($|\/)|\.CG($|\/)|\.CH($|\/)|\.CI($|\/)|\.CK($|\/)|\.CL($|\/)|\.CM($|\/)|\.CN($|\/)|\.CO($|\/)|\.COM($|\/)|\.COOP($|\/)|\.CR($|\/)|\.CU($|\/)|\.CV($|\/)|\.CX($|\/)|\.CY($|\/)|\.CZ($|\/)|\.DE($|\/)|\.DJ($|\/)|\.DK($|\/)|\.DM($|\/)|\.DO($|\/)|\.DZ($|\/)|\.EC($|\/)|\.EDU($|\/)|\.EE($|\/)|\.EG($|\/)|\.ER($|\/)|\.ES($|\/)|\.ET($|\/)|\.EU($|\/)|\.FI($|\/)|\.FJ($|\/)|\.FK($|\/)|\.FM($|\/)|\.FO($|\/)|\.FR($|\/)|\.GA($|\/)|\.GB($|\/)|\.GD($|\/)|\.GE($|\/)|\.GF($|\/)|\.GG($|\/)|\.GH($|\/)|\.GI($|\/)|\.GL($|\/)|\.GM($|\/)|\.GN($|\/)|\.GOV($|\/)|\.GP($|\/)|\.GQ($|\/)|\.GR($|\/)|\.GS($|\/)|\.GT($|\/)|\.GU($|\/)|\.GW($|\/)|\.GY($|\/)|\.HK($|\/)|\.HM($|\/)|\.HN($|\/)|\.HR($|\/)|\.HT($|\/)|\.HU($|\/)|\.ID($|\/)|\.IE($|\/)|\.IL($|\/)|\.IM($|\/)|\.IN($|\/)|\.INFO($|\/)|\.INT($|\/)|\.IO($|\/)|\.IQ($|\/)|\.IR($|\/)|\.IS($|\/)|\.IT($|\/)|\.JE($|\/)|\.JM($|\/)|\.JO($|\/)|\.JOBS($|\/)|\.JP($|\/)|\.KE($|\/)|\.KG($|\/)|\.KH($|\/)|\.KI($|\/)|\.KM($|\/)|\.KN($|\/)|\.KP($|\/)|\.KR($|\/)|\.KW($|\/)|\.KY($|\/)|\.KZ($|\/)|\.LA($|\/)|\.LB($|\/)|\.LC($|\/)|\.LI($|\/)|\.LK($|\/)|\.LR($|\/)|\.LS($|\/)|\.LT($|\/)|\.LU($|\/)|\.LV($|\/)|\.LY($|\/)|\.MA($|\/)|\.MC($|\/)|\.MD($|\/)|\.ME($|\/)|\.MG($|\/)|\.MH($|\/)|\.MIL($|\/)|\.MK($|\/)|\.ML($|\/)|\.MM($|\/)|\.MN($|\/)|\.MO($|\/)|\.MOBI($|\/)|\.MP($|\/)|\.MQ($|\/)|\.MR($|\/)|\.MS($|\/)|\.MT($|\/)|\.MU($|\/)|\.MUSEUM($|\/)|\.MV($|\/)|\.MW($|\/)|\.MX($|\/)|\.MY($|\/)|\.MZ($|\/)|\.NA($|\/)|\.NAME($|\/)|\.NC($|\/)|\.NE($|\/)|\.NET($|\/)|\.NF($|\/)|\.NG($|\/)|\.NI($|\/)|\.NL($|\/)|\.NO($|\/)|\.NP($|\/)|\.NR($|\/)|\.NU($|\/)|\.NZ($|\/)|\.OM($|\/)|\.ORG($|\/)|\.PA($|\/)|\.PE($|\/)|\.PF($|\/)|\.PG($|\/)|\.PH($|\/)|\.PK($|\/)|\.PL($|\/)|\.PM($|\/)|\.PN($|\/)|\.PR($|\/)|\.PRO($|\/)|\.PS($|\/)|\.PT($|\/)|\.PW($|\/)|\.PY($|\/)|\.QA($|\/)|\.RE($|\/)|\.RO($|\/)|\.RS($|\/)|\.RU($|\/)|\.RW($|\/)|\.SA($|\/)|\.SB($|\/)|\.SC($|\/)|\.SD($|\/)|\.SE($|\/)|\.SG($|\/)|\.SH($|\/)|\.SI($|\/)|\.SJ($|\/)|\.SK($|\/)|\.SL($|\/)|\.SM($|\/)|\.SN($|\/)|\.SO($|\/)|\.SR($|\/)|\.ST($|\/)|\.SU($|\/)|\.SV($|\/)|\.SY($|\/)|\.SZ($|\/)|\.TC($|\/)|\.TD($|\/)|\.TEL($|\/)|\.TF($|\/)|\.TG($|\/)|\.TH($|\/)|\.TJ($|\/)|\.TK($|\/)|\.TL($|\/)|\.TM($|\/)|\.TN($|\/)|\.TO($|\/)|\.TP($|\/)|\.TR($|\/)|\.TRAVEL($|\/)|\.TT($|\/)|\.TV($|\/)|\.TW($|\/)|\.TZ($|\/)|\.UA($|\/)|\.UG($|\/)|\.UK($|\/)|\.US($|\/)|\.UY($|\/)|\.UZ($|\/)|\.VA($|\/)|\.VC($|\/)|\.VE($|\/)|\.VG($|\/)|\.VI($|\/)|\.VN($|\/)|\.VU($|\/)|\.WF($|\/)|\.WS($|\/)|\.XN--0ZWM56D($|\/)|\.XN--11B5BS3A9AJ6G($|\/)|\.XN--80AKHBYKNJ4F($|\/)|\.XN--9T4B11YI5A($|\/)|\.XN--DEBA0AD($|\/)|\.XN--G6W251D($|\/)|\.XN--HGBK6AJ7F53BBA($|\/)|\.XN--HLCJ6AYA9ESC7A($|\/)|\.XN--JXALPDLP($|\/)|\.XN--KGBECHTV($|\/)|\.XN--ZCKZAH($|\/)|\.YE($|\/)|\.YT($|\/)|\.YU($|\/)|\.ZA($|\/)|\.ZM($|\/)|\.ZW)/i",
$string,
$M
);
$has_tld = (count($M) > 0) ? true : false;
return $has_tld;
}
private function cleaner($url) {
$U = explode(' ', $url);
$W =array();
foreach ($U as $k => $u) {
if (stristr($u,".")) { //only preg_match if there is a dot
if ($this->containsTLD($u) === true) {
unset($U[$k]);
return $this->cleaner( implode(' ', $U) );
}
}
}
return implode(' ', $U);
}
// (c) Kraoc / urlclean
// https://github.com/kraoc/Leed-market/blob/master/urlclean/urlclean.plugin.disabled.php
private function resolve_url($link) {
// fallback to crawl to real url (slowest method and unsecure to privacy)
if (function_exists('curl_init') && !ini_get('safe_mode')) {
curl_setopt($ch, CURLOPT_USERAGENT, $ua);
curl_setopt($ch, CURLOPT_URL, $link);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// >>> anonimization
curl_setopt($ch, CURLOPT_COOKIESESSION, true);
curl_setopt($ch, CURLOPT_REFERER, '');
// <<< anonimization
$ch = curl_init();
$ua = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.16 (KHTML, like Gecko) Chrome/24.0.1304.0 Safari/537.16';
$a = curl_exec($ch);
$link = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
}
$link = preg_replace("/[&#?]xtor=(.)+/", "", $link); // remove: xtor
$link = preg_replace("/utm_([^&#]|(&amp;))+&*/", "", $link); // remove: utm_
// cleanup end of url
$link = preg_replace("/\?&/", "", $link);
if (isset($link[strlen($link) -1])){
if ($link[strlen($link) -1] == '?')
$link = substr($link, 0, strlen($link) -1);
}
return $link;
}
public function collectData(array $param){
$html = '';
if (isset($param['q'])) { /* keyword search mode */
$html = $this->file_get_html('https://twitter.com/search?q='.urlencode($param['q']).'&f=tweets') or $this->returnError('No results for this query.', 404);
}
elseif (isset($param['u'])) { /* user timeline mode */
$html = $this->file_get_html('https://twitter.com/'.urlencode($param['u']).'/with_replies') or $this->returnError('Requested username can\'t be found.', 404);
}
else {
$this->returnError('You must specify a keyword (?q=...) or a Twitter username (?u=...).', 400);
}
foreach($html->find('div.js-stream-tweet') as $tweet) {
$item = new \Item();
// extract username and sanitize
$item->username = $tweet->getAttribute('data-screen-name');
// extract fullname (pseudonym)
$item->fullname = $tweet->getAttribute('data-name');
// get avatar link
$item->avatar = $tweet->find('img', 0)->src;
// get TweetID
$item->id = $tweet->getAttribute('data-tweet-id');
// get tweet link
$item->uri = 'https://twitter.com'.$tweet->find('a.js-permalink', 0)->getAttribute('href');
// extract tweet timestamp
$item->timestamp = $tweet->find('span.js-short-timestamp', 0)->getAttribute('data-time');
// extract plaintext
$item->content_simple = str_replace('href="/', 'href="https://twitter.com/', html_entity_decode(strip_tags($tweet->find('p.js-tweet-text', 0)->innertext, '<a>')));
// processing content links
foreach($tweet->find('a') as $link) {
if($link->hasAttribute('data-expanded-url') ) {
$link->href = $link->getAttribute('data-expanded-url');
}
$link->removeAttribute('data-expanded-url');
$link->removeAttribute('data-query-source');
$link->removeAttribute('rel');
$link->removeAttribute('class');
$link->removeAttribute('target');
$link->removeAttribute('title');
}
// get tweet text
$item->content = '<a href="https://twitter.com/'.$item->username.'"><img style="align:top;width:75px;" alt="avatar" src="'.$item->avatar.'" />'.$item->username.'</a> '.$item->fullname.'<br/><blockquote>'.str_replace('href="/', 'href="https://twitter.com/', $tweet->find('p.js-tweet-text', 0)->innertext).'</blockquote>';
// generate the title
// $item->title = $item->fullname . ' (@'. $item->username . ') | ' . $item->content_simple;
$item->title = $item->content_simple;
$item->title = preg_replace('|https?://www\.[a-z\.0-9]+|i', '', $item->title); // remove http(s) links
$item->title = preg_replace('|www\.[a-z\.0-9]+|i', '', $item->title); // remove www. links
$item->title = $this->cleaner($item->title); // remove all remaining links
$item->title = trim($item->title); // remove extra spaces at beginning and end
// convert all content links to real ones
$regex = "/(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/";
$item->content = preg_replace_callback($regex, function($url) {
// do stuff with $url[0] here
return $this->resolve_url($url[0]);
}, $item->content);
// put out
$this->items[] = $item;
}
}
public function getName(){
return 'Twitter Bridge Tweaked';
}
public function getURI(){
return 'http://twitter.com';
}
public function getCacheDuration(){
return 300; // 5 minutes
}
}

View file

@ -71,14 +71,6 @@ class UnsplashBridge extends BridgeAbstract {
}
}
public function getName(){
return 'Unsplash';
}
public function getURI(){
return 'http://unsplash.com';
}
public function getCacheDuration(){
return 43200; // 12 hours
}

View file

@ -37,14 +37,6 @@ class ViadeoCompany extends BridgeAbstract{
}
}
public function getName(){
return 'Viadeo';
}
public function getURI(){
return 'https://www.viadeo.com';
}
public function getCacheDuration(){
return 21600; // 6 hours
}

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