mirror of
https://github.com/syuilo/ai.git
synced 2024-11-22 05:08:00 +00:00
Improve AI
This commit is contained in:
parent
ee82078f79
commit
2894d45aa7
|
@ -2,6 +2,7 @@ import 藍 from './ai';
|
|||
import Friend from './friend';
|
||||
import { User } from './misskey/user';
|
||||
import includes from './utils/includes';
|
||||
import includes from './utils/or';
|
||||
const delay = require('timeout-as-promise');
|
||||
|
||||
export default class MessageLike {
|
||||
|
@ -47,6 +48,8 @@ export default class MessageLike {
|
|||
}
|
||||
|
||||
public reply = async (text: string, cw?: string) => {
|
||||
if (text == null) return;
|
||||
|
||||
console.log(`sending reply of ${this.id} ...`);
|
||||
|
||||
await delay(2000);
|
||||
|
@ -67,4 +70,8 @@ export default class MessageLike {
|
|||
public includes = (words: string[]): boolean => {
|
||||
return includes(this.text, words);
|
||||
}
|
||||
|
||||
public or = (words: string[]): boolean => {
|
||||
return or(this.text, words);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -32,6 +32,7 @@ export default class CoreModule implements IModule {
|
|||
this.greet(msg) ||
|
||||
this.nadenade(msg) ||
|
||||
this.kawaii(msg) ||
|
||||
this.suki(msg) ||
|
||||
this.humu(msg) ||
|
||||
this.batou(msg) ||
|
||||
this.ponkotu(msg)
|
||||
|
@ -208,6 +209,20 @@ export default class CoreModule implements IModule {
|
|||
return true;
|
||||
}
|
||||
|
||||
private suki = (msg: MessageLike): boolean => {
|
||||
if (!msg.or(['好き', 'すき'])) return false;
|
||||
|
||||
// メッセージのみ
|
||||
if (!msg.isMessage) return true;
|
||||
|
||||
msg.reply(
|
||||
msg.friend.love >= 5 ? serifs.core.suki.love :
|
||||
msg.friend.love <= -3 ? serifs.core.suki.hate :
|
||||
serifs.core.suki.normal);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private humu = (msg: MessageLike): boolean => {
|
||||
if (!msg.includes(['踏んで'])) return false;
|
||||
|
||||
|
|
|
@ -46,6 +46,14 @@ export default {
|
|||
hate: '…ありがとうございます'
|
||||
},
|
||||
|
||||
suki: {
|
||||
normal: 'えっ… ありがとうございます…♪',
|
||||
|
||||
love: name => `私も${name}のこと好きですよ♪`,
|
||||
|
||||
hate: null
|
||||
},
|
||||
|
||||
humu: {
|
||||
normal: 'え、えっと…… ふみふみ……… どうですか…?',
|
||||
|
||||
|
|
17
src/utils/or.ts
Normal file
17
src/utils/or.ts
Normal file
|
@ -0,0 +1,17 @@
|
|||
import { hiraganaToKatagana, hankakuToZenkaku } from './japanese';
|
||||
|
||||
export default function(text: string, words: string[]): boolean {
|
||||
if (text == null) return false;
|
||||
|
||||
text = cleanup(hankakuToZenkaku(hiraganaToKatagana(text)));
|
||||
words = words.map(word => hiraganaToKatagana(word));
|
||||
|
||||
return words.some(word => text == word);
|
||||
}
|
||||
|
||||
function cleanup(text: string): string {
|
||||
return text.trim()
|
||||
.replace(/[!!]+$/, '')
|
||||
.replace(/。$/, '')
|
||||
.replace(/(です|デス)$/, '');
|
||||
}
|
|
@ -51,6 +51,7 @@ PONGを返します。生存確認にどうぞ
|
|||
|
||||
### その他反応するフレーズ
|
||||
* かわいい
|
||||
* 好き (メッセージのみ)
|
||||
* 罵って (メッセージのみ)
|
||||
* 踏んで (メッセージのみ)
|
||||
|
||||
|
|
Loading…
Reference in a new issue