diff --git a/requirements.txt b/requirements.txt index dcb04ffe..51fbdaf4 100644 --- a/requirements.txt +++ b/requirements.txt @@ -6,8 +6,8 @@ aiohttp>=3.5.4 sqlalchemy>=1.3.2 Markdown>=3.1 dateparser>=0.7.1 -discord.py>=1.0.1 -youtube_dl>=2019.4.24 +discord.py>=1.2.2 +youtube_dl>=2019.6.8 ffmpeg-python>=0.1.17 Sphinx>=2.0.1 sphinx_rtd_theme>=0.4.3 diff --git a/royalnet/__init__.py b/royalnet/__init__.py index ff9e35df..e310135d 100644 --- a/royalnet/__init__.py +++ b/royalnet/__init__.py @@ -1,5 +1,5 @@ from . import audio, bots, commands, database, network, utils, error, web -version = "5.0a22" +version = "5.0a23" __all__ = ["audio", "bots", "commands", "database", "network", "utils", "error", "web"] diff --git a/royalnet/audio/royalpcmfile.py b/royalnet/audio/royalpcmfile.py index 56741d01..2f7d4171 100644 --- a/royalnet/audio/royalpcmfile.py +++ b/royalnet/audio/royalpcmfile.py @@ -39,7 +39,7 @@ class RoyalPCMFile(YtdlFile): ffmpeg.input(f"./{self.video_filename}") \ .output(self.audio_filename, format="s16le", ac=2, ar="48000") \ .overwrite_output() \ - .run(quiet=False) + .run(quiet=True) except ffmpeg.Error as exc: log.error(f"FFmpeg error: {exc.stderr}") raise diff --git a/royalnet/commands/cv.py b/royalnet/commands/cv.py index e6719ba7..73ae3911 100644 --- a/royalnet/commands/cv.py +++ b/royalnet/commands/cv.py @@ -67,10 +67,16 @@ class CvNH(NetworkHandler): # Voice if channel != 0: # Voice status - if member.voice.self_mute: - message += f"🔇 " + if member.voice.afk: + message += "💤 " + elif member.voice.self_deaf or member.voice.deaf: + message += "🔇 " + elif member.voice.self_mute or member.voice.mute: + message += "🔈 " + elif member.voice.self_video: + message += "📺 " else: - message += f"🔊 " + message += "🔊 " # Nickname if member.nick is not None: message += f"[i]{member.nick}[/i]" @@ -99,6 +105,8 @@ class CvNH(NetworkHandler): message += f" | 🎧 {member.activity.name}" elif member.activity.type == discord.ActivityType.watching: message += f" | 📺 {member.activity.name}" + else: + message += f" | ❓ Unknown activity" message += "\n" message += "\n" return ResponseSuccess({"response": message}) diff --git a/royalnet/commands/error_handler.py b/royalnet/commands/error_handler.py index f82c833b..0fbe2b1c 100644 --- a/royalnet/commands/error_handler.py +++ b/royalnet/commands/error_handler.py @@ -17,33 +17,39 @@ class ErrorHandlerCommand(Command): if isinstance(exception, NoneFoundError): await call.reply(f"⚠️ L'elemento richiesto non è stato trovato.\n[p]{exception}[/p]") return - if isinstance(exception, TooManyFoundError): + elif isinstance(exception, TooManyFoundError): await call.reply(f"⚠️ La richiesta effettuata è ambigua, pertanto è stata annullata.\n[p]{exception}[/p]") return - if isinstance(exception, UnregisteredError): + elif isinstance(exception, UnregisteredError): await call.reply("⚠️ Devi essere registrato a Royalnet per usare questo comando.\nUsa il comando [c]sync[/c] per registrarti!") return - if isinstance(exception, UnsupportedError): + elif isinstance(exception, UnsupportedError): await call.reply(f"⚠️ Il comando richiesto non è disponibile tramite l'interfaccia [c]{call.interface_name}[/c].") return - if isinstance(exception, InvalidInputError): + elif isinstance(exception, InvalidInputError): command = call.kwargs["previous_command"] await call.reply(f"⚠️ Sintassi non valida.\nSintassi corretta: [c]{call.interface_prefix}{command.command_name} {command.command_syntax}[/c]") return - if isinstance(exception, InvalidConfigError): + elif isinstance(exception, InvalidConfigError): await call.reply(f"⚠️ Il bot non è stato configurato correttamente, quindi questo comando non può essere eseguito.\n[p]{exception}[/p]") return - if isinstance(exception, RoyalnetRequestError): + elif isinstance(exception, RoyalnetRequestError): await call.reply(f"⚠️ La richiesta a Royalnet ha restituito un errore:\n" f"[p]{exception.error.extra_info['type']}\n" f"{exception.error.extra_info['str']}[/p]") return - if isinstance(exception, ExternalError): + elif isinstance(exception, ExternalError): await call.reply(f"⚠️ Una risorsa esterna necessaria per l'esecuzione del comando non ha funzionato correttamente, quindi il comando è stato annullato.\n[p]{exception}[/p]") return - if isinstance(exception, RoyalnetResponseError): + elif isinstance(exception, RoyalnetResponseError): log.warning(f"Invalid response from Royalnet - {exception.__class__.__name__}: {exception}") await call.reply(f"❌ La risposta ricevuta da Royalnet non è valida: [p]{exception}[/p]") return - log.error(f"Unhandled exception - {exception.__class__.__name__}: {exception}") - await call.reply(f"❌ Eccezione non gestita durante l'esecuzione del comando:\n[b]{exception.__class__.__name__}[/b]\n[p]{exception}[/p]") + elif isinstance(exception, CurrentlyDisabledError): + await call.reply(f"⚠️ Il comando richiesto è temporaneamente disabilitato.\n[p]{exception}[/p]") + return + elif __debug__: + raise + else: + log.error(f"Unhandled exception - {exception.__class__.__name__}: {exception}") + await call.reply(f"❌ Eccezione non gestita durante l'esecuzione del comando:\n[b]{exception.__class__.__name__}[/b]\n[p]{exception}[/p]") diff --git a/royalnet/commands/play.py b/royalnet/commands/play.py index 0b0f59f5..80c68167 100644 --- a/royalnet/commands/play.py +++ b/royalnet/commands/play.py @@ -65,8 +65,8 @@ class PlayCommand(Command): @classmethod async def common(cls, call: Call): guild_name, url = call.args.match(r"(?:\[(.+)])?\s*?") - download_task = loop.create_task(call.net_request(Request("music_play", {"url": url, "guild_name": guild_name}), "discord")) - notify_task = loop.create_task(notify_on_timeout(call, url, time=30, repeat=True)) + download_task = call.loop.create_task(call.net_request(Request("music_play", {"url": url, "guild_name": guild_name}), "discord")) + notify_task = call.loop.create_task(notify_on_timeout(call, url, time=30, repeat=True)) try: data: dict = await download_task except Exception as exc: diff --git a/royalnet/commands/playmode.py b/royalnet/commands/playmode.py index df4ac9f2..0dbef442 100644 --- a/royalnet/commands/playmode.py +++ b/royalnet/commands/playmode.py @@ -2,7 +2,7 @@ import typing import asyncio from ..utils import Command, Call, NetworkHandler from ..network import Request, ResponseSuccess -from ..error import NoneFoundError, TooManyFoundError +from ..error import NoneFoundError, TooManyFoundError, CurrentlyDisabledError from ..audio import Playlist, Pool if typing.TYPE_CHECKING: from ..bots import DiscordBot @@ -30,7 +30,8 @@ class PlaymodeNH(NetworkHandler): if data["mode_name"] == "playlist": bot.music_data[guild] = Playlist() elif data["mode_name"] == "pool": - bot.music_data[guild] = Pool() + # bot.music_data[guild] = Pool() + raise CurrentlyDisabledError("Bug: https://github.com/royal-games/royalnet/issues/61") else: raise ValueError("No such PlayMode") return ResponseSuccess() diff --git a/royalnet/commands/videochannel.py b/royalnet/commands/videochannel.py index d8395f67..cf869eee 100644 --- a/royalnet/commands/videochannel.py +++ b/royalnet/commands/videochannel.py @@ -39,4 +39,7 @@ class VideochannelCommand(Command): await call.reply("⚠️ Non sei connesso a nessun canale vocale!") return channel = voice.channel + if author.is_on_mobile(): + await call.reply(f"📹 Per entrare in modalità video, clicca qui: \n[b]Attenzione: la modalità video non funziona su Discord per Android e iOS![/b]") + return await call.reply(f"📹 Per entrare in modalità video, clicca qui: ") diff --git a/royalnet/error.py b/royalnet/error.py index a6f131b5..3681123f 100644 --- a/royalnet/error.py +++ b/royalnet/error.py @@ -45,3 +45,7 @@ class ExternalError(Exception): class FileTooBigError(Exception): """The file to be downloaded would be too big to store; therefore, it has been skipped.""" + + +class CurrentlyDisabledError(Exception): + """This feature is temporarely disabled and is not available right now.""" diff --git a/royalnet/network/royalnetserver.py b/royalnet/network/royalnetserver.py index 1b501930..4ad5e3c2 100644 --- a/royalnet/network/royalnetserver.py +++ b/royalnet/network/royalnetserver.py @@ -41,9 +41,9 @@ class RoyalnetServer: self.required_secret: str = required_secret self.identified_clients: typing.List[ConnectedClient] = [] if loop is None: - self.loop = asyncio.get_event_loop() + self._loop = asyncio.get_event_loop() else: - self.loop = loop + self._loop = loop def find_client(self, *, nid: str = None, link_type: str = None) -> typing.List[ConnectedClient]: assert not (nid and link_type) diff --git a/royalnet/royalgames.py b/royalnet/royalgames.py index ba387c1c..fd36a819 100644 --- a/royalnet/royalgames.py +++ b/royalnet/royalgames.py @@ -3,6 +3,7 @@ import asyncio import logging from royalnet.bots import DiscordBot, DiscordConfig, TelegramBot, TelegramConfig from royalnet.commands import * +# noinspection PyUnresolvedReferences from royalnet.commands.debug_create import DebugCreateCommand from royalnet.commands.error_handler import ErrorHandlerCommand from royalnet.network import RoyalnetServer, RoyalnetConfig @@ -15,13 +16,17 @@ log = logging.root stream_handler = logging.StreamHandler() stream_handler.formatter = logging.Formatter("{asctime}\t{name}\t{levelname}\t{message}", style="{") log.addHandler(stream_handler) -log.setLevel(logging.WARNING) +log.setLevel(logging.INFO) -commands = [PingCommand, ShipCommand, SmecdsCommand, ColorCommand, CiaoruoziCommand, DebugCreateCommand, SyncCommand, - AuthorCommand, DiarioCommand, RageCommand, DateparserCommand, ReminderCommand, KvactiveCommand, KvCommand, - KvrollCommand, VideoinfoCommand, SummonCommand, PlayCommand, SkipCommand, PlaymodeCommand, +commands = [PingCommand, ShipCommand, SmecdsCommand, ColorCommand, CiaoruoziCommand, SyncCommand, + DiarioCommand, RageCommand, ReminderCommand, KvactiveCommand, KvCommand, + KvrollCommand, SummonCommand, PlayCommand, SkipCommand, PlaymodeCommand, VideochannelCommand, CvCommand, PauseCommand, QueueCommand] +# noinspection PyUnreachableCode +if __debug__: + commands = [DebugCreateCommand, VideoinfoCommand, DateparserCommand, AuthorCommand, *commands] + address, port = "127.0.0.1", 1234 print("Starting master...") diff --git a/royalnet/royalgamesweb.py b/royalnet/royalgamesweb.py index 24a4b6f6..ac823de8 100644 --- a/royalnet/royalgamesweb.py +++ b/royalnet/royalgamesweb.py @@ -1,6 +1,6 @@ import os from .web import create_app -from .web.royalprints import rp_home, rp_wikiview, rp_tglogin +from .web.royalprints import rp_home, rp_wikiview, rp_tglogin, rp_docs class TestConfig: @@ -8,7 +8,7 @@ class TestConfig: TG_AK = os.environ["TG_AK"] -app = create_app(TestConfig, [rp_home, rp_wikiview, rp_tglogin]) +app = create_app(TestConfig, [rp_home, rp_wikiview, rp_tglogin, rp_docs]) if __name__ == "__main__": diff --git a/royalnet/web/royalprints/__init__.py b/royalnet/web/royalprints/__init__.py index 5511d4ef..ba7a5706 100644 --- a/royalnet/web/royalprints/__init__.py +++ b/royalnet/web/royalprints/__init__.py @@ -3,5 +3,6 @@ from .home import rp as rp_home from .wikiview import rp as rp_wikiview from .tglogin import rp as rp_tglogin +from .docs import rp as rp_docs -__all__ = ["rp_home", "rp_wikiview", "rp_tglogin"] +__all__ = ["rp_home", "rp_wikiview", "rp_tglogin", "rp_docs"] diff --git a/royalnet/web/royalprints/docs/__init__.py b/royalnet/web/royalprints/docs/__init__.py new file mode 100644 index 00000000..1ca7a558 --- /dev/null +++ b/royalnet/web/royalprints/docs/__init__.py @@ -0,0 +1,11 @@ +"""Quick docs link :py:class:`royalnet.web.Royalprint`.""" +import flask as f +from ... import Royalprint + + +rp = Royalprint("docs", __name__, url_prefix="/docs") + + +@rp.route("/") +def home_index(): + return f.redirect("https://royal-games.github.io/royalnet/html/index.html") diff --git a/royalnet/web/royalprints/home/templates/home.html b/royalnet/web/royalprints/home/templates/home.html index 226df2ea..268a36a4 100644 --- a/royalnet/web/royalprints/home/templates/home.html +++ b/royalnet/web/royalprints/home/templates/home.html @@ -10,7 +10,7 @@ Under construction
- Non c'è ancora niente qui. O quasi. C'è solo la wiki in sola lettura... + Non c'è ancora niente qui. O quasi. C'è solo la wiki in sola lettura e il login con Telegram...
{% endblock %} \ No newline at end of file diff --git a/royalnet/web/royalprints/tglogin/__init__.py b/royalnet/web/royalprints/tglogin/__init__.py index 46724a84..8f75af47 100644 --- a/royalnet/web/royalprints/tglogin/__init__.py +++ b/royalnet/web/royalprints/tglogin/__init__.py @@ -3,12 +3,14 @@ import flask as f import hashlib import hmac import datetime +import os from ... import Royalprint from ....database.tables import Royal, Telegram -rp = Royalprint("tglogin", __name__, url_prefix="/login/telegram", required_tables={Royal, Telegram}, - template_folder="templates") +tmpl_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'templates') +rp = Royalprint("tglogin", __name__, url_prefix="/tglogin", required_tables={Royal, Telegram}, + template_folder=tmpl_dir) @rp.route("/") diff --git a/royalnet/web/static/ryg.css b/royalnet/web/static/ryg.css index 93f2bd48..9ff44fbe 100644 --- a/royalnet/web/static/ryg.css +++ b/royalnet/web/static/ryg.css @@ -206,7 +206,6 @@ nav .nav-image { vertical-align: middle; } nav .nav-sitename { - color: #ffffff; font-weight: bold; } nav .nav-login-unavailable { diff --git a/royalnet/web/static/ryg.css.map b/royalnet/web/static/ryg.css.map index c65823ac..763fe430 100644 --- a/royalnet/web/static/ryg.css.map +++ b/royalnet/web/static/ryg.css.map @@ -1 +1 @@ -{"version":3,"sources":["ryg.less"],"names":[],"mappings":"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","file":"ryg.css"} \ No newline at end of file +{"version":3,"sources":["ryg.less"],"names":[],"mappings":"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","file":"ryg.css"} \ No newline at end of file diff --git a/royalnet/web/static/ryg.less b/royalnet/web/static/ryg.less index 13e83b26..c8ea1749 100644 --- a/royalnet/web/static/ryg.less +++ b/royalnet/web/static/ryg.less @@ -251,7 +251,6 @@ nav { } .nav-sitename { - color: @ec; font-weight: bold; } diff --git a/royalnet/web/static/tf2.less b/royalnet/web/static/tf2.less index 2e0980b2..0b50f9ca 100644 --- a/royalnet/web/static/tf2.less +++ b/royalnet/web/static/tf2.less @@ -265,7 +265,6 @@ nav { } .nav-sitename { - color: @ec; font-weight: bold; } diff --git a/royalnet/web/templates/base.html b/royalnet/web/templates/base.html index 1becdaed..c6776f7f 100644 --- a/royalnet/web/templates/base.html +++ b/royalnet/web/templates/base.html @@ -43,7 +43,7 @@ {% else %}