mirror of
https://github.com/syuilo/ai.git
synced 2024-12-22 08:21:08 +00:00
nanka iroiro
This commit is contained in:
parent
ec2f6c4630
commit
851088bc79
|
@ -2,6 +2,7 @@
|
|||
"name": "ai",
|
||||
"main": "./built/index.js",
|
||||
"scripts": {
|
||||
"start": "node ./built",
|
||||
"build": "tsc"
|
||||
},
|
||||
"dependencies": {
|
||||
|
|
10
src/index.ts
10
src/index.ts
|
@ -1,5 +1,6 @@
|
|||
import 藍 from './ai';
|
||||
import config from './config';
|
||||
|
||||
import ReversiModule from './modules/reversi';
|
||||
import ServerModule from './modules/server';
|
||||
import PingModule from './modules/ping';
|
||||
|
@ -8,9 +9,13 @@ import FortuneModule from './modules/fortune';
|
|||
import GuessingGameModule from './modules/guessing-game';
|
||||
import KeywordModule from './modules/keyword';
|
||||
import WelcomeModule from './modules/welcome';
|
||||
import TimerModule from './modules/timer';
|
||||
|
||||
import * as request from 'request-promise-native';
|
||||
const promiseRetry = require('promise-retry');
|
||||
|
||||
console.log('starting ai...');
|
||||
|
||||
promiseRetry(retry => {
|
||||
return request.post(`${config.apiUrl}/i`, {
|
||||
json: {
|
||||
|
@ -18,6 +23,8 @@ promiseRetry(retry => {
|
|||
}
|
||||
}).catch(retry);
|
||||
}).then(account => {
|
||||
console.log('account fetched');
|
||||
|
||||
const ai = new 藍(account);
|
||||
|
||||
ai.install(new PingModule());
|
||||
|
@ -27,5 +34,8 @@ promiseRetry(retry => {
|
|||
ai.install(new GuessingGameModule());
|
||||
ai.install(new ServerModule());
|
||||
ai.install(new ReversiModule());
|
||||
ai.install(new TimerModule());
|
||||
if (config.keywordEnabled) ai.install(new KeywordModule());
|
||||
|
||||
console.log('ai started');
|
||||
});
|
||||
|
|
|
@ -24,7 +24,7 @@ export default class GuessingGameModule implements IModule {
|
|||
}
|
||||
|
||||
public onMention = (msg: MessageLike) => {
|
||||
if (msg.text && msg.text.includes('数当て')) {
|
||||
if (msg.text && (msg.text.includes('数当て') || msg.text.includes('数あて'))) {
|
||||
const exist = guesses.findOne({
|
||||
userId: msg.userId,
|
||||
isEnded: false
|
||||
|
|
|
@ -40,7 +40,7 @@ export default class ReversiModule implements IModule {
|
|||
}
|
||||
|
||||
public onMention = (msg: MessageLike) => {
|
||||
if (msg.text && (msg.text.includes('リバーシ') || msg.text.toLowerCase().includes('reversi'))) {
|
||||
if (msg.text && (msg.text.includes('リバーシ') || msg.text.includes('りばーし') || msg.text.includes('オセロ') || msg.text.includes('おせろ') || msg.text.toLowerCase().includes('reversi'))) {
|
||||
if (config.reversiEnabled) {
|
||||
msg.reply(serifs.REVERSI_OK);
|
||||
|
||||
|
|
47
src/modules/timer/index.ts
Normal file
47
src/modules/timer/index.ts
Normal file
|
@ -0,0 +1,47 @@
|
|||
import 藍 from '../../ai';
|
||||
import IModule from '../../module';
|
||||
import MessageLike from '../../message-like';
|
||||
import serifs from '../../serifs';
|
||||
|
||||
export default class TimerModule implements IModule {
|
||||
public name = 'timer';
|
||||
private ai: 藍;
|
||||
|
||||
public install = (ai: 藍) => {
|
||||
this.ai = ai;
|
||||
}
|
||||
|
||||
public onMention = (msg: MessageLike) => {
|
||||
const seconds = (msg.text || '').match(/([0-9]+)秒/);
|
||||
const minutes = (msg.text || '').match(/([0-9]+)分/);
|
||||
const hours = (msg.text || '').match(/([0-9]+)時間/);
|
||||
const timeStr = seconds || minutes || hours;
|
||||
|
||||
if (timeStr) {
|
||||
const num = parseInt(timeStr[1], 10);
|
||||
|
||||
if (num <= 0) {
|
||||
msg.reply(serifs.timer.invalid);
|
||||
return true;
|
||||
} else {
|
||||
msg.reply(serifs.timer.set);
|
||||
|
||||
const time =
|
||||
seconds ? 1000 * num :
|
||||
minutes ? 1000 * 60 * num :
|
||||
hours ? 1000 * 60 * 60 * num * 1000 :
|
||||
null;
|
||||
|
||||
setTimeout(() => {
|
||||
this.ai.sendMessage(msg.userId, {
|
||||
text: serifs.timer.notify.replace('{time}', timeStr[0])
|
||||
});
|
||||
}, time);
|
||||
|
||||
return true;
|
||||
}
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -91,4 +91,10 @@ export default {
|
|||
* キーワード
|
||||
*/
|
||||
KEYWORD: '({word}..... {reading}..... 覚えました)',
|
||||
|
||||
timer: {
|
||||
set: 'わかりました!',
|
||||
invalid: 'うーん...?',
|
||||
notify: '{time}経ちましたよ!'
|
||||
}
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue