ChatManager - исходник чат-бота VK для модерации чатов

Добро пожаловать!

Зарегистрировавшись у нас, вы сможете обсуждать, делиться и отправлять личные сообщения другим участникам нашего сообщества.

Зарегистрироваться!
hi
Редактор
Регистрация
13 Июн 2022
Сообщения
213
1765033685067.png
( пикамонов и тфорник около офиса )

Выкладываю исходники коробки для вашего чат-менеджера
Реализовано: Роли, Ники, Баны, Настройки и тд.
Мут есть, но его доделать нужно(команды), у кого руки не из одного места - сделает
Варнов нет


При публиковании на другие форумы - указывайте автора TFORNIK
Продукт защищен лицензией GNU GPL 3.0

1. Переместите содержимое архива в любую папку на компьютере
2. Откройте консоль в этой папке, используйте команду npm install
3. После установки библиотек, отредактируйте файл .env
( DATABASE_URL - ссылка на базу данных MySQL, BOT_TOKEN = токен бота, GROUP_ID - ID группы )
4. Синхронизируйте базу данных командой: npx prisma db push
5. Запустите бота командой: node app
 

Вложения

  • ChatManager.rar
    45 KB · Просмотры: 16
hi
Редактор
Регистрация
13 Июн 2022
Сообщения
213
Кто скажет что весь код написан нейросетью - будет забанен на форуме
 
Редактор из Python
Редактор
Регистрация
20 Мар 2025
Сообщения
848
Посмотреть вложение 17002
( пикамонов и тфорник около офиса )

Выкладываю исходники коробки для вашего чат-менеджера
Реализовано: Роли, Ники, Баны, Настройки и тд.
Мут есть, но его доделать нужно(команды), у кого руки не из одного места - сделает
Варнов нет


При публиковании на другие форумы - указывайте автора TFORNIK
Продукт защищен лицензией GNU GPL 3.0

1. Переместите содержимое архива в любую папку на компьютере
2. Откройте консоль в этой папке, используйте команду npm install
3. После установки библиотек, отредактируйте файл .env
( DATABASE_URL - ссылка на базу данных MySQL, BOT_TOKEN = токен бота, GROUP_ID - ID группы )
4. Синхронизируйте базу данных командой: npx prisma db push
5. Запустите бота командой: node app
OFFTOP

Круто

 
Лучше плохо начать, чем хорошо бездействовать
Профессионал
Регистрация
30 Ноя 2024
Сообщения
1,949
1765033685067.png
OFFTOP

Интересно, интересно 🫣


Кто скажет что весь код написан нейросетью - будет забанен на форуме
OFFTOP

А это случайно не злоупотребление свои положением?)
P.S. Подожди, редакторы же вроде не могут раздавать баны..

 
Пользователь
Регистрация
7 Окт 2024
Сообщения
63
а подобное тоже практикуется в Silence?

database:
const users = await prisma.$queryRawUnsafe(
    `SELECT * FROM users WHERE peer_id = ? AND ${wherePart}`,
    id
);
 
Пользователь
Регистрация
7 Окт 2024
Сообщения
63
а с какой целью это было сделано?
зачем загружать ВСЮ базу данных (все баны всех бесед) в оперативную память при запуске?

BanManager:
async loadCache() {
    const [status, bans] = await this.db.getAllUsers();
    console.log(status, bans)
    if (status) {
        bans.forEach(element => {
            if (element.active == 1) {
                if (!this.cache.has(Number(element.peer_id))) {
                    this.cache.set(Number(element.peer_id), new Map());
                }
                this.cache.get(Number(element.peer_id)).set(Number(element.user_id), {
                    time: Number(element.time),
                    reason: element.reason || '',
                    admin: Number(element.admin)
                });
            }
        });
    }
}
 
Пользователь
Регистрация
21 Янв 2023
Сообщения
325
а с какой целью это было сделано?
зачем загружать ВСЮ базу данных (все баны всех бесед) в оперативную память при запуске?

BanManager:
async loadCache() {
    const [status, bans] = await this.db.getAllUsers();
    console.log(status, bans)
    if (status) {
        bans.forEach(element => {
            if (element.active == 1) {
                if (!this.cache.has(Number(element.peer_id))) {
                    this.cache.set(Number(element.peer_id), new Map());
                }
                this.cache.get(Number(element.peer_id)).set(Number(element.user_id), {
                    time: Number(element.time),
                    reason: element.reason || '',
                    admin: Number(element.admin)
                });
            }
        });
    }
}
А че нет то ?
 
Пользователь
Регистрация
1 Апр 2025
Сообщения
47
а с какой целью это было сделано?
зачем загружать ВСЮ базу данных (все баны всех бесед) в оперативную память при запуске?

BanManager:
async loadCache() {
    const [status, bans] = await this.db.getAllUsers();
    console.log(status, bans)
    if (status) {
        bans.forEach(element => {
            if (element.active == 1) {
                if (!this.cache.has(Number(element.peer_id))) {
                    this.cache.set(Number(element.peer_id), new Map());
                }
                this.cache.get(Number(element.peer_id)).set(Number(element.user_id), {
                    time: Number(element.time),
                    reason: element.reason || '',
                    admin: Number(element.admin)
                });
            }
        });
    }
}
что бы если что быстро подгрузить, и не делать лишний запрос к бд.
думаю, если сервер нормальный, ниче с ботом не будет.
 
Сверху