getList(); break; case "tracklist": return $this->getTrackList($params[3]); break; default: return json_encode([ "message" => "This method does not exist", "type" => "ERROR", ]); break; } } else { return json_encode([ "message" => "This method does not exist", "type" => "ERROR", ]); } } public function getTrackList($id) { $folder = $this->tapesDir . "/" . urldecode($id); $contents = scandir($folder); $tracklist = []; foreach ($contents as $key => $value) { $path = realpath($folder . DIRECTORY_SEPARATOR . $value); if (!is_dir($path) && $value != ".DS_Store") { $item = explode("/", $path); if ($item[9] != "cover.jpg") { $tags = Audio::read($path); //reading cover data is lil funky, so off for now //$cover = $tags->getCover(); //$image = $cover->getContents(); $album = ""; if (empty($tags->getAlbum())) { $album = "None"; } else { $album = $tags->getAlbum(); } array_push($tracklist, [ "title" => $tags->getTitle(), "album" => $album, "artist" => $tags->getArtist(), "time" => $tags->getDuration(), "file" => $item[9], "tape" => $item[8], ]); } } } usort($tracklist, function ($a, $b) { return strnatcasecmp($a["file"], $b["file"]); }); return json_encode($tracklist); } public function getList($obj = false) { $current = scandir($this->tapesDir); $tapeList = []; foreach ($current as $key => $value) { $path = realpath($this->tapesDir . DIRECTORY_SEPARATOR . $value); if (!is_dir($path) && $value != ".DS_Store") { $results[] = $path; } elseif ($value != "." && $value != ".." && $value != ".DS_Store") { $titles = explode("/", $path); array_push($tapeList, ["path" => $path, "title" => $titles[8]]); } } if (!$obj) { return json_encode($tapeList); } else { return $tapeList; } } }