2014-05-26 02:30:46 +04:00
< ? php
class MilbooruBridge extends BridgeAbstract {
2015-11-05 18:50:18 +03:00
2016-08-27 22:03:26 +03:00
public $maintainer = " mitsukarenai " ;
public $name = " Milbooru " ;
public $uri = " http://sheslostcontrol.net/moe/shimmie/ " ;
public $description = " Returns images from given page " ;
2015-11-05 18:50:18 +03:00
2016-08-27 22:03:26 +03:00
public $parameters = array ( array (
'p' => array (
2016-08-22 02:25:56 +03:00
'name' => 'page' ,
'type' => 'number'
2016-08-27 22:03:26 +03:00
),
't' => array ( 'name' => 'tags' )
));
2015-11-05 18:50:18 +03:00
2016-08-25 02:24:53 +03:00
public function collectData (){
2014-05-26 02:30:46 +04:00
$page = 0 ; $tags = '' ;
2016-08-28 21:38:01 +03:00
if ( $this -> getInput ( 'p' )) {
2016-08-28 02:25:33 +03:00
$page = ( int ) preg_replace ( " /[^0-9]/ " , '' , $this -> getInput ( 'p' ));
2014-05-26 02:30:46 +04:00
}
2016-08-28 21:38:01 +03:00
if ( $this -> getInput ( 't' )) {
2016-08-28 02:25:33 +03:00
$tags = urlencode ( $this -> getInput ( 't' ));
2014-05-26 02:30:46 +04:00
}
2016-07-08 20:06:35 +03:00
$html = $this -> getSimpleHTMLDOM ( " http://sheslostcontrol.net/moe/shimmie/index.php?q=/post/list/ $tags / $page " ) or $this -> returnServerError ( 'Could not request Milbooru.' );
2014-05-26 02:30:46 +04:00
foreach ( $html -> find ( 'div[class=shm-image-list] span[class=thumb]' ) as $element ) {
2016-08-22 19:55:59 +03:00
$item = array ();
$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 16:50:25 +03:00
$thumbnailUri = 'http://sheslostcontrol.net/moe/shimmie/' . $element -> find ( 'img' , 0 ) -> src ;
2016-08-22 19:55:59 +03:00
$item [ 'tags' ] = $element -> find ( 'a' , 0 ) -> getAttribute ( 'data-tags' );
$item [ 'title' ] = 'Milbooru | ' . $item [ 'postid' ];
$item [ 'content' ] = '<a href="' . $item [ 'uri' ] . '"><img src="' . $thumbnailUri . '" /></a><br>Tags: ' . $item [ 'tags' ];
2016-07-08 20:06:35 +03:00
$this -> items [] = $item ;
2014-05-26 02:30:46 +04:00
}
}
public function getCacheDuration (){
return 1800 ; // 30 minutes
}
}