2014-07-18 15:19:02 +04:00
< ? php
class WhydBridge extends BridgeAbstract {
2015-11-05 18:50:18 +03:00
2014-07-18 15:19:02 +04:00
private $request ;
2015-11-04 02:05:10 +03:00
public $name ;
2015-11-05 18:50:18 +03:00
public function loadMetadatas () {
$this -> maintainer = " kranack " ;
$this -> name = " Whyd Bridge " ;
$this -> uri = " http://www.whyd.com/ " ;
$this -> description = " Returns 10 newest music from user profile " ;
2016-08-09 15:54:44 +03:00
$this -> update = " 2016-08-09 " ;
2015-11-05 18:50:18 +03:00
$this -> parameters [] =
' [
{
" name " : " username/id " ,
" identifier " : " u "
}
] ' ;
}
2014-07-18 15:19:02 +04:00
public function collectData ( array $param ){
$html = '' ;
if ( isset ( $param [ 'u' ]))
{
$this -> request = $param [ 'u' ];
2014-07-18 17:41:33 +04:00
if ( strlen ( preg_replace ( " /[^0-9a-f]/ " , '' , $this -> request )) == 24 ) { // is input the userid ?
2016-06-26 00:17:42 +03:00
$html = $this -> file_get_html ( 'http://www.whyd.com/u/' . preg_replace ( " /[^0-9a-f]/ " , '' , $this -> request )) or $this -> returnError ( 'No results for this query.' , 404 );
2014-07-18 17:41:33 +04:00
} else { // input may be the username
2016-06-26 00:17:42 +03:00
$html = $this -> file_get_html ( 'http://www.whyd.com/search?q=' . urlencode ( $this -> request )) or $this -> returnError ( 'No results for this query.' , 404 );
2014-07-18 17:41:33 +04:00
for ( $j = 0 ; $j < 5 ; $j ++ ) {
if ( strtolower ( $html -> find ( 'div.user' , $j ) -> find ( 'a' , 0 ) -> plaintext ) == strtolower ( $this -> request )) {
2016-06-26 00:17:42 +03:00
$html = $this -> file_get_html ( 'http://www.whyd.com' . $html -> find ( 'div.user' , $j ) -> find ( 'a' , 0 ) -> getAttribute ( 'href' )) or $this -> returnError ( 'No results for this query' , 404 );
2014-07-18 17:41:33 +04:00
break ;
}
}
}
2014-07-18 15:19:02 +04:00
$this -> name = $html -> find ( 'div#profileTop' , 0 ) -> find ( 'h1' , 0 ) -> plaintext ;
}
else
{
2014-07-18 17:41:33 +04:00
$this -> returnError ( 'You must specify username' , 400 );
2014-07-18 15:19:02 +04:00
}
for ( $i = 0 ; $i < 10 ; $i ++ ) {
$track = $html -> find ( 'div.post' , $i );
$item = new \Item ();
2016-08-09 15:54:44 +03:00
$item -> author = $track -> find ( 'h2' , 0 ) -> plaintext ;
2014-07-18 15:19:02 +04:00
$item -> title = $track -> find ( 'h2' , 0 ) -> plaintext ;
$item -> content = $track -> find ( 'a.thumb' , 0 ) . '<br/>' . $track -> find ( 'h2' , 0 ) -> plaintext ;
$item -> id = 'http://www.whyd.com' . $track -> find ( 'a.no-ajaxy' , 0 ) -> getAttribute ( 'href' );
$item -> uri = 'http://www.whyd.com' . $track -> find ( 'a.no-ajaxy' , 0 ) -> getAttribute ( 'href' );
$this -> items [] = $item ;
}
}
public function getName (){
2014-07-18 15:31:40 +04:00
return ( ! empty ( $this -> name ) ? $this -> name . ' - ' : '' ) . 'Whyd Bridge' ;
2014-07-18 15:19:02 +04:00
}
public function getCacheDuration (){
2014-07-18 17:41:33 +04:00
return 600 ; // 10 minutes
2014-07-18 15:19:02 +04:00
}
}
2014-07-18 17:41:33 +04:00
2014-07-23 15:11:55 +04:00