mirror of
https://github.com/syuilo/ai.git
synced 2024-11-21 12:47:59 +00:00
リマインド機能の改善 (#93)
* [reminder]renote対象が消されていた場合にリマインダー解除を行う機能の追加 * [reminder]visibilityがfollowersのときにtodoを受け付けないようにした * #70(他人のリマインダーを操作できる)対応 * セリフのベタ書きではなく、serifsに追加するような形にした。 * Fix[Reminder]RN対象の削除がなされていた場合へ入る条件分岐の修正
This commit is contained in:
parent
bc2c7f0581
commit
5cd9e171da
|
@ -34,6 +34,10 @@ export default class Message {
|
|||
return this.messageOrNote.renoteId;
|
||||
}
|
||||
|
||||
public get visibility(): string {
|
||||
return this.messageOrNote.visibility;
|
||||
}
|
||||
|
||||
/**
|
||||
* メンション部分を除いたテキスト本文
|
||||
*/
|
||||
|
|
|
@ -59,9 +59,12 @@ export default class extends Module {
|
|||
const separatorIndex = text.indexOf(' ') > -1 ? text.indexOf(' ') : text.indexOf('\n');
|
||||
const thing = text.substr(separatorIndex + 1).trim();
|
||||
|
||||
if (thing === '' && msg.quoteId == null) {
|
||||
if (thing === '' && msg.quoteId == null || msg.visibility === 'followers') {
|
||||
msg.reply(serifs.reminder.invalid);
|
||||
return true;
|
||||
return {
|
||||
reaction: '🆖',
|
||||
immediate: true,
|
||||
};
|
||||
}
|
||||
|
||||
const remind = this.reminds.insertOne({
|
||||
|
@ -112,12 +115,16 @@ export default class extends Module {
|
|||
|
||||
const done = msg.includes(['done', 'やった', 'やりました', 'はい']);
|
||||
const cancel = msg.includes(['やめる', 'やめた', 'キャンセル']);
|
||||
const isOneself = msg.userId === remind.userId;
|
||||
|
||||
if (done || cancel) {
|
||||
if ((done || cancel) && isOneself) {
|
||||
this.unsubscribeReply(key);
|
||||
this.reminds.remove(remind);
|
||||
msg.reply(done ? getSerif(serifs.reminder.done(msg.friend.name)) : serifs.reminder.cancel);
|
||||
return;
|
||||
} else if (isOneself === false) {
|
||||
msg.reply(serifs.reminder.doneFromInvalidUser);
|
||||
return;
|
||||
} else {
|
||||
if (msg.isDm) this.unsubscribeReply(key);
|
||||
return false;
|
||||
|
@ -149,7 +156,12 @@ export default class extends Module {
|
|||
text: acct(friend.doc.user) + ' ' + serifs.reminder.notify(friend.name)
|
||||
});
|
||||
} catch (err) {
|
||||
// TODO: renote対象が消されていたらリマインダー解除
|
||||
// renote対象が消されていたらリマインダー解除
|
||||
if (err.statusCode === 400) {
|
||||
this.unsubscribeReply(remind.thing == null && remind.quoteId ? remind.quoteId : remind.id);
|
||||
this.reminds.remove(remind);
|
||||
return;
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -339,6 +339,8 @@ export default {
|
|||
reminder: {
|
||||
invalid: 'うーん...?',
|
||||
|
||||
doneFromInvalidUser: 'イタズラはめっですよ!',
|
||||
|
||||
reminds: 'やること一覧です!',
|
||||
|
||||
notify: (name) => name ? `${name}、これやりましたか?` : `これやりましたか?`,
|
||||
|
|
Loading…
Reference in a new issue