diff --git a/endpoints/RandMsg.py b/endpoints/RandMsg.py
new file mode 100644
index 0000000..130c6d9
--- /dev/null
+++ b/endpoints/RandMsg.py
@@ -0,0 +1,78 @@
+#!/usr/bin/env python3.12
+
+import importlib
+import urllib.parse
+import regex
+import logging
+import json
+import os
+import random
+import aiosqlite as sqlite3
+
+from typing import Any, Annotated
+from fastapi import FastAPI, Form, HTTPException
+from pydantic import BaseModel
+
+
+class RandMsg(FastAPI):
+ def __init__(self, app: FastAPI, util, constants):
+ self.app = app
+ self.util = util
+ self.constants = constants
+
+ self.endpoint_name = "randmsg"
+
+ app.add_api_route("/%s/" % self.endpoint_name, self.randmsg_handler, methods=["POST"])
+
+ async def randmsg_handler(self):
+ """
+ Get a randomly generated message
+ """
+
+ random.seed()
+ db_rand_selected = random.choice([0, 1, 3])
+ title_attr = "Unknown"
+
+ match db_rand_selected:
+ case 0:
+ randmsg_db_path = os.path.join("/", "var", "lib", "singerdbs", "qajoke.db") # For qajoke db
+ db_query = "SELECT id, ('Q: ' || question || '
A: ' || answer) FROM jokes ORDER BY RANDOM() LIMIT 1" # For qajoke db
+ title_attr = "QA Joke DB"
+ case 1:
+ randmsg_db_path = os.path.join("/", "var", "lib", "singerdbs", "randmsg.db") # For randmsg db
+ db_query = "SELECT id, msg FROM msgs WHERE LENGTH(msg) <= 180 ORDER BY RANDOM() LIMIT 1" # For randmsg db
+ title_attr = "Random Msg DB"
+ case 2:
+ randmsg_db_path = os.path.join("/", "var", "lib", "singerdbs", "trump.db") # For Trump Tweet DB
+ db_query = "SELECT id, content FROM tweets ORDER BY RANDOM() LIMIT 1" # For Trump Tweet DB
+ title_attr = "Trump Tweet DB"
+ case 3:
+ randmsg_db_path = os.path.join("/", "var", "lib", "singerdbs", "philo.db") # For Philo DB
+ db_query = "SELECT id, (content || '
- ' || speaker) FROM quotes ORDER BY RANDOM() LIMIT 1" # For Philo DB
+ title_attr = "Philosophical Quotes DB"
+ case 4:
+ randmsg_db_path = os.path.join("/", "var", "lib", "singerdbs", "hate.db") # For Hate DB
+ db_query = """SELECT id, ("" || comment) FROM hate_speech WHERE length(comment) <= 180 ORDER BY RANDOM() LIMIT 1"""
+ title_attr = "Hate Speech DB"
+ case 5:
+ randmsg_db_path = os.path.join("/", "var", "lib", "singerdbs", "rjokes.db") # r/jokes DB
+ db_query = """SELECT id, (title || "
" || body) FROM jokes WHERE score >= 10000 ORDER BY RANDOM() LIMIT 1"""
+ title_attr = "r/jokes DB"
+ case 6:
+ randmsg_db_path = os.path.join("/", "var", "lib", "singerdbs", "donnies.db") # Donnies DB
+ random.seed()
+ twilight_or_mice = random.choice(["twilight", "mice"])
+ db_query = f"SELECT id, text FROM {twilight_or_mice} ORDER BY RANDOM() LIMIT 1"
+ title_attr = "Donnies DB"
+
+
+ async with sqlite3.connect(database=randmsg_db_path, timeout=1) as _db:
+ async with _db.execute(db_query) as _cursor:
+ result = await _cursor.fetchone()
+ (result_id, result_msg) = result
+ result_msg = result_msg.strip()
+ return {
+ "id": result_id,
+ "msg": result_msg,
+ 'title': title_attr
+ }
\ No newline at end of file
diff --git a/main.py b/main.py
index 1bd2d26..bafb4cc 100644
--- a/main.py
+++ b/main.py
@@ -55,9 +55,11 @@ End Blacklisted Routes
Actionable Routes
"""
+randmsg_endpoint = importlib.import_module("endpoints.RandMsg").RandMsg(app, util, constants)
lyric_search_endpoint = importlib.import_module("endpoints.LyricSearch").LyricSearch(app, util, constants)
+
"""
End Actionable Routes
"""
\ No newline at end of file