2014-05-26 00:30:46 +02:00
< ? php
class MilbooruBridge extends BridgeAbstract {
2015-11-05 16:50:18 +01:00
public function loadMetadatas () {
$this -> maintainer = " mitsukarenai " ;
$this -> name = " Milbooru " ;
$this -> uri = " http://sheslostcontrol.net/moe/shimmie/ " ;
$this -> description = " Returns images from given page " ;
2016-08-09 15:50:25 +02:00
$this -> update = " 2016-08-09 " ;
2015-11-05 16:50:18 +01:00
$this -> parameters [] =
' [
{
" name " : " page " ,
" identifier " : " p " ,
" type " : " number "
},
{
" name " : " tags " ,
" identifier " : " t "
}
] ' ;
}
2014-05-26 00:30:46 +02:00
public function collectData ( array $param ){
$page = 0 ; $tags = '' ;
if ( isset ( $param [ 'p' ])) {
$page = ( int ) preg_replace ( " /[^0-9]/ " , '' , $param [ 'p' ]);
}
if ( isset ( $param [ 't' ])) {
$tags = urlencode ( $param [ 't' ]);
}
2016-06-25 23:17:42 +02:00
$html = $this -> file_get_html ( " http://sheslostcontrol.net/moe/shimmie/index.php?q=/post/list/ $tags / $page " ) or $this -> returnError ( 'Could not request Milbooru.' , 404 );
2014-05-26 00:30:46 +02:00
foreach ( $html -> find ( 'div[class=shm-image-list] span[class=thumb]' ) as $element ) {
$item = new \Item ();
$item -> uri = 'http://sheslostcontrol.net/moe/shimmie/' . $element -> find ( 'a' , 0 ) -> href ;
$item -> postid = ( int ) preg_replace ( " /[^0-9]/ " , '' , $element -> find ( 'a' , 0 ) -> getAttribute ( 'data-post-id' ));
$item -> timestamp = time ();
2016-08-09 15:50:25 +02:00
$thumbnailUri = 'http://sheslostcontrol.net/moe/shimmie/' . $element -> find ( 'img' , 0 ) -> src ;
2014-05-26 00:30:46 +02:00
$item -> tags = $element -> find ( 'a' , 0 ) -> getAttribute ( 'data-tags' );
$item -> title = 'Milbooru | ' . $item -> postid ;
2016-08-09 15:50:25 +02:00
$item -> content = '<a href="' . $item -> uri . '"><img src="' . $thumbnailUri . '" /></a><br>Tags: ' . $item -> tags ;
2014-05-26 00:30:46 +02:00
$this -> items [] = $item ;
}
}
public function getName (){
return 'Milbooru' ;
}
public function getURI (){
return 'http://sheslostcontrol.net/moe/shimmie/' ;
}
public function getCacheDuration (){
return 1800 ; // 30 minutes
}
}