Public/Private Chat Threads (#62)

* add: validate thread creation in ollama channel

* rm: channel_id variable

* add: short notes for threads

* update: openFile to openConfig for clarity

* update: test ci runs on master

* add: notes for work

* add: basic chat storing via json

* update: stores entire msgHist according to capacity

* add: removes json file if thread is deleted

* add: chats with independent histories

* add: private vs public threads

* update: validate threads made by ollama for chats

* update: cleanup and version increment
This commit is contained in:
Kevin Dang
2024-06-10 19:47:08 -07:00
committed by GitHub
parent 9f77c5287f
commit 1973b1d3ae
22 changed files with 199 additions and 49 deletions

View File

@@ -1,5 +1,6 @@
import { ChannelType, Client, CommandInteraction, TextChannel } from 'discord.js'
import { SlashCommand } from '../utils/commands.js'
import { openThreadInfo } from '../utils/jsonHandler.js'
export const ThreadCreate: SlashCommand = {
name: 'thread',
@@ -12,16 +13,21 @@ export const ThreadCreate: SlashCommand = {
if (!channel || channel.type !== ChannelType.GuildText) return
const thread = await (channel as TextChannel).threads.create({
name: `support-${Date.now()}`,
reason: `Support ticket ${Date.now()}`
name: `${client.user?.username}-support-${Date.now()}`,
reason: `Support ticket ${Date.now()}`,
type: ChannelType.PublicThread
})
// Send a message in the thread
thread.send(`**User:** ${interaction.user} \n**People in Coversation:** ${thread.memberCount}`)
thread.send(`Hello ${interaction.user} and others! \n\nIt's nice to meet you. Please talk to me by typing **@${client.user?.username}** with your prompt.`)
// handle storing this chat channel
// store: thread.id, thread.name
openThreadInfo(`${thread.id}.json`, thread)
// user only reply
return interaction.reply({
content: `I can help you in the Thread below. \n**Thread ID:** ${thread.id}`,
content: `I can help you in thread **${thread.id}** below.`,
ephemeral: true
})
}