Переписать проект в личный MTProto-юзербот
Смена архитектуры с бизнес-бота на Bot API (команды со слешем) на личный юзербот на GramJS/MTProto с управлением через компаньон-бота. Возможности: - antidelete — кэш входящих в личке, восстановление удалённых «у всех» - onetime — перехват «просмотр один раз» фото/видео до истечения ссылки - локальное хранилище node:sqlite + шифрование AES-256-GCM, чистка по сроку - компаньон-бот (grammY): инлайн-панель, лента с пагинацией, выдача медиа, доступ только владельцу по OWNER_ID Устройство: - core/ — crypto, db, media, loader, registry, logger - userbot/ — MTProto-клиент из строки сессии, подписка на события - modules/ — фичи как модули с хуками setup/onMessage/onEdited/onDeleted - bot/ — компаньон-бот (единственный UI) - scripts/login.js — генерация строки сессии Удалён старый код Bot API (commands/, handlers/, middlewares/, dispatcher, store). Обновлены README и .env.example. Hcrgram/ (сторонний референс) добавлен в .gitignore. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
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;
|
||||
},
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user