75 lines
1.9 KiB
Python
Executable File
75 lines
1.9 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
"""
|
|
Pick some random numbers.
|
|
"""
|
|
import sys
|
|
import random
|
|
import string
|
|
|
|
from module import commands, example
|
|
|
|
@commands("rand")
|
|
@example(".rand 2", "random(0, 2) = 1")
|
|
@example(".rand -1 -1", "random(-1, -1) = -1")
|
|
@example(".rand", "random(0, 56) = 13")
|
|
@example(".rand 99 10", "random(10, 99) = 53")
|
|
@example(".rand 10 99", "random(10, 99) = 29")
|
|
def rand(bot, trigger):
|
|
"""Replies with a random number between first and second argument."""
|
|
arg1 = trigger.args[1] if len(trigger.args) >= 2 else 0
|
|
arg2 = trigger.args[2] if len(trigger.args) >= 3 else sys.maxsize
|
|
|
|
try:
|
|
low = int(arg1)
|
|
high = int(arg2)
|
|
except (ValueError, TypeError):
|
|
return bot.reply("Arguments must be of integer type")
|
|
|
|
if low > high:
|
|
low, high = high, low
|
|
|
|
number = random.randint(low, high)
|
|
bot.reply(f"random({low}, {high}) = {number}")
|
|
|
|
|
|
@commands("choice", "choose")
|
|
@example(".choose opt1|opt2|opt3")
|
|
def choose(bot, trigger):
|
|
"""
|
|
.choice option1|option2|option3 - Makes a difficult choice easy.
|
|
"""
|
|
if len(trigger.args) < 2:
|
|
return bot.reply("Choose what?")
|
|
choices = trigger.msg.partition(' ')[2].split('|')
|
|
pick = random.choice(choices)
|
|
msg = f"Your options: {'|'.join(choices)}. My choice: {pick}"
|
|
bot.reply(msg)
|
|
|
|
|
|
@commands('letters')
|
|
@example('.letters', 'iloynlle')
|
|
@example('.letters 16', 'oaotordbwaauouxk')
|
|
def rand_letters(bot, trigger):
|
|
"""
|
|
usage: .letters [num_letters] [num_vowels]
|
|
|
|
Generates a series of string of random letters.
|
|
"""
|
|
arg1 = trigger.args[1] if len(trigger.args) >= 2 else 8
|
|
arg2 = trigger.args[2] if len(trigger.args) >= 3 else 2
|
|
|
|
try:
|
|
num_letters = int(arg1)
|
|
num_vowels = int(arg2)
|
|
except (ValueError, TypeError):
|
|
return bot.reply("Arguments must be of integer type")
|
|
|
|
if num_letters > 200:
|
|
num_letters = 200
|
|
|
|
msg = []
|
|
for _ in range(num_letters):
|
|
c = random.choice(string.ascii_lowercase + "aioue" * num_vowels)
|
|
msg.append(c)
|
|
bot.msg(''.join(msg))
|