Files
arestools/src/userbot/events.js
T

38 lines
1.5 KiB
JavaScript
Raw Normal View History

import { NewMessage } from 'telegram/events/NewMessage.js';
import { DeletedMessage } from 'telegram/events/DeletedMessage.js';
import { EditedMessage } from 'telegram/events/EditedMessage.js';
import { logger } from '../core/logger.js';
import { runHook } from '../core/registry.js';
/**
* Подписывает клиент на апдметы и раздаёт их модулям через хуки.
* Мы слушаем всё, но модули сами решают, что делать (обычно — только личку).
*/
export function wireEvents(client, registry, ctx) {
client.addEventHandler(
(event) => runHook(registry, 'onMessage', event.message, ctx),
new NewMessage({}),
);
client.addEventHandler(
(event) => runHook(registry, 'onEdited', event.message, ctx),
new EditedMessage({}),
);
client.addEventHandler(
(event) => runHook(registry, 'onDeleted', event, ctx),
new DeletedMessage({}),
);
logger.debug('события юзербота подписаны: new / edited / deleted');
}
/** Личный диалог один-на-один (не группа, не канал, не свои Избранные). */
export function isPrivateIncoming(message, me) {
if (!message) return false;
if (message.out) return false; // исходящие от себя не перехватываем
const cls = message.peerId?.className;
return cls === 'PeerUser' && String(message.senderId) !== String(me?.id ?? '');
}