(v4.2.0) Added /transcripts history command
This commit is contained in:
@@ -637,6 +637,25 @@ export async function loadAllSlashCommands(){
|
||||
}
|
||||
]
|
||||
}))
|
||||
|
||||
//TRANSCRIPTS
|
||||
if (allowedCommands.includes("transcripts")) commands.add(new api.ODSlashCommand("opendiscord:transcripts",{
|
||||
type:act.ChatInput,
|
||||
name:"transcripts",
|
||||
//TODO TRANSLATION!!!
|
||||
description:"View ticket transcript history of a user.",
|
||||
contexts:[discord.InteractionContextType.Guild],
|
||||
integrationTypes:[discord.ApplicationIntegrationType.GuildInstall],
|
||||
options:[
|
||||
{
|
||||
name:"user",
|
||||
//TODO TRANSLATION!!!
|
||||
description:"The user to view.",
|
||||
type:acot.User,
|
||||
required:true
|
||||
}
|
||||
]
|
||||
}))
|
||||
}
|
||||
|
||||
export async function loadAllTextCommands(){
|
||||
@@ -1211,6 +1230,22 @@ export async function loadAllTextCommands(){
|
||||
}
|
||||
]
|
||||
}))
|
||||
|
||||
//TRANSCRIPTS
|
||||
if (allowedCommands.includes("transcripts")) commands.add(new api.ODTextCommand("opendiscord:transcripts",{
|
||||
name:"transcripts",
|
||||
prefix,
|
||||
dmPermission:false,
|
||||
guildPermission:true,
|
||||
allowBots:false,
|
||||
options:[
|
||||
{
|
||||
name:"user",
|
||||
type:"user",
|
||||
required:true
|
||||
}
|
||||
]
|
||||
}))
|
||||
}
|
||||
|
||||
export async function loadAllContextMenus(){
|
||||
|
||||
@@ -10,6 +10,7 @@ export async function loadAllDatabases(){
|
||||
opendiscord.databases.add(defaultTicketsDatabase)
|
||||
opendiscord.databases.add(defaultUsersDatabase)
|
||||
opendiscord.databases.add(defaultOptionsDatabase)
|
||||
opendiscord.databases.add(defaultTranscriptsDatabase)
|
||||
opendiscord.databases.add(defaultMessageStatesDatabase)
|
||||
}
|
||||
|
||||
@@ -52,4 +53,5 @@ export const defaultStatsDatabase = new api.ODStatsDatabase("opendiscord:stats",
|
||||
export const defaultTicketsDatabase = new api.ODTicketsDatabase("opendiscord:tickets","tickets.json",defaultTicketFormatter,(isDevdatabase) ? "./devdatabase/" : "./database/")
|
||||
export const defaultUsersDatabase = new api.ODUsersDatabase("opendiscord:users","users.json",defaultInlineFormatter,(isDevdatabase) ? "./devdatabase/" : "./database/")
|
||||
export const defaultOptionsDatabase = new api.ODOptionsDatabase("opendiscord:options","options.json",defaultOptionFormatter,(isDevdatabase) ? "./devdatabase/" : "./database/")
|
||||
export const defaultTranscriptsDatabase = new api.ODTranscriptsDatabase("opendiscord:transcripts","transcripts.json",defaultInlineFormatter,(isDevdatabase) ? "./devdatabase/" : "./database/")
|
||||
export const defaultMessageStatesDatabase = new api.ODMessageStatesDatabase("opendiscord:message-states","states.json",defaultInlineFormatter,(isDevdatabase) ? "./devdatabase/" : "./database/")
|
||||
@@ -283,5 +283,13 @@ export async function loadAllHelpMenuComponents(){
|
||||
textOptions:[{name:"priority",optional:false},{name:"reason",optional:true}],
|
||||
slashOptions:[{name:"priority",optional:false},{name:"reason",optional:true}]
|
||||
}))
|
||||
if (allowedCommands.includes("transcripts")) advanced.add(new api.ODHelpMenuCommandComponent("opendiscord:transcripts",0,{
|
||||
textName:prefix+"transcripts",
|
||||
textDescription:"View ticket transcript history of a user.", //TODO TRANSLATION!!!
|
||||
slashName:"/transcripts",
|
||||
slashDescription:"View ticket transcript history of a user.", //TODO TRANSLATION!!!
|
||||
textOptions:[{name:"user",optional:false}],
|
||||
slashOptions:[{name:"user",optional:false}]
|
||||
}))
|
||||
}
|
||||
}
|
||||
@@ -7,6 +7,7 @@ const userDatabase = opendiscord.databases.get("opendiscord:users")
|
||||
const ticketDatabase = opendiscord.databases.get("opendiscord:tickets")
|
||||
const statsDatabase = opendiscord.databases.get("opendiscord:stats")
|
||||
const optionDatabase = opendiscord.databases.get("opendiscord:options")
|
||||
const transcriptsDatabase = opendiscord.databases.get("opendiscord:transcripts")
|
||||
const mainServer = opendiscord.client.mainServer
|
||||
|
||||
export async function loadAllTasks(){
|
||||
@@ -248,6 +249,18 @@ export async function loadDatabaseCleanersTasks(){
|
||||
}
|
||||
})
|
||||
}))
|
||||
|
||||
//TRANSCRIPT DATABASE CLEANER
|
||||
opendiscord.tasks.add(new api.ODTask("opendiscord:transcript-database-cleaner",8,async () => {
|
||||
//preserve max 20 transcripts per user (async)
|
||||
const userCount: Map<string,number> = new Map()
|
||||
for (const {key,value:transcript} of (await transcriptsDatabase.getCategory("opendiscord:transcript") ?? []).sort((a,b) => (b.value.ticketDeletedDate ?? 0)-(a.value.ticketDeletedDate ?? 0))){
|
||||
const currentAmount = userCount.get(transcript.ticketCreatorId) ?? 0
|
||||
userCount.set(transcript.ticketCreatorId,currentAmount+1)
|
||||
|
||||
if (currentAmount > 20) transcriptsDatabase.delete("opendiscord:transcript",key)
|
||||
}
|
||||
}))
|
||||
}
|
||||
|
||||
export async function loadPanelAutoUpdateTasks(){
|
||||
|
||||
Reference in New Issue
Block a user