enableExceptions(true); $db->query('CREATE TABLE IF NOT EXISTS "sites" ( "id" INTEGER PRIMARY KEY AUTOINCREMENT, "name" VARCHAR NOT NULL, "url" VARCHAR NOT NULL, "summary" VARCHAR NOT NULL, "category" VARCHAR NOT NULL, "time" DATETIME NOT NULL, "nsfw" INTEGER NOT NULL )'); function submitSite($name, $url, $summary, $category) { global $db; $stm = $db->prepare('INSERT INTO "sites" ("name", "url", "summary", "category", "time", "nsfw") VALUES (?,?,?,?,?,?)'); $date = date('Y-m-d H:i:s'); $nsfw = 0; $stm->bindParam(1, $name); $stm->bindParam(2, $url); $stm->bindParam(3, $summary); $stm->bindParam(4, $category); $stm->bindParam(5, $date); $stm->bindParam(6, $nsfw); return $stm->execute(); } function getRowCount($cat=null) { global $db; if ($cat) { $stm = $db->prepare('SELECT COUNT(*) as count FROM "sites" WHERE "category" = ? ;'); $stm->bindParam(1, $cat); $results = $stm->execute(); } else { $stm = $db->prepare('SELECT COUNT(*) as count FROM "sites";'); $results = $stm->execute(); } $row = $results->fetchArray(); return intval($row['count']); } function getRandom() { global $db; $results = $db->query('SELECT * FROM "sites" ORDER BY RANDOM() LIMIT 1;'); $row = $results->fetchArray(); return $row['url']; } function renderPage($page=1, $cat) { global $db; global $manage; $no = ($page-1) * 15; if ($cat) { $stm = $db->prepare('SELECT * FROM "sites" WHERE "category" = ? ORDER BY "time" DESC LIMIT 15 OFFSET ? ;'); $stm->bindParam(1, $cat); $stm->bindParam(2, $no); $results = $stm->execute(); } else { $stm = $db->prepare('SELECT * FROM "sites" ORDER BY "time" DESC LIMIT 15 OFFSET ? ;'); $stm->bindParam(1, $no); $results = $stm->execute(); } while ($row = $results->fetchArray()) { if ($row["nsfw"]) { echo(""); } else { echo(""); } for ($i=1; $i < 5; $i++) { echo(""); if ($i == 1) { if ($manage) { echo ("

[Delete]"); echo (" [+ NSFW]"); echo (" [- NSFW]"); echo (" [Blacklist]

"); } $url = parse_url($row[$i + 1]); if ($url['scheme'] == 'https' || $url['scheme'] == 'http') { echo(' '); } else { echo("(" . $url['scheme'] . ")"); } echo(' ' . $row[$i] . ' '); if ($row["nsfw"]) { echo("(NSFW)"); } } elseif ($i ==2) { echo($row[$i+1]); } elseif ($i ==3) { $name = constant("categories")[$row[$i + 1]]; echo("" . $name . ""); } else { echo($row[$i+1]); } echo(""); } echo(""); } } # manage stuff function deleteSite($id) { global $db; $stm = $db->prepare('DELETE FROM "sites" WHERE id = ?;'); $stm->bindParam(1, $id); return $stm->execute(); } function markSiteNSFW($id, $nsfw) { global $db; $stm = $db->prepare('UPDATE "sites" SET nsfw = ? WHERE id = ?;'); $stm->bindParam(1, $nsfw); $stm->bindParam(2, $id); return $stm->execute(); } if (isset($_GET["manage"])) { $fh = fopen('secrets/password.secret','r'); if (!$fh) { $manage = false; } else { while ($hash = fgets($fh)) { if (password_verify($_GET["manage"], $hash)) { $manage = true; } else { $manage = false; } } fclose($fh); } } else { $manage = false; } ?>