Updated SCMB Bridge : added timestamp and embedded content support (additional details, picture, video).

This commit is contained in:
Henri Rebecq 2013-08-21 11:00:54 +10:00
parent 685438d29c
commit 8bf6fda57d
2 changed files with 40 additions and 3 deletions

View File

@ -12,7 +12,7 @@ Supported sites/pages
* `Identi.ca` : Identica user timeline (Should be compatible with other Pump.io instances).
* `YouTube` : YouTube user channel feed.
* `Cryptome` : Returns the most recent documents from Cryptome.org.
* `Se coucher moins bête` : Returns the most recent anecdotes from Secouchermoinsbete.fr
* `Se coucher moins bête` : Returns the most recent anecdotes from Secouchermoinsbete.fr with their embedded content
Output format
@ -53,6 +53,7 @@ Patch/contributors :
* [Mitsukarenai](https://github.com/Mitsukarenai) : Initial inspiration, TwitterBridge, IdenticaBridge, YoutubeBridge.
* [ArthurHoaro](https://github.com/ArthurHoaro)
* [BoboTiG](https://github.com/BoboTiG)
* [supitalp](https://github.com/supitalp) : Se coucher moins bête Bridge
Licence
===

View File

@ -4,7 +4,7 @@
* Returns the newest anecdotes
*
* @name Se Coucher Moins Bête Bridge
* @description Returns the newest anecdotes
* @description Returns the newest anecdotes with their embedded content if any (additional details, picture, video)
*/
class ScmbBridge extends BridgeAbstract{
@ -16,8 +16,44 @@ class ScmbBridge extends BridgeAbstract{
$item = new \Item();
$item->uri = 'http://secouchermoinsbete.fr'.$article->find('p.summary a',0)->href;
$item->title = $article->find('header h1 a',0)->innertext;
$article->find('span.read-more',0)->outertext=''; // remove text "En savoir plus" from anecdote content
$item->content = $article->find('p.summary a',0)->innertext;
$content = $article->find('p.summary a',0)->innertext;
$content =substr($content,0,strlen($content)-17); // remove superfluous spaces at the end
// get publication date
$str_date = $article->find('time',0)->datetime;
list($date, $time) = explode(' ', $str_date);
list($y, $m, $d) = explode('-', $date);
list($h, $i) = explode(':', $time);
$timestamp = mktime($h,$i,0,$m,$d,$y);
$item->timestamp = $timestamp;
// TODO: this should be optional since it is highly time and broadband consuming
// check if the anecdote has more content to offer (text details, picture, video) and follow link to retrieve it if that is the case
$optcontent = $article->find('div.metadata-list a');
$hasPic = (preg_match("#pas#", $optcontent[0]->innertext)) ? false : true;
$hasVid = (preg_match("#pas#", $optcontent[1]->innertext)) ? false : true;
$hasDetails = (preg_match("#pas#", $optcontent[2]->innertext)) ? false : true;
if($hasDetails || $hasPic || $hasVid) $opt_html = file_get_html($item->uri);
if($hasDetails){
$details = $opt_html->find('p.details',0)->innertext;
$content = $content . '<br />' . $details;
}
if($hasPic){
$picUri = $opt_html->find('div#sources-image-wrapper a',0)->href;
$item->pictureUri = $picUri;
$content = $content . '<br /><img src="' . $item->pictureUri . '" />';
}
if($hasVid){
$vidUri = $opt_html->find('div#sources-video-wrapper iframe',0)->src;
$vidUri = explode('?', $vidUri)[0]; // remove "?autoplay=0"
$item->vidUri = $vidUri;
$content = $content . ' <a href="' . $vidUri . '">Vidéo</a>';
}
$item->content = $content;
$this->items[] = $item;
}
}