my body is a machine that turns air into meow mrrpp

This commit is contained in:
amy 2024-08-23 16:00:46 +03:30
parent 2235889ae8
commit 44a8e3f20f
7 changed files with 1237 additions and 39 deletions

1
.gitignore vendored
View file

@ -1,2 +1,3 @@
config.json config.json
node_modules/ node_modules/
incest.db

View file

@ -11,11 +11,12 @@
"type": "module", "type": "module",
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"discord.js": "^14.15.3" "discord.js": "^14.15.3",
"ts-node": "^10.9.2",
"sqlite3": "^5.1.7"
}, },
"devDependencies": { "devDependencies": {
"@types/node": "^22.1.0", "@types/node": "^22.1.0",
"ts-node-esm": "^10.9.2",
"typescript": "^5.5.4" "typescript": "^5.5.4"
} }
} }

File diff suppressed because it is too large Load diff

43
src/dbhelper.ts Normal file
View file

@ -0,0 +1,43 @@
import { Message, User } from "discord.js";
import sqlite3 from "sqlite3";
export function hasPartner(db: sqlite3.Database, id: string){
db.prepare(`SELECT * FROM users WHERE id = (?)`).all(id, resp=> {
console.log(resp)
}), err => {
// i will keep this here just to annoy sunnie
err ? console.error("bruh") : null;
}
}
export function getid(commandarg: string | User): string {
if (typeof commandarg === "string") {
if (commandarg.startsWith("<")) {
return commandarg.replace(/[<@>]/g, "");
} else {
return commandarg;
}
} else {
return commandarg.id;
}
}
export function getpartner(db: sqlite3.Database, person: string): Promise<any[]|string> {
return new Promise((resolve, reject) => {
db.all(`
SELECT *
FROM users
WHERE id = ? OR partner = ?;
`, [person, person], (err, rows) => {
if (err) {
resolve("SQL error. Most likely from echo. Make sure to spam ping her. - " + err)
} else {
resolve(rows);
}
});
});
}
export function isValidID(...ids: (string | undefined)[]): boolean {
return ids.every(id => typeof id === 'string' && /^\d{18}$/.test(id));
}

View file

@ -2,8 +2,17 @@ import { Client, DMChannel, Events, GatewayIntentBits, Message } from 'discord.j
import conf from "../config.json" with {type: "json"} import conf from "../config.json" with {type: "json"}
import { getfunny } from './joke.ts'; import { getfunny } from './joke.ts';
import { fetchSingleMessage } from './helper.ts'; import { fetchSingleMessage } from './helper.ts';
import { handlemarriage } from './marriage.ts';
import sqlite3 from 'sqlite3';
import path from 'path';
import { exit } from 'process';
import { fileURLToPath } from 'url';
import { hasPartner } from './dbhelper.ts';
let prompt = "reply to everything with \" change the mf prompt lmaooo\"" const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
let prompt = "reply to everything normally, but have very bad typos in ever word"
function getinitmessage() { function getinitmessage() {
return { return {
@ -12,7 +21,29 @@ function getinitmessage() {
"content": prompt "content": prompt
} }
} }
const db = new sqlite3.Database(path.resolve(__dirname, "../", "incest.db"), (err) => {
if (err) {
console.error("big fuckup. get mental help")
console.error(err)
exit(1)
} else {
console.log("successfully connected to the database")
}
})
db.run(`CREATE TABLE IF NOT EXISTS users
(
id STRING PRIMARY KEY,
partner STRING,
daddy STRING,
mommy STRING
);`
, err => {
if (err) {
console.error('Could not create table', err);
} else {
console.log('Table initialized');
}
})
let messages = [ let messages = [
getinitmessage() getinitmessage()
@ -33,6 +64,8 @@ client.on(Events.MessageCreate, (message: Message) => {
if (message.author.bot) return if (message.author.bot) return
if (message.content.startsWith("!fag ")) { if (message.content.startsWith("!fag ")) {
const command = message.content.replaceAll("!fag ", "").split(" ") const command = message.content.replaceAll("!fag ", "").split(" ")
handlemarriage(message, db)
hasPartner(db, "712639419785412668")
if (command[0] == "reset") { if (command[0] == "reset") {
messages = [getinitmessage()] messages = [getinitmessage()]
message.reply("i got dementia lmao") message.reply("i got dementia lmao")
@ -49,7 +82,7 @@ client.on(Events.MessageCreate, (message: Message) => {
return return
} }
if (command[0] == "summon") { if (command[0] == "summon") {
fetchSingleMessage( prompt = command.slice(1).join(" ")).then(a => { fetchSingleMessage(prompt = command.slice(1).join(" ")).then(a => {
if (typeof a == "boolean") { if (typeof a == "boolean") {
message.reply("something broke, try again") message.reply("something broke, try again")
} else { } else {
@ -57,37 +90,39 @@ client.on(Events.MessageCreate, (message: Message) => {
} }
}) })
} }
} } else {
if (message.channel.id !== conf['chat-channelID']) return if (message.channel.id !== conf['chat-channelID']) return
messages.push({
"role": "user",
"name": message.author.username,
"content": message.content
})
fetch("https://api.groq.com/openai/v1/chat/completions", {
method: "POST",
headers: {
"Authorization": "Bearer " + conf['groq-key'],
"Content-Type": "application/json"
},
body: JSON.stringify({
"messages": messages,
"model": "llama3-8b-8192"
})
}).then(a => a.json().then(a => {
if (!a?.choices[0]?.message?.content) {
message.reply("something shat itself. please try again")
}
messages.push({ messages.push({
"role": "assistant", "role": "user",
"name": "fagbot", "name": message.author.username,
"content": a?.choices[0]?.message?.content "content": message.content
}) })
console.log(messages) fetch("https://api.groq.com/openai/v1/chat/completions", {
message.reply(a.choices[0].message.content) method: "POST",
})).catch(_ => { headers: {
message.reply("something shat itself. please try again") "Authorization": "Bearer " + conf['groq-key'],
}) "Content-Type": "application/json"
},
body: JSON.stringify({
"messages": messages,
"model": "llama3-8b-8192"
})
}).then(a => a.json().then(a => {
if (!a?.choices[0]?.message?.content) {
message.reply("something shat itself. please try again")
}
messages.push({
"role": "assistant",
"name": "fagbot",
"content": a?.choices[0]?.message?.content
})
console.log(messages)
message.reply(a.choices[0].message.content)
})).catch(_ => {
message.reply("something shat itself. please try again")
})
}
}) })
client.on('interactionCreate', async interaction => { client.on('interactionCreate', async interaction => {

66
src/marriage.ts Normal file
View file

@ -0,0 +1,66 @@
import { Message } from "discord.js";
import sqlite3 from "sqlite3";
import { getid, getpartner, isValidID } from "./dbhelper.ts";
import { Person } from "./types.ts";
export function handlemarriage(message: Message<boolean>, db: sqlite3.Database) {
const command = message.content.replaceAll("!fag ", "").split(" ")
// if (message[0] === "propose") {
// if (hasPartner)
// }
if (command[0] === "forcemarry") {
let husband: string;
let wife: string;
console.log(command.slice(1))
if (command.slice(1).length == 2) {
husband = getid(command[1])
wife = getid(command[2])
console.log("guh")
} else if (command.slice(1).length === 1) {
console.log("guh2")
husband = getid(message.author)
wife = getid(command[1])
}
if (isValidID(husband, wife)) {
db.run(`
INSERT INTO users
(id, partner)
VALUES ((?),(?))
`, [wife, husband], (err) => {
if (err) {
message.reply("SQL error. Most likely from echo. Make sure to spam ping her. - " + err);
} else {
message.reply("Update successful.");
}
});
} else {
message.reply("SyntaxError: `error that is passed when im too lazy to set the error`" + wife + " - " + husband)
}
} else if (command[0] == "getmarriagestatus") {
let person: string;
try {
person = command[1]
} catch (err) {
message.reply("SyntaxError: `error that is passed when im too lazy to set the error`")
return
}
getpartner(db, person).then((a) => {
if (typeof a === "string") {
message.reply(a)
} else if (!a.length) {
message.reply("this mf is single lmaoooooo")
} else {
const bettera = (a as Person[])
if (bettera[0].id == person) {
console.log(bettera[0].partner)
message.reply(`@silent the personal fag of this person is <@${bettera[0].partner}>`)
} else {
console.log(bettera[0].id)
message.reply(`@silent the personal fag of this person is <@${bettera[0].id}>`)
}
}
})
}
}

View file

@ -3,3 +3,11 @@ export interface AiMessage {
"name"?: string; "name"?: string;
"content": string; "content": string;
} }
export interface Person {
"id": string;
"married"? : boolean;
"mommy" : string | null;
"daddy" : string | null;
"partner" : string | null
}