From: Chris Fulljames Date: Sun, 10 May 2026 19:21:53 +0000 (-0400) Subject: Initial commit X-Git-Url: https://littlesong.place/gitweb/?a=commitdiff_plain;h=d42764df0904bfb9a6627bd8a86b35e07922eb12;p=swapshop.git Initial commit --- d42764df0904bfb9a6627bd8a86b35e07922eb12 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..dbf4200 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +database.db diff --git a/collabs.php b/collabs.php new file mode 100644 index 0000000..52accb7 --- /dev/null +++ b/collabs.php @@ -0,0 +1,161 @@ +prepare($query); + $statement->setFetchMode(PDO::FETCH_ASSOC); + $result = $statement->execute($params); + #$statement->debugDumpParams(); + if (!$result) { + error(500, "Uh-oh, something went wrong. Sorry!"); + } + return $statement; +} + +function peep_exists($e, $n) { + $q = query_db( + "SELECT * FROM peeps WHERE eventid = :eventid AND name = :name", + [ 'eventid' => $e, 'name' => $n ] + ); + return (bool) $q->fetch(); +} + +function add_peep($e, $n) { + query_db( + "INSERT INTO peeps (eventid, name, number) + VALUES (:eventid, :name, :number)", + [ 'eventid' => $e, 'name' => $n, 'number' => rand() ] + ); +} + +function get_peeps($e) { + if (!$e) return []; + + return query_db( + "SELECT * FROM peeps WHERE eventid = :eventid ORDER BY COALESCE(number, name)", + [ 'eventid' => $e ]) + ->fetchAll(); +} + +if ($event == "new") { + // Create new event and redirect + $q = query_db("INSERT INTO events DEFAULT VALUES RETURNING eventid"); + $event = $q->fetch()['eventid']; + header('Location: '.event_url($event)); + exit; +} + +if (isset($event) && isset($name)) { + // Add user to db if they don't exist already + if (!peep_exists($event, $name)) { + add_peep($event, $name); + } +} + +$peeps = get_peeps($event); +$shareable_link = event_url($event); +?> + + + + The Swap Shop + + + + + + + + + +

The Swap Shop

+ + + +

Hello, !

+ +

Hello!

+
+ + + +
+ + + +
+

Today's Shoppers

+ + \n"; + echo "\n"; + } + $first = reset($peeps); + echo "\n"; + ?> +
$p[name]
$first[name]
+ +

Waiting for peeps to join...

+ + +
+ + Shareable link for this swap list: +
+
+ +
+
+ + +
+
+

How it works

+
    +
  1. Start a song, work for 30 minutes +
  2. Send it to the person after you on the list +
  3. Finish the song you receive from the person before you +
  4. +
+ + + diff --git a/schema.sql b/schema.sql new file mode 100644 index 0000000..5f8afc1 --- /dev/null +++ b/schema.sql @@ -0,0 +1,14 @@ +DROP TABLE IF EXISTS events; +CREATE TABLE events ( + eventid INTEGER PRIMARY KEY +); + +DROP TABLE IF EXISTS peeps; +CREATE TABLE peeps ( + eventid INTEGER NOT NULL, + name TEXT NOT NULL, + number INTEGER NOT NULL, + PRIMARY KEY(eventid, name), + FOREIGN KEY(eventid) references events(eventid) ON DELETE CASCADE +); +