From 226516aca48e97d3dc4e4df213bc2023e64b1afd Mon Sep 17 00:00:00 2001 From: Minteck Date: Sun, 27 Mar 2022 21:29:24 +0200 Subject: Initial commit --- api/count_local_view.php | 1 + api/get_app_css.php | 14 +++++ api/get_app_js.php | 14 +++++ api/get_audio_files.php | 50 +++++++++++++++++ api/get_image.php | 20 +++++++ api/get_list.php | 141 +++++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 240 insertions(+) create mode 100644 api/count_local_view.php create mode 100644 api/get_app_css.php create mode 100644 api/get_app_js.php create mode 100644 api/get_audio_files.php create mode 100644 api/get_image.php create mode 100644 api/get_list.php (limited to 'api') diff --git a/api/count_local_view.php b/api/count_local_view.php new file mode 100644 index 0000000..6fd199e --- /dev/null +++ b/api/count_local_view.php @@ -0,0 +1 @@ + "https://" . ($_FAMILINE ? "music-audio-media01.familine.minteck.org" : "mediacdn.argon.minteck.org") . "/$f/original.flac", + "originalpcm" => "https://" . ($_FAMILINE ? "music-audio-media01.familine.minteck.org" : "mediacdn.argon.minteck.org") . "/$f/originalpcm.wav", + "ultrahigh" => "https://" . ($_FAMILINE ? "music-audio-media01.familine.minteck.org" : "mediacdn.argon.minteck.org") . "/$f/ultrahigh.flac", + "ultrahighpcm" => "https://" . ($_FAMILINE ? "music-audio-media01.familine.minteck.org" : "mediacdn.argon.minteck.org") . "/$f/ultrahighpcm.wav", + "veryhigh" => "https://" . ($_FAMILINE ? "music-audio-media01.familine.minteck.org" : "mediacdn.argon.minteck.org") . "/$f/veryhigh.mp3", + "high" => "https://" . ($_FAMILINE ? "music-audio-media01.familine.minteck.org" : "mediacdn.argon.minteck.org") . "/$f/high.mp3", + "medium" => "https://" . ($_FAMILINE ? "music-audio-media01.familine.minteck.org" : "mediacdn.argon.minteck.org") . "/$f/medium.mp3", + "low" => "https://" . ($_FAMILINE ? "music-audio-media01.familine.minteck.org" : "mediacdn.argon.minteck.org") . "/$f/low.mp3", + "verylow" => "https://" . ($_FAMILINE ? "music-audio-media01.familine.minteck.org" : "mediacdn.argon.minteck.org") . "/$f/verylow.mp3", + "ultralow" => "https://" . ($_FAMILINE ? "music-audio-media01.familine.minteck.org" : "mediacdn.argon.minteck.org") . "/$f/ultralow.mp3", + "superlow" => "https://" . ($_FAMILINE ? "music-audio-media01.familine.minteck.org" : "mediacdn.argon.minteck.org") . "/$f/superlow.mp3", +]; + +if (file_exists($_SERVER["DOCUMENT_ROOT"] . "/data/local/" . $f)) { + file_put_contents($_SERVER["DOCUMENT_ROOT"] . "/data/local/" . $f, ((int)file_get_contents($_SERVER["DOCUMENT_ROOT"] . "/data/local/" . $f)) + 1); +} else { + file_put_contents($_SERVER["DOCUMENT_ROOT"] . "/data/local/" . $f, "1"); +} + +die(json_encode($out, JSON_PRETTY_PRINT)); \ No newline at end of file diff --git a/api/get_image.php b/api/get_image.php new file mode 100644 index 0000000..e8ea59f --- /dev/null +++ b/api/get_image.php @@ -0,0 +1,20 @@ + $song, + 'original' => null, + 'link' => '', + 'author' => 'Minteck', + 'description' => '', + 'release' => '1970-01-01', + 'lyrics' => null, + 'wip' => false, + 'set' => null, + 'external' => [ + 'youtube' => null, + 'soundcloud' => null + ] + ]; + } +} + +$sets = []; +foreach (scandir($_SERVER["DOCUMENT_ROOT"] . "/data/sets") as $set) { + if (!str_starts_with($set, ".")) { + $set_data = json_decode(file_get_contents($_SERVER["DOCUMENT_ROOT"] . "/data/sets/" . $set), true); + $set_songs = []; + + foreach ($set_data["songs"] as $song) { + if (in_array($song, $listSongs)) { + $set_songs[] = $song; + if (isset($songs[$song])) { + $songs[$song]["set"] = $set_data; + $songs[$song]["_id"] = $song; + $songs[$song]["_localViews"] = file_exists($_SERVER["DOCUMENT_ROOT"] . "/data/local/" . $song) ? (int)file_get_contents($_SERVER["DOCUMENT_ROOT"] . "/data/local/" . $song) : 0; + if (!isset($songs[$song]["_released"])) $songs[$song]["_released"] = true; + } + } else if (str_starts_with($song, ":")) { + $listSongs[] = $song; + $songs[$song] = [ + 'name' => substr($song, 1), + 'original' => null, + 'link' => null, + 'author' => null, + 'description' => null, + 'release' => null, + 'lyrics' => null, + 'set' => null, + 'wip' => true, + '_released' => false + ]; + + $set_songs[] = $song; + $songs[$song]["set"] = $set_data; + $songs[$song]["_id"] = $song; + $songs[$song]["_localViews"] = file_exists($_SERVER["DOCUMENT_ROOT"] . "/data/local/" . $song) ? (int)file_get_contents($_SERVER["DOCUMENT_ROOT"] . "/data/local/" . $song) : 0; + if (!isset($songs[$song]["_released"])) $songs[$song]["_released"] = true; + } + } + $set_data["songs"] = $set_songs; + $sets[explode(".", $set)[0]] = $set_data; + } +} + +$knownSongs = []; +$list = []; +foreach ($sets as $id => $set) { + $set["_type"] = "set"; + $set["_id"] = $id; + + foreach ($set["songs"] as $index => $song) { + $knownSongs[] = $song; + $songs[$song]["set"]["_id"] = $id; + $set["songs"][$index] = $songs[$song]; + } + + $list[] = $set; +} +foreach ($songs as $id => $song) { + $song["_type"] = "song"; + $song["_id"] = $id; + if (!isset($song["_released"])) $song["_released"] = true; + if (!in_array($id, $knownSongs)) { + $knownSongs[] = $id; + $list[] = $song; + } +} + +usort($list, function ($a, $b) { + return strtotime($a["release"]) - strtotime($b["release"]); +}); +$list = array_reverse($list); + +$sorted = []; +foreach ($list as $item) { + if ($item["_type"] === "song") { + if (!str_starts_with($item["_id"], ":") && !str_starts_with($item["_id"], "_")) { + $sorted[] = $item["_id"]; + } + } else if ($item["_type"] === "set") { + $set_songs_sorted = array_reverse($item["songs"]); + foreach ($set_songs_sorted as $song) { + if (!str_starts_with($song["_id"], ":") && !str_starts_with($song["_id"], "_")) { + $sorted[] = $song["_id"]; + } + } + } +} +$sorted = array_reverse($sorted); + +$out = [ + "songs" => $songs, + "sets" => $sets, + "listing" => $list, + "sorted" => $sorted +]; + +die(json_encode($out, JSON_PRETTY_PRINT)); \ No newline at end of file -- cgit