mirror of
https://github.com/RYGhub/royalnet.git
synced 2024-11-27 13:34:28 +00:00
Aggiungi comando pause
This commit is contained in:
parent
dfa2310f06
commit
d6f63626b2
3 changed files with 55 additions and 2 deletions
|
@ -25,9 +25,10 @@ from .playmode import PlaymodeCommand
|
||||||
from .videochannel import VideochannelCommand
|
from .videochannel import VideochannelCommand
|
||||||
from .missing import MissingCommand
|
from .missing import MissingCommand
|
||||||
from .cv import CvCommand
|
from .cv import CvCommand
|
||||||
|
from .pause import PauseCommand
|
||||||
|
|
||||||
|
|
||||||
__all__ = ["NullCommand", "PingCommand", "ShipCommand", "SmecdsCommand", "CiaoruoziCommand", "ColorCommand",
|
__all__ = ["NullCommand", "PingCommand", "ShipCommand", "SmecdsCommand", "CiaoruoziCommand", "ColorCommand",
|
||||||
"SyncCommand", "DiarioCommand", "RageCommand", "DateparserCommand", "AuthorCommand", "ReminderCommand",
|
"SyncCommand", "DiarioCommand", "RageCommand", "DateparserCommand", "AuthorCommand", "ReminderCommand",
|
||||||
"KvactiveCommand", "KvCommand", "KvrollCommand", "VideoinfoCommand", "SummonCommand", "PlayCommand",
|
"KvactiveCommand", "KvCommand", "KvrollCommand", "VideoinfoCommand", "SummonCommand", "PlayCommand",
|
||||||
"SkipCommand", "PlaymodeCommand", "VideochannelCommand", "MissingCommand", "CvCommand"]
|
"SkipCommand", "PlaymodeCommand", "VideochannelCommand", "MissingCommand", "CvCommand", "PauseCommand"]
|
||||||
|
|
52
royalnet/commands/pause.py
Normal file
52
royalnet/commands/pause.py
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
import typing
|
||||||
|
import discord
|
||||||
|
from ..network import Request, ResponseSuccess
|
||||||
|
from ..utils import Command, Call, NetworkHandler
|
||||||
|
from ..error import TooManyFoundError, NoneFoundError
|
||||||
|
if typing.TYPE_CHECKING:
|
||||||
|
from ..bots import DiscordBot
|
||||||
|
|
||||||
|
|
||||||
|
class PauseNH(NetworkHandler):
|
||||||
|
message_type = "music_pause"
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
async def discord(cls, bot: "DiscordBot", data: dict):
|
||||||
|
# Find the matching guild
|
||||||
|
if data["guild_name"]:
|
||||||
|
guild = bot.client.find_guild_by_name(data["guild_name"])
|
||||||
|
else:
|
||||||
|
if len(bot.music_data) == 0:
|
||||||
|
raise NoneFoundError("No voice clients active")
|
||||||
|
if len(bot.music_data) > 1:
|
||||||
|
raise TooManyFoundError("Multiple guilds found")
|
||||||
|
guild = list(bot.music_data)[0]
|
||||||
|
# Set the currently playing source as ended
|
||||||
|
voice_client: discord.VoiceClient = bot.client.find_voice_client_by_guild(guild)
|
||||||
|
if not voice_client.is_playing():
|
||||||
|
raise NoneFoundError("Nothing to pause")
|
||||||
|
# Toggle pause
|
||||||
|
resume = voice_client._player.is_paused()
|
||||||
|
if resume:
|
||||||
|
voice_client._player.resume()
|
||||||
|
else:
|
||||||
|
voice_client._player.pause()
|
||||||
|
return ResponseSuccess({"resume": resume})
|
||||||
|
|
||||||
|
|
||||||
|
class PauseCommand(Command):
|
||||||
|
|
||||||
|
command_name = "pause"
|
||||||
|
command_description = "Mette in pausa o riprende la riproduzione della canzone attuale."
|
||||||
|
command_syntax = "[ [guild] ]"
|
||||||
|
|
||||||
|
network_handlers = [PauseNH]
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
async def common(cls, call: Call):
|
||||||
|
guild, = call.args.match(r"(?:\[(.+)])?")
|
||||||
|
response = await call.net_request(Request("music_pause", {"guild_name": guild}), "discord")
|
||||||
|
if response["resume"]:
|
||||||
|
await call.reply(f"▶️ Riproduzione ripresa.")
|
||||||
|
else:
|
||||||
|
await call.reply(f"⏸ Riproduzione messa in pausa.")
|
|
@ -20,7 +20,7 @@ log.setLevel(logging.WARNING)
|
||||||
commands = [PingCommand, ShipCommand, SmecdsCommand, ColorCommand, CiaoruoziCommand, DebugCreateCommand, SyncCommand,
|
commands = [PingCommand, ShipCommand, SmecdsCommand, ColorCommand, CiaoruoziCommand, DebugCreateCommand, SyncCommand,
|
||||||
AuthorCommand, DiarioCommand, RageCommand, DateparserCommand, ReminderCommand, KvactiveCommand, KvCommand,
|
AuthorCommand, DiarioCommand, RageCommand, DateparserCommand, ReminderCommand, KvactiveCommand, KvCommand,
|
||||||
KvrollCommand, VideoinfoCommand, SummonCommand, PlayCommand, SkipCommand, PlaymodeCommand,
|
KvrollCommand, VideoinfoCommand, SummonCommand, PlayCommand, SkipCommand, PlaymodeCommand,
|
||||||
VideochannelCommand, CvCommand]
|
VideochannelCommand, CvCommand, PauseCommand]
|
||||||
|
|
||||||
address, port = "127.0.0.1", 1234
|
address, port = "127.0.0.1", 1234
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue