From bc54503ab4a688b1296a91f690a067e65566218d Mon Sep 17 00:00:00 2001
From: Horscchtey <eva.dengler@fau.de>
Date: Sat, 11 Apr 2020 08:43:34 +0000
Subject: [PATCH] update.

---
 src/boddle.db | Bin 73728 -> 110592 bytes
 src/bot.go    | 137 +++++++++++++++++++++++++++++---------------------
 2 files changed, 80 insertions(+), 57 deletions(-)

diff --git a/src/boddle.db b/src/boddle.db
index ab1582695156c8bb71bc67a2ada26bb4e1365965..c68bb08cdb3af69e5f08e528e0c83da0c4d58b6a 100644
GIT binary patch
delta 34778
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
OGzOFd9SY7&&Hw<rr$cuD

delta 304
zcmZp8z}9epWr7qNQvw46gV00;I}l5c)oEkO0(l`;{wE9!3=DkyzxluMzvBPE|75eG
z!WRCC6J#ep*Oz6M;IP}wZeYx`v5|#svz^5;cP>W$-yjV_{J*#IF}~&JVPIeowBTZ3
zU<l#kp3H8ra<ig9H1B5adEX3UxgIlUG0kV<<>tA{vy>-}{|pZY_eSnS{v@t9Tno5l
zINxzD=d|Lu!jZ-Pk9|LTIy*nxCAQ^k?rbcqCs>PE6<GGLw6G{KFK2FK4rO}9Z^n0l
zFNIH@_c8A@rujT}8yg*&CJS8l-mHH0Cp#yP9RnxGSqzgE?v_sefA=;UZvbxqgTh2d
znaO<jKd~?{Ft|-@blMz!`3&Rasduv`-@0eA=>dxYvkV9Kbanwo%Z-hv*|&2`Fn(nR
E0MoZxR{#J2

diff --git a/src/bot.go b/src/bot.go
index e7216a9..4ff1568 100644
--- a/src/bot.go
+++ b/src/bot.go
@@ -25,6 +25,10 @@ type bot struct {
 	channel1	string
 	channel2	string
 	channel3	string
+	channel4	string
+	channel5	string
+	channel6	string
+	channel7	string
 	port	int
 	server	string
 	conn	net.Conn
@@ -58,7 +62,7 @@ func scanline_privmsg (msg string) irc_msg {
 func parsemsg(line string, foo bot) bool {
 	ircmsg := scanline_privmsg (line)
 
-	functs := []string{"help", "info", "meow", "jokes", "gra", "idb", "flirt", "add jokes", "add flirt", "geh schlafen", "deutsch"}
+	functs := []string{"help", "info", "meow", "jokes", "idb", "flirt", "add jokes", "add flirt", "geh schlafen", "deutsch"}
 
 	blobs := []string{"frauen", "GRa", "egalwie", "scherzfragen", "sterben",
 		"deinemudder", "gulasch", "flach", "maenner", "telefon"}
@@ -75,7 +79,27 @@ func parsemsg(line string, foo bot) bool {
 		"zinn_des_lebens": true,
 	}
 
-	if strings.HasPrefix(ircmsg.msg, "+help") {
+/*
+	if strings.HasPrefix(ircmsg.msg, ">") {
+		if strings.Compare(ircmsg.author, "cody") == 0 {
+			sendmsg(foo.conn, ircmsg.channel, "klein cody möchte bitte von mama mute aus dem bällebad abgeholt werden!")
+			return true
+		} else if strings.Compare(ircmsg.author, "mute") == 0 {
+			bloederspruch := []string{"awwwww mal wieder auf der Suche nach Liebe?",
+						  "Hallo kleiner :)",
+						  "Du suchst was lustiges oder? hamma ned",
+						  "Kääääääääääääääääääsebrot!",
+						  "Ja, das sind nur endlich viele dumme Sprüche...",
+						  "lalallalaallaalaaaaaa",
+						  "Bist du ein Blobfisch?",
+						  "Erst haten und dann doch nutzen...."}
+
+			sendmsg(foo.conn, ircmsg.channel, bloederspruch[rand.Int()%len(bloederspruch)])
+		}
+	}
+*/
+
+	if strings.HasPrefix(ircmsg.msg, ">help") {
 		// help
 		input := strings.Split(ircmsg.msg, " ")
 		if len(input) == 2 {
@@ -99,39 +123,37 @@ func parsemsg(line string, foo bot) bool {
 				case "meow":
 					helpmsg = "the bot changes to a not really helpful cat like every cat but is not fluffy during that phase so this function is kinda useless?"
 				case "jokes":
-					helpmsg = fmt.Sprintf("call with +jokes for a random category, call with one or more categories from %s to receive a joke selected from those categories", fmt.Sprintf(strings.Join(blobs, ", ")))
-				case "gra":
-					helpmsg = "print famous citations from a small group of GRa-ndiose students"
+					helpmsg = fmt.Sprintf("call with >jokes for a random category, call with one or more categories from %s to receive a joke selected from those categories", fmt.Sprintf(strings.Join(blobs, ", ")))
 				case "idb":
-					helpmsg = "get your personalized database-related nickname by calling +idb or get one for your friend with +idb <name>"
+					helpmsg = "get your personalized database-related nickname by calling >idb or get one for your friend with >idb <name>"
 				case "flirt":
-					helpmsg = "get flirt messages with +flirt or flirt with your best friend using +flirt <your love>"
+					helpmsg = "get flirt messages with >flirt or flirt with your best friend using >flirt <your love>"
 				case "add jokes":
-					helpmsg = "type +add jokes for more information"
+					helpmsg = "type >add jokes for more information"
 				case "add flirt":
-					helpmsg = "add your best pick up line using +add flirt <pickup line>"
+					helpmsg = "add your best pick up line using >add flirt <pickup line>"
 				case "geh schlafen":
 					helpmsg = "send the bot to sleep until the next reconnect"
 				case "deutsch":
-					helpmsg = "get a personalized nickname, enriched by some mysterious german word, by calling +deutsch or get one for your friend with +deutsch <name>"
+					helpmsg = "get a personalized nickname, enriched by some mysterious german word, by calling >deutsch or get one for your friend with >deutsch <name>"
 				}
-				sendmsg(foo.conn, ircmsg.channel, fmt.Sprintf("+%s: %s", req, helpmsg))
+				sendmsg(foo.conn, ircmsg.channel, fmt.Sprintf(">%s: %s", req, helpmsg))
 			}
 		} else if len(input) > 2 {
 			sendmsg(foo.conn, ircmsg.channel, fmt.Sprintf("Please choose only one function for help: %s", fmt.Sprintf(strings.Join(functs, ", "))))
 		} else {
 			sendmsg(foo.conn, ircmsg.channel, "Segmentation fault")
-			sendmsg(foo.conn, ircmsg.channel, fmt.Sprintf("I haz functs: %s, call +help <func> for more information on da function :)",
+			sendmsg(foo.conn, ircmsg.channel, fmt.Sprintf("I haz functs: %s, call >help <func> for more information on da function :)",
 				fmt.Sprintf(strings.Join(functs, ", "))))
 
 		}
-	} else if strings.Compare(ircmsg.msg, "+info") == 0 {
+	} else if strings.Compare(ircmsg.msg, ">info") == 0 {
 		// info
 		sendmsg(foo.conn, ircmsg.channel, "created in golang with love, cats and tears >:)")
-	} else if strings.Compare(ircmsg.msg, "+meow") == 0 {
+	} else if strings.Compare(ircmsg.msg, ">meow") == 0 {
 		// meow
 		sendmsg(foo.conn, ircmsg.channel, meow[rand.Int()%len(meow)])
-	} else if strings.HasPrefix(ircmsg.msg, "+jokes") {
+	} else if strings.HasPrefix(ircmsg.msg, ">jokes") {
 		// jokes
 
 		var jokes []string
@@ -152,9 +174,9 @@ func parsemsg(line string, foo bot) bool {
 
 		var tasks string
 		if (len(jokes) == 0) {
-			tasks = fmt.Sprintf("select e.line, c.name from jokes e join category c on c.id = e.category")
+			tasks = fmt.Sprintf("select e.line, c.name from jokes e join category c on c.id = e.category ORDER BY RANDOM() LIMIT 1")
 		} else {
-			tasks = fmt.Sprintf("select e.line from jokes e join category c on c.id = e.category where c.name = '%s'", fmt.Sprintf(strings.Join(jokes, "' or c.name = '")))
+			tasks = fmt.Sprintf("select e.line from jokes e join category c on c.id = e.category where c.name = '%s' ORDER BY RANDOM() LIMIT 1", fmt.Sprintf(strings.Join(jokes, "' or c.name = '")))
 		}
 
 		rows, err := db.Query(tasks)
@@ -162,35 +184,34 @@ func parsemsg(line string, foo bot) bool {
 			panic(err)
 			return true
 		}
-		var joke []string
-		var cats []string
+		var joke string
+		var cats string
 		for rows.Next() {
 			if (len(jokes) == 0) {
 				var curr string
 				var catc string
 				rows.Scan(&curr, &catc)
-				joke = append(joke, curr)
-				cats = append(cats, catc)
+				joke = curr
+				cats = catc
 			} else {
 				var curr string
 				rows.Scan(&curr)
-				print(curr)
-				joke = append(joke, curr)
+				joke = curr
 			}
 		}
 
 		rows.Close()
+
 		if (len(joke) == 0) {
 			sendmsg(foo.conn, ircmsg.channel, "There are no jokes bitch. Or this programmer sucks...")
 		} else {
 			if (len(jokes) == 0) {
-				tmp := rand.Int()%len(joke)
-				sendmsg(foo.conn, ircmsg.channel, fmt.Sprintf("from category %s: %s", cats[tmp], joke[tmp]))
+				sendmsg(foo.conn, ircmsg.channel, fmt.Sprintf("from category %s: %s", cats, joke))
 			} else {
-				sendmsg(foo.conn, ircmsg.channel, joke[rand.Int()%len(joke)])
+				sendmsg(foo.conn, ircmsg.channel, joke)
 			}
 		}
-	} else if strings.HasPrefix(ircmsg.msg, "+add jokes") {
+	} else if strings.HasPrefix(ircmsg.msg, ">add jokes") {
 		if ! jokeusers[ircmsg.author] {
 			sendmsg(foo.conn, ircmsg.channel, "lol bitch get funnier")
 //			return true
@@ -254,13 +275,19 @@ func parsemsg(line string, foo bot) bool {
 			return true
 		}
 		sendmsg(foo.conn, ircmsg.channel, "i guess that worked")
-	} else if strings.HasPrefix(ircmsg.msg, "+flirt") {
+	} else if strings.HasPrefix(ircmsg.msg, ">flirt preisi") {
+		sendmsg(foo.conn, ircmsg.channel, "~PREISI IST SEXY~ - deine Verehrer von dem neuen Ecksofa.")
+	} else if strings.HasPrefix(ircmsg.msg, ">flirt") || strings.Contains(ircmsg.msg, " liebe ") || strings.Contains(ircmsg.msg, " Liebe ") || strings.Contains(ircmsg.msg, " love ") || strings.Contains(ircmsg.msg, " Love ") {
 		// flirt
 		var ppl []string
-		for _, v := range strings.Split(ircmsg.msg, " ") {
-			if ! strings.HasPrefix(v, "+flirt") {
-				ppl = append(ppl, v)
+		if strings.HasPrefix(ircmsg.msg, ">flirt") {
+			for _, v := range strings.Split(ircmsg.msg, " ") {
+				if ! strings.HasPrefix(v, ">flirt") {
+					ppl = append(ppl, v)
+				}
 			}
+		} else {
+			ppl = append(ppl,ircmsg.author)
 		}
 
 		db, err := sql.Open("sqlite3", "./boddle.db")
@@ -269,26 +296,28 @@ func parsemsg(line string, foo bot) bool {
 			return true
 		}
 
-		rows, err := db.Query("select e.flirt from flirt e")
+		rows, err := db.Query("select e.flirt from flirt e ORDER BY RANDOM() LIMIT 1")
 		if err != nil {
 			panic(err)
 			return true
 		}
-		var flirt []string
+		var flirt string
 		for rows.Next() {
 			var curr string
 			rows.Scan(&curr)
-			flirt = append(flirt, curr)
+			flirt = curr
 		}
 		rows.Close()
 
 		if (len(ppl) == 0) {
-			sendmsg(foo.conn, ircmsg.channel, flirt[rand.Int()%len(flirt)])
+			sendmsg(foo.conn, ircmsg.channel, flirt)
 			return true
 		} else {
-			sendmsg(foo.conn, ircmsg.channel, fmt.Sprintf("%s, %s <3", flirt[rand.Int()%len(flirt)], fmt.Sprintf(strings.Join(ppl, ", "))))
+			sendmsg(foo.conn, ircmsg.channel, fmt.Sprintf("%s, %s <3", flirt, fmt.Sprintf(strings.Join(ppl, ", "))))
 		}
-	} else if strings.HasPrefix(ircmsg.msg, "+add flirt") {
+	} else if strings.HasPrefix(ircmsg.msg, "horscchtey: fix") {
+		sendmsg(foo.conn, ircmsg.channel, "Hat mich denn hier niemand so lieb, wie ich bin? :(")
+	} else if strings.HasPrefix(ircmsg.msg, ">add flirt") {
 		if ! jokeusers[ircmsg.author] {
 			sendmsg(foo.conn, ircmsg.channel, "ur a cum-puter sciene student, learn how to flirt!")
 		}
@@ -324,15 +353,11 @@ func parsemsg(line string, foo bot) bool {
 			return true
 		}
 		sendmsg(foo.conn, ircmsg.channel, "congrats, no woman will ever like you")
-	} else if strings.HasPrefix(ircmsg.msg, "+idb") {
-		// flirt
-		t := strings.SplitN(ircmsg.msg, "idb ", 2)
+	} else if strings.HasPrefix(ircmsg.msg, ">idb") {
+		// idb
+		t := strings.SplitN(ircmsg.msg, " ", 2)
 		var name string
-		if len(t) > 2 {
-			sendmsg(foo.conn, ircmsg.channel, fmt.Sprintf("usage: deutsch <ONE name here>"))
-			return true
-		}
-		if len(t[1]) < 2 {
+		if len(t) < 2 {
 			name = ircmsg.author
 		} else {
 			name = t[1]
@@ -371,15 +396,11 @@ func parsemsg(line string, foo bot) bool {
 		rows.Close()
 
 		sendmsg(foo.conn, ircmsg.channel, fmt.Sprintf("%s-%s", idb[rand.Int()%len(idb)], name))
-	} else if strings.HasPrefix(ircmsg.msg, "+deutsch") {
-		// flirt
-		t := strings.SplitN(ircmsg.msg, "deutsch ", 2)
+	} else if strings.HasPrefix(ircmsg.msg, ">deutsch") {
+		// deutsch
+		t := strings.SplitN(ircmsg.msg, " ", 2)
 		var name string
-		if len(t) > 2 {
-			sendmsg(foo.conn, ircmsg.channel, fmt.Sprintf("usage: deutsch <ONE name here>"))
-			return true
-		}
-		if len(t[1]) < 2 {
+		if len(t) < 2 {
 			name = ircmsg.author
 		} else {
 			name = t[1]
@@ -418,7 +439,7 @@ func parsemsg(line string, foo bot) bool {
 		rows.Close()
 
 		sendmsg(foo.conn, ircmsg.channel, fmt.Sprintf("%s-%s", idb[rand.Int()%len(idb)], name))
-	} else if strings.Compare(ircmsg.msg, "+geh schlafen") == 0 {
+	} else if strings.Compare(ircmsg.msg, ">geh schlafen") == 0 {
 		if strings.Compare(ircmsg.author, "horscchtey") == 0 ||
 			strings.Compare(ircmsg.author, "rincewind") == 0 {
 			sendmsg(foo.conn, ircmsg.channel, "はい、マスター")
@@ -426,9 +447,9 @@ func parsemsg(line string, foo bot) bool {
 		} else {
 			sendmsg(foo.conn, ircmsg.channel, "lol nope")
 		}
-	} else if strings.HasPrefix(ircmsg.msg, "+") {
+	} else if strings.HasPrefix(ircmsg.msg, ">") {
 		sorrybro := "Sorry bro I did not understand that..."
-		helpingoffer := "you can type +help for more information on my skills"
+		helpingoffer := "you can type >help for more information on my skills"
 		sendmsg(foo.conn, ircmsg.channel, fmt.Sprintf("%s %s", sorrybro, helpingoffer))
 	}
 	return true
@@ -491,6 +512,7 @@ func connect(boddle bot) <-chan []byte {
 	fmt.Fprintf(boddle.conn, "JOIN %s\r\n", boddle.channel1)
 	fmt.Fprintf(boddle.conn, "JOIN %s\r\n", boddle.channel2)
 	fmt.Fprintf(boddle.conn, "JOIN %s\r\n", boddle.channel3)
+	fmt.Fprintf(boddle.conn, "JOIN %s\r\n", boddle.channel4)
 
 	return listenToIRC(boddle)
 }
@@ -503,7 +525,8 @@ func main() {
 		channel0: "#faui2k16",
 		channel1: "#fau",
 		channel2: "#faui2k18",
-		channel3: "#faui2k19",
+		channel3: "#sigfreibad",
+		channel4: "#faui2k15",
 		port: 6667,
 		server: "irc.fau.de",
 	}
-- 
GitLab