56 lines
1.4 KiB
JavaScript
56 lines
1.4 KiB
JavaScript
// @ts-check
|
|
|
|
const DiscordTypes = require("discord-api-types/v10")
|
|
const {reg} = require("../matrix/read-registration")
|
|
|
|
const passthrough = require("../passthrough")
|
|
const {sync} = passthrough
|
|
|
|
/** @type {import("./elizabot")} */
|
|
const eliza = sync.require("./elizabot")
|
|
|
|
/**
|
|
* @param {string} priorContent
|
|
* @returns {string | undefined}
|
|
*/
|
|
function generateContent(priorContent) {
|
|
const bot = new eliza.ElizaBot(true)
|
|
return bot.transform(priorContent)
|
|
}
|
|
|
|
/**
|
|
* @param {DiscordTypes.GatewayMessageCreateDispatchData} message
|
|
* @param {string} guildID
|
|
* @param {string} username
|
|
* @param {string} avatar_url
|
|
* @param {boolean} useCaps
|
|
* @param {boolean} usePunct
|
|
* @param {boolean} useApos
|
|
* @returns {DiscordTypes.RESTPostAPIWebhookWithTokenJSONBody | undefined}
|
|
*/
|
|
function generate(message, guildID, username, avatar_url, useCaps, usePunct, useApos) {
|
|
let content = generateContent(message.content)
|
|
if (!content) return
|
|
|
|
if (!useCaps) {
|
|
content = content.toLowerCase()
|
|
}
|
|
|
|
if (!usePunct) {
|
|
content = content.replace(/[.!]$/, "")
|
|
}
|
|
|
|
if (!useApos) {
|
|
content = content.replace(/['‘’]/g, "")
|
|
}
|
|
|
|
return {
|
|
username: username,
|
|
avatar_url: avatar_url,
|
|
content: content + `\n-# Powered by Grimace.AI | [Learn More](<${reg.ooye.bridge_origin}/agi?guild_id=${guildID}>)`
|
|
}
|
|
}
|
|
|
|
module.exports._generateContent = generateContent
|
|
module.exports.generate = generate
|