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}
+ onBroken(audioId)}
+ >broken?
BACK
@@ -166,6 +185,12 @@
height: 128px;
}
+ a {
+ color: red;
+ opacity: 0.5;
+ font-size: 80%;
+ }
+
.disabled {
color: gray;
cursor: not-allowed;