mirror of
https://github.com/RSS-Bridge/rss-bridge.git
synced 2025-04-09 16:38:50 +00:00
fix: a bunch of small changes in multiple bridges (#2644)
Mostly refactors.
This commit is contained in:
parent
5b7dd45b20
commit
b6e8350596
@ -15,7 +15,9 @@ class DanbooruBridge extends BridgeAbstract {
|
|||||||
'type' => 'number'
|
'type' => 'number'
|
||||||
),
|
),
|
||||||
't' => array(
|
't' => array(
|
||||||
'name' => 'tags'
|
'type' => 'text',
|
||||||
|
'name' => 'tags',
|
||||||
|
'exampleValue' => 'cosplay',
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
0 => array()
|
0 => array()
|
||||||
|
@ -18,7 +18,7 @@ class FSecureBlogBridge extends BridgeAbstract {
|
|||||||
),
|
),
|
||||||
'oldest_date' => array(
|
'oldest_date' => array(
|
||||||
'name' => 'Oldest article date',
|
'name' => 'Oldest article date',
|
||||||
'exampleValue' => '-2 months',
|
'exampleValue' => '-6 months',
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
@ -68,6 +68,7 @@ class GelbooruBridge extends BridgeAbstract {
|
|||||||
|
|
||||||
public function collectData(){
|
public function collectData(){
|
||||||
$content = getContents($this->getFullURI());
|
$content = getContents($this->getFullURI());
|
||||||
|
// $content is empty string
|
||||||
|
|
||||||
// Most other Gelbooru-based boorus put their content in the root of
|
// Most other Gelbooru-based boorus put their content in the root of
|
||||||
// the JSON. This check is here for Bridges that inherit from this one
|
// the JSON. This check is here for Bridges that inherit from this one
|
||||||
|
@ -13,6 +13,7 @@ class KhinsiderBridge extends BridgeAbstract
|
|||||||
$html = getSimpleHTMLDOM(self::URI);
|
$html = getSimpleHTMLDOM(self::URI);
|
||||||
|
|
||||||
$dates = $html->find('#EchoTopic h3');
|
$dates = $html->find('#EchoTopic h3');
|
||||||
|
// $dates is empty
|
||||||
foreach ($dates as $date) {
|
foreach ($dates as $date) {
|
||||||
$item = array();
|
$item = array();
|
||||||
$item['uri'] = self::URI;
|
$item['uri'] = self::URI;
|
||||||
|
@ -17,7 +17,8 @@ class KununuBridge extends BridgeAbstract {
|
|||||||
'Germany' => 'de',
|
'Germany' => 'de',
|
||||||
'Switzerland' => 'ch',
|
'Switzerland' => 'ch',
|
||||||
'United States' => 'us'
|
'United States' => 'us'
|
||||||
)
|
),
|
||||||
|
'exampleValue' => 'de',
|
||||||
),
|
),
|
||||||
'full' => array(
|
'full' => array(
|
||||||
'name' => 'Load full article',
|
'name' => 'Load full article',
|
||||||
@ -46,7 +47,7 @@ class KununuBridge extends BridgeAbstract {
|
|||||||
'company' => array(
|
'company' => array(
|
||||||
'name' => 'Company',
|
'name' => 'Company',
|
||||||
'required' => true,
|
'required' => true,
|
||||||
'exampleValue' => 'kununu-us',
|
'exampleValue' => 'adesso',
|
||||||
'title' => 'Insert company name (i.e. Kununu US) or URI path (i.e. kununu-us)'
|
'title' => 'Insert company name (i.e. Kununu US) or URI path (i.e. kununu-us)'
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@ -72,7 +73,8 @@ class KununuBridge extends BridgeAbstract {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return self::URI . $site . '/' . $company . '/' . $section . '?sort=update_time_desc';
|
$url = sprintf('%s%s/%s/%s?sort=update_time_desc', self::URI, $site, $company, $section);
|
||||||
|
return $url;
|
||||||
}
|
}
|
||||||
|
|
||||||
return parent::getURI();
|
return parent::getURI();
|
||||||
@ -91,6 +93,9 @@ class KununuBridge extends BridgeAbstract {
|
|||||||
return 'https://www.kununu.com/favicon-196x196.png';
|
return 'https://www.kununu.com/favicon-196x196.png';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* All css selectors need rework
|
||||||
|
*/
|
||||||
public function collectData(){
|
public function collectData(){
|
||||||
$full = $this->getInput('full');
|
$full = $this->getInput('full');
|
||||||
|
|
||||||
|
@ -3,6 +3,7 @@ class LegifranceJOBridge extends BridgeAbstract {
|
|||||||
|
|
||||||
const MAINTAINER = 'Pierre Mazière';
|
const MAINTAINER = 'Pierre Mazière';
|
||||||
const NAME = 'Journal Officiel de la République Française';
|
const NAME = 'Journal Officiel de la République Française';
|
||||||
|
// This uri returns a snippet of js. Should probably be https://www.legifrance.gouv.fr/jorf/jo/
|
||||||
const URI = 'https://www.legifrance.gouv.fr/affichJO.do';
|
const URI = 'https://www.legifrance.gouv.fr/affichJO.do';
|
||||||
const DESCRIPTION = 'Returns the laws and decrees officially registered daily in France';
|
const DESCRIPTION = 'Returns the laws and decrees officially registered daily in France';
|
||||||
|
|
||||||
|
@ -20,6 +20,8 @@ class MsnMondeBridge extends BridgeAbstract {
|
|||||||
$html = getSimpleHTMLDOM($this->getURI());
|
$html = getSimpleHTMLDOM($this->getURI());
|
||||||
|
|
||||||
$limit = 0;
|
$limit = 0;
|
||||||
|
|
||||||
|
// TODO: fix why articles is empty
|
||||||
foreach($html->find('.smalla') as $article) {
|
foreach($html->find('.smalla') as $article) {
|
||||||
if($limit < 10) {
|
if($limit < 10) {
|
||||||
$item = array();
|
$item = array();
|
||||||
|
@ -9,7 +9,7 @@ class PillowfortBridge extends BridgeAbstract {
|
|||||||
'name' => 'Username',
|
'name' => 'Username',
|
||||||
'type' => 'text',
|
'type' => 'text',
|
||||||
'required' => true,
|
'required' => true,
|
||||||
'exampleValue' => 'vaxis2',
|
'exampleValue' => 'SomniumAeterna',
|
||||||
),
|
),
|
||||||
'noava' => array(
|
'noava' => array(
|
||||||
'name' => 'Hide avatar',
|
'name' => 'Hide avatar',
|
||||||
@ -39,6 +39,29 @@ class PillowfortBridge extends BridgeAbstract {
|
|||||||
)
|
)
|
||||||
));
|
));
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Pillowfort bridge.
|
||||||
|
*
|
||||||
|
* Pillowfort pages are dynamically generated from a json file
|
||||||
|
* which holds the last 20 or so posts from the given user.
|
||||||
|
* This bridge uses that json file and HTML/CSS similar
|
||||||
|
* to the Twitter bridge for formatting.
|
||||||
|
*/
|
||||||
|
public function collectData() {
|
||||||
|
$jsonSite = getContents($this->getJSONURI());
|
||||||
|
|
||||||
|
$jsonFile = json_decode($jsonSite, true);
|
||||||
|
$posts = $jsonFile['posts'];
|
||||||
|
|
||||||
|
foreach($posts as $post) {
|
||||||
|
$item = $this->getItemFromPost($post);
|
||||||
|
|
||||||
|
//empty when 'noreblogs' is checked and current post is a reblog.
|
||||||
|
if(!empty($item))
|
||||||
|
$this->items[] = $item;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public function getName() {
|
public function getName() {
|
||||||
$name = $this -> getUsername();
|
$name = $this -> getUsername();
|
||||||
if($name != '')
|
if($name != '')
|
||||||
@ -56,7 +79,7 @@ class PillowfortBridge extends BridgeAbstract {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected function getJSONURI() {
|
protected function getJSONURI() {
|
||||||
return $this -> getURI() . '/json';
|
return $this -> getURI() . '/json/?p=1';
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function getUsername() {
|
protected function getUsername() {
|
||||||
@ -196,27 +219,4 @@ EOD;
|
|||||||
|
|
||||||
return $item;
|
return $item;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* The Pillowfort bridge.
|
|
||||||
*
|
|
||||||
* Pillowfort pages are dynamically generated from a json file
|
|
||||||
* which holds the last 20 or so posts from the given user.
|
|
||||||
* This bridge uses that json file and HTML/CSS similar
|
|
||||||
* to the Twitter bridge for formatting.
|
|
||||||
*/
|
|
||||||
public function collectData() {
|
|
||||||
$jsonSite = getContents($this -> getJSONURI());
|
|
||||||
|
|
||||||
$jsonFile = json_decode($jsonSite, true);
|
|
||||||
$posts = $jsonFile['posts'];
|
|
||||||
|
|
||||||
foreach($posts as $post) {
|
|
||||||
$item = $this->getItemFromPost($post);
|
|
||||||
|
|
||||||
//empty when 'noreblogs' is checked and current post is a reblog.
|
|
||||||
if(!empty($item))
|
|
||||||
$this->items[] = $item;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -11,7 +11,9 @@ class RobinhoodSnacksBridge extends BridgeAbstract {
|
|||||||
{
|
{
|
||||||
$html = getSimpleHTMLDOM(self::URI);
|
$html = getSimpleHTMLDOM(self::URI);
|
||||||
|
|
||||||
foreach ($html->find('#root > div > div > div > div > div > a') as $element) {
|
$elements = $html->find('#__next > div > div > div > div > div > a');
|
||||||
|
|
||||||
|
foreach ($elements as $element) {
|
||||||
if ($element->href === 'https://snacks.robinhood.com/newsletters/page/2/') {
|
if ($element->href === 'https://snacks.robinhood.com/newsletters/page/2/') {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -67,7 +67,13 @@ class TorrentGalaxyBridge extends BridgeAbstract {
|
|||||||
$item = array();
|
$item = array();
|
||||||
$item['uri'] = self::URI . $identity->href;
|
$item['uri'] = self::URI . $identity->href;
|
||||||
$item['title'] = $identity->plaintext;
|
$item['title'] = $identity->plaintext;
|
||||||
$item['timestamp'] = DateTime::createFromFormat('d/m/y H:i', $creadate)->format('U');
|
|
||||||
|
// todo: parse date strings such as '1Hr ago' etc.
|
||||||
|
$createdAt = DateTime::createFromFormat('d/m/y H:i', $creadate);
|
||||||
|
if ($createdAt) {
|
||||||
|
$item['timestamp'] = $createdAt->format('U');
|
||||||
|
}
|
||||||
|
|
||||||
$item['author'] = $authorid->plaintext;
|
$item['author'] = $authorid->plaintext;
|
||||||
$item['content'] = <<<HTML
|
$item['content'] = <<<HTML
|
||||||
<h1>{$identity->plaintext}</h1>
|
<h1>{$identity->plaintext}</h1>
|
||||||
|
@ -17,21 +17,24 @@ class ViadeoCompanyBridge extends BridgeAbstract {
|
|||||||
));
|
));
|
||||||
|
|
||||||
public function collectData(){
|
public function collectData(){
|
||||||
$html = '';
|
// Redirects to https://emploi.lefigaro.fr/recherche/entreprises
|
||||||
$link = self::URI . 'fr/company/' . $this->getInput('c');
|
$url = sprintf('%sfr/company/%s', self::URI, $this->getInput('c'));
|
||||||
|
|
||||||
$html = getSimpleHTMLDOM($link);
|
$html = getSimpleHTMLDOM($url);
|
||||||
|
|
||||||
foreach($html->find('//*[@id="company-newsfeed"]/ul/li') as $element) {
|
// TODO: Fix broken xpath selector
|
||||||
|
$elements = $html->find('//*[@id="company-newsfeed"]/ul/li');
|
||||||
|
|
||||||
|
foreach($elements as $element) {
|
||||||
$title = $element->find('p', 0)->innertext;
|
$title = $element->find('p', 0)->innertext;
|
||||||
if($title) {
|
if(!$title) {
|
||||||
$item = array();
|
continue;
|
||||||
$item['uri'] = $link;
|
|
||||||
$item['title'] = mb_substr($element->find('p', 0)->innertext, 0, 100);
|
|
||||||
$item['content'] = $element->find('p', 0)->innertext;;
|
|
||||||
$this->items[] = $item;
|
|
||||||
$i++;
|
|
||||||
}
|
}
|
||||||
|
$item = array();
|
||||||
|
$item['uri'] = $url;
|
||||||
|
$item['title'] = mb_substr($element->find('p', 0)->innertext, 0, 100);
|
||||||
|
$item['content'] = $element->find('p', 0)->innertext;;
|
||||||
|
$this->items[] = $item;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
class ZenodoBridge extends BridgeAbstract {
|
class ZenodoBridge extends BridgeAbstract {
|
||||||
const MAINTAINER = 'theradialactive';
|
const MAINTAINER = 'theradialactive';
|
||||||
const NAME = 'Zenodo';
|
const NAME = 'Zenodo';
|
||||||
@ -17,10 +18,21 @@ class ZenodoBridge extends BridgeAbstract {
|
|||||||
ENT_QUOTES
|
ENT_QUOTES
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
foreach($element->find('p', 0)->find('span') as $authors) {
|
|
||||||
$item['author'] = $item['author'] . $authors . '; ';
|
$p1 = $element->find('p', 0);
|
||||||
|
if ($p1) {
|
||||||
|
foreach ($p1->find('span') as $authors) {
|
||||||
|
$item['author'] = $item['author'] . $authors . '; ';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
$content = $element->find('p.hidden-xs', 0)->find('a', 0)->innertext . '<br>';
|
|
||||||
|
$p2 = $element->find('p.hidden-xs', 0);
|
||||||
|
if ($p2) {
|
||||||
|
$content = $p2->find('a', 0)->innertext . '<br>';
|
||||||
|
} else {
|
||||||
|
$content = 'Nope';
|
||||||
|
}
|
||||||
|
|
||||||
$type = '<br>Type: ' . $element->find('span.label-default', 0)->innertext;
|
$type = '<br>Type: ' . $element->find('span.label-default', 0)->innertext;
|
||||||
|
|
||||||
$raw_date = $element->find('small.text-muted', 0)->innertext;
|
$raw_date = $element->find('small.text-muted', 0)->innertext;
|
||||||
|
Loading…
Reference in New Issue
Block a user