From 64404fb08877dc04f08720a7a4503b2658e55edd Mon Sep 17 00:00:00 2001 From: Johan Trieloff Date: Sun, 7 Jan 2024 15:51:21 +0100 Subject: [PATCH] fixed issue --- commands/test-command.ts | 6 ++- example.json | 14 +++++++ functions/conversationStarter.ts | 14 ++++--- questions.ts | 64 ++++++++++++++++---------------- 4 files changed, 59 insertions(+), 39 deletions(-) create mode 100644 example.json diff --git a/commands/test-command.ts b/commands/test-command.ts index 7027682..8f7bfc9 100644 --- a/commands/test-command.ts +++ b/commands/test-command.ts @@ -244,7 +244,11 @@ async function initiateConversation(interaction: any, userResponses: number[]): await textChannel.send(`Bei beispielsweise diesen drei Fragen seid ihr nicht einer Meinung:`); // This function will send starter questions where they disagreed - conversationStarter(textChannel, interaction, bestMatch, userResponses); + // fetch the encrypted userVector from the database for the bestMatch and decrypt it + const bestMatchUserContext = await db.db('contrabot').collection("users").findOne({ userId: bestMatchId }); + const bestMatchUserResponses = bestMatchUserContext?.userVector ? JSON.parse(decrypt(bestMatchUserContext.userVector)) : []; + + conversationStarter(textChannel, interaction, bestMatchUserResponses, bestMatchId, userResponses); interaction.user.send(`Du wurdest erfolgreich mit **@${bestMatch.user.username}** gematcht. Schau auf den Discord-Server um mit dem Chatten zu beginnen! 😊`); client.users.fetch(bestMatchId).then(user => { diff --git a/example.json b/example.json new file mode 100644 index 0000000..09bd093 --- /dev/null +++ b/example.json @@ -0,0 +1,14 @@ +{ + "_id": { + "$oid": "759ab26b3fd442f53a3b88ec" + }, + "userId": "371292275613106180", + "currentFeedbackQuestionIndex": 0, + "currentQuestionIndex": 0, + "feedbackRequestSent": false, + "invited": null, + "joined": null, + "userVector": "67a556146ca69b1b15173c187b18d7cf:6c54dec958fb39a6fae7ae56f6afd116", + "username": "KoTenshi", + "completionTime": "2024-01-07T14:17:32.628Z" +} \ No newline at end of file diff --git a/functions/conversationStarter.ts b/functions/conversationStarter.ts index 65eef4a..7c9e3c2 100644 --- a/functions/conversationStarter.ts +++ b/functions/conversationStarter.ts @@ -3,13 +3,15 @@ import { questions } from '../questions'; import { CronJob } from "cron"; import { client, db } from "../common"; -export async function conversationStarter(channelOfDestination: any, interaction: any, bestMatch: any, user: number[]) { +export async function conversationStarter(channelOfDestination: any, interaction: any, bestMatchUserResponses: any, bestMatchId: any, user: number[]) { + console.log(user); + console.log(bestMatchUserResponses); // get all contrasting and similar answers let addedToDisagree = false; // Track if any numbers were added to disagree const disagree: number[] = []; user.forEach((value, i) => { - const total = value + bestMatch.userVector[ i ]; + const total = value + bestMatchUserResponses[ i ]; if (value !== 0 && total === 0) { disagree.push(i); addedToDisagree = true; @@ -18,7 +20,7 @@ export async function conversationStarter(channelOfDestination: any, interaction // Only add to disagree if the flag is still false if (!addedToDisagree || disagree.length < 6) { user.forEach((value, i) => { - const total = value + bestMatch.userVector[ i ]; + const total = value + bestMatchUserResponses[ i ]; if (Math.abs(total) === 1) { disagree.push(i); } @@ -33,7 +35,7 @@ export async function conversationStarter(channelOfDestination: any, interaction client.on('messageCreate', (message: any) => { if (message.channel.id === channelOfDestination.id) { - if (message.author.id === bestMatch.userId) { + if (message.author.id === bestMatchId) { bestMatchSentMessage = true; return; } @@ -76,14 +78,14 @@ export async function conversationStarter(channelOfDestination: any, interaction if (!bestMatchSentMessage && conv.eightHourNotificationSent) { //Send messages to both users interaction.user.send(`Dein GesprĂ€chspartner hat das GesprĂ€ch verlassen. Wir finden einen neuen GesprĂ€chspartner fĂŒr dich.`); - client.users.fetch(String(bestMatch.userId)).then((user: User) => { + client.users.fetch(String(bestMatchUserResponses)).then((user: User) => { user.send(`Aufgrund von InaktivitĂ€t wurde das GesprĂ€ch beendet. Bitte starte einen neuen Test, um einen neuen GesprĂ€chspartner zu finden.`); }); // Delete the channel, conversation and BestMatch from the database channelOfDestination.delete(); db.db('contrabot').collection("conversations").deleteOne({ _id: conv._id }); - await db.db('contrabot').collection("users").deleteOne({ userId: bestMatch.userId }); + await db.db('contrabot').collection("users").deleteOne({ userId: bestMatchId }); } }); }); diff --git a/questions.ts b/questions.ts index aaabfbe..ad301cf 100644 --- a/questions.ts +++ b/questions.ts @@ -1,36 +1,36 @@ export const questions = [ - { "question": "Auf allen Autobahnen soll ein generelles Tempolimit gelten.", "tag": ["Verkehrssicherheit", " Klimawandel"] }, - { "question": "Deutschland soll seine Verteidigungsausgaben erhöhen.", "tag": "Verteidigungspolitik" }, - { "question": "Bei Bundestagswahlen sollen auch Jugendliche ab 16 Jahren wĂ€hlen dĂŒrfen.", "tag": ["Wahlalter", "Demokratie"] }, - { "question": "Die Förderung von Windenenergie soll beendet werden?", "tag": ["Energiepolitik", "Klimawandel"] }, - { "question": "Die Möglichkeiten der Vermieterinnen und Vermieter, Wohnungsmieten zu erhöhen, sollen gesetzlich stĂ€rker begrenzt werden.", "tag": ["Mietpreisbremse", "Wohnraumkosten"] }, - { "question": "Die Ukraine soll Mitglied der EuropĂ€ischen Union werden dĂŒrfen.", "tag": ["EU-Erweiterung", "Ukraine Krieg"] }, - { "question": "Der geplante Ausstieg aus der Kohleverstromung soll vorgezogen werden.", "tag": ["Energiepolitik", "Umweltschutz"] }, - { "question": "Alle ErwerbstĂ€tigen sollen in der gesetzlichen Rentenversicherung versichert sein mĂŒssen.", "tag": "Sozialpolitik" }, - { "question": "Das Recht anerkannter FlĂŒchtlinge auf Familiennachzug soll abgeschafft werden.", "tag": "Migrationspolitik" }, - { "question": "Auf den Umsatz, der in Deutschland mit digitalen Dienstleistungen erzielt wird, soll eine nationale Steuer erhoben werden.", "tag": "Steuerpolitik" }, - { "question": "Die traditionelle Familie aus Vater, Mutter und Kindern soll stĂ€rker als andere Lebensgemeinschaften gefördert werden.", "tag": "Familienpolitik" }, - { "question": "Spenden von Unternehmen an Parteien sollen weiterhin erlaubt sein.", "tag": "Parteienfinanzierung" }, - { "question": "Migration in die EuropĂ€ische Union sollte erleichtert werden.", "tag": "Migrationspolitik" }, - { "question": "Studentinnen und Studenten sollen BAföG unabhĂ€ngig vom Einkommen ihrer Eltern erhalten.", "tag": "Bildungspolitik" }, - { "question": "In Deutschland soll es generell möglich sein, neben der deutschen eine zweite StaatsbĂŒrgerschaft zu haben.", "tag": ["StaatsbĂŒrgerschaft", "Migrationspolitik"] }, - { "question": "Bundesbehörden sollen in ihren Veröffentlichungen unterschiedliche GeschlechtsidentitĂ€ten sprachlich berĂŒcksichtigen mĂŒssen.", "tag": ["Genderpolitik", "Minderheitenpolitik"] }, - { "question": "Der SolidaritĂ€tszuschlag soll vollstĂ€ndig abgeschafft werden.", "tag": ["Steuerpolitik", "SolidaritĂ€tszuschlag"] }, - { "question": "Das Tragen eines Kopftuchs soll Beamtinnen im Dienst generell erlaubt sein.", "tag": ["Religionsfreiheit", "Minderheitenpolitik"] }, - { "question": "Die Zulassung von neuen Autos mit Verbrennungsmotor soll auch langfristig möglich sein.", "tag": "Klimawandel" }, - { "question": "Der Bund soll mehr ZustĂ€ndigkeiten in der Schulpolitik erhalten.", "tag": "Bildungspolitik" }, - { "question": "Der Bund soll Projekte zur BekĂ€mpfung des Antisemitismus stĂ€rker finanziell unterstĂŒtzen.", "tag": ["Antisemitismus", "Minderheitenpolitik"] }, - { "question": "Chinesische Firmen sollen keine AuftrĂ€ge fĂŒr den Ausbau der Kommunikationsinfrastruktur in Deutschland erhalten dĂŒrfen.", "tag": "Wirtschaftspolitik" }, - { "question": "Der Staat soll weiterhin fĂŒr Religionsgemeinschaften die Kirchensteuer einziehen.", "tag": "Kirchensteuer" }, - { "question": "Der kontrollierte Verkauf von Cannabis soll generell erlaubt sein.", "tag": "Drogenpolitik" }, - { "question": "Deutschland soll aus der EuropĂ€ischen Union austreten.", "tag": "EU-Politik" }, - { "question": "Die Landeslisten der Parteien fĂŒr die Wahlen zum Deutschen Bundestag sollen abwechselnd mit Frauen und MĂ€nnern besetzt werden mĂŒssen.", "tag": ["Geschlechtergerechtigkeit", "Minderheitenpolitik"] }, - { "question": "StationĂ€re Behandlungen im Krankenhaus sollen weiterhin ĂŒber eine Fallpauschale abgerechnet werden.", "tag": "Gesundheitspolitik" }, - { "question": "Auf hohe Vermögen soll wieder eine Steuer erhoben werden.", "tag": ["Steuerpolitik", "Vermögenssteuer"] }, - { "question": "Bei der VideoĂŒberwachung öffentlicher PlĂ€tze soll Gesichtserkennungssoftware eingesetzt werden dĂŒrfen.", "tag": ["Datenschutz", "VideoĂŒberwachung"] }, - { "question": "Auch Ehepaare ohne Kinder sollen weiterhin steuerlich begĂŒnstigt werden.", "tag": "Familienpolitik" }, - { "question": "Ökologische Landwirtschaft soll stĂ€rker gefördert werden als konventionelle Landwirtschaft.", "tag": "Klimawandel" }, - { "question": "Islamische VerbĂ€nde sollen als Religionsgemeinschaften staatlich anerkannt werden können.", "tag": ["Religionspolitik", "Minderheitenpolitik"] }, + //{ "question": "Auf allen Autobahnen soll ein generelles Tempolimit gelten.", "tag": ["Verkehrssicherheit", " Klimawandel"] }, + //{ "question": "Deutschland soll seine Verteidigungsausgaben erhöhen.", "tag": "Verteidigungspolitik" }, + //{ "question": "Bei Bundestagswahlen sollen auch Jugendliche ab 16 Jahren wĂ€hlen dĂŒrfen.", "tag": ["Wahlalter", "Demokratie"] }, + //{ "question": "Die Förderung von Windenenergie soll beendet werden?", "tag": ["Energiepolitik", "Klimawandel"] }, + //{ "question": "Die Möglichkeiten der Vermieterinnen und Vermieter, Wohnungsmieten zu erhöhen, sollen gesetzlich stĂ€rker begrenzt werden.", "tag": ["Mietpreisbremse", "Wohnraumkosten"] }, + //{ "question": "Die Ukraine soll Mitglied der EuropĂ€ischen Union werden dĂŒrfen.", "tag": ["EU-Erweiterung", "Ukraine Krieg"] }, + //{ "question": "Der geplante Ausstieg aus der Kohleverstromung soll vorgezogen werden.", "tag": ["Energiepolitik", "Umweltschutz"] }, + //{ "question": "Alle ErwerbstĂ€tigen sollen in der gesetzlichen Rentenversicherung versichert sein mĂŒssen.", "tag": "Sozialpolitik" }, + //{ "question": "Das Recht anerkannter FlĂŒchtlinge auf Familiennachzug soll abgeschafft werden.", "tag": "Migrationspolitik" }, + //{ "question": "Auf den Umsatz, der in Deutschland mit digitalen Dienstleistungen erzielt wird, soll eine nationale Steuer erhoben werden.", "tag": "Steuerpolitik" }, + //{ "question": "Die traditionelle Familie aus Vater, Mutter und Kindern soll stĂ€rker als andere Lebensgemeinschaften gefördert werden.", "tag": "Familienpolitik" }, + //{ "question": "Spenden von Unternehmen an Parteien sollen weiterhin erlaubt sein.", "tag": "Parteienfinanzierung" }, + //{ "question": "Migration in die EuropĂ€ische Union sollte erleichtert werden.", "tag": "Migrationspolitik" }, + //{ "question": "Studentinnen und Studenten sollen BAföG unabhĂ€ngig vom Einkommen ihrer Eltern erhalten.", "tag": "Bildungspolitik" }, + //{ "question": "In Deutschland soll es generell möglich sein, neben der deutschen eine zweite StaatsbĂŒrgerschaft zu haben.", "tag": ["StaatsbĂŒrgerschaft", "Migrationspolitik"] }, + //{ "question": "Bundesbehörden sollen in ihren Veröffentlichungen unterschiedliche GeschlechtsidentitĂ€ten sprachlich berĂŒcksichtigen mĂŒssen.", "tag": ["Genderpolitik", "Minderheitenpolitik"] }, + //{ "question": "Der SolidaritĂ€tszuschlag soll vollstĂ€ndig abgeschafft werden.", "tag": ["Steuerpolitik", "SolidaritĂ€tszuschlag"] }, + //{ "question": "Das Tragen eines Kopftuchs soll Beamtinnen im Dienst generell erlaubt sein.", "tag": ["Religionsfreiheit", "Minderheitenpolitik"] }, + //{ "question": "Die Zulassung von neuen Autos mit Verbrennungsmotor soll auch langfristig möglich sein.", "tag": "Klimawandel" }, + //{ "question": "Der Bund soll mehr ZustĂ€ndigkeiten in der Schulpolitik erhalten.", "tag": "Bildungspolitik" }, + //{ "question": "Der Bund soll Projekte zur BekĂ€mpfung des Antisemitismus stĂ€rker finanziell unterstĂŒtzen.", "tag": ["Antisemitismus", "Minderheitenpolitik"] }, + //{ "question": "Chinesische Firmen sollen keine AuftrĂ€ge fĂŒr den Ausbau der Kommunikationsinfrastruktur in Deutschland erhalten dĂŒrfen.", "tag": "Wirtschaftspolitik" }, + //{ "question": "Der Staat soll weiterhin fĂŒr Religionsgemeinschaften die Kirchensteuer einziehen.", "tag": "Kirchensteuer" }, + //{ "question": "Der kontrollierte Verkauf von Cannabis soll generell erlaubt sein.", "tag": "Drogenpolitik" }, + //{ "question": "Deutschland soll aus der EuropĂ€ischen Union austreten.", "tag": "EU-Politik" }, + //{ "question": "Die Landeslisten der Parteien fĂŒr die Wahlen zum Deutschen Bundestag sollen abwechselnd mit Frauen und MĂ€nnern besetzt werden mĂŒssen.", "tag": ["Geschlechtergerechtigkeit", "Minderheitenpolitik"] }, + //{ "question": "StationĂ€re Behandlungen im Krankenhaus sollen weiterhin ĂŒber eine Fallpauschale abgerechnet werden.", "tag": "Gesundheitspolitik" }, + //{ "question": "Auf hohe Vermögen soll wieder eine Steuer erhoben werden.", "tag": ["Steuerpolitik", "Vermögenssteuer"] }, + //{ "question": "Bei der VideoĂŒberwachung öffentlicher PlĂ€tze soll Gesichtserkennungssoftware eingesetzt werden dĂŒrfen.", "tag": ["Datenschutz", "VideoĂŒberwachung"] }, + //{ "question": "Auch Ehepaare ohne Kinder sollen weiterhin steuerlich begĂŒnstigt werden.", "tag": "Familienpolitik" }, + //{ "question": "Ökologische Landwirtschaft soll stĂ€rker gefördert werden als konventionelle Landwirtschaft.", "tag": "Klimawandel" }, + //{ "question": "Islamische VerbĂ€nde sollen als Religionsgemeinschaften staatlich anerkannt werden können.", "tag": ["Religionspolitik", "Minderheitenpolitik"] }, { "question": "Der staatlich festgelegte Preis fĂŒr den Ausstoß von CO2 beim Heizen und Autofahren soll stĂ€rker steigen als geplant.", "tag": ["Klimaschutz", "Klimawandel"] }, { "question": "Die Schuldenbremse im Grundgesetz soll beibehalten werden.", "tag": "Wirtschaftspolitik" }, { "question": "Asyl soll weiterhin nur politisch Verfolgten gewĂ€hrt werden.", "tag": "Migrationspolitik" },