Помогите сделать команду для выдачи варна

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

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

Зарегистрироваться!
  • Если Вы желаете помогать развитию проекта, готовы заполнять раздел(-ы) и подсказывать другим пользователям на портале, есть возможность попасть в команду редакторов. Для этого следует обратиться в техническую поддержку
Пользователь
Регистрация
13 Авг 2024
Сообщения
22
Здравствуйте. Пишу своего чат менеджера.
Помогите пожалуйста!
Мне нужна команда /warn, которая будет выдавать предупреждение пользователю в беседе.
/warn - Пользователь получил первое предупреждение, и так до 3 предупреждений, после чего кик.

 
Пользователь
Регистрация
13 Июл 2023
Сообщения
10
Бро, попробуй у чата гпт или копилота просить. Тебе нужно просто реализовать обработку команды, проверку админ ли юзер, выдача Варна и запись его в бд на юзера, сообщение о Варне/лог варна
 
Заблокированный
Регистрация
17 Июл 2024
Сообщения
51
Здравствуйте. Пишу своего чат менеджера.
Помогите пожалуйста!
Мне нужна команда /warn, которая будет выдавать предупреждение пользователю в беседе.
/warn - Пользователь получил первое предупреждение, и так до 3 предупреждений, после чего кик.

Установка библиотеки Payton
pip install vkbottle
Python:
from vkbottle.bot import Bot, Message
from vkbottle.types import GroupEventType, MessageEvent
from vkbottle.modules import logger

# Токен группы ВКонтакте
BOT_TOKEN = "Token 🫂"

# Словарь для хранения предупреждений пользователей
warnings = {}

# Инициализация бота
bot = Bot(token=BOT_TOKEN)

@bot.on.message(text="/warn <user_id>")
async def warn_user(message: Message, user_id: str):
    global warnings
    
    chat_id = message.peer_id
    user_id = int(user_id.strip("[id]"))  # Преобразуем user_id в int

    # Если пользователя еще нет в списке предупреждений, добавляем
    if chat_id not in warnings:
        warnings[chat_id] = {}
    if user_id not in warnings[chat_id]:
        warnings[chat_id][user_id] = 0

    # Увеличиваем количество предупреждений
    warnings[chat_id][user_id] += 1
    warn_count = warnings[chat_id][user_id]

    if warn_count < 3:
        await message.answer(
            f"[id{user_id}|Пользователь] получил {warn_count} предупреждение. Всего 3 до кика."
        )
    else:
        # Кикаем пользователя, если это третье предупреждение
        await bot.api.messages.remove_chat_user(chat_id=chat_id - 2000000000, user_id=user_id)
        await message.answer(
            f"[id{user_id}|Пользователь] получил 3 предупреждения и был удалён из беседы."
        )
        # Сбрасываем количество предупреждений
        warnings[chat_id].pop(user_id)

# Запуск бота
if __name__ == "__main__":
    bot.run_forever()


Удачи братуха tg/fast_ejje777
 
Пользователь
Регистрация
24 Дек 2024
Сообщения
33
Установка библиотеки Payton
pip install vkbottle
Python:
from vkbottle.bot import Bot, Message
from vkbottle.types import GroupEventType, MessageEvent
from vkbottle.modules import logger

# Токен группы ВКонтакте
BOT_TOKEN = "Token 🫂"

# Словарь для хранения предупреждений пользователей
warnings = {}

# Инициализация бота
bot = Bot(token=BOT_TOKEN)

@bot.on.message(text="/warn <user_id>")
async def warn_user(message: Message, user_id: str):
    global warnings
   
    chat_id = message.peer_id
    user_id = int(user_id.strip("[id]"))  # Преобразуем user_id в int

    # Если пользователя еще нет в списке предупреждений, добавляем
    if chat_id not in warnings:
        warnings[chat_id] = {}
    if user_id not in warnings[chat_id]:
        warnings[chat_id][user_id] = 0

    # Увеличиваем количество предупреждений
    warnings[chat_id][user_id] += 1
    warn_count = warnings[chat_id][user_id]

    if warn_count < 3:
        await message.answer(
            f"[id{user_id}|Пользователь] получил {warn_count} предупреждение. Всего 3 до кика."
        )
    else:
        # Кикаем пользователя, если это третье предупреждение
        await bot.api.messages.remove_chat_user(chat_id=chat_id - 2000000000, user_id=user_id)
        await message.answer(
            f"[id{user_id}|Пользователь] получил 3 предупреждения и был удалён из беседы."
        )
        # Сбрасываем количество предупреждений
        warnings[chat_id].pop(user_id)

# Запуск бота
if __name__ == "__main__":
    bot.run_forever()


Удачи братуха tg/fast_ejje777
OFFTOP

бля чувак иди вскройся нахуй, как ты проверяешь warns через <? меньше трёх - кикаешь? где сохранение и загрузка warnings

 
Пользователь
Регистрация
13 Июл 2023
Сообщения
10
Установка библиотеки Payton
pip install vkbottle
Python:
from vkbottle.bot import Bot, Message
from vkbottle.types import GroupEventType, MessageEvent
from vkbottle.modules import logger

# Токен группы ВКонтакте
BOT_TOKEN = "Token 🫂"

# Словарь для хранения предупреждений пользователей
warnings = {}

# Инициализация бота
bot = Bot(token=BOT_TOKEN)

@bot.on.message(text="/warn <user_id>")
async def warn_user(message: Message, user_id: str):
    global warnings
   
    chat_id = message.peer_id
    user_id = int(user_id.strip("[id]"))  # Преобразуем user_id в int

    # Если пользователя еще нет в списке предупреждений, добавляем
    if chat_id not in warnings:
        warnings[chat_id] = {}
    if user_id not in warnings[chat_id]:
        warnings[chat_id][user_id] = 0

    # Увеличиваем количество предупреждений
    warnings[chat_id][user_id] += 1
    warn_count = warnings[chat_id][user_id]

    if warn_count < 3:
        await message.answer(
            f"[id{user_id}|Пользователь] получил {warn_count} предупреждение. Всего 3 до кика."
        )
    else:
        # Кикаем пользователя, если это третье предупреждение
        await bot.api.messages.remove_chat_user(chat_id=chat_id - 2000000000, user_id=user_id)
        await message.answer(
            f"[id{user_id}|Пользователь] получил 3 предупреждения и был удалён из беседы."
        )
        # Сбрасываем количество предупреждений
        warnings[chat_id].pop(user_id)

# Запуск бота
if __name__ == "__main__":
    bot.run_forever()


Удачи братуха tg/fast_ejje777
Бля, ты идиот? Даёшь код с нейронки так ещё и говно полное. Глобал переменные, хранение варнов в словаре и хуева куча говна
 
Заблокированный
Регистрация
17 Июл 2024
Сообщения
51
Исправил

Python:
import json
from vkbottle.bot import Bot, Message

# Токен группы ВКонтакте
BOT_TOKEN = "ваш_токен"

# Словарь для хранения предупреждений пользователей
warnings = {}

# Путь к файлу для хранения данных
WARNINGS_FILE = "warnings.json"

# Инициализация бота
bot = Bot(token=BOT_TOKEN)

# Загрузка предупреждений из файла при старте бота
def load_warnings():
    global warnings
    try:
        with open(WARNINGS_FILE, "r") as f:
            warnings = json.load(f)
    except FileNotFoundError:
        warnings = {}

# Сохранение предупреждений в файл
def save_warnings():
    with open(WARNINGS_FILE, "w") as f:
        json.dump(warnings, f)

@bot.on.message(text="/warn <user_id>")
async def warn_user(message: Message, user_id: str):
    global warnings
   
    chat_id = message.peer_id
    user_id = int(user_id.strip("[id]"))  # Преобразуем user_id в int

    # Если пользователя еще нет в списке предупреждений для этой беседы, добавляем
    if chat_id not in warnings:
        warnings[chat_id] = {}
    if user_id not in warnings[chat_id]:
        warnings[chat_id][user_id] = 0

    # Увеличиваем количество предупреждений
    warnings[chat_id][user_id] += 1
    warn_count = warnings[chat_id][user_id]

    if warn_count < 3:
        await message.answer(
            f"[id{user_id}|Пользователь] получил {warn_count} предупреждение. Всего 3 до кика."
        )
    else:
        # Кикаем пользователя, если это третье предупреждение
        await bot.api.messages.remove_chat_user(chat_id=chat_id - 2000000000, user_id=user_id)
        await message.answer(
            f"[id{user_id}|Пользователь] получил 3 предупреждения и был удалён из беседы."
        )
        # Удаляем пользователя из списка предупреждений
        warnings[chat_id].pop(user_id)

    # Сохраняем изменения в файл
    save_warnings()

# Запуск бота
if __name__ == "__main__":
    load_warnings()  # Загружаем предупреждения при старте
    bot.run_forever()

Создавайте файл warnings.json
Чтобы сохранить предупреждение этот файл
 
Пользователь
Регистрация
13 Июл 2023
Сообщения
10
Пользователь
Регистрация
13 Авг 2024
Сообщения
22
Исправил

Python:
import json
from vkbottle.bot import Bot, Message

# Токен группы ВКонтакте
BOT_TOKEN = "ваш_токен"

# Словарь для хранения предупреждений пользователей
warnings = {}

# Путь к файлу для хранения данных
WARNINGS_FILE = "warnings.json"

# Инициализация бота
bot = Bot(token=BOT_TOKEN)

# Загрузка предупреждений из файла при старте бота
def load_warnings():
    global warnings
    try:
        with open(WARNINGS_FILE, "r") as f:
            warnings = json.load(f)
    except FileNotFoundError:
        warnings = {}

# Сохранение предупреждений в файл
def save_warnings():
    with open(WARNINGS_FILE, "w") as f:
        json.dump(warnings, f)

@bot.on.message(text="/warn <user_id>")
async def warn_user(message: Message, user_id: str):
    global warnings
  
    chat_id = message.peer_id
    user_id = int(user_id.strip("[id]"))  # Преобразуем user_id в int

    # Если пользователя еще нет в списке предупреждений для этой беседы, добавляем
    if chat_id not in warnings:
        warnings[chat_id] = {}
    if user_id not in warnings[chat_id]:
        warnings[chat_id][user_id] = 0

    # Увеличиваем количество предупреждений
    warnings[chat_id][user_id] += 1
    warn_count = warnings[chat_id][user_id]

    if warn_count < 3:
        await message.answer(
            f"[id{user_id}|Пользователь] получил {warn_count} предупреждение. Всего 3 до кика."
        )
    else:
        # Кикаем пользователя, если это третье предупреждение
        await bot.api.messages.remove_chat_user(chat_id=chat_id - 2000000000, user_id=user_id)
        await message.answer(
            f"[id{user_id}|Пользователь] получил 3 предупреждения и был удалён из беседы."
        )
        # Удаляем пользователя из списка предупреждений
        warnings[chat_id].pop(user_id)

    # Сохраняем изменения в файл
    save_warnings()

# Запуск бота
if __name__ == "__main__":
    load_warnings()  # Загружаем предупреждения при старте
    bot.run_forever()

Создавайте файл warnings.json
Чтобы сохранить предупреждение этот файл
from vkbottle.bot import Bot, Message
ModuleNotFoundError: No module named 'vkbottle'
 
Пользователь
Регистрация
13 Авг 2024
Сообщения
22
Такс, написал. Пишет:


error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/
[end of output]

note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for msgspec
Failed to build msgspec
ERROR: ERROR: Failed to build installable wheels for some pyproject.toml based projects (msgspec)
 
Пользователь
Регистрация
13 Июл 2023
Сообщения
10
Такс, написал. Пишет:


error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/
[end of output]

note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for msgspec
Failed to build msgspec
ERROR: ERROR: Failed to build installable wheels for some pyproject.toml based projects (msgspec)
Блять, ну в переводчике переведи и мозгами раскинь прочитав текст
 
Пользователь
Регистрация
13 Авг 2024
Сообщения
22
Такс, написал. Пишет:


error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/
[end of output]

note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for msgspec
Failed to build msgspec
ERROR: ERROR: Failed to build installable wheels for some pyproject.toml based projects (msgspec)
Блять, ну в переводчике переведи и мозгами раскинь прочитав текст
такая же ошибка, не знаю как решить, голова кругом идет и болит уже
 
Сверху