From fba9fc8d7836f5dc6bc02c8cd98472c0fa8e4cc1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Ml=C3=A1dek?= Date: Fri, 25 Nov 2022 16:52:15 +0100 Subject: [PATCH] feat: add "mark as broken" --- public/grid.php | 71 ++++++++++++++++++++++++++--------------------- src/Player.svelte | 27 +++++++++++++++++- 2 files changed, 66 insertions(+), 32 deletions(-) diff --git a/public/grid.php b/public/grid.php index b7c5823..d5a9d89 100644 --- a/public/grid.php +++ b/public/grid.php @@ -10,45 +10,54 @@ if (!$exists) { url TEXT NOT NULL, audio BOOLEAN NOT NULL CHECK (audio IN (0, 1)), video BOOLEAN NOT NULL CHECK (video IN (0, 1)), - ts NUMBER + ts NUMBER, + works BOOLEAN NOT NULL CHECK (works IN (0, 1)) ); EOD); } -if ($_SERVER['REQUEST_METHOD'] == "POST") { - $data = json_decode(file_get_contents('php://input')); +switch ($_SERVER['REQUEST_METHOD']) { + case "POST": + $data = json_decode(file_get_contents('php://input')); - $url = $data->url; - $audio = $data->audio; - $video = $data->video; + $url = $data->url; + $audio = $data->audio; + $video = $data->video; - if ($url !== null && $audio !== null && $video !== null) { - $stmt = $db->prepare('INSERT INTO links (url, audio, video, ts) VALUES (:url, :audio, :video, :ts);'); - $stmt->bindValue(':url', $url); - $stmt->bindValue(':audio', $audio); - $stmt->bindValue(':video', $video); - $stmt->bindValue(':ts', time()); - $result = $stmt->execute(); - if (!$result) { - http_response_code(500); + if ($url !== null && $audio !== null && $video !== null) { + $stmt = $db->prepare('INSERT INTO links (url, audio, video, ts, works) VALUES (:url, :audio, :video, :ts, TRUE);'); + $stmt->bindValue(':url', $url); + $stmt->bindValue(':audio', $audio); + $stmt->bindValue(':video', $video); + $stmt->bindValue(':ts', time()); + $result = $stmt->execute(); + if (!$result) { + http_response_code(500); + die(); + } + $result = $db->querySingle("SELECT last_insert_rowid()"); + print_r($result); + } else { + http_response_code(400); die(); } - $result = $db->querySingle("SELECT last_insert_rowid()"); - print_r($result); - } else { - http_response_code(400); - die(); - } -} else { - $result = []; + break; + case "DELETE": + $stmt = $db->prepare('UPDATE links SET works=0 WHERE id=:id'); + $stmt->bindValue(':id', $_GET["id"], SQLITE3_INTEGER); + $stmt->execute(); + break; + default: + $result = []; - $db_result = $db->query("SELECT * FROM links;"); - while ($row = $db_result->fetchArray(SQLITE3_ASSOC)) { - $row["audio"] = $row["audio"] == 1; - $row["video"] = $row["video"] == 1; - array_push($result, $row); - } + $db_result = $db->query("SELECT * FROM links WHERE works != 0;"); + while ($row = $db_result->fetchArray(SQLITE3_ASSOC)) { + $row["audio"] = $row["audio"] == 1; + $row["video"] = $row["video"] == 1; + array_push($result, $row); + } - header('Content-type: application/json; charset=utf-8'); - echo json_encode($result); + header('Content-type: application/json; charset=utf-8'); + echo json_encode($result); + break; } diff --git a/src/Player.svelte b/src/Player.svelte index dd748bc..27baeb1 100644 --- a/src/Player.svelte +++ b/src/Player.svelte @@ -1,7 +1,8 @@
@@ -129,9 +142,15 @@

Video

{#if !videoReady}{/if}
+ onBroken(videoId)} + >broken?

Audio

{#if !audioReady}{/if} BACK @@ -166,6 +185,12 @@ height: 128px; } + a { + color: red; + opacity: 0.5; + font-size: 80%; + } + .disabled { color: gray; cursor: not-allowed;