26 lines
1.0 KiB
JavaScript
26 lines
1.0 KiB
JavaScript
|
|
import { saveCapture } from '../core/db.js';
|
||
|
|
import { notifyCapture } from '../bot/panel.js';
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Контекст передаётся в каждый хук модуля. Это единственная точка, через которую
|
||
|
|
* модуль что-то делает: сохраняет перехват, уведомляет владельца, качает медиа.
|
||
|
|
* Модуль не знает ни про grammY, ни про схему БД — только про этот интерфейс.
|
||
|
|
*/
|
||
|
|
export function createContext({ client, bot, me, registry }) {
|
||
|
|
return {
|
||
|
|
client, // MTProto-клиент (GramJS)
|
||
|
|
me, // объект себя
|
||
|
|
registry,
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Сохраняет перехват в БД и уведомляет владельца. kind: 'deleted' | 'onetime'.
|
||
|
|
* data: { chatId, senderId, sender, text, mediaKind, mediaPath }
|
||
|
|
*/
|
||
|
|
async capture(kind, data) {
|
||
|
|
const id = saveCapture(kind, data);
|
||
|
|
await notifyCapture(bot, { id, kind, ...data });
|
||
|
|
return id;
|
||
|
|
},
|
||
|
|
};
|
||
|
|
}
|