• Собрать чанки в один файл?

    @RuslanUC
    {i} используется только в f-строках. Чтобы собрать файл обратно, будет удобнее использовать другой цикл, а так же нужно читать все чанки, чтобы записать данные из них в конечный файл:
    for ch in range(i):
      with open(f'chunk_{ch}', 'rb') as chunk_file:
        recordingFile.write(chunk_file.read())
    Ответ написан
  • Почему не выводится команда?

    @RuslanUC
    В саблайме кривая встроенная система сборки. Попробуйте добавить другую - Tools -> Build System -> New build system. Далее вставьте это:
    {
        "cmd": ["python", "$file"],
        "file_patterns": ["*.py"],
        "env": {
            "PYTHONUNBUFFERED": "1"
        },
        "cancel": {
            "kill": true
        },
        "encoding": "utf-8"
    }

    и сохраните в той папке, в которой он предложит. Потом откройте ваш .py файл, выберите новую систему сборки - Tools -> Build System -> <название, которое вы указали при сохранении>. Пробуйте запускать.
    Ответ написан
    Комментировать
  • Как достать превью видео с youtube автоматически?

    @RuslanUC
    Превью можно получить по ссылке:
    https://img.youtube.com/vi/<айди видео>/maxresdefault.jpg
    Например:
    https://img.youtube.com/vi/RKW6rjnYEkc/maxresdefau...

    Айди можно достать из ссылки.
    Ответ написан
    2 комментария
  • Как сделать что бы бот ожидал пока пользователь прикрепит файл, а потом сохранит его в discord.py?

    @RuslanUC
    В discord.py есть функция wait_for, которая ждёт определённое событие, и если такое произошло, то оно возвращает результат.

    msg = await bot.wait_for('message', timeout=60, check=lambda m: m.channel == message.channel and m.author == message.author)
    for attach in msg.attachments:
        await attach.save(f"./{message.author.id}.png")
    Ответ написан
  • Запуск бота невозможен?

    @RuslanUC
    В тексте ошибки написано, что вы пытаетесь использовать интенты, которые не разрешили на странице приложения. Перейдите на https://discord.com/developers/applications/ выберите вашего бота, перейдите во вкладку "Bot", после чего поставьте все галочки в категории "Privileged Gateway Intents" (presence intent, server members intent и message content intent). После этого пробуйте запускать вашего бота с "discord.Intents.all()", скорее всего проблема будет решена.
    Ответ написан
    Комментировать
  • Как заставить ссылку на торрент работать правильно?

    @RuslanUC
    Похоже, сайт проверяет заголовок referer.
    Для того, чтобы ссылка не открывала страницу игры, достаточно добавить в запрос заголовок referer со значением "https://z2.mechanics-games.ru/".
    Ответ написан
    3 комментария
  • Почему бот в дискорде не отвечает при нажатии на кнопку?

    @RuslanUC
    Во первых, там где bot.wait_for(...), у вас прописано не "button_click", а "buttton_click", т.е. с тремя t.
    Во вторых при запуске кода вам выдаст ошибку, мол у response нет свойства components. Возможно это работает в прошлых версиях, но в новой - нет. Решение - добавить кнопкам custom_id, и проверять его:
    @bot.command()
    async def test(ctx):
      await ctx.send(
        embed=discord.Embed(title="тебе нравится наш сервер?"),
        components=[
          Button(style=ButtonStyle.red, label="ДА!", custom_id="yes"),
          Button(style=ButtonStyle.green, label="ну такое..", custom_id="no"),
        ]	
      )
    
      response = await bot.wait_for("button_click")
      if response.channel == ctx.channel:
        if response.custom_id == "yes":
          await response.respond(content="рады стараться!")
        else:
          await response.respond(content="в чем проблема?")


    И лучше добавить проверку канала в wait_for, сделать это можно так:
    def response_check(inter):
      return inter.channel == ctx.channel
    
    response = await bot.wait_for("button_click", check=response_check)

    или так:
    response = await bot.wait_for("button_click", check=lambda inter: inter.channel == ctx.channel)

    Тогда код будет выглядеть так:
    @bot.command()
    async def test(ctx):
      await ctx.send(
        embed=discord.Embed(title="тебе нравится наш сервер?"),
        components=[
          Button(style=ButtonStyle.red, label="ДА!", custom_id="yes"),
          Button(style=ButtonStyle.green, label="ну такое..", custom_id="no"),
        ]	
      )
    
      response = await bot.wait_for("button_click", check=lambda inter: inter.channel == ctx.channel)
      if response.custom_id == "yes":
        await response.respond(content="рады стараться!")
      else:
        await response.respond(content="в чем проблема?")
    Ответ написан
    Комментировать
  • Как сделать inline текст?

    @RuslanUC
    При создании embed добавьте в description это:
    [Текст](Ваша ссылка)
    Чтобы код выглядел примерно так:
    embed = discord.Embed(title="...", description="...  [Подробнее](https://discord.com/) ...")
    Ответ написан
    Комментировать
  • Можно как-то использовать другие папки в flask?

    @RuslanUC
    Вы можете изменить /static/ на что-то другое:
    app = Flask(__name__, static_url_path='/js_and_css')


    Так же можно сделать как вы хотите, но тогда нужно будет добавить следующий код:
    from flask import send_from_directory
    
    @app.route('/css/<filename>')
    def css_folder(filename):  
        return send_from_directory('css', filename)
    
    @app.route('/js/<filename>')
    def js_folder(filename):  
        return send_from_directory('js', filename)

    Тогда js и css будут браться из папок /js/ и /css/.
    Ответ написан
    Комментировать
  • Ошибка кода Discord.py что делать?

    @RuslanUC
    Судя по ошибке, бот пытается получить лс с самим собой.
    Нужна проверка, является ли человек, которому вы хотите отправить сообщение вашим ботом:
    @client.command()
    async def news(ctx):
      guild = ctx.guild
      async for member in guild.fetch_members(limit=None):
        if member != client.user:
          await member.send("Приветики!")
          print("Отправил", member)

    Или проверка на то, является ли пользователь ботом:
    @client.command()
    async def news(ctx):
      guild = ctx.guild
      async for member in guild.fetch_members(limit=None):
        if not member.bot:
          await member.send("Приветики!")
          print("Отправил", member)
    Ответ написан
    1 комментарий
  • Можно ли как-то переотправить картинку через discord.py, которую отправил пользователь?

    @RuslanUC
    Пропишите этот код в функцию on_message:
    if message.attachments:
        files = []
        for attachment in message.attachments:
            files.append(await attachment.to_file())
        if files:
            user = await bot.fetch_user(user_id) # получение пользователя
            dm = await user.create_dm() # получение лс
            await dm.send(files=files)


    Замените user_id на айди пользователя, кому нужно пересылать картинки (у пользователя должны быть разрешены сообщения от всех пользователей в настройках дискорда).
    Код выше будет пересылать все файлы, которые будет получать бот (в том числе файлы, отправленные на серверах). Чтобы пересылать только картинки, нужно проверять тип файла и код будет выглядеть так:
    if message.attachments:
        files = []
        for attachment in message.attachments:
            try:
                if attachment.content_type.startswith("image/"):
                    files.append(await attachment.to_file())
            except:
                continue
        if files:
            user = await bot.fetch_user(user_id) # получение пользователя
            dm = await user.create_dm() # получение лс
            await dm.send(files=files)
    Ответ написан
    Комментировать