mirror of
https://github.com/RYGhub/royalnet.git
synced 2024-11-27 13:34:28 +00:00
Rimuovi tutti i comandi relativi alla chat vocale
This commit is contained in:
parent
cb0666598f
commit
b7f099d499
27 changed files with 0 additions and 898 deletions
|
@ -11,58 +11,32 @@ from .diarioquote import DiarioquoteCommand
|
||||||
from .diarioshuffle import DiarioshuffleCommand
|
from .diarioshuffle import DiarioshuffleCommand
|
||||||
from .dota import DotaCommand
|
from .dota import DotaCommand
|
||||||
from .eat import EatCommand
|
from .eat import EatCommand
|
||||||
from .elevatormusic import ElevatormusicCommand
|
|
||||||
from .emojify import EmojifyCommand
|
from .emojify import EmojifyCommand
|
||||||
from .eval import EvalCommand
|
from .eval import EvalCommand
|
||||||
from .exec import ExecCommand
|
from .exec import ExecCommand
|
||||||
from .fortune import FortuneCommand
|
from .fortune import FortuneCommand
|
||||||
from .funkwhale import FunkwhaleCommand
|
|
||||||
from .funkwhalealbum import FunkwhalealbumCommand
|
|
||||||
from .funkwhaleplaylist import FunkwhaleplaylistCommand
|
|
||||||
from .givefiorygi import GivefiorygiCommand
|
from .givefiorygi import GivefiorygiCommand
|
||||||
from .givetreasure import GivetreasureCommand
|
from .givetreasure import GivetreasureCommand
|
||||||
from .googlevideo import GooglevideoCommand
|
|
||||||
from .help import HelpCommand
|
from .help import HelpCommand
|
||||||
from .lazyfunkwhale import LazyfunkwhaleCommand
|
|
||||||
from .lazyfunkwhalealbum import LazyfunkwhalealbumCommand
|
|
||||||
from .lazyfunkwhaleplaylist import LazyfunkwhaleplaylistCommand
|
|
||||||
from .lazygooglevideo import LazygooglevideoCommand
|
|
||||||
from .lazypeertube import LazypeertubeCommand
|
|
||||||
from .lazyplay import LazyplayCommand
|
|
||||||
from .lazysoundcloud import LazysoundcloudCommand
|
|
||||||
from .lazyyahoovideo import LazyyahoovideoCommand
|
|
||||||
from .lazyyoutube import LazyyoutubeCommand
|
|
||||||
from .leagueoflegends import LeagueoflegendsCommand
|
from .leagueoflegends import LeagueoflegendsCommand
|
||||||
from .magickfiorygi import MagickfiorygiCommand
|
from .magickfiorygi import MagickfiorygiCommand
|
||||||
from .magicktreasure import MagicktreasureCommand
|
from .magicktreasure import MagicktreasureCommand
|
||||||
from .matchmaking import MatchmakingCommand
|
from .matchmaking import MatchmakingCommand
|
||||||
from .pause import PauseCommand
|
|
||||||
from .peertube import PeertubeCommand
|
|
||||||
from .peertubeupdates import PeertubeUpdatesCommand
|
from .peertubeupdates import PeertubeUpdatesCommand
|
||||||
from .ping import PingCommand
|
from .ping import PingCommand
|
||||||
from .play import PlayCommand
|
|
||||||
from .playmode import PlaymodeCommand
|
|
||||||
from .pmots import PmotsCommand
|
from .pmots import PmotsCommand
|
||||||
from .dog import DogCommand
|
from .dog import DogCommand
|
||||||
from .queue import QueueCommand
|
|
||||||
from .rage import RageCommand
|
from .rage import RageCommand
|
||||||
from .reminder import ReminderCommand
|
from .reminder import ReminderCommand
|
||||||
from .royalpackversion import RoyalpackCommand
|
from .royalpackversion import RoyalpackCommand
|
||||||
from .ship import ShipCommand
|
from .ship import ShipCommand
|
||||||
from .skip import SkipCommand
|
|
||||||
from .smecds import SmecdsCommand
|
from .smecds import SmecdsCommand
|
||||||
from .soundcloud import SoundcloudCommand
|
|
||||||
from .spell import SpellCommand
|
from .spell import SpellCommand
|
||||||
from .steammatch import SteammatchCommand
|
from .steammatch import SteammatchCommand
|
||||||
from .steampowered import SteampoweredCommand
|
from .steampowered import SteampoweredCommand
|
||||||
from .summon import SummonCommand
|
|
||||||
from .treasure import TreasureCommand
|
from .treasure import TreasureCommand
|
||||||
from .trivia import TriviaCommand
|
from .trivia import TriviaCommand
|
||||||
from .userinfo import UserinfoCommand
|
from .userinfo import UserinfoCommand
|
||||||
from .videochannel import VideochannelCommand
|
|
||||||
from .voicestatus import VoicestatusCommand
|
|
||||||
from .yahoovideo import YahoovideoCommand
|
|
||||||
from .youtube import YoutubeCommand
|
|
||||||
|
|
||||||
# Enter the commands of your Pack here!
|
# Enter the commands of your Pack here!
|
||||||
available_commands = [
|
available_commands = [
|
||||||
|
@ -78,58 +52,32 @@ available_commands = [
|
||||||
DiarioshuffleCommand,
|
DiarioshuffleCommand,
|
||||||
DotaCommand,
|
DotaCommand,
|
||||||
EatCommand,
|
EatCommand,
|
||||||
ElevatormusicCommand,
|
|
||||||
EmojifyCommand,
|
EmojifyCommand,
|
||||||
EvalCommand,
|
EvalCommand,
|
||||||
ExecCommand,
|
ExecCommand,
|
||||||
FortuneCommand,
|
FortuneCommand,
|
||||||
FunkwhalealbumCommand,
|
|
||||||
FunkwhaleCommand,
|
|
||||||
FunkwhaleplaylistCommand,
|
|
||||||
GivefiorygiCommand,
|
GivefiorygiCommand,
|
||||||
GivetreasureCommand,
|
GivetreasureCommand,
|
||||||
GooglevideoCommand,
|
|
||||||
HelpCommand,
|
HelpCommand,
|
||||||
LazyfunkwhalealbumCommand,
|
|
||||||
LazyfunkwhaleCommand,
|
|
||||||
LazyfunkwhaleplaylistCommand,
|
|
||||||
LazygooglevideoCommand,
|
|
||||||
LazypeertubeCommand,
|
|
||||||
LazyplayCommand,
|
|
||||||
LazysoundcloudCommand,
|
|
||||||
LazyyahoovideoCommand,
|
|
||||||
LazyyoutubeCommand,
|
|
||||||
LeagueoflegendsCommand,
|
LeagueoflegendsCommand,
|
||||||
MagickfiorygiCommand,
|
MagickfiorygiCommand,
|
||||||
MagicktreasureCommand,
|
MagicktreasureCommand,
|
||||||
MatchmakingCommand,
|
MatchmakingCommand,
|
||||||
PauseCommand,
|
|
||||||
PeertubeCommand,
|
|
||||||
PeertubeUpdatesCommand,
|
PeertubeUpdatesCommand,
|
||||||
PingCommand,
|
PingCommand,
|
||||||
PlayCommand,
|
|
||||||
PlaymodeCommand,
|
|
||||||
PmotsCommand,
|
PmotsCommand,
|
||||||
DogCommand,
|
DogCommand,
|
||||||
QueueCommand,
|
|
||||||
RageCommand,
|
RageCommand,
|
||||||
ReminderCommand,
|
ReminderCommand,
|
||||||
RoyalpackCommand,
|
RoyalpackCommand,
|
||||||
ShipCommand,
|
ShipCommand,
|
||||||
SkipCommand,
|
|
||||||
SmecdsCommand,
|
SmecdsCommand,
|
||||||
SoundcloudCommand,
|
|
||||||
SpellCommand,
|
SpellCommand,
|
||||||
SteammatchCommand,
|
SteammatchCommand,
|
||||||
SteampoweredCommand,
|
SteampoweredCommand,
|
||||||
SummonCommand,
|
|
||||||
TreasureCommand,
|
TreasureCommand,
|
||||||
TriviaCommand,
|
TriviaCommand,
|
||||||
UserinfoCommand,
|
UserinfoCommand,
|
||||||
VideochannelCommand,
|
|
||||||
VoicestatusCommand,
|
|
||||||
YahoovideoCommand,
|
|
||||||
YoutubeCommand,
|
|
||||||
]
|
]
|
||||||
|
|
||||||
# Don't change this, it should automatically generate __all__
|
# Don't change this, it should automatically generate __all__
|
||||||
|
|
|
@ -1,52 +0,0 @@
|
||||||
from typing import *
|
|
||||||
import random
|
|
||||||
import royalnet.commands as rc
|
|
||||||
|
|
||||||
from .play import PlayCommand
|
|
||||||
|
|
||||||
|
|
||||||
class ElevatormusicCommand(PlayCommand):
|
|
||||||
name: str = "elevatormusic"
|
|
||||||
|
|
||||||
aliases = ["elevator", "em"]
|
|
||||||
|
|
||||||
description: str = "Aggiungi un po' di musica da ascensore alla chat vocale."
|
|
||||||
|
|
||||||
syntax = "[indice]"
|
|
||||||
|
|
||||||
_pool = [
|
|
||||||
"https://www.youtube.com/watch?v=_tAcIGhh5Yo",
|
|
||||||
"https://www.youtube.com/watch?v=xy_NKN75Jhw",
|
|
||||||
"https://www.youtube.com/watch?v=PLRrL9OsAF8",
|
|
||||||
"https://www.youtube.com/watch?v=0TmoYBcLul8",
|
|
||||||
"https://www.youtube.com/watch?v=9v9-Nw4nAZg",
|
|
||||||
"https://www.youtube.com/watch?v=VBlFHuCzPgY",
|
|
||||||
"https://www.youtube.com/watch?v=mD3v1B_aXw0",
|
|
||||||
"https://www.youtube.com/watch?v=RCSbmSmyAcY",
|
|
||||||
"https://www.youtube.com/watch?v=kbdtBLD8Lbg",
|
|
||||||
"https://www.youtube.com/watch?v=JjT0p2z4hGg",
|
|
||||||
"https://www.youtube.com/watch?v=cc_KpOufpgM",
|
|
||||||
"https://www.youtube.com/watch?v=dlNEUYBt7Ls",
|
|
||||||
"https://www.youtube.com/watch?v=YVWdQGuE0-E",
|
|
||||||
"https://www.youtube.com/watch?v=1nVAg8VujGA",
|
|
||||||
"https://www.youtube.com/watch?v=G4mshu6BUio",
|
|
||||||
"https://www.youtube.com/watch?v=Y6_Aij3n8hk",
|
|
||||||
"https://www.youtube.com/watch?v=SbIaYZEUF1M",
|
|
||||||
"https://www.youtube.com/watch?v=Nf8FCLT8S6A",
|
|
||||||
]
|
|
||||||
|
|
||||||
async def get_urls(self, args):
|
|
||||||
index = args.optional(0)
|
|
||||||
if index is not None:
|
|
||||||
try:
|
|
||||||
return [self._pool[int(index)]]
|
|
||||||
except ValueError:
|
|
||||||
raise rc.InvalidInputError("L'indice deve essere un numero.\n"
|
|
||||||
f"Gli indici delle canzoni iniziano a [c]0[/c] e finiscono a"
|
|
||||||
f" [c]{len(self._pool) - 1}[/c].")
|
|
||||||
except IndexError:
|
|
||||||
raise rc.InvalidInputError(f"Indice non valido.\n"
|
|
||||||
f"Gli indici delle canzoni iniziano a [c]0[/c] e finiscono a"
|
|
||||||
f" [c]{len(self._pool) - 1}[/c].")
|
|
||||||
else:
|
|
||||||
return [random.sample(self._pool, 1)[0]]
|
|
|
@ -1,31 +0,0 @@
|
||||||
from typing import *
|
|
||||||
import aiohttp
|
|
||||||
import urllib.parse
|
|
||||||
import royalnet.commands as rc
|
|
||||||
|
|
||||||
from .play import PlayCommand
|
|
||||||
|
|
||||||
|
|
||||||
class FunkwhaleCommand(PlayCommand):
|
|
||||||
name: str = "funkwhale"
|
|
||||||
|
|
||||||
aliases = ["fuckwhale", "fw", "royalwhale", "rw"]
|
|
||||||
|
|
||||||
description: str = "Cerca una canzone su RoyalWhale e aggiungila alla coda della chat vocale."
|
|
||||||
|
|
||||||
syntax = "{ricerca}"
|
|
||||||
|
|
||||||
def get_embed_color(self):
|
|
||||||
return 0x009FE3
|
|
||||||
|
|
||||||
async def get_urls(self, args):
|
|
||||||
search = urllib.parse.quote(args.joined(require_at_least=1))
|
|
||||||
async with aiohttp.ClientSession() as session:
|
|
||||||
async with session.get(self.config["Funkwhale"]["instance_url"] +
|
|
||||||
f"/api/v1/search?query={search}") as response:
|
|
||||||
if response.status >= 400:
|
|
||||||
raise rc.ExternalError(f"Request returned {response.status}")
|
|
||||||
j = await response.json()
|
|
||||||
if len(j["tracks"]) < 1:
|
|
||||||
raise rc.UserError("Nessun file audio trovato con il nome richiesto.")
|
|
||||||
return [f'{self.config["Funkwhale"]["instance_url"]}{j["tracks"][0]["listen_url"]}']
|
|
|
@ -1,32 +0,0 @@
|
||||||
from typing import *
|
|
||||||
import aiohttp
|
|
||||||
import urllib.parse
|
|
||||||
import royalnet.commands as rc
|
|
||||||
|
|
||||||
from .play import PlayCommand
|
|
||||||
|
|
||||||
|
|
||||||
class FunkwhalealbumCommand(PlayCommand):
|
|
||||||
name: str = "funkwhalealbum"
|
|
||||||
|
|
||||||
aliases = ["fwa", "fwalbum", "funkwhalea"]
|
|
||||||
|
|
||||||
description: str = "Cerca un album su RoyalWhale e aggiungila alla coda della chat vocale."
|
|
||||||
|
|
||||||
syntax = "{ricerca}"
|
|
||||||
|
|
||||||
def get_embed_color(self):
|
|
||||||
return 0x009FE3
|
|
||||||
|
|
||||||
async def get_urls(self, args):
|
|
||||||
search = urllib.parse.quote(args.joined(require_at_least=1))
|
|
||||||
async with aiohttp.ClientSession() as session:
|
|
||||||
async with session.get(self.config["Funkwhale"]["instance_url"] +
|
|
||||||
f"/api/v1/search?query={search}") as response:
|
|
||||||
if response.status >= 400:
|
|
||||||
raise rc.ExternalError(f"Request returned {response.status}")
|
|
||||||
j = await response.json()
|
|
||||||
if len(j["albums"]) < 1:
|
|
||||||
raise rc.UserError("Nessun file audio trovato con il nome richiesto.")
|
|
||||||
album = j["albums"][0]
|
|
||||||
return [f'{self.config["Funkwhale"]["instance_url"]}{track["listen_url"]}' for track in album["tracks"]]
|
|
|
@ -1,38 +0,0 @@
|
||||||
from typing import *
|
|
||||||
import aiohttp
|
|
||||||
import urllib.parse
|
|
||||||
import royalnet.commands as rc
|
|
||||||
|
|
||||||
from .play import PlayCommand
|
|
||||||
|
|
||||||
|
|
||||||
class FunkwhaleplaylistCommand(PlayCommand):
|
|
||||||
name: str = "funkwhaleplaylist"
|
|
||||||
|
|
||||||
aliases = ["fwp", "fwplaylist", "funkwhalep"]
|
|
||||||
|
|
||||||
description: str = "Cerca una playlist su RoyalWhale e aggiungila alla coda della chat vocale."
|
|
||||||
|
|
||||||
syntax = "{ricerca}"
|
|
||||||
|
|
||||||
def get_embed_color(self):
|
|
||||||
return 0x009FE3
|
|
||||||
|
|
||||||
async def get_urls(self, args):
|
|
||||||
search = urllib.parse.quote(args.joined(require_at_least=1))
|
|
||||||
async with aiohttp.ClientSession() as session:
|
|
||||||
async with session.get(self.config["Funkwhale"]["instance_url"] +
|
|
||||||
f"/api/v1/playlists/?q={search}&ordering=-creation_date&playable=true") as response:
|
|
||||||
if response.status >= 400:
|
|
||||||
raise rc.ExternalError(f"Request returned {response.status}")
|
|
||||||
j = await response.json()
|
|
||||||
if len(j["results"]) < 1:
|
|
||||||
raise rc.UserError("Nessuna playlist trovata con il nome richiesto.")
|
|
||||||
playlist = j["results"][0]
|
|
||||||
playlist_id = playlist["id"]
|
|
||||||
async with session.get(self.config["Funkwhale"]["instance_url"] +
|
|
||||||
f"/api/v1/playlists/{playlist_id}/tracks") as response:
|
|
||||||
if response.status >= 400:
|
|
||||||
raise rc.ExternalError(f"Request returned {response.status}")
|
|
||||||
j = await response.json()
|
|
||||||
return list(map(lambda t: f'{self.config["Funkwhale"]["instance_url"]}{t["track"]["listen_url"]}', j["results"]))
|
|
|
@ -1,17 +0,0 @@
|
||||||
from typing import *
|
|
||||||
from .play import PlayCommand
|
|
||||||
|
|
||||||
|
|
||||||
class GooglevideoCommand(PlayCommand):
|
|
||||||
name: str = "googlevideo"
|
|
||||||
|
|
||||||
aliases = ["gv"]
|
|
||||||
|
|
||||||
description: str = "Cerca un video su Google Video e lo aggiunge alla coda della chat vocale."
|
|
||||||
|
|
||||||
syntax = "{ricerca}"
|
|
||||||
|
|
||||||
async def get_urls(self, args):
|
|
||||||
return [f"gvsearch:{args.joined()}"]
|
|
||||||
|
|
||||||
# Too bad gvsearch: always finds nothing.
|
|
|
@ -1,31 +0,0 @@
|
||||||
from typing import *
|
|
||||||
import royalnet.commands as rc
|
|
||||||
import aiohttp
|
|
||||||
import urllib.parse
|
|
||||||
|
|
||||||
from .lazyplay import LazyplayCommand
|
|
||||||
|
|
||||||
|
|
||||||
class LazyfunkwhaleCommand(LazyplayCommand):
|
|
||||||
name: str = "lazyfunkwhale"
|
|
||||||
|
|
||||||
aliases = ["lazyfuckwhale", "lfw", "lazyroyalwhale", "lrw"]
|
|
||||||
|
|
||||||
description: str = "Cerca una canzone su RoyalWhale e aggiungila (lazy) alla coda della chat vocale."
|
|
||||||
|
|
||||||
syntax = "{ricerca}"
|
|
||||||
|
|
||||||
def get_embed_color(self):
|
|
||||||
return 0x009FE3
|
|
||||||
|
|
||||||
async def get_urls(self, args):
|
|
||||||
search = urllib.parse.quote(args.joined(require_at_least=1))
|
|
||||||
async with aiohttp.ClientSession() as session:
|
|
||||||
async with session.get(self.config["Funkwhale"]["instance_url"] +
|
|
||||||
f"/api/v1/search?query={search}") as response:
|
|
||||||
if response.status >= 400:
|
|
||||||
raise rc.ExternalError(f"Request returned {response.status}")
|
|
||||||
j = await response.json()
|
|
||||||
if len(j["tracks"]) < 1:
|
|
||||||
raise rc.UserError("Nessun file audio trovato con il nome richiesto.")
|
|
||||||
return [f'{self.config["Funkwhale"]["instance_url"]}{j["tracks"][0]["listen_url"]}']
|
|
|
@ -1,32 +0,0 @@
|
||||||
from typing import *
|
|
||||||
import royalnet.commands as rc
|
|
||||||
import aiohttp
|
|
||||||
import urllib.parse
|
|
||||||
|
|
||||||
from .lazyplay import LazyplayCommand
|
|
||||||
|
|
||||||
|
|
||||||
class LazyfunkwhalealbumCommand(LazyplayCommand):
|
|
||||||
name: str = "lazyfunkwhalealbum"
|
|
||||||
|
|
||||||
aliases = ["lfwa", "lfwalbum", "lazyfunkwhalea"]
|
|
||||||
|
|
||||||
description: str = "Cerca un album su RoyalWhale e aggiungilo (lazy) alla coda della chat vocale."
|
|
||||||
|
|
||||||
syntax = "{ricerca}"
|
|
||||||
|
|
||||||
def get_embed_color(self):
|
|
||||||
return 0x009FE3
|
|
||||||
|
|
||||||
async def get_urls(self, args):
|
|
||||||
search = urllib.parse.quote(args.joined(require_at_least=1))
|
|
||||||
async with aiohttp.ClientSession() as session:
|
|
||||||
async with session.get(self.config["Funkwhale"]["instance_url"] +
|
|
||||||
f"/api/v1/search?query={search}") as response:
|
|
||||||
if response.status >= 400:
|
|
||||||
raise rc.ExternalError(f"Request returned {response.status}")
|
|
||||||
j = await response.json()
|
|
||||||
if len(j["albums"]) < 1:
|
|
||||||
raise rc.UserError("Nessun file audio trovato con il nome richiesto.")
|
|
||||||
album = j["albums"][0]
|
|
||||||
return [f'{self.config["Funkwhale"]["instance_url"]}{track["listen_url"]}' for track in album["tracks"]]
|
|
|
@ -1,36 +0,0 @@
|
||||||
import aiohttp
|
|
||||||
import urllib.parse
|
|
||||||
import royalnet.commands as rc
|
|
||||||
from .lazyplay import LazyplayCommand
|
|
||||||
|
|
||||||
|
|
||||||
class LazyfunkwhaleplaylistCommand(LazyplayCommand):
|
|
||||||
name: str = "lazyfunkwhaleplaylist"
|
|
||||||
|
|
||||||
aliases = ["lfwp", "lfwplaylist", "lazyfunkwhalep"]
|
|
||||||
|
|
||||||
description: str = "Cerca una playlist su RoyalWhale e aggiungila (lazy) alla coda della chat vocale."
|
|
||||||
|
|
||||||
syntax = "{ricerca}"
|
|
||||||
|
|
||||||
def get_embed_color(self):
|
|
||||||
return 0x009FE3
|
|
||||||
|
|
||||||
async def get_urls(self, args):
|
|
||||||
search = urllib.parse.quote(args.joined(require_at_least=1))
|
|
||||||
async with aiohttp.ClientSession() as session:
|
|
||||||
async with session.get(self.config["Funkwhale"]["instance_url"] +
|
|
||||||
f"/api/v1/playlists/?q={search}&ordering=-creation_date&playable=true") as response:
|
|
||||||
if response.status >= 400:
|
|
||||||
raise rc.ExternalError(f"Request returned {response.status}")
|
|
||||||
j = await response.json()
|
|
||||||
if len(j["results"]) < 1:
|
|
||||||
raise rc.UserError("Nessuna playlist trovata con il nome richiesto.")
|
|
||||||
playlist = j["results"][0]
|
|
||||||
playlist_id = playlist["id"]
|
|
||||||
async with session.get(self.config["Funkwhale"]["instance_url"] +
|
|
||||||
f"/api/v1/playlists/{playlist_id}/tracks") as response:
|
|
||||||
if response.status >= 400:
|
|
||||||
raise rc.ExternalError(f"Request returned {response.status}")
|
|
||||||
j = await response.json()
|
|
||||||
return list(map(lambda t: f'{self.config["Funkwhale"]["instance_url"]}{t["track"]["listen_url"]}', j["results"]))
|
|
|
@ -1,17 +0,0 @@
|
||||||
from typing import *
|
|
||||||
from .lazyplay import LazyplayCommand
|
|
||||||
|
|
||||||
|
|
||||||
class LazygooglevideoCommand(LazyplayCommand):
|
|
||||||
name: str = "lazygooglevideo"
|
|
||||||
|
|
||||||
aliases = ["lgv"]
|
|
||||||
|
|
||||||
description: str = "Cerca un video su Google Video e lo aggiunge (lazy) alla coda della chat vocale."
|
|
||||||
|
|
||||||
syntax = "{ricerca}"
|
|
||||||
|
|
||||||
async def get_urls(self, args):
|
|
||||||
return [f"gvsearch:{args.joined()}"]
|
|
||||||
|
|
||||||
# Too bad gvsearch: always finds nothing.
|
|
|
@ -1,26 +0,0 @@
|
||||||
from typing import *
|
|
||||||
import royalnet.commands as rc
|
|
||||||
import aiohttp
|
|
||||||
import urllib.parse
|
|
||||||
|
|
||||||
from .lazyplay import LazyplayCommand
|
|
||||||
|
|
||||||
|
|
||||||
class LazypeertubeCommand(LazyplayCommand):
|
|
||||||
name: str = "lazypeertube"
|
|
||||||
|
|
||||||
aliases = ["lpt", "lazyroyaltube", "lrt"]
|
|
||||||
|
|
||||||
description: str = "Cerca un video su RoyalTube e lo aggiunge (lazy) alla coda della chat vocale."
|
|
||||||
|
|
||||||
syntax = "{ricerca}"
|
|
||||||
|
|
||||||
async def get_urls(self, args):
|
|
||||||
search = urllib.parse.quote(args.joined(require_at_least=1))
|
|
||||||
async with aiohttp.ClientSession() as session:
|
|
||||||
async with session.get(self.config["Peertube"]["instance_url"] +
|
|
||||||
f"/api/v1/search/videos?search={search}") as response:
|
|
||||||
j = await response.json()
|
|
||||||
if j["total"] < 1:
|
|
||||||
raise rc.InvalidInputError("Nessun video trovato.")
|
|
||||||
return [f'{self.config["Peertube"]["instance_url"]}/videos/watch/{j["data"][0]["uuid"]}']
|
|
|
@ -1,62 +0,0 @@
|
||||||
from typing import *
|
|
||||||
import discord
|
|
||||||
import asyncio as aio
|
|
||||||
import royalnet.commands as rc
|
|
||||||
import royalnet.backpack.tables as rbt
|
|
||||||
|
|
||||||
|
|
||||||
class LazyplayCommand(rc.Command):
|
|
||||||
name: str = "lazyplay"
|
|
||||||
|
|
||||||
aliases = ["lp"]
|
|
||||||
|
|
||||||
description: str = "Aggiunge un url alla coda della chat vocale, ma lo scarica solo quando sta per essere" \
|
|
||||||
" riprodotto."
|
|
||||||
|
|
||||||
syntax = "{url}"
|
|
||||||
|
|
||||||
async def get_urls(self, args: rc.CommandArgs):
|
|
||||||
url = args.joined(require_at_least=1)
|
|
||||||
if not (url.startswith("http://") or url.startswith("https://")):
|
|
||||||
raise rc.InvalidInputError(f"L'URL specificato non inizia con il nome di un protocollo supportato"
|
|
||||||
f" ([c]http://[/c] o [c]https://[/c]).")
|
|
||||||
return [url]
|
|
||||||
|
|
||||||
def get_embed_color(self) -> Optional[int]:
|
|
||||||
return None
|
|
||||||
|
|
||||||
async def run(self, args: rc.CommandArgs, data: rc.CommandData) -> None:
|
|
||||||
if self.interface.name == "discord":
|
|
||||||
message: discord.Message = data.message
|
|
||||||
guild: discord.Guild = message.guild
|
|
||||||
if guild is None:
|
|
||||||
guild_id = None
|
|
||||||
else:
|
|
||||||
guild_id: Optional[int] = guild.id
|
|
||||||
else:
|
|
||||||
guild_id = None
|
|
||||||
|
|
||||||
user: rbt.User = await data.get_author()
|
|
||||||
user_str = None
|
|
||||||
|
|
||||||
if user is not None:
|
|
||||||
try:
|
|
||||||
user_discord: rbt.Discord = user.discord[0]
|
|
||||||
except (AttributeError, IndexError):
|
|
||||||
user_str = str(user)
|
|
||||||
else:
|
|
||||||
user_str = str(f"<@{user_discord.discord_id}>")
|
|
||||||
|
|
||||||
urls = await self.get_urls(args)
|
|
||||||
|
|
||||||
play_task: aio.Task = self.loop.create_task(
|
|
||||||
self.interface.call_herald_event("discord", "discord_lazy_play",
|
|
||||||
urls=urls,
|
|
||||||
guild_id=guild_id,
|
|
||||||
user=user_str,
|
|
||||||
force_color=self.get_embed_color())
|
|
||||||
)
|
|
||||||
|
|
||||||
await data.reply("⌛ Attendi un attimo...")
|
|
||||||
|
|
||||||
await play_task
|
|
|
@ -1,15 +0,0 @@
|
||||||
from typing import *
|
|
||||||
from .lazyplay import LazyplayCommand
|
|
||||||
|
|
||||||
|
|
||||||
class LazysoundcloudCommand(LazyplayCommand):
|
|
||||||
name: str = "lazysoundcloud"
|
|
||||||
|
|
||||||
aliases = ["lsc"]
|
|
||||||
|
|
||||||
description: str = "Cerca un video su SoundCloud e lo aggiunge (lazy) alla coda della chat vocale."
|
|
||||||
|
|
||||||
syntax = "{ricerca}"
|
|
||||||
|
|
||||||
async def get_urls(self, args):
|
|
||||||
return [f"scsearch:{args.joined()}"]
|
|
|
@ -1,17 +0,0 @@
|
||||||
from typing import *
|
|
||||||
from .lazyplay import LazyplayCommand
|
|
||||||
|
|
||||||
|
|
||||||
class LazyyahoovideoCommand(LazyplayCommand):
|
|
||||||
name: str = "lazyyahoovideo"
|
|
||||||
|
|
||||||
aliases = ["lyv"]
|
|
||||||
|
|
||||||
description: str = "Cerca un video su Yahoo Video e lo aggiunge (lazy) alla coda della chat vocale."
|
|
||||||
|
|
||||||
syntax = "{ricerca}"
|
|
||||||
|
|
||||||
async def get_urls(self, args):
|
|
||||||
return [f"yvsearch:{args.joined()}"]
|
|
||||||
|
|
||||||
# Too bad yvsearch: always finds nothing.
|
|
|
@ -1,15 +0,0 @@
|
||||||
from typing import *
|
|
||||||
from .lazyplay import LazyplayCommand
|
|
||||||
|
|
||||||
|
|
||||||
class LazyyoutubeCommand(LazyplayCommand):
|
|
||||||
name: str = "lazyyoutube"
|
|
||||||
|
|
||||||
aliases = ["lyt"]
|
|
||||||
|
|
||||||
description: str = "Cerca un video su YouTube e lo aggiunge (lazy) alla coda della chat vocale."
|
|
||||||
|
|
||||||
syntax = "{ricerca}"
|
|
||||||
|
|
||||||
async def get_urls(self, args):
|
|
||||||
return [f"ytsearch:{args.joined()}"]
|
|
|
@ -1,27 +0,0 @@
|
||||||
from typing import *
|
|
||||||
import discord
|
|
||||||
import royalnet.commands as rc
|
|
||||||
|
|
||||||
|
|
||||||
class PauseCommand(rc.Command):
|
|
||||||
name: str = "pause"
|
|
||||||
|
|
||||||
aliases = ["resume"]
|
|
||||||
|
|
||||||
description: str = "Metti in pausa o riprendi la riproduzione di un file."
|
|
||||||
|
|
||||||
async def run(self, args: rc.CommandArgs, data: rc.CommandData) -> None:
|
|
||||||
if self.interface.name == "discord":
|
|
||||||
message: discord.Message = data.message
|
|
||||||
guild: discord.Guild = message.guild
|
|
||||||
guild_id: Optional[int] = guild.id
|
|
||||||
else:
|
|
||||||
guild_id = None
|
|
||||||
response: Dict[str, Any] = await self.interface.call_herald_event("discord", "discord_pause",
|
|
||||||
guild_id=guild_id)
|
|
||||||
|
|
||||||
if response["action"] == "paused":
|
|
||||||
await data.reply("⏸ Riproduzione messa in pausa.")
|
|
||||||
|
|
||||||
elif response["action"] == "resumed":
|
|
||||||
await data.reply("▶️ Riproduzione ripresa!")
|
|
|
@ -1,26 +0,0 @@
|
||||||
from typing import *
|
|
||||||
import royalnet.commands as rc
|
|
||||||
import aiohttp
|
|
||||||
import urllib.parse
|
|
||||||
|
|
||||||
from .play import PlayCommand
|
|
||||||
|
|
||||||
|
|
||||||
class PeertubeCommand(PlayCommand):
|
|
||||||
name: str = "peertube"
|
|
||||||
|
|
||||||
aliases = ["pt", "royaltube", "rt"]
|
|
||||||
|
|
||||||
description: str = "Cerca un video su RoyalTube e lo aggiunge alla coda della chat vocale."
|
|
||||||
|
|
||||||
syntax = "{ricerca}"
|
|
||||||
|
|
||||||
async def get_urls(self, args):
|
|
||||||
search = urllib.parse.quote(args.joined(require_at_least=1))
|
|
||||||
async with aiohttp.ClientSession() as session:
|
|
||||||
async with session.get(self.config["Peertube"]["instance_url"] +
|
|
||||||
f"/api/v1/search/videos?search={search}") as response:
|
|
||||||
j = await response.json()
|
|
||||||
if j["total"] < 1:
|
|
||||||
raise rc.InvalidInputError("Nessun video trovato.")
|
|
||||||
return [f'{self.config["Peertube"]["instance_url"]}/videos/watch/{j["data"][0]["uuid"]}']
|
|
|
@ -1,64 +0,0 @@
|
||||||
from typing import *
|
|
||||||
import discord
|
|
||||||
import asyncio as aio
|
|
||||||
import royalnet.commands as rc
|
|
||||||
import royalnet.backpack.tables as rbt
|
|
||||||
|
|
||||||
|
|
||||||
class PlayCommand(rc.Command):
|
|
||||||
name: str = "play"
|
|
||||||
|
|
||||||
aliases = ["p"]
|
|
||||||
|
|
||||||
description: str = "Aggiunge un url alla coda della chat vocale."
|
|
||||||
|
|
||||||
syntax = "{url}"
|
|
||||||
|
|
||||||
async def get_urls(self, args: rc.CommandArgs):
|
|
||||||
url = args.joined(require_at_least=1)
|
|
||||||
if not (url.startswith("http://") or url.startswith("https://")):
|
|
||||||
raise rc.InvalidInputError(f"L'URL specificato non inizia con il nome di un protocollo supportato"
|
|
||||||
f" ([c]http://[/c] o [c]https://[/c]).")
|
|
||||||
return [url]
|
|
||||||
|
|
||||||
def get_embed_color(self) -> Optional[int]:
|
|
||||||
return None
|
|
||||||
|
|
||||||
async def run(self, args: rc.CommandArgs, data: rc.CommandData) -> None:
|
|
||||||
if self.interface.name == "discord":
|
|
||||||
message: discord.Message = data.message
|
|
||||||
guild: discord.Guild = message.guild
|
|
||||||
if guild is None:
|
|
||||||
guild_id = None
|
|
||||||
else:
|
|
||||||
guild_id: Optional[int] = guild.id
|
|
||||||
else:
|
|
||||||
guild_id = None
|
|
||||||
|
|
||||||
user: rbt.User = await data.get_author()
|
|
||||||
user_str = None
|
|
||||||
|
|
||||||
if user is not None:
|
|
||||||
try:
|
|
||||||
user_discord: rbt.Discord = user.discord[0]
|
|
||||||
except (AttributeError, IndexError):
|
|
||||||
user_str = str(user)
|
|
||||||
else:
|
|
||||||
user_str = str(f"<@{user_discord.discord_id}>")
|
|
||||||
|
|
||||||
urls = await self.get_urls(args)
|
|
||||||
|
|
||||||
play_task: aio.Task = self.loop.create_task(
|
|
||||||
self.interface.call_herald_event("discord", "discord_play",
|
|
||||||
urls=urls,
|
|
||||||
guild_id=guild_id,
|
|
||||||
user=user_str,
|
|
||||||
force_color=self.get_embed_color())
|
|
||||||
)
|
|
||||||
|
|
||||||
if len(urls) > 1:
|
|
||||||
await data.reply("⌛ Attendi qualche minuto...")
|
|
||||||
else:
|
|
||||||
await data.reply("⌛ Attendi un attimo...")
|
|
||||||
|
|
||||||
await play_task
|
|
|
@ -1,56 +0,0 @@
|
||||||
from typing import *
|
|
||||||
import royalnet.commands as rc
|
|
||||||
import discord
|
|
||||||
import royalnet.backpack.tables as rbt
|
|
||||||
|
|
||||||
|
|
||||||
class PlaymodeCommand(rc.Command):
|
|
||||||
name: str = "playmode"
|
|
||||||
|
|
||||||
aliases = ["pm"]
|
|
||||||
|
|
||||||
description: str = "Seleziona la modalità di riproduzione musicale."
|
|
||||||
|
|
||||||
syntax: str = "{queue|pool}"
|
|
||||||
|
|
||||||
async def run(self, args: rc.CommandArgs, data: rc.CommandData) -> None:
|
|
||||||
if self.interface.name == "discord":
|
|
||||||
message: discord.Message = data.message
|
|
||||||
guild: discord.Guild = message.guild
|
|
||||||
if guild is None:
|
|
||||||
guild_id = None
|
|
||||||
else:
|
|
||||||
guild_id: Optional[int] = guild.id
|
|
||||||
else:
|
|
||||||
guild_id = None
|
|
||||||
|
|
||||||
user: rbt.User = await data.get_author()
|
|
||||||
user_str = None
|
|
||||||
|
|
||||||
if user is not None:
|
|
||||||
try:
|
|
||||||
user_discord: rbt.Discord = user.discord[0]
|
|
||||||
except (AttributeError, IndexError):
|
|
||||||
user_str = str(user)
|
|
||||||
else:
|
|
||||||
user_str = str(f"<@{user_discord.discord_id}>")
|
|
||||||
|
|
||||||
response = await self.interface.call_herald_event("discord", "discord_playmode",
|
|
||||||
playable_string=args[0],
|
|
||||||
guild_id=guild_id,
|
|
||||||
user=user_str)
|
|
||||||
|
|
||||||
if response["name"] == "RoyalQueue":
|
|
||||||
await data.reply(f"✅ Modalità di riproduzione impostata a [b]Queue[/b]:\n"
|
|
||||||
f"- Riproduci le canzoni nell'ordine scelto\n"
|
|
||||||
f"- Rimuovi le canzoni dopo averle riprodotte")
|
|
||||||
|
|
||||||
elif response["name"] == "RoyalPool":
|
|
||||||
await data.reply(f"✅ Modalità di riproduzione impostata a [b]Pool[/b]:\n"
|
|
||||||
f"- Aggiungi canzoni al pool con [c]!p[/c], [c]!yt[/c] e [c]!fw[/c]\n"
|
|
||||||
f"- Riproduci all'infinito canzoni casuali dal pool\n"
|
|
||||||
f"- Non è possibile rimuovere canzoni dal pool, [c]!skip[/c]parle manderà solo avanti il pool\n"
|
|
||||||
f"- Interrompi la riproduzione del pool cambiando modalità di riproduzione")
|
|
||||||
|
|
||||||
else:
|
|
||||||
await data.reply(f"✅ Modalità di riproduzione impostata a [c]{response['name']}[/c]!")
|
|
|
@ -1,62 +0,0 @@
|
||||||
from typing import *
|
|
||||||
import pickle
|
|
||||||
import base64
|
|
||||||
import discord
|
|
||||||
import royalnet.commands as rc
|
|
||||||
import royalnet.utils as ru
|
|
||||||
|
|
||||||
|
|
||||||
class QueueCommand(rc.Command):
|
|
||||||
name: str = "queue"
|
|
||||||
|
|
||||||
aliases = ["q"]
|
|
||||||
|
|
||||||
description: str = "Visualizza la coda di riproduzione attuale."
|
|
||||||
|
|
||||||
async def run(self, args: rc.CommandArgs, data: rc.CommandData) -> None:
|
|
||||||
if self.interface.name == "discord":
|
|
||||||
message: discord.Message = data.message
|
|
||||||
guild: discord.Guild = message.guild
|
|
||||||
guild_id: Optional[int] = guild.id
|
|
||||||
else:
|
|
||||||
guild_id = None
|
|
||||||
response: Dict[str, Any] = await self.interface.call_herald_event("discord", "discord_queue",
|
|
||||||
guild_id=guild_id)
|
|
||||||
|
|
||||||
queue_type = response["type"]
|
|
||||||
if queue_type == "RoyalQueue":
|
|
||||||
next_up = response["next_up"]
|
|
||||||
now_playing = response["now_playing"]
|
|
||||||
await data.reply(f"ℹ️ La coda contiene {len(next_up)} file.\n\n")
|
|
||||||
|
|
||||||
if now_playing is not None:
|
|
||||||
reply = f"Attualmente, sta venendo riprodotto:\n"
|
|
||||||
if self.interface.name == "discord":
|
|
||||||
await data.reply(reply)
|
|
||||||
embed = pickle.loads(base64.b64decode(bytes(now_playing["stringified_base64_pickled_discord_embed"],
|
|
||||||
encoding="ascii")))
|
|
||||||
# noinspection PyUnboundLocalVariable
|
|
||||||
await message.channel.send(embed=embed)
|
|
||||||
else:
|
|
||||||
reply += f"▶️ {now_playing['title']}\n\n"
|
|
||||||
await data.reply(reply)
|
|
||||||
else:
|
|
||||||
await data.reply("⏹ Attualmente, non sta venendo riprodotto nulla.")
|
|
||||||
|
|
||||||
reply = ""
|
|
||||||
if len(next_up) >= 1:
|
|
||||||
reply += "I prossimi file in coda sono:\n"
|
|
||||||
if self.interface.name == "discord":
|
|
||||||
await data.reply(reply)
|
|
||||||
for item in next_up[:5]:
|
|
||||||
embed = pickle.loads(base64.b64decode(bytes(item["stringified_base64_pickled_discord_embed"],
|
|
||||||
encoding="ascii")))
|
|
||||||
# noinspection PyUnboundLocalVariable
|
|
||||||
await message.channel.send(embed=embed)
|
|
||||||
else:
|
|
||||||
reply += ru.numberemojiformat([a["title"] for a in next_up[:5]])
|
|
||||||
await data.reply(reply)
|
|
||||||
else:
|
|
||||||
await data.reply("ℹ️ Non ci sono altri file in coda.")
|
|
||||||
else:
|
|
||||||
raise rc.CommandError(f"Non so come visualizzare il contenuto di un [c]{queue_type}[/c].")
|
|
|
@ -1,21 +0,0 @@
|
||||||
from typing import *
|
|
||||||
import discord
|
|
||||||
import royalnet.commands as rc
|
|
||||||
|
|
||||||
|
|
||||||
class SkipCommand(rc.Command):
|
|
||||||
name: str = "skip"
|
|
||||||
|
|
||||||
aliases = ["s"]
|
|
||||||
|
|
||||||
description: str = "Salta il file attualmente in riproduzione."
|
|
||||||
|
|
||||||
async def run(self, args: rc.CommandArgs, data: rc.CommandData) -> None:
|
|
||||||
if self.interface.name == "discord":
|
|
||||||
message: discord.Message = data.message
|
|
||||||
guild: discord.Guild = message.guild
|
|
||||||
guild_id: Optional[int] = guild.id
|
|
||||||
else:
|
|
||||||
guild_id = None
|
|
||||||
response: Dict[str, Any] = await self.interface.call_herald_event("discord", "discord_skip", guild_id=guild_id)
|
|
||||||
await data.reply("⏩ File attuale saltato!")
|
|
|
@ -1,15 +0,0 @@
|
||||||
from typing import *
|
|
||||||
from .play import PlayCommand
|
|
||||||
|
|
||||||
|
|
||||||
class SoundcloudCommand(PlayCommand):
|
|
||||||
name: str = "soundcloud"
|
|
||||||
|
|
||||||
aliases = ["sc"]
|
|
||||||
|
|
||||||
description: str = "Cerca un video su SoundCloud e lo aggiunge alla coda della chat vocale."
|
|
||||||
|
|
||||||
syntax = "{ricerca}"
|
|
||||||
|
|
||||||
async def get_urls(self, args):
|
|
||||||
return [f"scsearch:{args.joined()}"]
|
|
|
@ -1,29 +0,0 @@
|
||||||
from typing import *
|
|
||||||
import royalnet.commands as rc
|
|
||||||
import discord
|
|
||||||
|
|
||||||
|
|
||||||
class SummonCommand(rc.Command):
|
|
||||||
name: str = "summon"
|
|
||||||
|
|
||||||
aliases = ["cv"]
|
|
||||||
|
|
||||||
description: str = "Evoca il bot in un canale vocale."
|
|
||||||
|
|
||||||
syntax: str = "[nomecanale]"
|
|
||||||
|
|
||||||
async def run(self, args: rc.CommandArgs, data: rc.CommandData) -> None:
|
|
||||||
channel_name = args.joined()
|
|
||||||
if self.interface.name == "discord":
|
|
||||||
message: discord.Message = data.message
|
|
||||||
guild_id = message.guild.id
|
|
||||||
user_id = message.author.id
|
|
||||||
else:
|
|
||||||
guild_id = None
|
|
||||||
user_id = None
|
|
||||||
response = await self.interface.call_herald_event("discord", "discord_summon",
|
|
||||||
channel_name=channel_name, guild_id=guild_id, user_id=user_id)
|
|
||||||
if self.interface.name == "discord":
|
|
||||||
await data.reply(f"✅ Mi sono connesso in <#{response['channel']['id']}>!")
|
|
||||||
else:
|
|
||||||
await data.reply(f"✅ Mi sono connesso in [b]#{response['channel']['name']}[/b]!")
|
|
|
@ -1,49 +0,0 @@
|
||||||
from typing import *
|
|
||||||
import discord
|
|
||||||
import royalnet.commands as rc
|
|
||||||
|
|
||||||
|
|
||||||
class VideochannelCommand(rc.Command):
|
|
||||||
name: str = "videochannel"
|
|
||||||
|
|
||||||
aliases = ["golive", "live", "video"]
|
|
||||||
|
|
||||||
description: str = "Converti il canale vocale in un canale video."
|
|
||||||
|
|
||||||
syntax = "[nomecanale]"
|
|
||||||
|
|
||||||
async def run(self, args: rc.CommandArgs, data: rc.CommandData) -> None:
|
|
||||||
if self.interface.name != "discord":
|
|
||||||
raise rc.UnsupportedError(f"{self} non è supportato su {self.interface.name}.")
|
|
||||||
bot: discord.Client = self.serf.client
|
|
||||||
message: discord.Message = data.message
|
|
||||||
channel_name: str = args.optional(0)
|
|
||||||
if channel_name:
|
|
||||||
guild: Optional[discord.Guild] = message.guild
|
|
||||||
if guild is not None:
|
|
||||||
channels: List[discord.abc.GuildChannel] = guild.channels
|
|
||||||
else:
|
|
||||||
channels = bot.get_all_channels()
|
|
||||||
matching_channels: List[discord.VoiceChannel] = []
|
|
||||||
for channel in channels:
|
|
||||||
if isinstance(channel, discord.VoiceChannel):
|
|
||||||
if channel.name == channel_name:
|
|
||||||
matching_channels.append(channel)
|
|
||||||
if len(matching_channels) == 0:
|
|
||||||
raise rc.InvalidInputError("Non esiste alcun canale vocale con il nome specificato.")
|
|
||||||
elif len(matching_channels) > 1:
|
|
||||||
raise rc.UserError("Esiste più di un canale vocale con il nome specificato.")
|
|
||||||
channel = matching_channels[0]
|
|
||||||
else:
|
|
||||||
author: discord.Member = message.author
|
|
||||||
voice: Optional[discord.VoiceState] = author.voice
|
|
||||||
if voice is None:
|
|
||||||
raise rc.InvalidInputError("Non sei connesso a nessun canale vocale.")
|
|
||||||
channel = voice.channel
|
|
||||||
if author.is_on_mobile():
|
|
||||||
await data.reply(f"📹 Per entrare in modalità video, clicca qui:\n"
|
|
||||||
f"<https://discordapp.com/channels/{channel.guild.id}/{channel.id}>\n"
|
|
||||||
f"[b]Attenzione: la modalità video non funziona su Android e iOS![/b]")
|
|
||||||
return
|
|
||||||
await data.reply(f"📹 Per entrare in modalità video, clicca qui:\n"
|
|
||||||
f"<https://discordapp.com/channels/{channel.guild.id}/{channel.id}>")
|
|
|
@ -1,44 +0,0 @@
|
||||||
from typing import *
|
|
||||||
import royalnet.serf.discord as rsd
|
|
||||||
import royalnet.commands as rc
|
|
||||||
|
|
||||||
|
|
||||||
class VoicestatusCommand(rc.Command):
|
|
||||||
name: str = "voicestatus"
|
|
||||||
|
|
||||||
description: str = "Visualizza lo stato interno dei voice player del bot."
|
|
||||||
|
|
||||||
syntax: str = ""
|
|
||||||
|
|
||||||
async def run(self, args: rc.CommandArgs, data: rc.CommandData) -> None:
|
|
||||||
if self.interface.name != "discord":
|
|
||||||
raise rc.UnsupportedError("Questo comando funziona solo su Discord.")
|
|
||||||
serf: rsd.DiscordSerf = self.interface.serf
|
|
||||||
|
|
||||||
message = []
|
|
||||||
for index, voice_player in enumerate(serf.voice_players):
|
|
||||||
message.append(f"🎵 [b]Voice Player #{index}[/b]")
|
|
||||||
|
|
||||||
voice_client = voice_player.voice_client
|
|
||||||
if voice_client.is_connected():
|
|
||||||
message.append(f"🔵 Connected")
|
|
||||||
else:
|
|
||||||
message.append(f"🔴 Disconnected")
|
|
||||||
if voice_client.is_playing():
|
|
||||||
message.append(f"🔵 Playing")
|
|
||||||
else:
|
|
||||||
message.append(f"⚪ Not playing")
|
|
||||||
if voice_client.is_paused():
|
|
||||||
message.append(f"⚪ Paused")
|
|
||||||
else:
|
|
||||||
message.append(f"🔵 Not paused")
|
|
||||||
|
|
||||||
playable = voice_player.playing
|
|
||||||
message.append(f"🔉 {playable.__class__.__name__}")
|
|
||||||
|
|
||||||
message.append("")
|
|
||||||
|
|
||||||
if len(serf.voice_players) == 0:
|
|
||||||
message.append("[i]Nessun voice player.[/i]")
|
|
||||||
|
|
||||||
await data.reply("\n".join(message))
|
|
|
@ -1,17 +0,0 @@
|
||||||
from typing import *
|
|
||||||
from .play import PlayCommand
|
|
||||||
|
|
||||||
|
|
||||||
class YahoovideoCommand(PlayCommand):
|
|
||||||
name: str = "yahoovideo"
|
|
||||||
|
|
||||||
aliases = ["yv"]
|
|
||||||
|
|
||||||
description: str = "Cerca un video su Yahoo Video e lo aggiunge alla coda della chat vocale."
|
|
||||||
|
|
||||||
syntax = "{ricerca}"
|
|
||||||
|
|
||||||
async def get_urls(self, args):
|
|
||||||
return [f"yvsearch:{args.joined()}"]
|
|
||||||
|
|
||||||
# Too bad yvsearch: always finds nothing.
|
|
|
@ -1,15 +0,0 @@
|
||||||
from typing import *
|
|
||||||
from .play import PlayCommand
|
|
||||||
|
|
||||||
|
|
||||||
class YoutubeCommand(PlayCommand):
|
|
||||||
name: str = "youtube"
|
|
||||||
|
|
||||||
aliases = ["yt"]
|
|
||||||
|
|
||||||
description: str = "Cerca un video su YouTube e lo aggiunge alla coda della chat vocale."
|
|
||||||
|
|
||||||
syntax = "{ricerca}"
|
|
||||||
|
|
||||||
async def get_urls(self, args):
|
|
||||||
return [f"ytsearch:{args.joined()}"]
|
|
Loading…
Reference in a new issue