Skip to content

Instantly share code, notes, and snippets.

@numberoverzero
Last active September 3, 2025 19:44
Show Gist options
  • Select an option

  • Save numberoverzero/e607ea0e5c5704693cdfc9a64f3b0c5a to your computer and use it in GitHub Desktop.

Select an option

Save numberoverzero/e607ea0e5c5704693cdfc9a64f3b0c5a to your computer and use it in GitHub Desktop.
debug logging for issue bottom#76
from __future__ import annotations
import typing as t
import bottom
from bottom.core import BaseClient, NextMessageHandler
from bottom.unpack import unpack_command
from bottom.util import create_task
class SubscriberProtocol(t.Protocol):
async def __call__(self, event: str, **kwargs: t.Any) -> None: ...
class MessageHandlers:
handlers: set[SubscriberProtocol]
def __init__(self) -> None:
self.handlers = set()
def add(self, handler: SubscriberProtocol) -> None:
self.handlers.add(handler)
def remove(self, handler: SubscriberProtocol) -> None:
try:
self.handlers.remove(handler)
except KeyError:
# no-op
pass
async def dispatch(self, next_handler: NextMessageHandler[BaseClient], client: BaseClient, message: bytes) -> None:
try:
event, kwargs = unpack_command(message.decode(client._encoding))
except ValueError:
# unknown command
pass
else:
handlers = list(self.handlers)
for handle in handlers:
create_task(handle(event, **kwargs))
await next_handler(client, message)
@classmethod
def install(cls, client: bottom.Client) -> MessageHandlers:
handlers = cls()
client.message_handlers.append(handlers.dispatch)
return handlers
# test_issue76.py
import asyncio
import logging
import typing as t
from collections.abc import AsyncIterator
from contextlib import asynccontextmanager
from time import perf_counter
from bottom import Client, NextMessageHandler, wait_for
from bottom.core import Protocol
from issue76 import MessageHandlers
# logging =============================================================================================================
logging.basicConfig(
level=logging.DEBUG,
format="%(asctime)s [%(levelname)s] %(message)s",
datefmt="%Y-%m-%d %H:%M:%S",
)
wire_log = logging.getLogger("i76.wire")
timing_log = logging.getLogger("i76.timing")
@asynccontextmanager
async def timer(description: str) -> AsyncIterator[None]:
start = perf_counter()
timing_log.debug(f"{description} START")
try:
yield
finally:
end = perf_counter()
ms = (end - start) * 1000
timing_log.debug(f"{description} ELAPSED {ms:0.2f}ms")
async def wire_log_all(next_handler: NextMessageHandler[Client], client: Client, message: bytes) -> None:
wire_log.debug(f"<<<MessageHandler {message.decode(client._encoding)}")
await next_handler(client, message)
def wrap_protocol(protocol: Protocol) -> Protocol:
"""dump incoming protocol.data_received as soon as it arrives, before _any_ bottom async code is called"""
original = protocol.data_received
def data_received(data: bytes) -> None:
wire_log.debug(f"<<<Protocol {data.decode('utf-8')}")
original(data)
protocol.data_received = data_received
return protocol
# conn setup ==========================================================================================================
host = "irc.libera.chat"
port = 6697
ssl = True
NICK = "bottom-bot"
CHANNEL = "#bottom-dev"
client = Client(host=host, port=port, ssl=ssl)
handlers = MessageHandlers.install(client)
client.message_handlers.append(wire_log_all)
# establish connection, keepalive =====================================================================================
@client.on("ping")
async def handle(message: str, **kwargs: t.Any) -> None:
await client.send("pong", message=message)
@client.on("client_connect")
async def on_connect(**kwargs: t.Any) -> None:
assert client._protocol
wrap_protocol(client._protocol)
async with timer("send nick+user"):
await client.send("nick", nick=NICK)
await client.send("user", nick=NICK, realname="https://github.com/numberoverzero/bottom")
async with timer("wait motd"):
await wait_for(client, ["rpl_endofmotd", "err_nomotd"], mode="first")
async with timer("send join"):
await client.send("join", channel=CHANNEL)
# event collection ====================================================================================================
async def listen_for(target_event: str, mode: t.Literal["all", "first"] = "all") -> list[dict[str, t.Any]]:
target_event = target_event.upper()
wait = asyncio.Event()
seen = []
def stop_criteria(event: str) -> bool:
return event != target_event or mode == "first"
async def collect(event: str, **kwargs: t.Any) -> None:
if wait.is_set():
return
if event == target_event:
seen.append(kwargs)
if stop_criteria(event):
wait.set()
handlers.remove(collect)
handlers.add(collect)
async with timer(f"wait listen_for({target_event}, mode={mode})"):
await wait.wait()
return seen
# simulate functionality ==============================================================================================
@client.on("client_connect")
async def demo(**kwargs: t.Any) -> None:
async with timer("demo collecting notices"):
await listen_for("notice", mode="first")
# entry point =========================================================================================================
async def main() -> None:
async with timer("client.connect()"):
await client.connect()
try:
await client.wait("client_disconnect")
print("\ndisconnected by remote")
except asyncio.CancelledError:
await client.disconnect()
print("\ndisconnected after ctrl+c")
if __name__ == "__main__":
asyncio.run(main())
$ uv run test_issue76.py
2025-09-03 15:42:31 [DEBUG] Using selector: EpollSelector
2025-09-03 15:42:31 [DEBUG] client.connect() START
2025-09-03 15:42:31 [DEBUG] client.connect() ELAPSED 217.15ms
2025-09-03 15:42:31 [DEBUG] send nick+user START
2025-09-03 15:42:31 [DEBUG] send nick+user ELAPSED 0.11ms
2025-09-03 15:42:31 [DEBUG] wait motd START
2025-09-03 15:42:31 [DEBUG] demo collecting notices START
2025-09-03 15:42:31 [DEBUG] wait listen_for(NOTICE, mode=first) START
2025-09-03 15:42:31 [DEBUG] <<<Protocol :tantalum.libera.chat NOTICE * :*** Checking Ident
:tantalum.libera.chat NOTICE * :*** Looking up your hostname...
2025-09-03 15:42:31 [DEBUG] <<<MessageHandler :tantalum.libera.chat NOTICE * :*** Checking Ident
2025-09-03 15:42:31 [DEBUG] <<<MessageHandler :tantalum.libera.chat NOTICE * :*** Looking up your hostname...
2025-09-03 15:42:31 [DEBUG] wait listen_for(NOTICE, mode=first) ELAPSED 212.20ms
2025-09-03 15:42:31 [DEBUG] demo collecting notices ELAPSED 212.31ms
2025-09-03 15:42:35 [DEBUG] <<<Protocol :tantalum.libera.chat NOTICE * :*** Found your hostname: [REDACT]
2025-09-03 15:42:35 [DEBUG] <<<MessageHandler :tantalum.libera.chat NOTICE * :*** Found your hostname: [REDACT]
2025-09-03 15:42:37 [DEBUG] <<<Protocol :tantalum.libera.chat NOTICE * :*** No Ident response
:tantalum.libera.chat 001 bottom-bot :Welcome to the Libera.Chat Internet Relay Chat Network bottom-bot
:tantalum.libera.chat 002 bottom-bot :Your host is [REDACT]
:tantalum.libera.chat 003 bottom-bot :This server was created Thu Aug 21 2025 at 11:10:46 UTC
:tantalum.libera.chat 004 bottom-bot tantalum.libera.chat [REDACT]
:tantalum.libera.chat 005 bottom-bot ACCOUNTEXTBAN=a WHOX MONITOR=100 SAFELIST ELIST=CMNTU ETRACE FNC CALLERID=g KNOCK CHANTYPES=# EXCEPTS INVEX :are supported by this server
:tantalum.libera.chat 005 bottom-bot CHANMODES=eIbq,k,flj,CFLMPQRSTcgimnprstuz CHANLIMIT=#:250 PREFIX=(ov)@+ MAXLIST=bqeI:100 MODES=4 NETWORK=Libera.Chat STATUSMSG=@+ CASEMAPPING=rfc1459 NICKLEN=16 MAXNICKLEN=16 CHANNELLEN=50 TOPICLEN=390 :are supported by this server
:tantalum.libera.chat 005 bottom-bot DEAF=D TARGMAX=NAMES:1,LIST:1,KICK:1,WHOIS:1,PRIVMSG:4,NOTICE:4,ACCEPT:,MONITOR: EXTBAN=$,agjrxz :are supported by this server
:tantalum.libera.chat 251 bottom-bot :There are 55 users and 31694 invisible on 28 servers
:tantalum.libera.chat 252 bottom-bot 32 :IRC Operators online
:tantalum.libera.chat 253 bottom-bot 30 :unknown connection(s)
:tantalum.libera.chat 254 bottom-bot 22333 :channels formed
:tantalum.libera.chat 255 bottom-bot :I have 539 clients and 1 servers
:tantalum.libera.chat 265 bottom-bot 539 2079 :Current local users 539, max 2079
:tantalum.libera.chat 266 bottom-bot 31749 34244 :Current global users 31749, max 34244
:tantalum.libera.chat 250 bottom-bot :Highest connection count: 2080 (2079 clients) (93623 connections received)
:tantalum.libera.chat 375 bottom-bot :- tantalum.libera.chat Message of the Day -
:tantalum.libera.chat 372 bottom-bot :- This server provided by Hyperfilter (https://hyperfilter.com)
:tantalum.libera.chat 372 bottom-bot :-
:tantalum.libera.chat 372 bottom-bot :-
:tantalum.
2025-09-03 15:42:37 [DEBUG] <<<MessageHandler :tantalum.libera.chat NOTICE * :*** No Ident response
2025-09-03 15:42:37 [DEBUG] <<<MessageHandler :tantalum.libera.chat 001 bottom-bot :Welcome to the Libera.Chat Internet Relay Chat Network bottom-bot
2025-09-03 15:42:37 [DEBUG] <<<MessageHandler :tantalum.libera.chat 002 bottom-bot :Your host is [REDACT]
2025-09-03 15:42:37 [DEBUG] <<<MessageHandler :tantalum.libera.chat 003 bottom-bot :This server was created Thu Aug 21 2025 at 11:10:46 UTC
2025-09-03 15:42:37 [DEBUG] <<<MessageHandler :tantalum.libera.chat 004 bottom-bot tantalum.libera.chat [REDACT]
2025-09-03 15:42:37 [DEBUG] <<<MessageHandler :tantalum.libera.chat 005 bottom-bot ACCOUNTEXTBAN=a WHOX MONITOR=100 SAFELIST ELIST=CMNTU ETRACE FNC CALLERID=g KNOCK CHANTYPES=# EXCEPTS INVEX :are supported by this server
2025-09-03 15:42:37 [DEBUG] <<<MessageHandler :tantalum.libera.chat 005 bottom-bot CHANMODES=eIbq,k,flj,CFLMPQRSTcgimnprstuz CHANLIMIT=#:250 PREFIX=(ov)@+ MAXLIST=bqeI:100 MODES=4 NETWORK=Libera.Chat STATUSMSG=@+ CASEMAPPING=rfc1459 NICKLEN=16 MAXNICKLEN=16 CHANNELLEN=50 TOPICLEN=390 :are supported by this server
2025-09-03 15:42:37 [DEBUG] <<<MessageHandler :tantalum.libera.chat 005 bottom-bot DEAF=D TARGMAX=NAMES:1,LIST:1,KICK:1,WHOIS:1,PRIVMSG:4,NOTICE:4,ACCEPT:,MONITOR: EXTBAN=$,agjrxz :are supported by this server
2025-09-03 15:42:37 [DEBUG] <<<MessageHandler :tantalum.libera.chat 251 bottom-bot :There are 55 users and 31694 invisible on 28 servers
2025-09-03 15:42:37 [DEBUG] <<<MessageHandler :tantalum.libera.chat 252 bottom-bot 32 :IRC Operators online
2025-09-03 15:42:37 [DEBUG] <<<MessageHandler :tantalum.libera.chat 253 bottom-bot 30 :unknown connection(s)
2025-09-03 15:42:37 [DEBUG] <<<MessageHandler :tantalum.libera.chat 254 bottom-bot 22333 :channels formed
2025-09-03 15:42:37 [DEBUG] <<<MessageHandler :tantalum.libera.chat 255 bottom-bot :I have 539 clients and 1 servers
2025-09-03 15:42:37 [INFO] Failed to parse: :tantalum.libera.chat 265 bottom-bot 539 2079 :Current local users 539, max 2079
Please consider filing an issue for the missing command:
https://github.com/numberoverzero/bottom/issues/new
To prevent this message in the future:
from bottom.irc import disable_first_run_msg
disable_first_run_msg()
To disable the logger entirely:
from bottom.irc import rfc2812_log
rfc2812_log.disabled = True
2025-09-03 15:42:37 [INFO] Failed to parse: :tantalum.libera.chat 266 bottom-bot 31749 34244 :Current global users 31749, max 34244
2025-09-03 15:42:37 [INFO] Failed to parse: :tantalum.libera.chat 250 bottom-bot :Highest connection count: 2080 (2079 clients) (93623 connections received)
2025-09-03 15:42:37 [DEBUG] <<<MessageHandler :tantalum.libera.chat 375 bottom-bot :- tantalum.libera.chat Message of the Day -
2025-09-03 15:42:37 [DEBUG] <<<MessageHandler :tantalum.libera.chat 372 bottom-bot :- This server provided by Hyperfilter (https://hyperfilter.com)
2025-09-03 15:42:37 [DEBUG] <<<MessageHandler :tantalum.libera.chat 372 bottom-bot :-
2025-09-03 15:42:37 [DEBUG] <<<MessageHandler :tantalum.libera.chat 372 bottom-bot :-
2025-09-03 15:42:37 [DEBUG] <<<Protocol libera.chat 372 bottom-bot :- Welcome to Libera Chat, the IRC network for
:tantalum.libera.chat 372 bottom-bot :- free & open-source software and peer directed projects.
:tantalum.libera.chat 372 bottom-bot :-
:tantalum.libera.chat 372 bottom-bot :- Use of Libera Chat is governed by our network policies.
:tantalum.libera.chat 372 bottom-bot :-
:tantalum.libera.chat 372 bottom-bot :- To reduce network abuses we perform open proxy checks
:tantalum.libera.chat 372 bottom-bot :- on hosts at connection time.
:tantalum.libera.chat 372 bottom-bot :-
:tantalum.libera.chat 372 bottom-bot :- Please visit us in #libera for questions and support.
:tantalum.libera.chat 372 bottom-bot :-
:tantalum.libera.chat 372 bottom-bot :- Website and documentation: https://libera.chat
:tantalum.libera.chat 372 bottom-bot :- Webchat: https://web.libera.chat
:tantalum.libera.chat 372 bottom-bot :- Network policies: https://libera.chat/policies
:tantalum.libera.chat 372 bottom-bot :- Email: [email protected]
:tantalum.libera.chat 376 bottom-bot :End of /MOTD command.
:bottom-bot MODE bottom-bot :+Ziw
2025-09-03 15:42:37 [DEBUG] <<<MessageHandler :tantalum.libera.chat 372 bottom-bot :- Welcome to Libera Chat, the IRC network for
2025-09-03 15:42:37 [DEBUG] <<<MessageHandler :tantalum.libera.chat 372 bottom-bot :- free & open-source software and peer directed projects.
2025-09-03 15:42:37 [DEBUG] <<<MessageHandler :tantalum.libera.chat 372 bottom-bot :-
2025-09-03 15:42:37 [DEBUG] <<<MessageHandler :tantalum.libera.chat 372 bottom-bot :- Use of Libera Chat is governed by our network policies.
2025-09-03 15:42:37 [DEBUG] <<<MessageHandler :tantalum.libera.chat 372 bottom-bot :-
2025-09-03 15:42:37 [DEBUG] <<<MessageHandler :tantalum.libera.chat 372 bottom-bot :- To reduce network abuses we perform open proxy checks
2025-09-03 15:42:37 [DEBUG] <<<MessageHandler :tantalum.libera.chat 372 bottom-bot :- on hosts at connection time.
2025-09-03 15:42:37 [DEBUG] <<<MessageHandler :tantalum.libera.chat 372 bottom-bot :-
2025-09-03 15:42:37 [DEBUG] <<<MessageHandler :tantalum.libera.chat 372 bottom-bot :- Please visit us in #libera for questions and support.
2025-09-03 15:42:37 [DEBUG] <<<MessageHandler :tantalum.libera.chat 372 bottom-bot :-
2025-09-03 15:42:37 [DEBUG] <<<MessageHandler :tantalum.libera.chat 372 bottom-bot :- Website and documentation: https://libera.chat
2025-09-03 15:42:37 [DEBUG] <<<MessageHandler :tantalum.libera.chat 372 bottom-bot :- Webchat: https://web.libera.chat
2025-09-03 15:42:37 [DEBUG] <<<MessageHandler :tantalum.libera.chat 372 bottom-bot :- Network policies: https://libera.chat/policies
2025-09-03 15:42:37 [DEBUG] <<<MessageHandler :tantalum.libera.chat 372 bottom-bot :- Email: [email protected]
2025-09-03 15:42:37 [DEBUG] <<<MessageHandler :tantalum.libera.chat 376 bottom-bot :End of /MOTD command.
2025-09-03 15:42:37 [DEBUG] <<<MessageHandler :bottom-bot MODE bottom-bot :+Ziw
2025-09-03 15:42:37 [DEBUG] wait motd ELAPSED 5679.19ms
2025-09-03 15:42:37 [DEBUG] send join START
2025-09-03 15:42:37 [DEBUG] send join ELAPSED 0.15ms
^C
disconnected after ctrl+c
$ uv run test_issue76.py
2025-09-03 15:37:06 [DEBUG] Using selector: EpollSelector
2025-09-03 15:37:06 [DEBUG] client.connect() START
2025-09-03 15:37:06 [DEBUG] client.connect() ELAPSED 94.58ms
2025-09-03 15:37:06 [DEBUG] send nick+user START
2025-09-03 15:37:06 [DEBUG] send nick+user ELAPSED 0.13ms
2025-09-03 15:37:06 [DEBUG] wait motd START
2025-09-03 15:37:06 [DEBUG] demo collecting notices START
2025-09-03 15:37:06 [DEBUG] wait listen_for(NOTICE, mode=all) START
2025-09-03 15:37:06 [DEBUG] <<<Protocol :silver.libera.chat NOTICE * :*** Checking Ident
:silver.libera.chat NOTICE * :*** Looking up your hostname...
:silver.libera.chat NOTICE * :*** Found your hostname: [REDACT]
2025-09-03 15:37:06 [DEBUG] <<<MessageHandler :silver.libera.chat NOTICE * :*** Checking Ident
2025-09-03 15:37:06 [DEBUG] <<<MessageHandler :silver.libera.chat NOTICE * :*** Looking up your hostname...
2025-09-03 15:37:06 [DEBUG] <<<MessageHandler :silver.libera.chat NOTICE * :*** Found your hostname: [REDACT]
2025-09-03 15:37:12 [DEBUG] <<<Protocol :silver.libera.chat NOTICE * :*** No Ident response
2025-09-03 15:37:12 [DEBUG] <<<MessageHandler :silver.libera.chat NOTICE * :*** No Ident response
2025-09-03 15:37:12 [DEBUG] <<<Protocol :silver.libera.chat 001 bottom-bot :Welcome to the Libera.Chat Internet Relay Chat Network bottom-bot
:silver.libera.chat 002 bottom-bot :Your host is [REDACT]
:silver.libera.chat 003 bottom-bot :This server was created Fri Aug 15 2025 at 22:50:25 UTC
:silver.libera.chat 004 bottom-bot silver.libera.chat [REDACT]
:silver.libera.chat 005 bottom-bot ACCOUNTEXTBAN=a ETRACE FNC SAFELIST ELIST=CMNTU CALLERID=g MONITOR=100 KNOCK WHOX CHANTYPES=# EXCEPTS INVEX :are supported by this server
:silver.libera.chat 005 bottom-bot CHANMODES=eIbq,k,flj,CFLMPQRSTcgimnprstuz CHANLIMIT=#:250 PREFIX=(ov)@+ MAXLIST=bqeI:100 MODES=4 NETWORK=Libera.Chat STATUSMSG=@+ CASEMAPPING=rfc1459 NICKLEN=16 MAXNICKLEN=16 CHANNELLEN=50 TOPICLEN=390 :are supported by this server
:silver.libera.chat 005 bottom-bot DEAF=D TARGMAX=NAMES:1,LIST:1,KICK:1,WHOIS:1,PRIVMSG:4,NOTICE:4,ACCEPT:,MONITOR: EXTBAN=$,agjrxz :are supported by this server
:silver.libera.chat 251 bottom-bot :There are 55 users and 31712 invisible on 28 servers
:silver.libera.chat 252 bottom-bot 32 :IRC Operators online
:silver.libera.chat 253 bottom-bot 114 :unknown connection(s)
2025-09-03 15:37:12 [DEBUG] <<<MessageHandler :silver.libera.chat 001 bottom-bot :Welcome to the Libera.Chat Internet Relay Chat Network bottom-bot
2025-09-03 15:37:12 [DEBUG] <<<MessageHandler :silver.libera.chat 002 bottom-bot :Your host is [REDACT]
2025-09-03 15:37:12 [DEBUG] <<<MessageHandler :silver.libera.chat 003 bottom-bot :This server was created Fri Aug 15 2025 at 22:50:25 UTC
2025-09-03 15:37:12 [DEBUG] <<<MessageHandler :silver.libera.chat 004 bottom-bot silver.libera.chat [REDACT]
2025-09-03 15:37:12 [DEBUG] <<<MessageHandler :silver.libera.chat 005 bottom-bot ACCOUNTEXTBAN=a ETRACE FNC SAFELIST ELIST=CMNTU CALLERID=g MONITOR=100 KNOCK WHOX CHANTYPES=# EXCEPTS INVEX :are supported by this server
2025-09-03 15:37:12 [DEBUG] <<<MessageHandler :silver.libera.chat 005 bottom-bot CHANMODES=eIbq,k,flj,CFLMPQRSTcgimnprstuz CHANLIMIT=#:250 PREFIX=(ov)@+ MAXLIST=bqeI:100 MODES=4 NETWORK=Libera.Chat STATUSMSG=@+ CASEMAPPING=rfc1459 NICKLEN=16 MAXNICKLEN=16 CHANNELLEN=50 TOPICLEN=390 :are supported by this server
2025-09-03 15:37:12 [DEBUG] <<<MessageHandler :silver.libera.chat 005 bottom-bot DEAF=D TARGMAX=NAMES:1,LIST:1,KICK:1,WHOIS:1,PRIVMSG:4,NOTICE:4,ACCEPT:,MONITOR: EXTBAN=$,agjrxz :are supported by this server
2025-09-03 15:37:12 [DEBUG] <<<MessageHandler :silver.libera.chat 251 bottom-bot :There are 55 users and 31712 invisible on 28 servers
2025-09-03 15:37:12 [DEBUG] <<<MessageHandler :silver.libera.chat 252 bottom-bot 32 :IRC Operators online
2025-09-03 15:37:12 [DEBUG] <<<MessageHandler :silver.libera.chat 253 bottom-bot 114 :unknown connection(s)
2025-09-03 15:37:12 [DEBUG] <<<Protocol :silver.libera.chat 254 bottom-bot 22336 :channels formed
:silver.libera.chat 255 bottom-bot :I have 1670 clients and 1 servers
:silver.libera.chat 265 bottom-bot 1670 3413 :Current local users 1670, max 3413
:silver.libera.chat 266 bottom-bot 31767 32400 :Current global users 31767, max 32400
:silver.libera.chat 250 bottom-bot :Highest connection count: 3414 (3413 clients) (62319 connections received)
:silver.libera.chat 375 bottom-bot :- silver.libera.chat Message of the Day -
:silver.libera.chat 372 bottom-bot :- This server is provided by Psychz Networks.
:silver.libera.chat 372 bottom-bot :-
:silver.libera.chat 372 bottom-bot :- Welcome to Libera Chat, the IRC network for
:silver.libera.chat 372 bottom-bot :- free & open-source software and peer directed projects.
:silver.libera.chat 372 bottom-bot :-
:silver.libera.chat 372 bottom-bot :- Use of Libera Chat is governed by our network policies.
:silver.libera.chat 372 bottom-bot :-
:silver.libera.chat 372 bottom-bot :- To reduce network abuses we perform open proxy checks
:silver.libera.chat 372 bottom-bot :- on hosts at connection time.
:silver.libera.chat 372 bottom-bot :-
:silver.libera.chat 372 bottom-bot :- Please visit us in #libera for questions and support.
:silver.libera.chat 372 bottom-bot :-
2025-09-03 15:37:12 [DEBUG] wait listen_for(NOTICE, mode=all) ELAPSED 5387.40ms
2025-09-03 15:37:12 [DEBUG] demo collecting notices ELAPSED 5387.52ms
2025-09-03 15:37:12 [DEBUG] <<<MessageHandler :silver.libera.chat 254 bottom-bot 22336 :channels formed
2025-09-03 15:37:12 [DEBUG] <<<MessageHandler :silver.libera.chat 255 bottom-bot :I have 1670 clients and 1 servers
2025-09-03 15:37:12 [INFO] Failed to parse: :silver.libera.chat 265 bottom-bot 1670 3413 :Current local users 1670, max 3413
Please consider filing an issue for the missing command:
https://github.com/numberoverzero/bottom/issues/new
To prevent this message in the future:
from bottom.irc import disable_first_run_msg
disable_first_run_msg()
To disable the logger entirely:
from bottom.irc import rfc2812_log
rfc2812_log.disabled = True
2025-09-03 15:37:12 [INFO] Failed to parse: :silver.libera.chat 266 bottom-bot 31767 32400 :Current global users 31767, max 32400
2025-09-03 15:37:12 [INFO] Failed to parse: :silver.libera.chat 250 bottom-bot :Highest connection count: 3414 (3413 clients) (62319 connections received)
2025-09-03 15:37:12 [DEBUG] <<<MessageHandler :silver.libera.chat 375 bottom-bot :- silver.libera.chat Message of the Day -
2025-09-03 15:37:12 [DEBUG] <<<MessageHandler :silver.libera.chat 372 bottom-bot :- This server is provided by Psychz Networks.
2025-09-03 15:37:12 [DEBUG] <<<MessageHandler :silver.libera.chat 372 bottom-bot :-
2025-09-03 15:37:12 [DEBUG] <<<MessageHandler :silver.libera.chat 372 bottom-bot :- Welcome to Libera Chat, the IRC network for
2025-09-03 15:37:12 [DEBUG] <<<MessageHandler :silver.libera.chat 372 bottom-bot :- free & open-source software and peer directed projects.
2025-09-03 15:37:12 [DEBUG] <<<MessageHandler :silver.libera.chat 372 bottom-bot :-
2025-09-03 15:37:12 [DEBUG] <<<MessageHandler :silver.libera.chat 372 bottom-bot :- Use of Libera Chat is governed by our network policies.
2025-09-03 15:37:12 [DEBUG] <<<MessageHandler :silver.libera.chat 372 bottom-bot :-
2025-09-03 15:37:12 [DEBUG] <<<MessageHandler :silver.libera.chat 372 bottom-bot :- To reduce network abuses we perform open proxy checks
2025-09-03 15:37:12 [DEBUG] <<<MessageHandler :silver.libera.chat 372 bottom-bot :- on hosts at connection time.
2025-09-03 15:37:12 [DEBUG] <<<MessageHandler :silver.libera.chat 372 bottom-bot :-
2025-09-03 15:37:12 [DEBUG] <<<MessageHandler :silver.libera.chat 372 bottom-bot :- Please visit us in #libera for questions and support.
2025-09-03 15:37:12 [DEBUG] <<<MessageHandler :silver.libera.chat 372 bottom-bot :-
2025-09-03 15:37:12 [DEBUG] <<<Protocol :silver.libera.chat 372 bottom-bot :- Website and documentation: https://libera.chat
:silver.libera.chat 372 bottom-bot :- Webchat: https://web.libera.chat
:silver.libera.chat 372 bottom-bot :- Network policies: https://libera.chat/policies
:silver.libera.chat 372 bottom-bot :- Email: [email protected]
:silver.libera.chat 376 bottom-bot :End of /MOTD command.
:bottom-bot MODE bottom-bot :+Ziw
2025-09-03 15:37:12 [DEBUG] <<<MessageHandler :silver.libera.chat 372 bottom-bot :- Website and documentation: https://libera.chat
2025-09-03 15:37:12 [DEBUG] <<<MessageHandler :silver.libera.chat 372 bottom-bot :- Webchat: https://web.libera.chat
2025-09-03 15:37:12 [DEBUG] <<<MessageHandler :silver.libera.chat 372 bottom-bot :- Network policies: https://libera.chat/policies
2025-09-03 15:37:12 [DEBUG] <<<MessageHandler :silver.libera.chat 372 bottom-bot :- Email: [email protected]
2025-09-03 15:37:12 [DEBUG] <<<MessageHandler :silver.libera.chat 376 bottom-bot :End of /MOTD command.
2025-09-03 15:37:12 [DEBUG] <<<MessageHandler :bottom-bot MODE bottom-bot :+Ziw
2025-09-03 15:37:12 [DEBUG] wait motd ELAPSED 5404.08ms
2025-09-03 15:37:12 [DEBUG] send join START
2025-09-03 15:37:12 [DEBUG] send join ELAPSED 0.08ms
^C
disconnected after ctrl+c
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment