123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222 |
- <?php
- /*
- Initialize random shit
- */
- include "data/config.php";
- include "lib/frontend.php";
- $frontend = new frontend();
- [$scraper, $filters] = $frontend->getscraperfilters("music");
- $get = $frontend->parsegetfilters($_GET, $filters);
- /*
- Captcha
- */
- include "lib/bot_protection.php";
- new bot_protection($frontend, $get, $filters, "music", true);
- $payload = [
- "timetaken" => microtime(true),
- "class" => "",
- "right-left" => "",
- "right-right" => "",
- "left" => ""
- ];
- try{
- $results = $scraper->music($get);
-
- }catch(Exception $error){
-
- $frontend->drawscrapererror($error->getMessage(), $get, "music", $payload["timetaken"]);
- }
- $categories = [
- "song" => "",
- "author" => "",
- "playlist" => "",
- "album" => "",
- "podcast" => "",
- "user" => ""
- ];
- /*
- Set the main container
- */
- $main = null;
- if(count($results["song"]) !== 0){
-
- $main = "song";
-
- }elseif(count($results["album"]) !== 0){
-
- $main = "album";
-
- }elseif(count($results["playlist"]) !== 0){
-
- $main = "playlist";
-
- }elseif(count($results["podcast"]) !== 0){
-
- $main = "podcast";
- }elseif(count($results["author"]) !== 0){
-
- $main = "author";
-
- }elseif(count($results["user"]) !== 0){
-
- $main = "user";
-
- }else{
-
- // No results found!
- echo
- $frontend->drawerror(
- "Nobody here but us chickens!",
- 'Have you tried:' .
- '<ul>' .
- '<li>Using a different scraper</li>' .
- '<li>Using fewer keywords</li>' .
- '<li>Defining broader filters (Is NSFW turned off?)</li>' .
- '</ul>' .
- '</div>'
- );
- die();
- }
- /*
- Generate list of songs
- */
- foreach($categories as $name => $data){
-
- foreach($results[$name] as $item){
-
- $greentext = [];
-
- if(
- isset($item["date"]) &&
- $item["date"] !== null
- ){
-
- $greentext[] = date("jS M y @ g:ia", $item["date"]);
- }
-
- if(
- isset($item["views"]) &&
- $item["views"] !== null
- ){
-
- $views = number_format($item["views"]) . " views";
- $greentext[] = $views;
- }
-
- if(
- isset($item["followers"]) &&
- $item["followers"] !== null
- ){
-
- $greentext[] = number_format($item["followers"]) . " followers";
- }
-
- if(
- isset($item["author"]["name"]) &&
- $item["author"]["name"] !== null
- ){
-
- $greentext[] = $item["author"]["name"];
- }
-
- $greentext = implode(" • ", $greentext);
-
- if(
- isset($item["duration"]) &&
- $item["duration"] !== null
- ){
-
- $duration = $frontend->s_to_timestamp($item["duration"]);
- }else{
-
- $duration = null;
- }
-
- $tabindex = $name == $main ? true : false;
-
- $customhtml = null;
-
- if(
- (
- $name == "song" ||
- $name == "podcast"
- ) &&
- $item["stream"]["endpoint"] !== null
- ){
-
- $customhtml =
- '<audio src="/audio/' . $item["stream"]["endpoint"] . '?s=' . urlencode($item["stream"]["url"]) . '" controls autostart="false" preload="none">';
- }
-
- $categories[$name] .= $frontend->drawtextresult($item, $greentext, $duration, $get["s"], $tabindex, $customhtml);
- }
- }
- $payload["left"] = $categories[$main];
- // dont re-draw the category
- unset($categories[$main]);
- /*
- Populate right handside
- */
- $i = 1;
- foreach($categories as $name => $value){
-
- if($value == ""){
-
- continue;
- }
-
- if($i % 2 === 1){
-
- $write = "right-left";
- }else{
-
- $write = "right-right";
- }
-
- $payload[$write] .=
- '<div class="answer-wrapper">' .
- '<input id="answer' . $i . '" class="spoiler" type="checkbox">' .
- '<div class="answer">' .
- '<div class="answer-title">' .
- '<a class="answer-title" href="?s=' . urlencode($get["s"]);
-
- $payload[$write] .=
- '&type=' . $name . '"><h2>' . ucfirst($name) . 's</h2></a>';
-
- $payload[$write] .=
- '</div>' .
- $categories[$name] .
- '</div>' .
- '<label class="spoiler-button" for="answer' . $i . '"></label></div>';
-
- $i++;
- }
- if($i !== 1){
-
- $payload["class"] = " has-answer";
- }
- if($results["npt"] !== null){
-
- $payload["left"] .=
- '<a href="' . $frontend->htmlnextpage($get, $results["npt"], "music") . '" class="nextpage">Next page ></a>';
- }
- echo $frontend->load("search.html", $payload);
|