AsyncIRCClient
Async (Twitch-) IRC client
First async code so takee everything with a bit of caution
Installation
pip install AsyncIRCClient
Example usage
from loguru import logger
from async_irc_client.async_irc_client import TwitchIRCBot, Message
class MyBot(TwitchIRCBot):
# subscribe to twitch's irc events
async def on_client_ready(self, message: Message) -> None:
logger.info("Bot is Ready")
# create commands
@TwitchIRCBot.command("test")
async def test_command(self, message: Message) -> None:
self.send_chat_message(f"Hello World {message.source.nick}")
# mod only command
@TwitchIRCBot.command("mod_test", mod_only=True)
async def mod_test_command(self, message: Message) -> None:
self.send_chat_message(f"Hello World mod {message.source.nick}")
@TwitchIRCBot.command("alias_test", aliases=["alias_1", "alias_2"])
async def alias_test_command(self, message: Message) -> None:
self.send_chat_message("Call as alias!")
# when using case-insensitive commands you may not use
# any other command with the same name as any case-insensitive combination
# works with aliases
@TwitchIRCBot.command("case_insensitive", case_sensitive=False)
async def case_insensitive_command(self, message: Message) -> None:
self.send_chat_message("Case insensitive")
# repeat a task
# runs once the client is ready and after the specified time interval
# here 1000s
@TwitchIRCBot.loop(1000)
async def my_task(self):
logger.info("Hello World")
# repeat a task at given time
# is 1 second delayed to prevent double trigger inaccuracies
@TwitchIRCBot.loop(time="08:36")
async def my_timed_task(self):
logger.info("Hello World at 08:36")
if __name__ == "__main__":
from async_irc_client import Proxy, ProxyType
MyBot(
oauth_token="YOURTOKEN",
nick_name="BOTNAME",
channel="CHANNELNAME",
proxies=[
Proxy(ProxyType.HTTP, "ip", 1234),
Proxy(ProxyType.HTTP, "ip", 1234, password="password", username="username"),
Proxy.from_url("proxy_url")
]
).mainloop() # alternatively use .run() to run the bot non blocking.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
asyncircclient-1.0.3.tar.gz
(11.2 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file asyncircclient-1.0.3.tar.gz.
File metadata
- Download URL: asyncircclient-1.0.3.tar.gz
- Upload date:
- Size: 11.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.0.1 CPython/3.9.21
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8f3a144c60226b6f3c369d873a8fc299dbdffa25e1ffbc775a5c556769a6c41f
|
|
| MD5 |
c57c567e24ff2dcfb3cc9bf5722a419d
|
|
| BLAKE2b-256 |
9aa462a3a617654a43b0d67f9e227d1a0dd59068d8c86c1bcbf9eaf3175e0a1a
|
File details
Details for the file AsyncIRCClient-1.0.3-py3-none-any.whl.
File metadata
- Download URL: AsyncIRCClient-1.0.3-py3-none-any.whl
- Upload date:
- Size: 11.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.0.1 CPython/3.9.21
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a9179a29c9872eccd2aa605cfe328adad1026f4f4efdba68701545bec43238df
|
|
| MD5 |
30c516227c212a31970705cdda85a37e
|
|
| BLAKE2b-256 |
ec85cdc95c9aeee2badf54ec94f310f2078d2737344346d24fbfc0dbcfdf82ea
|