From 3f0f307104300e148b02f05fd51ac833f9b75b01 Mon Sep 17 00:00:00 2001 From: syuilo Date: Sat, 11 Nov 2017 00:27:02 +0900 Subject: [LINE] 通知の表示に対応 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/bot/core.ts | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) (limited to 'src/api/bot') diff --git a/src/api/bot/core.ts b/src/api/bot/core.ts index 8324390880..ff3f681804 100644 --- a/src/api/bot/core.ts +++ b/src/api/bot/core.ts @@ -5,6 +5,7 @@ import User, { IUser, init as initUser } from '../models/user'; import getPostSummary from '../../common/get-post-summary'; import getUserSummary from '../../common/get-user-summary'; +import getNotificationSummary from '../../common/get-notification-summary'; import Othello, { ai as othelloAi } from '../../common/othello'; @@ -84,6 +85,7 @@ export default class BotCore extends EventEmitter { 'logout, signout: サインアウトします\n' + 'post: 投稿します\n' + 'tl: タイムラインを見ます\n' + + 'no: 通知を見ます\n' + '@<ユーザー名>: ユーザーを表示します'; case 'me': @@ -115,6 +117,11 @@ export default class BotCore extends EventEmitter { case 'タイムライン': return await this.tlCommand(); + case 'no': + case 'notifications': + case '通知': + return await this.notificationsCommand(); + case 'guessing-game': case '数当てゲーム': this.setContext(new GuessingGameContext(this)); @@ -155,6 +162,7 @@ export default class BotCore extends EventEmitter { this.emit('updated'); } + // TODO: if (this.user == null) return 'まずサインインしてください。'; を @signinRequired みたいなデコレータでいい感じにする public async tlCommand(): Promise { if (this.user == null) return 'まずサインインしてください。'; @@ -163,7 +171,21 @@ export default class BotCore extends EventEmitter { }, this.user); const text = tl - .map(post => getPostSummary(post)) + .map(post => post.user.name + ': ' + getPostSummary(post)) + .join('\n-----\n'); + + return text; + } + + public async notificationsCommand(): Promise { + if (this.user == null) return 'まずサインインしてください。'; + + const notifications = await require('../endpoints/i/notifications')({ + limit: 5 + }, this.user); + + const text = notifications + .map(notification => getNotificationSummary(notification)) .join('\n-----\n'); return text; -- cgit v1.2.3-freya