フォロバしてくれる機能 (#20)

* Implement Follow Back

* Require more love

* モジュール読むの忘れてたw

* 条件式ミスった

* 完全なユーザー情報を取れるように

* バグったのでやり方かえた

* 毎度取得することに

* 型がおかしいのなおした

* fix bugs

* 藍ちゃが好感度に関わらずフォロバするように
This commit is contained in:
Xeltica 2018-12-03 16:48:00 +09:00 committed by syuilo
parent ce6bd6a7c3
commit 5c3408714b
3 changed files with 48 additions and 1 deletions

View file

@ -15,6 +15,7 @@ import ServerModule from './modules/server';
import * as request from 'request-promise-native';
import IModule from './module';
import FollowModule from './modules/follow';
const promiseRetry = require('promise-retry');
console.log('--- starting ai... ---');
@ -38,7 +39,8 @@ promiseRetry(retry => {
new CoreModule(),
new PingModule(),
new WelcomeModule(),
new ServerModule()
new ServerModule(),
new FollowModule(),
];
if (config.keywordEnabled) modules.push(new KeywordModule());

View file

@ -0,0 +1,35 @@
import from '../../ai';
import IModule from '../../module';
import MessageLike from '../../message-like';
import serifs from '../../serifs';
export default class FollowModule implements IModule {
public readonly name = 'follow';
private ai: ;
public install = (ai: ) => {
this.ai = ai;
}
public onMention = (msg: MessageLike) => {
if (msg.text && msg.text.includes('フォロー')) {
let user: any;
this.ai.api("users/show", {
userId: msg.userId,
}).then(u => {
user = u;
if (user.isFollowing) {
msg.reply(serifs.follow.alreadyFollowed);
} else {
this.ai.api("following/create", {
userId: msg.userId,
});
msg.reply(serifs.follow.ok);
}
});
return true;
} else {
return false;
}
}
}

View file

@ -260,6 +260,16 @@ export default {
server: {
cpu: 'サーバーの負荷が高そうです。大丈夫でしょうか...'
},
follow: {
ok: 'フォローしました!',
requireMoreLove: 'もう少し仲良くなったらお願いできますか?',
alreadyFollowed: 'えっ?既にあなたのことはフォローしていますよ!',
ng: '嫌です...',
}
};