48 lines
1.2 KiB
Python
48 lines
1.2 KiB
Python
def find_create_channel(name: str, server, parent: int = None):
|
|
channels = server.getChannels()
|
|
|
|
for cid, channel in channels.items():
|
|
if parent:
|
|
if channel.name == name and channel.parent == parent:
|
|
return channel
|
|
else:
|
|
if channel.name == name:
|
|
return channel
|
|
|
|
new_cid = server.addChannel(name, parent if parent else 0)
|
|
return server.getChannelState(new_cid)
|
|
|
|
|
|
def get_empty_channels(server, parent: int = None):
|
|
empty_channels = []
|
|
channels = server.getChannels()
|
|
|
|
for cid, channel in channels.items():
|
|
if parent:
|
|
if channel.parent == parent and len(get_user_for_channel(cid, server)) == 0:
|
|
empty_channels.append(cid)
|
|
|
|
return empty_channels
|
|
|
|
|
|
def get_subchannels(server, parent: int):
|
|
sub_channel = []
|
|
channels = server.getChannels()
|
|
|
|
for cid, channel in channels.items():
|
|
if channel.parent == parent:
|
|
sub_channel.append(channel)
|
|
|
|
return sub_channel
|
|
|
|
|
|
def get_user_for_channel(cid, server):
|
|
users = server.getUsers()
|
|
users_in_channel = {}
|
|
|
|
for uid, user in users.items():
|
|
if user.channel == cid:
|
|
users_in_channel[uid] = user
|
|
|
|
return users_in_channel
|