FunPayServer icon indicating copy to clipboard operation
FunPayServer copied to clipboard

Не работает уведомление о поступлении нового сообщения

Open FarikLoL opened this issue 1 year ago • 2 comments

Не работает уведомление о поступлении нового сообщения

FarikLoL avatar Dec 20 '23 00:12 FarikLoL

defire156 avatar Dec 26 '23 12:12 defire156

Для тех людей, кто столкнется с той же проблемой:

TLDR: включите greetingMessage: 1 в конфиге

Я порылся в коде сервера, этот баг происходит, если параметр greetingMessage отключен (greetingMessage: 0) Это связано с функцией в index.js

65 if(settings.newMessageNotification == true && settings.greetingMessage == true) {
66    runner.registerNewIncomingMessageCallback(onNewIncomingMessage);
67 }

Тут проверяется, включены ли параметры newMessageNotification и greetingMessage, и если да, запускает код в onNewIncomingMessage

114 function onNewIncomingMessage(message) {
115     processIncomingMessages(message);
116 }

Переход на функцию processIncomingMessages

89 async function processIncomingMessages(message) {
90    // Notification
91     if(global.telegramBot && settings.newMessageNotification) {
92        if(settings.watermark) {
93             if(!message.content.includes(settings.watermark)) {
94                 global.telegramBot.sendNewMessageNotification(message);
95             }
96         } else {
97             global.telegramBot.sendNewMessageNotification(message);
98         }
99     }

Получается, что сообщение отправляется только если включены оба параметра

Предложения по решению проблемы:

  • Вынести часть с Notification в отдельную функцию
  • Полностью убрать этот код, так как все равно в processIncomingMessages происходят проверки
    65 if(settings.newMessageNotification == true && settings.greetingMessage == true) {
    66    runner.registerNewIncomingMessageCallback(onNewIncomingMessage);
    67 }
    
    Новый вариант:
     runner.registerNewIncomingMessageCallback(onNewIncomingMessage);
    

FantomLis avatar Jan 30 '24 14:01 FantomLis