forked from blallo/rss-bridge
Merge pull request #341 from LogMANOriginal/CleanupBridges
Cleanup bridges
This commit is contained in:
commit
cd7eb1b8fe
107 changed files with 274 additions and 1441 deletions
|
@ -29,16 +29,4 @@ class ABCTabsBridge extends BridgeAbstract{
|
||||||
$this->items[] = $item;
|
$this->items[] = $item;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getName() {
|
|
||||||
|
|
||||||
return "ABC Tabs Bridge";
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getURI() {
|
|
||||||
|
|
||||||
return "http://www.abc-tabs.com/";
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ class AcrimedBridge extends RssExpander{
|
||||||
$this->name = "Acrimed Bridge";
|
$this->name = "Acrimed Bridge";
|
||||||
$this->uri = "http://www.acrimed.org/";
|
$this->uri = "http://www.acrimed.org/";
|
||||||
$this->description = "Returns the newest articles.";
|
$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(){
|
public function getCacheDuration(){
|
||||||
return 4800; // 2 hours
|
return 4800; // 2 hours
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,54 +1,94 @@
|
||||||
<?php
|
<?php
|
||||||
class AllocineFRBridge extends BridgeAbstract{
|
class AllocineFRBridge extends BridgeAbstract{
|
||||||
|
|
||||||
private $_URL = "http://www.allocine.fr/video/programme-12284/saison-24580/";
|
|
||||||
private $_NOM = "Faux Raccord";
|
|
||||||
|
|
||||||
public function loadMetadatas() {
|
public function loadMetadatas() {
|
||||||
|
|
||||||
$this->maintainer = "superbaillot.net";
|
$this->maintainer = "superbaillot.net";
|
||||||
$this->name = "Allo Cine : Faux Raccord";
|
$this->name = "Allo Cine Bridge";
|
||||||
$this->uri = "http://www.allocine.fr/video/programme-12284/saison-24580/";
|
$this->uri = "http://www.allocine.fr";
|
||||||
$this->description = "Allo Cine : Faux Raccord";
|
$this->description = "Bridge for allocine.fr";
|
||||||
$this->update = "2016-08-06";
|
$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){
|
public function collectData(array $params){
|
||||||
$html = $this->file_get_html($this->_URL) or $this->returnError('Could not request Allo cine.', 404);
|
|
||||||
|
// 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)
|
foreach($html->find('figure.media-meta-fig') as $element)
|
||||||
{
|
{
|
||||||
$item = new Item();
|
$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);
|
$content = trim($element->innertext);
|
||||||
|
$figCaption = strpos($content, $category);
|
||||||
|
|
||||||
$figCaption = strpos($content, $this->_NOM);
|
|
||||||
if($figCaption !== false)
|
if($figCaption !== false)
|
||||||
{
|
{
|
||||||
$content = str_replace('src="/', 'src="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('href="/', 'href="http://www.allocine.fr/', $content);
|
||||||
$content = str_replace('src=\'/', 'src=\'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('href=\'/', 'href=\'http://www.allocine.fr/', $content);
|
||||||
$item->content = $content;
|
$item->content = $content;
|
||||||
$item->title = trim($titre->innertext);
|
$item->title = trim($title->innertext);
|
||||||
$item->uri = "http://www.allocine.fr" . $titre->href;
|
$item->uri = "http://www.allocine.fr" . $title->href;
|
||||||
$this->items[] = $item;
|
$this->items[] = $item;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getName(){
|
|
||||||
return 'Allo Cine : ' . $this->_NOM;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getURI(){
|
|
||||||
return $this->_URL;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getCacheDuration(){
|
public function getCacheDuration(){
|
||||||
return 25200; // 7 hours
|
return 25200; // 7 hours
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
?>
|
|
||||||
|
|
|
@ -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
|
|
||||||
}
|
|
||||||
}
|
|
||||||
?>
|
|
|
@ -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
|
|
||||||
}
|
|
||||||
}
|
|
||||||
?>
|
|
|
@ -125,10 +125,6 @@ class AnimeUltimeBridge extends BridgeAbstract {
|
||||||
return 'Latest '.$this->filter.' - Anime-Ultime Bridge';
|
return 'Latest '.$this->filter.' - Anime-Ultime Bridge';
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getURI() {
|
|
||||||
return 'http://www.anime-ultime.net/';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getCacheDuration() {
|
public function getCacheDuration() {
|
||||||
return 3600*3; // 3 hours
|
return 3600*3; // 3 hours
|
||||||
}
|
}
|
||||||
|
|
|
@ -62,17 +62,8 @@ class ArstechnicaBridge extends BridgeAbstract {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public function getName() {
|
|
||||||
return 'ArsTechnica';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getCacheDuration() {
|
public function getCacheDuration() {
|
||||||
return 7200; // 2h
|
return 7200; // 2h
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getURI() {
|
|
||||||
return "http://arstechnica.com";
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -156,14 +156,6 @@ class Arte7Bridge extends BridgeAbstract{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getName(){
|
|
||||||
return 'Arte7';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getURI(){
|
|
||||||
return 'http://www.arte.tv/';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getCacheDuration(){
|
public function getCacheDuration(){
|
||||||
return 1800; // 30 minutes
|
return 1800; // 30 minutes
|
||||||
}
|
}
|
||||||
|
|
|
@ -51,10 +51,6 @@ class BandcampBridge extends BridgeAbstract{
|
||||||
return (!empty($this->request) ? $this->request .' - ' : '') .'Bandcamp Tag';
|
return (!empty($this->request) ? $this->request .' - ' : '') .'Bandcamp Tag';
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getURI(){
|
|
||||||
return 'http://bandcamp.com';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getCacheDuration(){
|
public function getCacheDuration(){
|
||||||
return 600; // 10 minutes
|
return 600; // 10 minutes
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,7 +5,7 @@ class BastaBridge extends BridgeAbstract{
|
||||||
$this->name = "Bastamag Bridge";
|
$this->name = "Bastamag Bridge";
|
||||||
$this->uri = "http://www.bastamag.net/";
|
$this->uri = "http://www.bastamag.net/";
|
||||||
$this->description = "Returns the newest articles.";
|
$this->description = "Returns the newest articles.";
|
||||||
$this->update = "2016-08-02";
|
$this->update = "2016-08-09";
|
||||||
}
|
}
|
||||||
|
|
||||||
public function collectData(array $param){
|
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(){
|
public function getCacheDuration(){
|
||||||
return 3600*2; // 2 hours
|
return 3600*2; // 2 hours
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,14 +32,6 @@ class BlaguesDeMerdeBridge extends BridgeAbstract{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getName(){
|
|
||||||
return 'blaguesdemerde';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getURI(){
|
|
||||||
return 'http://www.blaguesdemerde.fr/';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getCacheDuration(){
|
public function getCacheDuration(){
|
||||||
return 7200; // 2h hours
|
return 7200; // 2h hours
|
||||||
}
|
}
|
||||||
|
|
|
@ -58,14 +58,6 @@ class BooruprojectBridge extends BridgeAbstract{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getName(){
|
|
||||||
return 'Booruproject';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getURI(){
|
|
||||||
return 'http://booru.org/';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getCacheDuration(){
|
public function getCacheDuration(){
|
||||||
return 1800; // 30 minutes
|
return 1800; // 30 minutes
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,7 +5,7 @@ class CADBridge extends BridgeAbstract{
|
||||||
$this->name = "CAD Bridge";
|
$this->name = "CAD Bridge";
|
||||||
$this->uri = "http://www.cad-comic.com/";
|
$this->uri = "http://www.cad-comic.com/";
|
||||||
$this->description = "Returns the newest articles.";
|
$this->description = "Returns the newest articles.";
|
||||||
$this->update = "2016-08-06";
|
$this->update = "2016-08-09";
|
||||||
}
|
}
|
||||||
|
|
||||||
private function CADExtractContent($url) {
|
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(){
|
public function getCacheDuration(){
|
||||||
return 3600*2; // 2 hours
|
return 3600*2; // 2 hours
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,9 +3,9 @@ class CastorusBridge extends BridgeAbstract {
|
||||||
public function loadMetadatas(){
|
public function loadMetadatas(){
|
||||||
$this->maintainer = "logmanoriginal";
|
$this->maintainer = "logmanoriginal";
|
||||||
$this->name = "Castorus Bridge";
|
$this->name = "Castorus Bridge";
|
||||||
$this->uri = $this->getURI();
|
$this->uri = 'http://www.castorus.com';
|
||||||
$this->description = "Returns the latest changes";
|
$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"] = '[]';
|
||||||
$this->parameters["Get latest changes via ZIP code"] =
|
$this->parameters["Get latest changes via ZIP code"] =
|
||||||
|
@ -49,7 +49,7 @@ class CastorusBridge extends BridgeAbstract {
|
||||||
if(!$url)
|
if(!$url)
|
||||||
$this->returnError('Cannot find url!', 404);
|
$this->returnError('Cannot find url!', 404);
|
||||||
|
|
||||||
return $this->getURI() . $url->href;
|
return $this->uri . $url->href;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Extracts the time from an activity
|
// Extracts the time from an activity
|
||||||
|
@ -85,10 +85,10 @@ class CastorusBridge extends BridgeAbstract {
|
||||||
if(isset($params['city']))
|
if(isset($params['city']))
|
||||||
$city_filter = trim($params['city']);
|
$city_filter = trim($params['city']);
|
||||||
|
|
||||||
$html = $this->file_get_html($this->getURI());
|
$html = $this->file_get_html($this->uri);
|
||||||
|
|
||||||
if(!$html)
|
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');
|
$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(){
|
public function getCacheDuration(){
|
||||||
return 600; // 10 minutes
|
return 600; // 10 minutes
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,7 +6,7 @@ class CollegeDeFranceBridge extends BridgeAbstract{
|
||||||
$this->name = "CollegeDeFrance";
|
$this->name = "CollegeDeFrance";
|
||||||
$this->uri = "http://www.college-de-france.fr/";
|
$this->uri = "http://www.college-de-france.fr/";
|
||||||
$this->description = "Returns the latest audio and video from CollegeDeFrance";
|
$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) {
|
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(){
|
public function getCacheDuration(){
|
||||||
return 3600*3; // 3 hours
|
return 3600*3; // 3 hours
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,7 +6,7 @@ class CommonDreamsBridge extends BridgeAbstract{
|
||||||
$this->name = "CommonDreams Bridge";
|
$this->name = "CommonDreams Bridge";
|
||||||
$this->uri = "http://www.commondreams.org/";
|
$this->uri = "http://www.commondreams.org/";
|
||||||
$this->description = "Returns the newest articles.";
|
$this->description = "Returns the newest articles.";
|
||||||
$this->update = "2016-08-06";
|
$this->update = "2016-08-09";
|
||||||
}
|
}
|
||||||
|
|
||||||
private function CommonDreamsExtractContent($url) {
|
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/';
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ class CopieDoubleBridge extends BridgeAbstract{
|
||||||
$this->name = "CopieDouble";
|
$this->name = "CopieDouble";
|
||||||
$this->uri = "http://www.copie-double.com/";
|
$this->uri = "http://www.copie-double.com/";
|
||||||
$this->description = "CopieDouble";
|
$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(){
|
public function getCacheDuration(){
|
||||||
return 14400; // 4 hours
|
return 14400; // 4 hours
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,10 +4,10 @@ class CourrierInternationalBridge extends BridgeAbstract{
|
||||||
public function loadMetadatas() {
|
public function loadMetadatas() {
|
||||||
|
|
||||||
$this->maintainer = "teromene";
|
$this->maintainer = "teromene";
|
||||||
$this->name = "CourrierInternational";
|
$this->name = "Courrier International Bridge";
|
||||||
$this->uri = "http://CourrierInternational.fr/";
|
$this->uri = "http://CourrierInternational.fr/";
|
||||||
$this->description = "Courrier International bridge";
|
$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(){
|
public function getCacheDuration(){
|
||||||
return 300; // 5 minutes
|
return 300; // 5 minutes
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ class CryptomeBridge extends BridgeAbstract{
|
||||||
$this->name = "Cryptome";
|
$this->name = "Cryptome";
|
||||||
$this->uri = "http://cryptome.org/";
|
$this->uri = "http://cryptome.org/";
|
||||||
$this->description = "Returns the N most recent documents.";
|
$this->description = "Returns the N most recent documents.";
|
||||||
$this->update = "";
|
$this->update = "2016-08-09";
|
||||||
|
|
||||||
$this->parameters[] =
|
$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(){
|
public function getCacheDuration(){
|
||||||
return 21600; // 6 hours
|
return 21600; // 6 hours
|
||||||
}
|
}
|
||||||
|
|
|
@ -96,10 +96,6 @@ class DailymotionBridge extends BridgeAbstract{
|
||||||
return (!empty($this->request) ? $this->request .' - ' : '') .'Dailymotion Bridge';
|
return (!empty($this->request) ? $this->request .' - ' : '') .'Dailymotion Bridge';
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getURI(){
|
|
||||||
return 'https://www.dailymotion.com/';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getCacheDuration(){
|
public function getCacheDuration(){
|
||||||
return 3600*3; // 3 hours
|
return 3600*3; // 3 hours
|
||||||
}
|
}
|
||||||
|
|
|
@ -45,14 +45,6 @@ class DanbooruBridge extends BridgeAbstract{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getName(){
|
|
||||||
return 'Danbooru';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getURI(){
|
|
||||||
return 'http://donmai.us/';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getCacheDuration(){
|
public function getCacheDuration(){
|
||||||
return 1800; // 30 minutes
|
return 1800; // 30 minutes
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,9 +5,9 @@ class DansTonChatBridge extends BridgeAbstract{
|
||||||
|
|
||||||
$this->maintainer = "Astalaseven";
|
$this->maintainer = "Astalaseven";
|
||||||
$this->name = "DansTonChat Bridge";
|
$this->name = "DansTonChat Bridge";
|
||||||
$this->uri = "http://danstonchat.com/latest.html";
|
$this->uri = "http://danstonchat.com";
|
||||||
$this->description = "Returns latest quotes from DansTonChat.";
|
$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(){
|
public function getCacheDuration(){
|
||||||
return 21600; // 6 hours
|
return 21600; // 6 hours
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,10 +4,10 @@ class DauphineLibereBridge extends BridgeAbstract {
|
||||||
public function loadMetadatas() {
|
public function loadMetadatas() {
|
||||||
|
|
||||||
$this->maintainer = "qwertygc";
|
$this->maintainer = "qwertygc";
|
||||||
$this->name = "DauphineLibereBridge Bridge";
|
$this->name = "Dauphine Bridge";
|
||||||
$this->uri = "http://www.ledauphine.com/";
|
$this->uri = "http://www.ledauphine.com/";
|
||||||
$this->description = "Returns the newest articles.";
|
$this->description = "Returns the newest articles.";
|
||||||
$this->update = "2016-08-06";
|
$this->update = "2016-08-09";
|
||||||
|
|
||||||
$this->parameters[] =
|
$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(){
|
public function getCacheDuration(){
|
||||||
return 3600*2; // 2 hours
|
return 3600*2; // 2 hours
|
||||||
}
|
}
|
||||||
|
|
|
@ -62,18 +62,6 @@ class DemoBridge extends BridgeAbstract{
|
||||||
|
|
||||||
$this->items[] = $item;
|
$this->items[] = $item;
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getName() {
|
|
||||||
|
|
||||||
return "DemoBridge";
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getURI() {
|
|
||||||
|
|
||||||
return "http://github.com/sebsauvage/rss-bridge";
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getCacheDuration(){
|
public function getCacheDuration(){
|
||||||
|
|
|
@ -6,7 +6,7 @@ class DeveloppezDotComBridge extends BridgeAbstract{
|
||||||
$this->name = "Developpez.com Actus (FR)";
|
$this->name = "Developpez.com Actus (FR)";
|
||||||
$this->uri = "http://www.developpez.com/";
|
$this->uri = "http://www.developpez.com/";
|
||||||
$this->description = "Returns the 15 newest posts from DeveloppezDotCom (full text).";
|
$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) {
|
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(){
|
public function getCacheDuration(){
|
||||||
return 1800; // 30min
|
return 1800; // 30min
|
||||||
}
|
}
|
||||||
|
|
|
@ -48,14 +48,6 @@ class DollbooruBridge extends BridgeAbstract{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getName(){
|
|
||||||
return 'Dollbooru';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getURI(){
|
|
||||||
return 'http://dollbooru.org/';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getCacheDuration(){
|
public function getCacheDuration(){
|
||||||
return 1800; // 30 minutes
|
return 1800; // 30 minutes
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ class DuckDuckGoBridge extends BridgeAbstract{
|
||||||
$this->name = "DuckDuckGo";
|
$this->name = "DuckDuckGo";
|
||||||
$this->uri = "https://duckduckgo.com/";
|
$this->uri = "https://duckduckgo.com/";
|
||||||
$this->description = "Returns most recent results from DuckDuckGo.";
|
$this->description = "Returns most recent results from DuckDuckGo.";
|
||||||
$this->update = "2014-05-25";
|
$this->update = "2016-08-09";
|
||||||
|
|
||||||
$this->parameters[] =
|
$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(){
|
public function getCacheDuration(){
|
||||||
return 21600; // 6 hours
|
return 21600; // 6 hours
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ class EZTVBridge extends BridgeAbstract{
|
||||||
$this->name = "EZTV";
|
$this->name = "EZTV";
|
||||||
$this->uri = "https://eztv.ch/";
|
$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->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[] =
|
$this->parameters[] =
|
||||||
'[
|
'[
|
||||||
|
@ -72,12 +72,4 @@ class EZTVBridge extends BridgeAbstract{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getName(){
|
|
||||||
return 'EZTV';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getURI(){
|
|
||||||
return 'https://eztv.ch/';
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,7 +8,7 @@ class EliteDangerousGalnetBridge extends BridgeAbstract
|
||||||
$this->name = "Elite: Dangerous Galnet";
|
$this->name = "Elite: Dangerous Galnet";
|
||||||
$this->uri = "https://community.elitedangerous.com/galnet";
|
$this->uri = "https://community.elitedangerous.com/galnet";
|
||||||
$this->description = "Returns the latest page of news from 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)
|
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()
|
public function getCacheDuration()
|
||||||
{
|
{
|
||||||
return 3600 * 2; // 2 hours
|
return 3600 * 2; // 2 hours
|
||||||
|
|
|
@ -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(){
|
public function getCacheDuration(){
|
||||||
return 43200; // 12h
|
return 43200; // 12h
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ Class FierPandaBridge extends BridgeAbstract{
|
||||||
$this->name = "Fier Panda Bridge";
|
$this->name = "Fier Panda Bridge";
|
||||||
$this->uri = "http://www.fier-panda.fr/";
|
$this->uri = "http://www.fier-panda.fr/";
|
||||||
$this->description = "Returns latest articles from Fier Panda.";
|
$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(){
|
public function getCacheDuration(){
|
||||||
return 21600; // 6 hours
|
return 21600; // 6 hours
|
||||||
}
|
}
|
||||||
|
|
|
@ -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(){
|
public function getCacheDuration(){
|
||||||
return 21600; // 6 hours
|
return 21600; // 6 hours
|
||||||
}
|
}
|
||||||
|
|
|
@ -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(){
|
public function getCacheDuration(){
|
||||||
return 21600; // 6 hours
|
return 21600; // 6 hours
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,12 +41,4 @@ class FootitoBridge extends BridgeAbstract{
|
||||||
$this->items[] = $item;
|
$this->items[] = $item;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getName(){
|
|
||||||
return 'footito';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getURI(){
|
|
||||||
return 'http://www.footito.fr/';
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ class FourchanBridge extends BridgeAbstract{
|
||||||
$this->name = "4chan";
|
$this->name = "4chan";
|
||||||
$this->uri = "https://www.4chan.org/";
|
$this->uri = "https://www.4chan.org/";
|
||||||
$this->description = "Returns posts from the specified thread";
|
$this->description = "Returns posts from the specified thread";
|
||||||
$this->update = "2015-02-01";
|
$this->update = "2016-08-09";
|
||||||
|
|
||||||
$this->parameters[] =
|
$this->parameters[] =
|
||||||
'[
|
'[
|
||||||
|
@ -60,14 +60,6 @@ class FourchanBridge extends BridgeAbstract{
|
||||||
$this->items = array_reverse($this->items);
|
$this->items = array_reverse($this->items);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getName(){
|
|
||||||
return '4chan';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getURI(){
|
|
||||||
return 'https://www.4chan.org/';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getCacheDuration(){
|
public function getCacheDuration(){
|
||||||
return 300; // 5min
|
return 300; // 5min
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ class GBAtempBridge extends BridgeAbstract {
|
||||||
|
|
||||||
$this->maintainer = 'ORelio';
|
$this->maintainer = 'ORelio';
|
||||||
$this->name = 'GBAtemp';
|
$this->name = 'GBAtemp';
|
||||||
$this->uri = $this->getURI();
|
$this->uri = 'http://gbatemp.net/';
|
||||||
$this->description = 'GBAtemp is a user friendly underground video game community.';
|
$this->description = 'GBAtemp is a user friendly underground video game community.';
|
||||||
$this->update = '2016-08-09';
|
$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('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);
|
} 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') {
|
if ($typeFilter == 'N') {
|
||||||
foreach ($html->find('li[class=news_item full]') as $newsItem) {
|
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="', '"'));
|
$time = intval($this->ExtractFromDelimiters($newsItem->find('abbr.DateTime', 0)->outertext, 'data-time="', '"'));
|
||||||
$author = $newsItem->find('a.username', 0)->plaintext;
|
$author = $newsItem->find('a.username', 0)->plaintext;
|
||||||
$title = $newsItem->find('a', 1)->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);
|
$this->items[] = $this->build_item($url, $title, $author, $time, $content);
|
||||||
}
|
}
|
||||||
} else if ($typeFilter == 'R') {
|
} else if ($typeFilter == 'R') {
|
||||||
foreach ($html->find('li.portal_review') as $reviewItem) {
|
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;
|
$title = $reviewItem->find('span.review_title', 0)->plaintext;
|
||||||
$content = $this->file_get_html($url) or $this->returnError('Could not request GBAtemp: '.$uri, 500);
|
$content = $this->file_get_html($url) or $this->returnError('Could not request GBAtemp: '.$uri, 500);
|
||||||
$author = $content->find('a.username', 0)->plaintext;
|
$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>';
|
$subheader = '<p><b>'.$content->find('div.review_subheader', 0)->plaintext.'</b></p>';
|
||||||
$procons = $content->find('table.review_procons', 0)->outertext;
|
$procons = $content->find('table.review_procons', 0)->outertext;
|
||||||
$scores = $content->find('table.reviewscores', 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);
|
$this->items[] = $this->build_item($url, $title, $author, $time, $content);
|
||||||
}
|
}
|
||||||
} else if ($typeFilter == 'T') {
|
} else if ($typeFilter == 'T') {
|
||||||
foreach ($html->find('li.portal-tutorial') as $tutorialItem) {
|
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;
|
$title = $tutorialItem->find('a', 0)->plaintext;
|
||||||
$time = intval($this->ExtractFromDelimiters($tutorialItem->find('abbr.DateTime', 0)->outertext, 'data-time="', '"'));
|
$time = intval($this->ExtractFromDelimiters($tutorialItem->find('abbr.DateTime', 0)->outertext, 'data-time="', '"'));
|
||||||
$author = $tutorialItem->find('a.username', 0)->plaintext;
|
$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);
|
$this->items[] = $this->build_item($url, $title, $author, $time, $content);
|
||||||
}
|
}
|
||||||
} else if ($typeFilter == 'F') {
|
} else if ($typeFilter == 'F') {
|
||||||
foreach ($html->find('li.rc_item') as $postItem) {
|
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;
|
$title = $postItem->find('a', 1)->plaintext;
|
||||||
$time = intval($this->ExtractFromDelimiters($postItem->find('abbr.DateTime', 0)->outertext, 'data-time="', '"'));
|
$time = intval($this->ExtractFromDelimiters($postItem->find('abbr.DateTime', 0)->outertext, 'data-time="', '"'));
|
||||||
$author = $postItem->find('a.username', 0)->plaintext;
|
$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);
|
$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';
|
return 'GBAtemp'.(empty($this->filter) ? '' : ' '.$this->filter).' Bridge';
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getURI() {
|
|
||||||
return 'http://gbatemp.net/';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getCacheDuration() {
|
public function getCacheDuration() {
|
||||||
return ($this->filter === 'Forum') ? 300 : 3600; // 5 minutes / 1 hour
|
return ($this->filter === 'Forum') ? 300 : 3600; // 5 minutes / 1 hour
|
||||||
}
|
}
|
||||||
|
|
|
@ -50,14 +50,6 @@ class GelbooruBridge extends BridgeAbstract{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getName(){
|
|
||||||
return 'Gelbooru';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getURI(){
|
|
||||||
return 'http://gelbooru.com/';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getCacheDuration(){
|
public function getCacheDuration(){
|
||||||
return 1800; // 30 minutes
|
return 1800; // 30 minutes
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,7 +9,7 @@ class GiphyBridge extends BridgeAbstract{
|
||||||
$this->name = "Giphy Bridge";
|
$this->name = "Giphy Bridge";
|
||||||
$this->uri = "http://giphy.com/";
|
$this->uri = "http://giphy.com/";
|
||||||
$this->description = "Bridge for giphy.com";
|
$this->description = "Bridge for giphy.com";
|
||||||
$this->update = "2016-08-06";
|
$this->update = "2016-08-09";
|
||||||
|
|
||||||
$this->parameters["By tag"] =
|
$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(){
|
public function getCacheDuration(){
|
||||||
return 300; // 5 minutes
|
return 300; // 5 minutes
|
||||||
}
|
}
|
||||||
|
|
|
@ -53,14 +53,6 @@ class GithubIssueBridge extends BridgeAbstract{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getName(){
|
|
||||||
return 'Github Issue';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getURI(){
|
|
||||||
return '';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getCacheDuration(){
|
public function getCacheDuration(){
|
||||||
return 600; // ten minutes
|
return 600; // ten minutes
|
||||||
}
|
}
|
||||||
|
|
|
@ -79,12 +79,4 @@ class GitlabCommitsBridge extends BridgeAbstract{
|
||||||
$this->items[]=$item;
|
$this->items[]=$item;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getName(){
|
|
||||||
return 'Gitlab Commits';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getURI(){
|
|
||||||
return '';
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ class GizmodoFRBridge extends BridgeAbstract{
|
||||||
$this->name = "GizmodoFR";
|
$this->name = "GizmodoFR";
|
||||||
$this->uri = "http://www.gizmodo.fr/";
|
$this->uri = "http://www.gizmodo.fr/";
|
||||||
$this->description = "Returns the 15 newest posts from GizmodoFR (full text).";
|
$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(){
|
public function getCacheDuration(){
|
||||||
return 1800; // 30min
|
return 1800; // 30min
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,7 +17,7 @@ class GoogleSearchBridge extends BridgeAbstract{
|
||||||
$this->name = "Google search";
|
$this->name = "Google search";
|
||||||
$this->uri = "https://www.google.com/";
|
$this->uri = "https://www.google.com/";
|
||||||
$this->description = "Returns most recent results from Google search.";
|
$this->description = "Returns most recent results from Google search.";
|
||||||
$this->update = "2014-05-25";
|
$this->update = "2016-08-09";
|
||||||
|
|
||||||
$this->parameters[] =
|
$this->parameters[] =
|
||||||
'[
|
'[
|
||||||
|
@ -62,10 +62,6 @@ class GoogleSearchBridge extends BridgeAbstract{
|
||||||
return (!empty($this->request) ? $this->request .' - ' : '') .'Google search';
|
return (!empty($this->request) ? $this->request .' - ' : '') .'Google search';
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getURI(){
|
|
||||||
return 'http://google.com';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getCacheDuration(){
|
public function getCacheDuration(){
|
||||||
return 1800; // 30 minutes
|
return 1800; // 30 minutes
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,7 +6,7 @@ class GuruMedBridge extends BridgeAbstract{
|
||||||
$this->name = "GuruMed";
|
$this->name = "GuruMed";
|
||||||
$this->uri = "http://www.gurumed.org";
|
$this->uri = "http://www.gurumed.org";
|
||||||
$this->description = "Returns the 5 newest posts from Gurumed (full text)";
|
$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) {
|
private function GurumedStripCDATA($string) {
|
||||||
|
@ -31,12 +31,4 @@ class GuruMedBridge extends BridgeAbstract{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getName(){
|
|
||||||
return 'Gurumed';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getURI(){
|
|
||||||
return 'http://gurumed.org/';
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -77,10 +77,6 @@ class HDWallpapersBridge extends BridgeAbstract {
|
||||||
return 'HDWallpapers - '.str_replace(['__', '_'], [' & ', ' '], $this->category).' ['.$this->resolution.']';
|
return 'HDWallpapers - '.str_replace(['__', '_'], [' & ', ' '], $this->category).' ['.$this->resolution.']';
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getURI(){
|
|
||||||
return 'http://www.hdwallpapers.in';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getCacheDuration(){
|
public function getCacheDuration(){
|
||||||
return 43200; // 12 hours
|
return 43200; // 12 hours
|
||||||
}
|
}
|
||||||
|
|
|
@ -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);
|
$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) {
|
foreach($html->find('div.zoe-grid') as $element) {
|
||||||
$item = new \Item();
|
$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');
|
$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->title = mb_convert_encoding(trim($element->find('div.brick-content h3 a', 0)->innertext), 'UTF-8', 'HTML-ENTITIES');
|
||||||
$item->tags = $element->find('div.oFlyout_bg div.oFlyout div.flyoutContent span.tags', 0)->plaintext;
|
$item->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;
|
$this->items[] = $item;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public function getName(){
|
|
||||||
return 'Hentai Haven';
|
|
||||||
}
|
|
||||||
public function getURI(){
|
|
||||||
return '';
|
|
||||||
}
|
|
||||||
public function getCacheDuration(){
|
public function getCacheDuration(){
|
||||||
return 21600; // 6 hours
|
return 21600; // 6 hours
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,7 +9,7 @@ class InstagramBridge extends BridgeAbstract{
|
||||||
$this->name = "Instagram Bridge";
|
$this->name = "Instagram Bridge";
|
||||||
$this->uri = "http://instagram.com/";
|
$this->uri = "http://instagram.com/";
|
||||||
$this->description = "Returns the newest images";
|
$this->description = "Returns the newest images";
|
||||||
$this->update = "2016-08-06";
|
$this->update = "2016-08-09";
|
||||||
|
|
||||||
$this->parameters[] =
|
$this->parameters[] =
|
||||||
'[
|
'[
|
||||||
|
@ -77,8 +77,4 @@ class InstagramBridge extends BridgeAbstract{
|
||||||
public function getName(){
|
public function getName(){
|
||||||
return (!empty($this->request) ? $this->request .' - ' : '') .'Instagram Bridge';
|
return (!empty($this->request) ? $this->request .' - ' : '') .'Instagram Bridge';
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getURI(){
|
|
||||||
return 'http://instagram.com/';
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,7 @@ class JapanExpoBridge extends BridgeAbstract{
|
||||||
|
|
||||||
public function loadMetadatas() {
|
public function loadMetadatas() {
|
||||||
$this->maintainer = 'Ginko';
|
$this->maintainer = 'Ginko';
|
||||||
$this->name = 'JapanExpo';
|
$this->name = 'Japan Expo Actualités';
|
||||||
$this->uri = 'http://www.japan-expo-paris.com/fr/actualites';
|
$this->uri = 'http://www.japan-expo-paris.com/fr/actualites';
|
||||||
$this->description = 'Returns most recent entries from Japan Expo actualités.';
|
$this->description = 'Returns most recent entries from Japan Expo actualités.';
|
||||||
$this->update = '2016-08-09';
|
$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(){
|
public function getCacheDuration(){
|
||||||
return 14400; // 4 hours
|
return 14400; // 4 hours
|
||||||
}
|
}
|
||||||
|
|
|
@ -50,14 +50,6 @@ class KonachanBridge extends BridgeAbstract{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getName(){
|
|
||||||
return 'Konachan';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getURI(){
|
|
||||||
return 'http://konachan.com/post';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getCacheDuration(){
|
public function getCacheDuration(){
|
||||||
return 1800; // 30 minutes
|
return 1800; // 30 minutes
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,7 +6,7 @@ class KoreusBridge extends BridgeAbstract{
|
||||||
$this->name = "Koreus";
|
$this->name = "Koreus";
|
||||||
$this->uri = "http://www.koreus.com/";
|
$this->uri = "http://www.koreus.com/";
|
||||||
$this->description = "Returns the 5 newest posts from Koreus (full text)";
|
$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) {
|
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/';
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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(){
|
public function getCacheDuration(){
|
||||||
return 604800; // one week
|
return 604800; // one week
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ class LeBonCoinBridge extends BridgeAbstract{
|
||||||
$this->name = "LeBonCoin";
|
$this->name = "LeBonCoin";
|
||||||
$this->uri = "http://www.leboncoin.fr";
|
$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->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[] =
|
$this->parameters[] =
|
||||||
'[
|
'[
|
||||||
|
@ -275,12 +275,4 @@ class LeBonCoinBridge extends BridgeAbstract{
|
||||||
$this->items[] = $item;
|
$this->items[] = $item;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getName(){
|
|
||||||
return 'LeBonCoin';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getURI(){
|
|
||||||
return 'http://www.leboncoin.fr';
|
|
||||||
}
|
|
||||||
}
|
}
|
|
@ -6,7 +6,7 @@ class LeJournalDuGeekBridge extends BridgeAbstract{
|
||||||
$this->name = "journaldugeek.com (FR)";
|
$this->name = "journaldugeek.com (FR)";
|
||||||
$this->uri = "http://www.journaldugeek.com/";
|
$this->uri = "http://www.journaldugeek.com/";
|
||||||
$this->description = "Returns the 5 newest posts from LeJournalDuGeek (full text).";
|
$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) {
|
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(){
|
public function getCacheDuration(){
|
||||||
return 1800; // 30min
|
return 1800; // 30min
|
||||||
}
|
}
|
||||||
|
|
|
@ -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() {
|
public function getCacheDuration() {
|
||||||
return 1800; // 30 minutes
|
return 1800; // 30 minutes
|
||||||
}
|
}
|
||||||
|
|
|
@ -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(){
|
public function getCacheDuration(){
|
||||||
return 7200; // 2h hours
|
return 7200; // 2h hours
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,14 +37,6 @@ class LinkedInCompany extends BridgeAbstract{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getName(){
|
|
||||||
return 'LinkedIn';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getURI(){
|
|
||||||
return 'https://www.linkedin.com';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getCacheDuration(){
|
public function getCacheDuration(){
|
||||||
return 21600; // 6 hours
|
return 21600; // 6 hours
|
||||||
}
|
}
|
||||||
|
|
|
@ -51,14 +51,6 @@ class LolibooruBridge extends BridgeAbstract{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getName(){
|
|
||||||
return 'Lolibooru';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getURI(){
|
|
||||||
return 'http://lolibooru.moe/post';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getCacheDuration(){
|
public function getCacheDuration(){
|
||||||
return 1800; // 30 minutes
|
return 1800; // 30 minutes
|
||||||
}
|
}
|
||||||
|
|
|
@ -328,10 +328,6 @@ class MangareaderBridge extends BridgeAbstract{
|
||||||
return (!empty($this->request) ? $this->request . ' - ' : '') . 'Mangareader Bridge';
|
return (!empty($this->request) ? $this->request . ' - ' : '') . 'Mangareader Bridge';
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getURI(){
|
|
||||||
return 'http://www.mangareader.net';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getCacheDuration(){
|
public function getCacheDuration(){
|
||||||
return 10800; // 3 hours
|
return 10800; // 3 hours
|
||||||
}
|
}
|
||||||
|
|
|
@ -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(){
|
public function getCacheDuration(){
|
||||||
return 1800; // 30 minutes
|
return 1800; // 30 minutes
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,33 +3,25 @@ class MondeDiploBridge extends BridgeAbstract{
|
||||||
|
|
||||||
public function loadMetadatas() {
|
public function loadMetadatas() {
|
||||||
$this->maintainer = "Pitchoule";
|
$this->maintainer = "Pitchoule";
|
||||||
$this->name = "MondeDiplo";
|
$this->name = 'Monde Diplomatique';
|
||||||
$this->uri = "http://www.monde-diplomatique.fr";
|
$this->uri = 'http://www.monde-diplomatique.fr';
|
||||||
$this->description = "Returns most recent results from MondeDiplo.";
|
$this->description = "Returns most recent results from MondeDiplo.";
|
||||||
$this->update = "2016-08-03";
|
$this->update = "2016-08-09";
|
||||||
}
|
}
|
||||||
|
|
||||||
public function collectData(array $param){
|
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) {
|
foreach($html->find('div.unarticle') as $article) {
|
||||||
$element = $article->parent();
|
$element = $article->parent();
|
||||||
$item = new Item();
|
$item = new Item();
|
||||||
$item->uri = $this->getURI() . $element->href;
|
$item->uri = $this->uri . $element->href;
|
||||||
$item->title = $element->find('h3', 0)->plaintext;
|
$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);
|
$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;
|
$this->items[] = $item;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getName(){
|
|
||||||
return 'Monde Diplomatique';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getURI(){
|
|
||||||
return 'http://www.monde-diplomatique.fr';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getCacheDuration(){
|
public function getCacheDuration(){
|
||||||
return 21600; // 6 hours
|
return 21600; // 6 hours
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,10 +3,10 @@ class MsnMondeBridge extends BridgeAbstract{
|
||||||
|
|
||||||
public function loadMetadatas() {
|
public function loadMetadatas() {
|
||||||
$this->maintainer = "kranack";
|
$this->maintainer = "kranack";
|
||||||
$this->name = "MSN Actu Monde";
|
$this->name = 'MSN Actu Monde';
|
||||||
$this->uri = "http://www.msn.com/fr-fr/actualite/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->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) {
|
private function MsnMondeExtractContent($url, &$item) {
|
||||||
|
@ -16,7 +16,7 @@ class MsnMondeBridge extends BridgeAbstract{
|
||||||
}
|
}
|
||||||
|
|
||||||
public function collectData(array $param){
|
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;
|
$limit = 0;
|
||||||
foreach($html->find('.smalla') as $article) {
|
foreach($html->find('.smalla') as $article) {
|
||||||
if($limit < 10) {
|
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';
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -50,14 +50,6 @@ class MspabooruBridge extends BridgeAbstract{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getName(){
|
|
||||||
return 'Mspabooru';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getURI(){
|
|
||||||
return 'http://mspabooru.com/';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getCacheDuration(){
|
public function getCacheDuration(){
|
||||||
return 1800; // 30 minutes
|
return 1800; // 30 minutes
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ class NasaApodBridge extends BridgeAbstract{
|
||||||
$this->name = "NASA APOD Bridge";
|
$this->name = "NASA APOD Bridge";
|
||||||
$this->uri = "http://apod.nasa.gov/apod/astropix.html";
|
$this->uri = "http://apod.nasa.gov/apod/astropix.html";
|
||||||
$this->description = "Returns the 3 latest NASA APOD pictures and explanations";
|
$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(){
|
public function getCacheDuration(){
|
||||||
return 3600*12; // 12 hours
|
return 3600*12; // 12 hours
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,7 @@ class NeuviemeArtBridge extends BridgeAbstract {
|
||||||
|
|
||||||
public function loadMetadatas() {
|
public function loadMetadatas() {
|
||||||
$this->maintainer = "ORelio";
|
$this->maintainer = "ORelio";
|
||||||
$this->name = "9ème Art";
|
$this->name = '9ème Art Bridge';
|
||||||
$this->uri = "http://www.9emeart.fr/";
|
$this->uri = "http://www.9emeart.fr/";
|
||||||
$this->description = "Returns the newest articles.";
|
$this->description = "Returns the newest articles.";
|
||||||
$this->update = "2016-08-09";
|
$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/';
|
|
||||||
}
|
|
||||||
}
|
}
|
|
@ -43,12 +43,4 @@ class NextInpactBridge extends BridgeAbstract {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getName() {
|
|
||||||
return 'Nextinpact Bridge';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getURI() {
|
|
||||||
return 'http://www.nextinpact.com/';
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,7 +6,7 @@ class NiceMatinBridge extends BridgeAbstract{
|
||||||
$this->name = "NiceMatin";
|
$this->name = "NiceMatin";
|
||||||
$this->uri = "http://www.nicematin.com/";
|
$this->uri = "http://www.nicematin.com/";
|
||||||
$this->description = "Returns the 10 newest posts from NiceMatin (full text)";
|
$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) {
|
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/';
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ class NovelUpdatesBridge extends BridgeAbstract{
|
||||||
$this->name = "Novel Updates";
|
$this->name = "Novel Updates";
|
||||||
$this->uri = "http://www.novelupdates.com/";
|
$this->uri = "http://www.novelupdates.com/";
|
||||||
$this->description = "Returns releases from Novel Updates";
|
$this->description = "Returns releases from Novel Updates";
|
||||||
$this->update = "2016-08-06";
|
$this->update = "2016-08-09";
|
||||||
$this->parameters[] =
|
$this->parameters[] =
|
||||||
'[
|
'[
|
||||||
{
|
{
|
||||||
|
@ -44,12 +44,11 @@ class NovelUpdatesBridge extends BridgeAbstract{
|
||||||
$this->items[] = $item;
|
$this->items[] = $item;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getName(){
|
public function getName(){
|
||||||
return (!empty($this->request) ? $this->request.' - ' : '') .'Novel Updates';
|
return (!empty($this->request) ? $this->request.' - ' : '') .'Novel Updates';
|
||||||
}
|
}
|
||||||
public function getURI(){
|
|
||||||
return 'http://www.novelupdates.com/';
|
|
||||||
}
|
|
||||||
public function getCacheDuration(){
|
public function getCacheDuration(){
|
||||||
return 21600; // 6 hours
|
return 21600; // 6 hours
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ class NumeramaBridge extends BridgeAbstract{
|
||||||
$this->name = 'Numerama';
|
$this->name = 'Numerama';
|
||||||
$this->uri = 'http://www.numerama.com/';
|
$this->uri = 'http://www.numerama.com/';
|
||||||
$this->description = 'Returns the 5 newest posts from Numerama (full text)';
|
$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;
|
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);
|
$html = $this->file_get_html($feed) or $this->returnError('Could not request Numerama: '.$feed, 500);
|
||||||
$limit = 0;
|
$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() {
|
public function getCacheDuration() {
|
||||||
return 1800; // 30min
|
return 1800; // 30min
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ class OpenClassroomsBridge extends BridgeAbstract{
|
||||||
$this->name = "OpenClassrooms Bridge";
|
$this->name = "OpenClassrooms Bridge";
|
||||||
$this->uri = "https://openclassrooms.com/";
|
$this->uri = "https://openclassrooms.com/";
|
||||||
$this->description = "Returns latest tutorials from OpenClassrooms.";
|
$this->description = "Returns latest tutorials from OpenClassrooms.";
|
||||||
$this->update = "2015-10-30";
|
$this->update = "2016-08-09";
|
||||||
|
|
||||||
|
|
||||||
$this->parameters[] =
|
$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(){
|
public function getCacheDuration(){
|
||||||
return 21600; // 6 hours
|
return 21600; // 6 hours
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,9 +8,9 @@ class ParuVenduImmoBridge extends BridgeAbstract
|
||||||
|
|
||||||
$this->maintainer = "polo2ro";
|
$this->maintainer = "polo2ro";
|
||||||
$this->name = "Paru Vendu Immobilier";
|
$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->description = "Returns the ads from the first page of search result.";
|
||||||
$this->update = "2015-02-02";
|
$this->update = "2016-08-09";
|
||||||
|
|
||||||
|
|
||||||
$this->parameters[] =
|
$this->parameters[] =
|
||||||
|
@ -46,7 +46,7 @@ class ParuVenduImmoBridge extends BridgeAbstract
|
||||||
$num = 20;
|
$num = 20;
|
||||||
$appartment = '&tbApp=1&tbDup=1&tbChb=1&tbLof=1&tbAtl=1&tbPla=1';
|
$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';
|
$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'])) {
|
if (isset($param['minarea'])) {
|
||||||
$this->request .= ' '.$param['minarea'].' m2';
|
$this->request .= ' '.$param['minarea'].' m2';
|
||||||
|
@ -90,7 +90,7 @@ class ParuVenduImmoBridge extends BridgeAbstract
|
||||||
list($href) = explode('#', $element->href);
|
list($href) = explode('#', $element->href);
|
||||||
|
|
||||||
$item = new \Item();
|
$item = new \Item();
|
||||||
$item->uri = $this->getURI().$href;
|
$item->uri = $this->uri.$href;
|
||||||
$item->title = $element->title;
|
$item->title = $element->title;
|
||||||
$item->content = $img.$desc.$price;
|
$item->content = $img.$desc.$price;
|
||||||
$this->items[] = $item;
|
$this->items[] = $item;
|
||||||
|
@ -102,10 +102,6 @@ class ParuVenduImmoBridge extends BridgeAbstract
|
||||||
return 'Paru Vendu Immobilier'.$this->request;
|
return 'Paru Vendu Immobilier'.$this->request;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getURI(){
|
|
||||||
return 'http://www.paruvendu.fr';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getCacheDuration(){
|
public function getCacheDuration(){
|
||||||
return 10800; // 3 hours
|
return 10800; // 3 hours
|
||||||
}
|
}
|
||||||
|
|
|
@ -83,10 +83,6 @@ class PickyWallpapersBridge extends BridgeAbstract {
|
||||||
return 'PickyWallpapers - '.$this->category.(!empty($this->subcategory) ? ' > '.$this->subcategory : '').' ['.$this->resolution.']';
|
return 'PickyWallpapers - '.$this->category.(!empty($this->subcategory) ? ' > '.$this->subcategory : '').' ['.$this->resolution.']';
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getURI(){
|
|
||||||
return 'http://www.pickywallpapers.com';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getCacheDuration(){
|
public function getCacheDuration(){
|
||||||
return 43200; // 12 hours
|
return 43200; // 12 hours
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,7 +6,7 @@ class PlanetLibreBridge extends BridgeAbstract{
|
||||||
$this->name = "PlanetLibre";
|
$this->name = "PlanetLibre";
|
||||||
$this->uri = "http://www.planet-libre.org";
|
$this->uri = "http://www.planet-libre.org";
|
||||||
$this->description = "Returns the 5 newest posts from PlanetLibre (full text)";
|
$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){
|
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(){
|
public function getCacheDuration(){
|
||||||
return 3600*2; // 1 hour
|
return 3600*2; // 1 hour
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ class ProjectMGameBridge extends BridgeAbstract{
|
||||||
$this->name = "Project M Game Bridge";
|
$this->name = "Project M Game Bridge";
|
||||||
$this->uri = "http://projectmgame.com/en/";
|
$this->uri = "http://projectmgame.com/en/";
|
||||||
$this->description = "Returns the newest articles.";
|
$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(){
|
public function getCacheDuration(){
|
||||||
return 10800; //3 hours
|
return 10800; //3 hours
|
||||||
}
|
}
|
||||||
|
|
|
@ -52,10 +52,6 @@ class RTBFBridge extends BridgeAbstract {
|
||||||
return (!empty($this->request) ? $this->request .' - ' : '') .'RTBF Bridge';
|
return (!empty($this->request) ? $this->request .' - ' : '') .'RTBF Bridge';
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getURI(){
|
|
||||||
return 'http://www.rtbf.be/auvio/emissions';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getCacheDuration(){
|
public function getCacheDuration(){
|
||||||
return 21600; // 6 hours
|
return 21600; // 6 hours
|
||||||
}
|
}
|
||||||
|
|
|
@ -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() {
|
public function getCacheDuration() {
|
||||||
return 10800; //3 hours
|
return 10800; //3 hours
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,7 +6,7 @@ class ReporterreBridge extends BridgeAbstract{
|
||||||
$this->name = "Reporterre Bridge";
|
$this->name = "Reporterre Bridge";
|
||||||
$this->uri = "http://www.reporterre.net/";
|
$this->uri = "http://www.reporterre.net/";
|
||||||
$this->description = "Returns the newest articles.";
|
$this->description = "Returns the newest articles.";
|
||||||
$this->update = "2016-08-06";
|
$this->update = "2016-08-09";
|
||||||
}
|
}
|
||||||
|
|
||||||
private function ExtractContentReporterre($url) {
|
private function ExtractContentReporterre($url) {
|
||||||
|
@ -20,7 +20,7 @@ class ReporterreBridge extends BridgeAbstract{
|
||||||
unset ($html2);
|
unset ($html2);
|
||||||
|
|
||||||
// Replace all relative urls with absolute ones
|
// 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>');
|
$text = strip_tags($text, '<p><br><a><img>');
|
||||||
return $text;
|
return $text;
|
||||||
|
@ -42,12 +42,4 @@ class ReporterreBridge extends BridgeAbstract{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getName(){
|
|
||||||
return 'Reporterre Bridge';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getURI(){
|
|
||||||
return 'http://www.reporterre.net/';
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ class Rue89Bridge extends BridgeAbstract{
|
||||||
$this->name = "Rue89";
|
$this->name = "Rue89";
|
||||||
$this->uri = "http://rue89.nouvelobs.com/";
|
$this->uri = "http://rue89.nouvelobs.com/";
|
||||||
$this->description = "Returns the 5 newest posts from Rue89 (full text)";
|
$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/';
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -49,14 +49,6 @@ class Rule34Bridge extends BridgeAbstract{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getName(){
|
|
||||||
return 'Rule34';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getURI(){
|
|
||||||
return 'http://rule34.xxx/';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getCacheDuration(){
|
public function getCacheDuration(){
|
||||||
return 1800; // 30 minutes
|
return 1800; // 30 minutes
|
||||||
}
|
}
|
||||||
|
|
|
@ -48,14 +48,6 @@ class Rule34pahealBridge extends BridgeAbstract{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getName(){
|
|
||||||
return 'Rule34paheal';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getURI(){
|
|
||||||
return 'http://rule34.paheal.net/';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getCacheDuration(){
|
public function getCacheDuration(){
|
||||||
return 1800; // 30 minutes
|
return 1800; // 30 minutes
|
||||||
}
|
}
|
||||||
|
|
|
@ -50,14 +50,6 @@ class SafebooruBridge extends BridgeAbstract{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getName(){
|
|
||||||
return 'Safebooru';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getURI(){
|
|
||||||
return 'http://safebooru.org/';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getCacheDuration(){
|
public function getCacheDuration(){
|
||||||
return 1800; // 30 minutes
|
return 1800; // 30 minutes
|
||||||
}
|
}
|
||||||
|
|
|
@ -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(){
|
public function getCacheDuration(){
|
||||||
return 1800; // 30 minutes
|
return 1800; // 30 minutes
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ class ScmbBridge extends BridgeAbstract{
|
||||||
$this->name = "Se Coucher Moins Bête Bridge";
|
$this->name = "Se Coucher Moins Bête Bridge";
|
||||||
$this->uri = "http://secouchermoinsbete.fr/";
|
$this->uri = "http://secouchermoinsbete.fr/";
|
||||||
$this->description = "Returns the newest anecdotes.";
|
$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(){
|
public function getCacheDuration(){
|
||||||
return 21600; // 6 hours
|
return 21600; // 6 hours
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ class ScoopItBridge extends BridgeAbstract{
|
||||||
$this->name = "ScoopIt";
|
$this->name = "ScoopIt";
|
||||||
$this->uri = "http://www.scoop.it";
|
$this->uri = "http://www.scoop.it";
|
||||||
$this->description = "Returns most recent results from ScoopIt.";
|
$this->description = "Returns most recent results from ScoopIt.";
|
||||||
$this->update = "2014-06-13";
|
$this->update = "2016-08-09";
|
||||||
|
|
||||||
$this->parameters[] =
|
$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(){
|
public function getCacheDuration(){
|
||||||
return 21600; // 6 hours
|
return 21600; // 6 hours
|
||||||
}
|
}
|
||||||
|
|
|
@ -131,10 +131,6 @@ class SensCritiqueBridge extends BridgeAbstract {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getURI() {
|
|
||||||
return (trim($this->uri) === "") ? "http://www.senscritique.com" : $this->uri;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getCacheDuration(){
|
public function getCacheDuration(){
|
||||||
return 21600; // 6 hours
|
return 21600; // 6 hours
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
<?php
|
<?php
|
||||||
define("GQ", "http://www.gqmagazine.fr");
|
|
||||||
class Sexactu extends BridgeAbstract{
|
class Sexactu extends BridgeAbstract{
|
||||||
|
|
||||||
public function loadMetadatas() {
|
public function loadMetadatas() {
|
||||||
|
@ -33,7 +32,7 @@ $replace = array('January', 'February', 'March', 'April', 'May', 'June', 'July',
|
||||||
$titleData = $titleDetails->find('h2', 0)->find('a',0);
|
$titleData = $titleDetails->find('h2', 0)->find('a',0);
|
||||||
$titleTimestamp =$titleDetails->find('h4',0);
|
$titleTimestamp =$titleDetails->find('h4',0);
|
||||||
$item->title = $this->correctCase(trim($titleData->innertext));
|
$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
|
// Fugly date parsing due to the fact my DNS-323 doesn't support php intl extension
|
||||||
$dateText = $titleTimestamp->innertext;
|
$dateText = $titleTimestamp->innertext;
|
||||||
|
@ -46,7 +45,7 @@ $replace = array('January', 'February', 'March', 'April', 'May', 'June', 'July',
|
||||||
$elementText = $element->find('.text-container', 0);
|
$elementText = $element->find('.text-container', 0);
|
||||||
// don't forget to replace images server url with gq one
|
// don't forget to replace images server url with gq one
|
||||||
foreach($elementText->find('img') as $image) {
|
foreach($elementText->find('img') as $image) {
|
||||||
$image->src = GQ.$image->src;
|
$image->src = $this->uri.$image->src;
|
||||||
}
|
}
|
||||||
$item->content = $elementText->innertext;
|
$item->content = $elementText->innertext;
|
||||||
$this->items[] = $item;
|
$this->items[] = $item;
|
||||||
|
@ -58,12 +57,8 @@ $replace = array('January', 'February', 'March', 'April', 'May', 'June', 'July',
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getName(){
|
|
||||||
return 'Sexactu';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getURI(){
|
public function getURI(){
|
||||||
return GQ.'/sexactu';
|
return $this->uri.'/sexactu';
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getCacheDuration(){
|
public function getCacheDuration(){
|
||||||
|
|
|
@ -4,8 +4,8 @@ class SiliconBridge extends BridgeAbstract {
|
||||||
public function loadMetadatas() {
|
public function loadMetadatas() {
|
||||||
|
|
||||||
$this->maintainer = "ORelio";
|
$this->maintainer = "ORelio";
|
||||||
$this->name = "Silicon.fr";
|
$this->name = 'Silicon Bridge';
|
||||||
$this->uri = "http://www.silicon.fr/";
|
$this->uri = 'http://www.silicon.fr/';
|
||||||
$this->description = "Returns the newest articles.";
|
$this->description = "Returns the newest articles.";
|
||||||
$this->update = "2016-08-09";
|
$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() {
|
public function getCacheDuration() {
|
||||||
return 1800; // 30 minutes
|
return 1800; // 30 minutes
|
||||||
// return 0;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,7 +10,7 @@ class StripeAPIChangeLogBridge extends BridgeAbstract{
|
||||||
|
|
||||||
$this->maintainer = 'Pierre Mazière';
|
$this->maintainer = 'Pierre Mazière';
|
||||||
$this->name = 'Stripe API Changelog';
|
$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->description = 'Returns the changes made to the stripe.com API';
|
||||||
$this->update = '2016-08-09';
|
$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(){
|
public function getCacheDuration(){
|
||||||
return 86400; // one day
|
return 86400; // one day
|
||||||
}
|
}
|
||||||
|
|
|
@ -75,10 +75,6 @@ class SuperbWallpapersBridge extends BridgeAbstract {
|
||||||
return 'HDWallpapers - '.$this->category.' ['.$this->resolution.']';
|
return 'HDWallpapers - '.$this->category.' ['.$this->resolution.']';
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getURI(){
|
|
||||||
return 'http://www.superbwallpapers.com';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getCacheDuration(){
|
public function getCacheDuration(){
|
||||||
return 43200; // 12 hours
|
return 43200; // 12 hours
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,8 +4,8 @@ class T411Bridge extends BridgeAbstract {
|
||||||
public function loadMetadatas() {
|
public function loadMetadatas() {
|
||||||
|
|
||||||
$this->maintainer = 'ORelio';
|
$this->maintainer = 'ORelio';
|
||||||
$this->name = 'T411';
|
$this->name = 'T411 Bridge';
|
||||||
$this->uri = $this->getURI();
|
$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->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';
|
$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
|
//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);
|
$html = $this->file_get_html($url) or $this->returnError('Could not request t411: '.$url, 500);
|
||||||
$results = $html->find('table.results', 0);
|
$results = $html->find('table.results', 0);
|
||||||
if (is_null($results))
|
if (is_null($results))
|
||||||
|
@ -52,7 +52,7 @@ class T411Bridge extends BridgeAbstract {
|
||||||
usleep(500000); //So we need to wait (500ms)
|
usleep(500000); //So we need to wait (500ms)
|
||||||
|
|
||||||
//Retrieve data from RSS entry
|
//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_title = ExtractFromDelimiters($element->outertext, '" title="', '"');
|
||||||
$item_date = strtotime($element->find('dd', 0)->plaintext);
|
$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/';
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -45,10 +45,6 @@ class TagBoardBridge extends BridgeAbstract{
|
||||||
return 'tagboard - ' .$this->request;
|
return 'tagboard - ' .$this->request;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getURI(){
|
|
||||||
return 'http://TagBoard.com';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getCacheDuration(){
|
public function getCacheDuration(){
|
||||||
return 21600; // 6 hours
|
return 21600; // 6 hours
|
||||||
}
|
}
|
||||||
|
|
|
@ -49,14 +49,6 @@ class TbibBridge extends BridgeAbstract{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getName(){
|
|
||||||
return 'Tbib';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getURI(){
|
|
||||||
return 'http://tbib.org/';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getCacheDuration(){
|
public function getCacheDuration(){
|
||||||
return 1800; // 30 minutes
|
return 1800; // 30 minutes
|
||||||
}
|
}
|
||||||
|
|
|
@ -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(){
|
public function getCacheDuration(){
|
||||||
return 7200; // 2h hours
|
return 7200; // 2h hours
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ class ThePirateBayBridge extends BridgeAbstract{
|
||||||
$this->name = "The Pirate Bay";
|
$this->name = "The Pirate Bay";
|
||||||
$this->uri = "https://thepiratebay.org/";
|
$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->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[] =
|
$this->parameters[] =
|
||||||
'[
|
'[
|
||||||
|
@ -80,12 +80,4 @@ class ThePirateBayBridge extends BridgeAbstract{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getName(){
|
|
||||||
return 'The Pirate Bay';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getURI(){
|
|
||||||
return 'https://thepiratebay.org/';
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -164,10 +164,6 @@ class TwitchApiBridge extends BridgeAbstract{
|
||||||
return (!empty($this->channel) ? $this->channel . ' - ' : '') . 'Twitch API Bridge';
|
return (!empty($this->channel) ? $this->channel . ' - ' : '') . 'Twitch API Bridge';
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getURI(){
|
|
||||||
return 'https://www.twitch.tv';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getCacheDuration(){
|
public function getCacheDuration(){
|
||||||
return 10800; // 3 hours
|
return 10800; // 3 hours
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,22 +1,35 @@
|
||||||
<?php
|
<?php
|
||||||
//Based on https://github.com/mitsukarenai/twitterbridge-noapi
|
|
||||||
class TwitterBridge extends BridgeAbstract{
|
class TwitterBridge extends BridgeAbstract{
|
||||||
|
|
||||||
private $request;
|
|
||||||
|
|
||||||
public function loadMetadatas() {
|
public function loadMetadatas() {
|
||||||
|
|
||||||
$this->maintainer = "mitsukarenai";
|
$this->maintainer = "mitsukarenai";
|
||||||
$this->name = "Twitter Bridge";
|
$this->name = "Twitter Bridge";
|
||||||
$this->uri = "http://twitter.com/";
|
$this->uri = "https://twitter.com/";
|
||||||
$this->description = "Returns user timelines or keyword/hashtag search results (without using their API).";
|
$this->description = "Returns tweets by keyword/hashtag or user name";
|
||||||
$this->update = "2014-05-25";
|
$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"] =
|
$this->parameters["By keyword or hashtag"] =
|
||||||
'[
|
'[
|
||||||
{
|
{
|
||||||
"name" : "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,7 +37,11 @@ class TwitterBridge extends BridgeAbstract{
|
||||||
'[
|
'[
|
||||||
{
|
{
|
||||||
"name" : "username",
|
"name" : "username",
|
||||||
"identifier" : "u"
|
"identifier" : "u",
|
||||||
|
"type" : "text",
|
||||||
|
"required" : "true",
|
||||||
|
"exampleValue" : "sebsauvage",
|
||||||
|
"title" : "Insert a user name"
|
||||||
}
|
}
|
||||||
]';
|
]';
|
||||||
|
|
||||||
|
@ -33,25 +50,38 @@ class TwitterBridge extends BridgeAbstract{
|
||||||
public function collectData(array $param){
|
public function collectData(array $param){
|
||||||
$html = '';
|
$html = '';
|
||||||
if (isset($param['q'])) { /* keyword search mode */
|
if (isset($param['q'])) { /* keyword search mode */
|
||||||
$this->request = $param['q'];
|
$html = $this->file_get_html('https://twitter.com/search?q='.urlencode($param['q']).'&f=tweets') or $this->returnError('No results for this query.', 404);
|
||||||
$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 */
|
elseif (isset($param['u'])) { /* user timeline mode */
|
||||||
$this->request = $param['u'];
|
$html = $this->file_get_html('https://twitter.com/'.urlencode($param['u']).'/with_replies') or $this->returnError('Requested username can\'t be found.', 404);
|
||||||
$html = $this->file_get_html('http://twitter.com/'.urlencode($this->request)) or $this->returnError('Requested username can\'t be found.', 404);
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$this->returnError('You must specify a keyword (?q=...) or a Twitter username (?u=...).', 400);
|
$this->returnError('You must specify a keyword (?q=...) or a Twitter username (?u=...).', 400);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$hidePictures = false;
|
||||||
|
if (isset($param['pic']))
|
||||||
|
$hidePictures = $param['pic'] === 'on';
|
||||||
|
|
||||||
foreach($html->find('div.js-stream-tweet') as $tweet) {
|
foreach($html->find('div.js-stream-tweet') as $tweet) {
|
||||||
$item = new \Item();
|
$item = new \Item();
|
||||||
$item->username = $tweet->getAttribute('data-screen-name'); // extract username and sanitize
|
// extract username and sanitize
|
||||||
$item->fullname = $tweet->getAttribute('data-name'); // extract fullname (pseudonym)
|
$item->username = $tweet->getAttribute('data-screen-name');
|
||||||
$item->avatar = $tweet->find('img', 0)->src; // get avatar link
|
// extract fullname (pseudonym)
|
||||||
$item->id = $tweet->getAttribute('data-tweet-id'); // get TweetID
|
$item->fullname = $tweet->getAttribute('data-name');
|
||||||
$item->uri = 'https://twitter.com'.$tweet->find('a.js-permalink', 0)->getAttribute('href'); // get tweet link
|
// get author
|
||||||
$item->timestamp = $tweet->find('span.js-short-timestamp', 0)->getAttribute('data-time'); // extract tweet timestamp
|
$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
|
// processing content links
|
||||||
foreach($tweet->find('a') as $link) {
|
foreach($tweet->find('a') as $link) {
|
||||||
if($link->hasAttribute('data-expanded-url') ) {
|
if($link->hasAttribute('data-expanded-url') ) {
|
||||||
|
@ -64,20 +94,38 @@ class TwitterBridge extends BridgeAbstract{
|
||||||
$link->removeAttribute('target');
|
$link->removeAttribute('target');
|
||||||
$link->removeAttribute('title');
|
$link->removeAttribute('title');
|
||||||
}
|
}
|
||||||
$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');
|
// 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;
|
$this->items[] = $item;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getName(){
|
|
||||||
return (!empty($this->request) ? $this->request .' - ' : '') .'Twitter Bridge';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getURI(){
|
|
||||||
return 'http://twitter.com';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getCacheDuration(){
|
public function getCacheDuration(){
|
||||||
return 300; // 5 minutes
|
return 300; // 5 minutes
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -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 = '♻ @' . $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
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -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
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -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_([^&#]|(&))+&*/", "", $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
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -71,14 +71,6 @@ class UnsplashBridge extends BridgeAbstract {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getName(){
|
|
||||||
return 'Unsplash';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getURI(){
|
|
||||||
return 'http://unsplash.com';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getCacheDuration(){
|
public function getCacheDuration(){
|
||||||
return 43200; // 12 hours
|
return 43200; // 12 hours
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,14 +37,6 @@ class ViadeoCompany extends BridgeAbstract{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getName(){
|
|
||||||
return 'Viadeo';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getURI(){
|
|
||||||
return 'https://www.viadeo.com';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getCacheDuration(){
|
public function getCacheDuration(){
|
||||||
return 21600; // 6 hours
|
return 21600; // 6 hours
|
||||||
}
|
}
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue