mirror of
https://github.com/syuilo/ai.git
synced 2025-03-25 21:12:56 +00:00
カスタム絵文字チェックモジュールの修正
- README.mdやtorisetu.mdに記載 - カスタム絵文字投稿をまとめる設定を追加(checkEmojisAtOnce)
This commit is contained in:
parent
371c083d6a
commit
1ebf2c7d37
5 changed files with 48 additions and 22 deletions
|
@ -19,6 +19,8 @@ Misskey用の日本語Botです。
|
|||
"chartEnabled": "チャート機能を無効化する場合は false を入れてください",
|
||||
"reversiEnabled": "藍とリバーシで対局できる機能を有効にする場合は true を入れる (無効にする場合は false)",
|
||||
"serverMonitoring": "サーバー監視の機能を有効にする場合は true を入れる (無効にする場合は false)",
|
||||
"checkEmojisEnabled": "カスタム絵文字チェック機能を有効にする場合は true を入れる (無効にする場合は false)",
|
||||
"checkEmojisAtOnce": "カスタム絵文字チェック機能で投稿をまとめる場合は true を入れる (まとめない場合は false)",
|
||||
"mecab": "MeCab のインストールパス (ソースからインストールした場合、大体は /usr/local/bin/mecab)",
|
||||
"mecabDic": "MeCab の辞書ファイルパス (オプション)",
|
||||
"memoryDir": "memory.jsonの保存先(オプション、デフォルトは'.'(レポジトリのルートです))"
|
||||
|
@ -40,6 +42,8 @@ Misskey用の日本語Botです。
|
|||
"chartEnabled": "チャート機能を無効化する場合は false を入れてください",
|
||||
"reversiEnabled": "藍とリバーシで対局できる機能を有効にする場合は true を入れる (無効にする場合は false)",
|
||||
"serverMonitoring": "サーバー監視の機能を有効にする場合は true を入れる (無効にする場合は false)",
|
||||
"checkEmojisEnabled": "カスタム絵文字チェック機能を有効にする場合は true を入れる (無効にする場合は false)",
|
||||
"checkEmojisAtOnce": "カスタム絵文字チェック機能で投稿をまとめる場合は true を入れる (まとめない場合は false)",
|
||||
"mecab": "/usr/bin/mecab",
|
||||
"mecabDic": "/usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd/",
|
||||
"memoryDir": "data"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
type Config = {
|
||||
host: string;
|
||||
serverName: string;
|
||||
serverName?: string;
|
||||
i: string;
|
||||
master?: string;
|
||||
wsUrl: string;
|
||||
|
@ -10,7 +10,8 @@ type Config = {
|
|||
notingEnabled: boolean;
|
||||
chartEnabled: boolean;
|
||||
serverMonitoring: boolean;
|
||||
checkEmojisEnabled: boolean;
|
||||
checkEmojisEnabled?: boolean;
|
||||
checkEmojisAtOnce?: boolean;
|
||||
mecab?: string;
|
||||
mecabDic?: string;
|
||||
memoryDir?: string;
|
||||
|
|
|
@ -15,7 +15,7 @@ export default class extends Module {
|
|||
|
||||
@autobind
|
||||
public install() {
|
||||
if (config.checkEmojisEnabled === false) return {};
|
||||
if (!config.checkEmojisEnabled) return {};
|
||||
this.lastEmoji = this.ai.getCollection('lastEmoji', {
|
||||
indices: ['id']
|
||||
});
|
||||
|
@ -38,49 +38,65 @@ export default class extends Module {
|
|||
data.lastPosted = date;
|
||||
this.setData(data);
|
||||
|
||||
this.log('Time to check custom emojis!');
|
||||
this.log('Time to Check CustomEmojis!');
|
||||
this.post();
|
||||
}
|
||||
|
||||
@autobind
|
||||
private async post() {
|
||||
this.log('Start to check custom emojis.');
|
||||
this.log('Start to Check CustomEmojis.');
|
||||
const lastEmoji = this.lastEmoji.find({});
|
||||
// this.log('lastEmoji');
|
||||
// this.log(JSON.stringify(lastEmoji,null,'\t'));
|
||||
|
||||
const lastId = lastEmoji.length != 0 ? lastEmoji[0].id : null;
|
||||
const emojisData = await this.checkCumstomEmojis(lastId);
|
||||
if (emojisData.length == 0) return;
|
||||
if (emojisData.length == 0) {
|
||||
this.log('No CustomEmojis Added.');
|
||||
return;
|
||||
}
|
||||
|
||||
// 絵文字データが取得された場合、元々のデータを削除しておく
|
||||
const emojiSize = emojisData.length;
|
||||
this.lastEmoji.remove(lastEmoji);
|
||||
|
||||
// 概要について投稿
|
||||
const server_name = config.serverName ? config.serverName : 'このサーバー';
|
||||
this.log('Posting...');
|
||||
this.log(serifs.checkCustomEmojis.post(server_name, emojiSize));
|
||||
await this.ai.post({
|
||||
text: serifs.checkCustomEmojis.post(server_name, emojiSize)
|
||||
});
|
||||
|
||||
// 各絵文字について投稿
|
||||
for (const emoji of emojisData){
|
||||
// 一気に投稿しないver
|
||||
if (!config.checkEmojisAtOnce){
|
||||
// 概要について投稿
|
||||
this.log(serifs.checkCustomEmojis.post(server_name, emojiSize));
|
||||
await this.ai.post({
|
||||
text: serifs.checkCustomEmojis.emojiPost(emoji.name)
|
||||
text: serifs.checkCustomEmojis.post(server_name, emojiSize)
|
||||
});
|
||||
|
||||
// 各絵文字について投稿
|
||||
for (const emoji of emojisData){
|
||||
await this.ai.post({
|
||||
text: serifs.checkCustomEmojis.emojiPost(emoji.name)
|
||||
});
|
||||
this.log(serifs.checkCustomEmojis.emojiPost(emoji.name));
|
||||
}
|
||||
} else {
|
||||
// 一気に投稿ver
|
||||
let text = '';
|
||||
for (const emoji of emojisData){
|
||||
text += serifs.checkCustomEmojis.emojiOnce(emoji.name);
|
||||
}
|
||||
const message = serifs.checkCustomEmojis.postOnce(server_name, emojiSize, text);
|
||||
this.log(message);
|
||||
await this.ai.post({
|
||||
text: message
|
||||
});
|
||||
this.log(serifs.checkCustomEmojis.emojiPost(emoji.name));
|
||||
}
|
||||
|
||||
// データの保存
|
||||
this.log('Last custom emoji data saving...');
|
||||
this.log('Last CustomEmojis data saving...');
|
||||
this.log(JSON.stringify(emojisData[emojiSize-1],null,'\t'));
|
||||
this.lastEmoji.insertOne({
|
||||
id: emojisData[emojiSize-1].id,
|
||||
updatedAt: Date.now()
|
||||
});
|
||||
this.log('Check custom emojis finished!');
|
||||
this.log('Check CustomEmojis finished!');
|
||||
}
|
||||
|
||||
@autobind
|
||||
|
@ -126,10 +142,10 @@ export default class extends Module {
|
|||
|
||||
@autobind
|
||||
private async mentionHook(msg: Message) {
|
||||
if (!msg.includes(['カスタムえもじチェック'])) {
|
||||
if (!msg.includes(['カスタムえもじチェック','カスタムえもじを調べて','カスタムえもじを確認'])) {
|
||||
return false;
|
||||
} else {
|
||||
this.log('Check custom emojis requested');
|
||||
this.log('Check CustomEmojis requested');
|
||||
}
|
||||
|
||||
await this.post();
|
||||
|
|
|
@ -383,7 +383,9 @@ export default {
|
|||
|
||||
checkCustomEmojis: {
|
||||
post: (server_name, num) => `${server_name}に${num}件の絵文字が追加されました!`,
|
||||
emojiPost: emoji => `:${emoji}:\n(\`${emoji}\`) #AddCustomEmojis`
|
||||
emojiPost: emoji => `:${emoji}:\n(\`${emoji}\`) #AddCustomEmojis`,
|
||||
postOnce: (server_name, num, text) => `${server_name}に${num}件の絵文字が追加されました!\n${text} #AddCustomEmojis`,
|
||||
emojiOnce: emoji => `:${emoji}:(\`${emoji}\`)`
|
||||
},
|
||||
|
||||
sleepReport: {
|
||||
|
|
|
@ -75,6 +75,9 @@ Misskeyにアカウントを作成して初めて投稿を行うと、藍がネ
|
|||
### ping
|
||||
PONGを返します。生存確認にどうぞ
|
||||
|
||||
### カスタム絵文字チェック
|
||||
1日に1回、カスタム絵文字の追加を監視してくれます。「カスタムえもじチェック」または「カスタムえもじを確認して」ですぐに確認してくれます。
|
||||
|
||||
### その他反応するフレーズ (トークのみ)
|
||||
* かわいい
|
||||
* なでなで
|
||||
|
|
Loading…
Reference in a new issue