| 706 | * @returns {Promise<string>} Text to query | 706 | * @returns {Promise<string>} Text to query |
| 707 | */ | 707 | */ |
| 708 | async function getQueryText(chat, initiator) { | 708 | async function getQueryText(chat, initiator) { |
| 709 | let queryText = ''; | 709 | let hashedMessages = chat |
| 710 | let i = 0; | 710 | .map(x => ({ text: String(substituteParams(x.mes)), hash: getStringHash(substituteParams(x.mes)) })) |
| 711 | | 711 | .filter(x => x.text) |
| 712 | let hashedMessages = chat.map(x => ({ text: String(substituteParams(x.mes)), hash: getStringHash(substituteParams(x.mes)) })); | 712 | .reverse() |
| | 713 | .slice(0, settings.query); |
| 713 | | 714 | |
| 714 | if (initiator === 'chat' && settings.enabled_chats && settings.summarize && settings.summarize_sent) { | 715 | if (initiator === 'chat' && settings.enabled_chats && settings.summarize && settings.summarize_sent) { |
| 715 | hashedMessages = await summarize(hashedMessages, settings.summary_source); | 716 | hashedMessages = await summarize(hashedMessages, settings.summary_source); |
| 716 | } | 717 | } |
| 717 | | 718 | |
| 718 | for (const message of hashedMessages.slice().reverse()) { | 719 | const queryText = hashedMessages.map(x => x.text).join('\n'); |
| 719 | if (message.text) { | | |
| 720 | queryText += message.text + '\n'; | | |
| 721 | i++; | | |
| 722 | } | | |
| 723 | | | |
| 724 | if (i === settings.query) { | | |
| 725 | break; | | |
| 726 | } | | |
| 727 | } | | |
| 728 | | 720 | |
| 729 | return collapseNewlines(queryText).trim(); | 721 | return collapseNewlines(queryText).trim(); |
| 730 | } | 722 | } |