summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--database.h5
-rw-r--r--litterbox.c13
2 files changed, 10 insertions, 8 deletions
diff --git a/database.h b/database.h
index fa0dc10..810ce94 100644
--- a/database.h
+++ b/database.h
@@ -226,9 +226,10 @@ static const char *InitSQL = SQL(
 	);
 
 	CREATE TABLE topics (
-		context INTEGER NOT NULL REFERENCES contexts,
 		time DATETIME NOT NULL,
-		topic TEXT
+		context INTEGER NOT NULL REFERENCES contexts,
+		topic TEXT NOT NULL,
+		UNIQUE (context, topic)
 	);
 
 	CREATE TABLE names (
diff --git a/litterbox.c b/litterbox.c
index ff110d4..c1938cd 100644
--- a/litterbox.c
+++ b/litterbox.c
@@ -49,8 +49,8 @@ static void prepare(void) {
 	dbPersist(&insert.context, InsertContext);
 
 	const char *InsertTopic = SQL(
-		INSERT INTO topics (context, time, topic)
-		SELECT context, coalesce(datetime(:time), datetime('now')), :topic
+		INSERT OR IGNORE INTO topics (time, context, topic)
+		SELECT coalesce(datetime(:time), datetime('now')), context, :topic
 		FROM contexts WHERE network = :network AND name = :context;
 	);
 	dbPersist(&insert.topic, InsertTopic);
@@ -115,10 +115,10 @@ static void insertContext(const char *context, bool query) {
 }
 
 static void insertTopic(
-	const char *context, const char *time, const char *topic
+	const char *time, const char *context, const char *topic
 ) {
-	dbBindText(insert.topic, ":context", context);
 	dbBindText(insert.topic, ":time", time);
+	dbBindText(insert.topic, ":context", context);
 	dbBindText(insert.topic, ":topic", topic);
 	dbRun(insert.topic);
 }
@@ -385,8 +385,8 @@ static void handlePrivmsg(struct Message *msg) {
 
 static void handleReplyTopic(struct Message *msg) {
 	require(msg, false, 2);
-	if (!strcmp(msg->cmd, "331")) msg->params[2] = NULL;
-	insertTopic(msg->params[1], msg->time, msg->params[2]);
+	if (!strcmp(msg->cmd, "331")) msg->params[2] = "";
+	insertTopic(msg->time, msg->params[1], msg->params[2]);
 }
 
 static void handleReplyNames(struct Message *msg) {
@@ -465,6 +465,7 @@ static void handleQuit(struct Message *msg) {
 static void handleTopic(struct Message *msg) {
 	require(msg, true, 1);
 	insertContext(msg->params[0], false);
+	insertTopic(msg->params[0], msg->params[1]);
 	insertName(msg->nick, msg->user, msg->host);
 	insertEvent(
 		msg->time, Topic, msg->params[0],
class='logsubject'>Import /usr/src/bin/sh from FreeBSD 12.1-RELEASEJune McEnroe 2020-03-09Remove 1sh sourcesJune McEnroe I'm going to recreate it from fresh sh sources for clean git history. 2020-03-08Add The Stone SkyJune McEnroe 2020-03-08Publish "How I Relay Chat"June McEnroe 2020-03-03Don't use $ inside $(())June McEnroe 2020-03-03Remove setoptJune McEnroe 2020-03-03Use getopts in shell scriptsJune McEnroe WTF why did no one tell me about this? 2020-02-27Style %T outside of Rs in italicJune McEnroe 2020-02-26Add Fierce Femmes and Notorious LiarsJune McEnroe 2020-02-23Add This Is How You Lose the Time WarJune McEnroe 2020-02-22Add See Ya LaterJune McEnroe 2020-02-20Remove wiki scriptJune McEnroe Wikipedia seems to have removed the one-sentence extracts from the opensearch results. Too bad. It's not a wiki script, what we need is a command that fetches single-sentence summaries of articles on Wikipedia. 2020-02-19Add The Obelisk GateJune McEnroe 2020-02-17Add Four Tet — HandsJune McEnroe One from the cafe that caught my attention. 2020-02-12Simplify macOS notify-sendJune McEnroe 2020-02-12Add imbox and notemap to pageJune McEnroe 2020-02-12Collapse simple linksJune McEnroe 2020-02-12Move catgirl up the pageJune McEnroe 2020-02-12Update catgirl pty grabJune McEnroe 2020-02-12Link to cgit /about pages where appropriateJune McEnroe 2020-02-11Separate LINKS from BINS for html to workJune McEnroe 2020-02-11Add margin to Bl-bullet itemsJune McEnroe 2020-02-10Match URLs inside parens or with paired parens insideJune McEnroe 2020-02-10Duplicate effective URL before passing it back to curlJune McEnroe Apparently sometimes it didn't like receiving its own internal storage to parse again. Understandable. 2020-02-09Add To Be Taught, If FortunateJune McEnroe 2020-02-04Add The Future of Another TimelineJune McEnroe Wow. One of the best I've read. 2020-01-31Reorganize the Makefile for the umpteenth timeJune McEnroe Broke out LDLIBS for each bin, and made everything more uniform. 2020-01-28Change scout sensitivity to 1.4June McEnroe idk it seems to work. 2020-01-28Import shows.txtJune McEnroe