91 lines
2.4 KiB
Python
91 lines
2.4 KiB
Python
import arguments
|
|
import commands
|
|
import utils
|
|
|
|
from .utils import command_allowed
|
|
|
|
|
|
async def resume(message):
|
|
if not command_allowed(message):
|
|
return
|
|
|
|
if message.guild.voice_client.is_paused():
|
|
message.guild.voice_client.resume()
|
|
await utils.add_check_reaction(message)
|
|
else:
|
|
await utils.reply(
|
|
message,
|
|
"nothing is paused!",
|
|
)
|
|
|
|
|
|
async def pause(message):
|
|
if not command_allowed(message):
|
|
return
|
|
|
|
if message.guild.voice_client.is_playing():
|
|
message.guild.voice_client.pause()
|
|
await utils.add_check_reaction(message)
|
|
else:
|
|
await utils.reply(
|
|
message,
|
|
"nothing is playing!",
|
|
)
|
|
|
|
|
|
async def fast_forward(message):
|
|
tokens = commands.tokenize(message.content)
|
|
parser = arguments.ArgumentParser(tokens[0], "fast forward audio playback")
|
|
parser.add_argument(
|
|
"seconds",
|
|
type=lambda v: arguments.range_type(v, min=0, max=300),
|
|
help="the amount of seconds to fast forward",
|
|
)
|
|
if not (args := await parser.parse_args(message, tokens)):
|
|
return
|
|
|
|
if not command_allowed(message):
|
|
return
|
|
|
|
if not message.guild.voice_client.source:
|
|
await utils.reply(message, "nothing is playing!")
|
|
return
|
|
|
|
message.guild.voice_client.pause()
|
|
message.guild.voice_client.source.original.fast_forward(args.seconds)
|
|
message.guild.voice_client.resume()
|
|
|
|
await utils.add_check_reaction(message)
|
|
|
|
|
|
async def volume(message):
|
|
tokens = commands.tokenize(message.content)
|
|
parser = arguments.ArgumentParser(tokens[0], "get or set the current volume level")
|
|
parser.add_argument(
|
|
"volume",
|
|
nargs="?",
|
|
type=lambda v: arguments.range_type(v, min=0, max=150),
|
|
help="the volume level (0 - 150)",
|
|
)
|
|
if not (args := await parser.parse_args(message, tokens)):
|
|
return
|
|
|
|
if not command_allowed(message, immutable=True):
|
|
return
|
|
|
|
if not message.guild.voice_client.source:
|
|
await utils.reply(message, "nothing is playing!")
|
|
return
|
|
|
|
if args.volume is None:
|
|
await utils.reply(
|
|
message,
|
|
f"{int(message.guild.voice_client.source.volume * 100)}",
|
|
)
|
|
else:
|
|
if not command_allowed(message):
|
|
return
|
|
|
|
message.guild.voice_client.source.volume = float(args.volume) / 100.0
|
|
await utils.add_check_reaction(message)
|