Бот-рандомайзер с input для Discord, вывод нескольких значений со списка и исключение их
Создал простенького бота, выводящего командой "/roll" 2 случайных языка из готового списка. Суть в чем:
- Мне необходимо, чтобы я мог несколько раз дублировать эту команду в одном сообщении бота, и чтобы каждый раз был случайный результат, не имеющий значений с предыдущего. Прим.: /roll 2 # 2 - кол-во выполнений команды --> ['Английский', 'Русский'] ['Бразильский', 'Китайский']
- Было бы неплохо исключить какое-то количество языков, написав в той же команде их название. Допустим, я пишу "Английский, Японский" (/roll n Английский Японский), и они не выдаются мне, как результат.
Код:
import discord
import random
from discord.ext import commands
intents = discord.Intents.default()
intents.message_content = True
bot = commands.Bot(command_prefix='/', intents=intents)
lan_list = ['Японский', 'Английский', 'Арабский', 'Русский', 'Французский',
'Бразильский', 'Немецкий', 'Китайский']
k = 2
@bot.command()
async def roll(ctx):
randoms = (random.SystemRandom().sample(lan_list, k))
await ctx.send(randoms)
Источник: Stack Overflow на русском