Add support for replied messages
This commit is contained in:
parent
a4ba2acfcc
commit
ed1a5356f9
3 changed files with 11 additions and 3 deletions
|
|
@ -33,6 +33,7 @@ const onAI = async (
|
||||||
roomId: string,
|
roomId: string,
|
||||||
sender: string,
|
sender: string,
|
||||||
repliedMessage?: string,
|
repliedMessage?: string,
|
||||||
|
repliedSender?: string,
|
||||||
) => {
|
) => {
|
||||||
const user = getUserById(sender);
|
const user = getUserById(sender);
|
||||||
|
|
||||||
|
|
@ -67,12 +68,15 @@ const onAI = async (
|
||||||
} as IAIInstructions;
|
} as IAIInstructions;
|
||||||
|
|
||||||
const username = getUserName(user);
|
const username = getUserName(user);
|
||||||
textMod = `${username}: ${textMod}`;
|
let repliedUsername = "";
|
||||||
|
if (repliedSender) {
|
||||||
|
getUserName(getUserById(repliedSender));
|
||||||
|
}
|
||||||
|
|
||||||
const responseAI = await getTextGemini(
|
const responseAI = await getTextGemini(
|
||||||
instructions,
|
instructions,
|
||||||
textMod,
|
`${username}: ${textMod}`,
|
||||||
repliedMessage,
|
`${repliedUsername}: ${repliedMessage}`,
|
||||||
);
|
);
|
||||||
|
|
||||||
user.aiCost += responseAI.tokens * prices.text;
|
user.aiCost += responseAI.tokens * prices.text;
|
||||||
|
|
|
||||||
|
|
@ -86,10 +86,12 @@ const registerModules = (client: MatrixClient) => {
|
||||||
const relatesTo = event.getContent()["m.relates_to"];
|
const relatesTo = event.getContent()["m.relates_to"];
|
||||||
const replyToId = relatesTo?.["m.in_reply_to"]?.event_id;
|
const replyToId = relatesTo?.["m.in_reply_to"]?.event_id;
|
||||||
let repliedMessage: string | undefined;
|
let repliedMessage: string | undefined;
|
||||||
|
let repliedSender: string | undefined;
|
||||||
|
|
||||||
if (replyToId) {
|
if (replyToId) {
|
||||||
const repliedEvent = await client.fetchRoomEvent(roomId, replyToId);
|
const repliedEvent = await client.fetchRoomEvent(roomId, replyToId);
|
||||||
const repliedContent = repliedEvent.content;
|
const repliedContent = repliedEvent.content;
|
||||||
|
repliedSender = repliedEvent.sender;
|
||||||
|
|
||||||
if (repliedContent) {
|
if (repliedContent) {
|
||||||
if (repliedContent.body) {
|
if (repliedContent.body) {
|
||||||
|
|
@ -119,6 +121,7 @@ const registerModules = (client: MatrixClient) => {
|
||||||
roomId,
|
roomId,
|
||||||
sender,
|
sender,
|
||||||
repliedMessage,
|
repliedMessage,
|
||||||
|
repliedSender,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,7 @@ interface ICallback {
|
||||||
roomId: string,
|
roomId: string,
|
||||||
sender: string,
|
sender: string,
|
||||||
repliedMessage?: string,
|
repliedMessage?: string,
|
||||||
|
repliedSender?: string,
|
||||||
) => void;
|
) => void;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue