Skip to content

Commit

Permalink
feat: add option to specify bot nickname
Browse files Browse the repository at this point in the history
  • Loading branch information
jykob committed May 2, 2024
1 parent d074479 commit 147eee5
Showing 1 changed file with 13 additions and 2 deletions.
15 changes: 13 additions & 2 deletions tsbot/bot.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ def __init__(
port: int = 10022,
*,
server_id: int = 1,
nickname: str | None = None,
invoker: str = "!",
ratelimited: bool = False,
ratelimit_calls: int = 10,
Expand All @@ -51,13 +52,18 @@ def __init__(
:param address: Address of the TeamSpeak server.
:param port: Port of the SSH connection.
:param server_id: Id of the virtual server.
:param nickname: Display name for the bot client.
:param invoker: Command indicator.
:param ratelimited: If the connection should be ratelimited.
:param ratelimit_calls: Calls per period.
:param ratelimit_period: Period interval.
:param query_timeout: Timeout for query commands.
"""

if nickname is not None and not nickname:
raise TypeError("Bot nickname cannot be empty")

self.nickname = nickname
self.server_id = server_id
self.uid: str = ""

Expand Down Expand Up @@ -413,8 +419,13 @@ async def get_reader_task() -> asyncio.Task[None]:
return reader

async def select_server() -> None:
"""Set current virtual server"""
await self.send(query_builder.TSQuery("use", parameters={"sid": self.server_id}))
"""Set current virtual server and sets nickname if specified"""
select_query = query_builder.TSQuery("use", parameters={"sid": self.server_id})

if self.nickname is not None:
select_query = select_query.params(client_nickname=self.nickname)

await self.send(select_query)

async def register_notifies() -> None:
"""Coroutine to register server to send events to the bot"""
Expand Down

0 comments on commit 147eee5

Please sign in to comment.