mirror of
https://github.com/syuilo/ai.git
synced 2024-12-22 08:21:08 +00:00
Improve AI
This commit is contained in:
parent
70074482f5
commit
9872ef158b
|
@ -33,6 +33,7 @@ export default class CoreModule implements IModule {
|
|||
this.nadenade(msg) ||
|
||||
this.kawaii(msg) ||
|
||||
this.suki(msg) ||
|
||||
this.hug(msg) ||
|
||||
this.humu(msg) ||
|
||||
this.batou(msg) ||
|
||||
this.ponkotu(msg)
|
||||
|
@ -223,6 +224,20 @@ export default class CoreModule implements IModule {
|
|||
return true;
|
||||
}
|
||||
|
||||
private hug = (msg: MessageLike): boolean => {
|
||||
if (!msg.or(['ぎゅ'])) return false;
|
||||
|
||||
// メッセージのみ
|
||||
if (!msg.isMessage) return true;
|
||||
|
||||
msg.reply(
|
||||
msg.friend.love >= 5 ? serifs.core.hug.love :
|
||||
msg.friend.love <= -3 ? serifs.core.hug.hate :
|
||||
serifs.core.hug.normal);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private humu = (msg: MessageLike): boolean => {
|
||||
if (!msg.includes(['踏んで'])) return false;
|
||||
|
||||
|
|
|
@ -54,6 +54,14 @@ export default {
|
|||
hate: null
|
||||
},
|
||||
|
||||
hug: {
|
||||
normal: 'ぎゅー...',
|
||||
|
||||
love: 'ぎゅー♪',
|
||||
|
||||
hate: '離れてください...'
|
||||
},
|
||||
|
||||
humu: {
|
||||
normal: 'え、えっと…… ふみふみ……… どうですか…?',
|
||||
|
||||
|
|
|
@ -3,18 +3,32 @@ import { hiraganaToKatagana, hankakuToZenkaku } from './japanese';
|
|||
export default function(text: string, words: string[]): boolean {
|
||||
if (text == null) return false;
|
||||
|
||||
text = cleanup(hankakuToZenkaku(hiraganaToKatagana(text)));
|
||||
text = hankakuToZenkaku(hiraganaToKatagana(text));
|
||||
words = words.map(word => hiraganaToKatagana(word));
|
||||
|
||||
return words.some(word => text == word);
|
||||
return words.some(word => {
|
||||
/**
|
||||
* テキストの余分な部分を取り除く
|
||||
* 例えば「藍ちゃん好き!」のようなテキストを「好き」にする
|
||||
*/
|
||||
function cleanup(text: string): string {
|
||||
return text.trim()
|
||||
.replace(/[!!]+$/, '')
|
||||
// 末尾の ー を除去
|
||||
// 例えば「おはよー」を「おはよ」にする
|
||||
// ただそのままだと「セーラー」などの本来「ー」が含まれているワードも「ー」が除去され
|
||||
// 「セーラ」になり、「セーラー」を期待している場合はマッチしなくなり期待する動作にならなくなるので、
|
||||
// 期待するワードの末尾にもともと「ー」が含まれている場合は(対象のテキストの「ー」をすべて除去した後に)「ー」を付けてあげる
|
||||
.replace(/ー+$/, '') + (word[word.length - 1] == 'ー' ? 'ー' : '')
|
||||
.replace(/ッ+$/, '')
|
||||
.replace(/。$/, '')
|
||||
.replace(/デス$/, '')
|
||||
.replace(/^藍/, '')
|
||||
.replace(/^チャン/, '')
|
||||
.replace(/、+$/, '');
|
||||
}
|
||||
|
||||
return (text == word) || (cleanup(text) == word);
|
||||
});
|
||||
}
|
||||
|
||||
function cleanup(text: string): string {
|
||||
return text.trim()
|
||||
.replace(/[!!]+$/, '')
|
||||
.replace(/。$/, '')
|
||||
.replace(/デス$/, '')
|
||||
.replace(/^藍/, '')
|
||||
.replace(/^チャン/, '')
|
||||
.replace(/、+$/, '');
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue