• Vk_api - вопрос по евенту?

    OhMySenpai
    @OhMySenpai
    Начинающий программист
    У меня в профиле был от меня же вопрос, и спустя время я написал решение
    if event.type == VkBotEventType.MESSAGE_NEW and (action := event.obj['message'].get('action')):
                if action['type'] == 'chat_invite_user' and action["member_id"] == -12345678: #вместо -12345678 айди группы с минусом
                    vk.messages.send(
                        peer_id=event.message.peer_id,
                        random_id=get_random_id(),
                        message="Привет")

    Ссылка на пост: Клик
    Ответ написан
    Комментировать
  • Как воспроизвести mp3 в pycord-discord.py?

    OhMySenpai
    @OhMySenpai
    Начинающий программист
    В Pycord для воспроизведения аудио используется VoiceClient. Вам нужно подключиться к голосовому каналу и затем воспроизводить аудио через VoiceClient.play().
    import discord
    from discord.ext import commands
    
    bot = commands.Bot(command_prefix='!')
    
    @bot.command()
    async def play(ctx):
        voice_channel = ctx.author.voice.channel
        voice_client = await voice_channel.connect()
        audio_source = discord.FFmpegPCMAudio('test.mp3')
        voice_client.play(audio_source)
    Ответ написан
  • Как заставит тг бота сохранять сброшенный ему файл в json формате?

    OhMySenpai
    @OhMySenpai
    Начинающий программист
    Проблема заключается в том, что вы пытаетесь сохранить файл в формате JSON, используя метод download_to_drive(), который сохраняет файл в бинарном формате. Вместо этого вам нужно прочитать содержимое файла в виде текста и сохранить его в формате JSON.

    Вот как можно изменить функцию downloader_json(), чтобы сохранить содержимое файла в формате JSON:
    import json
    
    async def downloader_json(update, context):
        file = await context.bot.get_file(update.message.document)
        downloaded_file = await file.download()
    
        with open('items.json', 'w') as f:
            content = await downloaded_file.read()
            json.dump(content.decode('utf-8'), f)
    Ответ написан
    Комментировать
  • Как сделать проверку на админа?

    OhMySenpai
    @OhMySenpai
    Начинающий программист
    Используй базу данных или храни это в документе. Создай бд, и в бд добавляй таблицу для беседы, и добавляй каждого пользователя (если без прав администратора в чате, но чтобы был в боте). И вот в документации есть вот это Клик, должно помочь(Если не нашёл то getChatAdministrators)
    Ответ написан
    2 комментария
  • Как сделать приветствие при добавлении этого же бота?

    OhMySenpai
    @OhMySenpai Автор вопроса
    Начинающий программист
    Лазил я по профилю, но так тут и решение не отметил, так что будет мой вариант
    if event.type == VkBotEventType.MESSAGE_NEW and (action := event.obj['message'].get('action')):
                if action['type'] == 'chat_invite_user' and action["member_id"] == -12345678: #вместо -12345678 айди группы с минусом
                    vk.messages.send(
                        peer_id=event.message.peer_id,
                        random_id=get_random_id(),
                        message="Привет")
    Ответ написан
    Комментировать
  • VK API, Python. Как устранить вмешательство других пользователей в цепочку сообщений с ботом?

    OhMySenpai
    @OhMySenpai
    Начинающий программист
    Если хочешь чтобы через беседу можно было бы, то пробуй подключить к своему боту базу данных. К примеру sqlite3: создай бд, поставь столбец айди пользователя(столбец)1, создай ещё один столбец для того что в данный момент он пишет о ошибке(столбец 2) (потом можешь ещё по надобности добавить). После того как пользователь пишет "Сообщить о ошибке" добавляй в столбец 2 какое-то значение (Например стандартное 0, а ты добавил 1), проверяй каждый ивент сообщений и проверяй айди через бд(и также добавляй если его нету, и просто также проверяй есть ли он или нет). Если этот пользователь написал ошибку - поменяй значение столбца 2 на 0 и выводи его сообщение себе. Можно ещё по другому, просто бот написал бы ему в личные сообщения, а потом уже ты бы вывел это себе. Если нужно будет код, то я напишу его когда проснусь
    Ответ написан
    Комментировать