diff --git a/royalnet/bots/discord.py b/royalnet/bots/discord.py
index cf13fe68..e5e4f27c 100644
--- a/royalnet/bots/discord.py
+++ b/royalnet/bots/discord.py
@@ -24,6 +24,7 @@ class DiscordConfig:
class DiscordBot(GenericBot):
"""A bot that connects to `Discord `_."""
+ interface_name = "discord"
def _init_voice(self):
"""Initialize the variables needed for the connection to voice chat."""
@@ -36,7 +37,7 @@ class DiscordBot(GenericBot):
# noinspection PyMethodParameters,PyAbstractClass
class DiscordInterface(GenericInterface):
- name = "discord"
+ name = self.interface_name
prefix = "!"
return DiscordInterface
diff --git a/royalnet/bots/generic.py b/royalnet/bots/generic.py
index a40923e8..1ed2ed7a 100644
--- a/royalnet/bots/generic.py
+++ b/royalnet/bots/generic.py
@@ -24,7 +24,7 @@ class GenericBot:
self._Interface = self._interface_factory()
self._Data = self._data_factory()
self.commands = {}
- for SelectedCommand in self.commands:
+ for SelectedCommand in commands:
interface = self._Interface()
self.commands[f"{interface.prefix}{SelectedCommand.name}"] = SelectedCommand(interface)
self.network_handlers: typing.Dict[str, typing.Type[NetworkHandler]] = {}
@@ -107,7 +107,7 @@ class GenericBot:
"""Create an :py:class:`royalnet.database.Alchemy` with the tables required by the commands. Then,
find the chain that links the ``master_table`` to the ``identity_table``. """
log.debug(f"Initializing database")
- required_tables = set()
+ required_tables = {database_config.master_table, database_config.identity_table}
for command in commands:
required_tables = required_tables.union(command.require_alchemy_tables)
log.debug(f"Found {len(required_tables)} required tables")
diff --git a/royalnet/bots/telegram.py b/royalnet/bots/telegram.py
index ebe222fd..2247bea4 100644
--- a/royalnet/bots/telegram.py
+++ b/royalnet/bots/telegram.py
@@ -21,6 +21,7 @@ class TelegramConfig:
class TelegramBot(GenericBot):
"""A bot that connects to `Telegram `_."""
+ interface_name = "telegram"
def _init_client(self):
"""Create the :py:class:`telegram.Bot`, and set the starting offset."""
@@ -35,7 +36,7 @@ class TelegramBot(GenericBot):
# noinspection PyMethodParameters,PyAbstractClass
class TelegramInterface(GenericInterface):
- name = "telegram"
+ name = self.interface_name
prefix = "/"
return TelegramInterface
@@ -99,7 +100,7 @@ class TelegramBot(GenericBot):
command_text, *parameters = text.split(" ")
command_name = command_text.replace(f"@{self.client.username}", "").lower()
# Send a typing notification
- self.client.send_chat_action(update.message.chat, telegram.ChatAction.TYPING)
+ update.message.chat.send_action(telegram.ChatAction.TYPING)
# Find the command
try:
command = self.commands[command_name]
@@ -125,4 +126,3 @@ class TelegramBot(GenericBot):
self._offset = last_updates[-1].update_id + 1
except IndexError:
pass
-
diff --git a/royalnet/commands/__init__.py b/royalnet/commands/__init__.py
index 17b25642..726c0206 100644
--- a/royalnet/commands/__init__.py
+++ b/royalnet/commands/__init__.py
@@ -1,5 +1,6 @@
from .commandinterface import CommandInterface
from .command import Command
from .commanddata import CommandData
+from .commandargs import CommandArgs
-__all__ = ["CommandInterface", "Command", "CommandData"]
+__all__ = ["CommandInterface", "Command", "CommandData", "CommandArgs"]
diff --git a/royalnet/commands/royalgames/__init__.py b/royalnet/commands/royalgames/__init__.py
index 33f07a4b..0b41e08e 100644
--- a/royalnet/commands/royalgames/__init__.py
+++ b/royalnet/commands/royalgames/__init__.py
@@ -3,38 +3,6 @@
These probably won't suit your needs, as they are tailored for the bots of the Royal Games gaming community, but they
may be useful to develop new ones."""
-from .null import NullCommand
from .ping import PingCommand
-from .ship import ShipCommand
-from .smecds import SmecdsCommand
-from .ciaoruozi import CiaoruoziCommand
-from .color import ColorCommand
-from .sync import SyncCommand
-from .diario import DiarioCommand
-from .rage import RageCommand
-from .dateparser import DateparserCommand
-from .author import AuthorCommand
-from .reminder import ReminderCommand
-from .kvactive import KvactiveCommand
-from .kv import KvCommand
-from .kvroll import KvrollCommand
-from .videoinfo import VideoinfoCommand
-from .summon import SummonCommand
-from .play import PlayCommand
-from .skip import SkipCommand
-from .playmode import PlaymodeCommand
-from .videochannel import VideochannelCommand
-from .missing import MissingCommand
-from .cv import CvCommand
-from .pause import PauseCommand
-from .queue import QueueCommand
-from .royalnetprofile import RoyalnetprofileCommand
-from .id import IdCommand
-from .dlmusic import DlmusicCommand
-
-__all__ = ["NullCommand", "PingCommand", "ShipCommand", "SmecdsCommand", "CiaoruoziCommand", "ColorCommand",
- "SyncCommand", "DiarioCommand", "RageCommand", "DateparserCommand", "AuthorCommand", "ReminderCommand",
- "KvactiveCommand", "KvCommand", "KvrollCommand", "VideoinfoCommand", "SummonCommand", "PlayCommand",
- "SkipCommand", "PlaymodeCommand", "VideochannelCommand", "MissingCommand", "CvCommand", "PauseCommand",
- "QueueCommand", "RoyalnetprofileCommand", "IdCommand", "DlmusicCommand"]
+__all__ = ["PingCommand"]
diff --git a/royalnet/royalgames.py b/royalnet/royalgames.py
index 9ce17d8e..d0a2bb47 100644
--- a/royalnet/royalgames.py
+++ b/royalnet/royalgames.py
@@ -4,10 +4,7 @@ import os
import asyncio
import logging
from royalnet.bots import DiscordBot, DiscordConfig, TelegramBot, TelegramConfig
-from royalnet.commands import *
-# noinspection PyUnresolvedReferences
-from royalnet.commands import DebugCreateCommand
-from royalnet.commands import ErrorHandlerCommand
+from royalnet.commands.royalgames import *
from royalnet.network import RoyalnetServer, RoyalnetConfig
from royalnet.database import DatabaseConfig
from royalnet.database.tables import Royal, Telegram, Discord
@@ -19,15 +16,10 @@ stream_handler = logging.StreamHandler()
stream_handler.formatter = logging.Formatter("{asctime}\t{name}\t{levelname}\t{message}", style="{")
log.addHandler(stream_handler)
-commands = [PingCommand, ShipCommand, SmecdsCommand, ColorCommand, CiaoruoziCommand, SyncCommand,
- DiarioCommand, RageCommand, ReminderCommand, KvactiveCommand, KvCommand,
- KvrollCommand, SummonCommand, PlayCommand, SkipCommand, PlaymodeCommand,
- VideochannelCommand, CvCommand, PauseCommand, QueueCommand, RoyalnetprofileCommand, VideoinfoCommand,
- IdCommand, DlmusicCommand]
+commands = [PingCommand]
# noinspection PyUnreachableCode
if __debug__:
- commands = [DebugCreateCommand, DateparserCommand, AuthorCommand, *commands]
log.setLevel(logging.DEBUG)
else:
log.setLevel(logging.INFO)
@@ -42,15 +34,11 @@ print("Starting bots...")
ds_bot = DiscordBot(discord_config=DiscordConfig(os.environ["DS_AK"]),
royalnet_config=RoyalnetConfig(f"ws://{address}:{port}", os.environ["MASTER_KEY"]),
database_config=DatabaseConfig(os.environ["DB_PATH"], Royal, Discord, "discord_id"),
- commands=commands,
- error_command=ErrorHandlerCommand,
- missing_command=MissingCommand)
+ commands=commands)
tg_bot = TelegramBot(telegram_config=TelegramConfig(os.environ["TG_AK"]),
royalnet_config=RoyalnetConfig(f"ws://{address}:{port}", os.environ["MASTER_KEY"]),
database_config=DatabaseConfig(os.environ["DB_PATH"], Royal, Telegram, "tg_id"),
- commands=commands,
- error_command=ErrorHandlerCommand,
- missing_command=MissingCommand)
+ commands=commands)
loop.create_task(tg_bot.run())
loop.create_task(ds_bot.run())
diff --git a/royalnet/shareradio.py b/royalnet/shareradio.py
deleted file mode 100644
index fd1d0c16..00000000
--- a/royalnet/shareradio.py
+++ /dev/null
@@ -1,46 +0,0 @@
-"""The production Royalnet, active at @royalgamesbot on Telegram and Royalbot on Discord."""
-
-import os
-import asyncio
-import logging
-from royalnet.bots import DiscordBot, DiscordConfig, TelegramBot, TelegramConfig
-from royalnet.commands import *
-# noinspection PyUnresolvedReferences
-from royalnet.commands import DebugCreateCommand
-from royalnet.commands import ErrorHandlerCommand
-from royalnet.network import RoyalnetServer, RoyalnetConfig
-
-loop = asyncio.get_event_loop()
-
-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.INFO)
-
-commands = [PingCommand, SummonCommand, PlayCommand, SkipCommand, PlaymodeCommand, PauseCommand, QueueCommand]
-
-address, port = "127.0.0.1", 1234
-
-print("Starting master...")
-master = RoyalnetServer(address, port, os.environ["MASTER_KEY"])
-loop.run_until_complete(master.start())
-
-print("Starting bots...")
-ds_bot = DiscordBot(discord_config=DiscordConfig(os.environ["DS_AK"]),
- royalnet_config=RoyalnetConfig(f"ws://{address}:{port}", os.environ["MASTER_KEY"]),
- database_config=None,
- commands=commands,
- error_command=ErrorHandlerCommand,
- missing_command=MissingCommand)
-tg_bot = TelegramBot(telegram_config=TelegramConfig(os.environ["TG_AK"]),
- royalnet_config=RoyalnetConfig(f"ws://{address}:{port}", os.environ["MASTER_KEY"]),
- database_config=None,
- commands=commands,
- error_command=ErrorHandlerCommand,
- missing_command=MissingCommand)
-loop.create_task(tg_bot.run())
-loop.create_task(ds_bot.run())
-
-print("Running loop...")
-loop.run_forever()
diff --git a/royalnet/utils/__init__.py b/royalnet/utils/__init__.py
index a7b6dc40..7455eacc 100644
--- a/royalnet/utils/__init__.py
+++ b/royalnet/utils/__init__.py
@@ -2,13 +2,12 @@
from .asyncify import asyncify
from .escaping import telegram_escape, discord_escape
-from .commandargs import CommandArgs
from .safeformat import safeformat
from .classdictjanitor import cdj
from .sleepuntil import sleep_until
from .networkhandler import NetworkHandler
from .formatters import andformat, plusformat, fileformat, ytdldateformat, numberemojiformat
-__all__ = ["asyncify", "safeformat", "cdj", "sleep_until", "plusformat", "CommandArgs",
+__all__ = ["asyncify", "safeformat", "cdj", "sleep_until", "plusformat",
"NetworkHandler", "andformat", "plusformat", "fileformat", "ytdldateformat", "numberemojiformat",
"telegram_escape", "discord_escape"]