aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/IRCChannel.py53
-rw-r--r--src/IRCChannels.py54
-rw-r--r--src/IRCServer.py4
3 files changed, 56 insertions, 55 deletions
diff --git a/src/IRCChannel.py b/src/IRCChannel.py
index 27d7e029..899ffded 100644
--- a/src/IRCChannel.py
+++ b/src/IRCChannel.py
@@ -155,56 +155,3 @@ class Channel(IRCObject.Object):
def get_user_status(self, user: IRCUser.User) -> typing.Set:
return self.user_modes.get(user, [])
-
-class Channels(object):
- def __init__(self, server: "IRCServer.Server", bot: "IRCBot.Bot",
- events: EventManager.EventHook):
- self._server = server
- self._bot = bot
- self._events = events
- self._channels = {} # type: typing.Dict[str, Channel]
-
- def __iter__(self) -> typing.Iterable[Channel]:
- return (channel for channel in self._channels.values())
- def __contains__(self, name: str) -> bool:
- return self.contains(name)
- def __len__(self) -> int:
- return len(self._channels)
- def __getitem__(self, name: str):
- return self.get(name)
-
- def _get_id(self, channel_name: str) -> int:
- self._bot.database.channels.add(self._server.id, channel_name)
- return self._bot.database.channels.get_id(self._server.id, channel_name)
-
- def _name_lower(self, channel_name: str) -> str:
- return utils.irc.lower(self._server.case_mapping, channel_name)
-
- def contains(self, name: str) -> bool:
- lower = self._name_lower(name)
- return name[0] in self._server.channel_types and lower in self._channels
-
- def add(self, name: str) -> Channel:
- id = self._get_id(name)
- lower = self._name_lower(name)
- new_channel = Channel(lower, id, self._server, self._bot)
- self._channels[lower] = new_channel
- self._events.on("new.channel").call(channel=new_channel, server=self)
- return new_channel
-
- def remove(self, channel: Channel):
- lower = self._name_lower(channel.name)
- del self._channels[lower]
-
- def get(self, name: str):
- return self._channels[self._name_lower(name)]
-
- def rename(self, old_name, new_name):
- old_lower = self._name_lower(old_name)
- new_lower = self._name_lower(new_name)
-
- channel = self.channels.pop(old_lower)
- channel.name = new_name
- self._channels[new_name] = channel
-
- self._bot.database.channels.rename(channel.id, new_lower)
diff --git a/src/IRCChannels.py b/src/IRCChannels.py
new file mode 100644
index 00000000..8038788a
--- /dev/null
+++ b/src/IRCChannels.py
@@ -0,0 +1,54 @@
+from src import EventManager, IRCBot, IRCChannel, IRCServer
+
+class Channels(object):
+ def __init__(self, server: "IRCServer.Server", bot: "IRCBot.Bot",
+ events: EventManager.EventHook):
+ self._server = server
+ self._bot = bot
+ self._events = events
+ self._channels = {} # type: typing.Dict[str, Channel]
+
+ def __iter__(self) -> typing.Iterable[Channel]:
+ return (channel for channel in self._channels.values())
+ def __contains__(self, name: str) -> bool:
+ return self.contains(name)
+ def __len__(self) -> int:
+ return len(self._channels)
+ def __getitem__(self, name: str):
+ return self.get(name)
+
+ def _get_id(self, channel_name: str) -> int:
+ self._bot.database.channels.add(self._server.id, channel_name)
+ return self._bot.database.channels.get_id(self._server.id, channel_name)
+
+ def _name_lower(self, channel_name: str) -> str:
+ return utils.irc.lower(self._server.case_mapping, channel_name)
+
+ def contains(self, name: str) -> bool:
+ lower = self._name_lower(name)
+ return name[0] in self._server.channel_types and lower in self._channels
+
+ def add(self, name: str) -> Channel:
+ id = self._get_id(name)
+ lower = self._name_lower(name)
+ new_channel = Channel(lower, id, self._server, self._bot)
+ self._channels[lower] = new_channel
+ self._events.on("new.channel").call(channel=new_channel, server=self)
+ return new_channel
+
+ def remove(self, channel: Channel):
+ lower = self._name_lower(channel.name)
+ del self._channels[lower]
+
+ def get(self, name: str):
+ return self._channels[self._name_lower(name)]
+
+ def rename(self, old_name, new_name):
+ old_lower = self._name_lower(old_name)
+ new_lower = self._name_lower(new_name)
+
+ channel = self.channels.pop(old_lower)
+ channel.name = new_name
+ self._channels[new_name] = channel
+
+ self._bot.database.channels.rename(channel.id, new_lower)
diff --git a/src/IRCServer.py b/src/IRCServer.py
index 910c4b93..b6254fa0 100644
--- a/src/IRCServer.py
+++ b/src/IRCServer.py
@@ -1,5 +1,5 @@
import collections, socket, ssl, sys, time, typing
-from src import EventManager, IRCBot, IRCChannel, IRCObject, IRCUser, utils
+from src import EventManager, IRCBot, IRCChannels, IRCObject, IRCUser, utils
THROTTLE_LINES = 4
THROTTLE_SECONDS = 1
@@ -38,7 +38,7 @@ class Server(IRCObject.Object):
self.users = {} # type: typing.Dict[str, IRCUser.User]
self.new_users = set([]) #type: typing.Set[IRCUser.User]
- self.channels = IRCChannel.Channels(self, self.bot, self.events)
+ self.channels = IRCChannels.Channels(self, self.bot, self.events)
self.own_modes = {} # type: typing.Dict[str, typing.Optional[str]]
self.isupport = {} # type: typing.Dict[str, typing.Optional[str]]