禁止登录 IRC 频道,以 twitch 为例

Posted

技术标签:

【中文标题】禁止登录 IRC 频道,以 twitch 为例【英文标题】:Ban logs in IRC channels, on the example of twitch 【发布时间】:2021-09-05 09:27:40 【问题描述】:

我正在用 Python + Sockets 编写一个机器人来同时收集多个 twitch 频道的日志。实际上,消息本身没有问题,但我想收集禁令/超时日志以获得更广泛的功能,代码:

IRC = socket.socket (socket.AF_INET, socket.SOCK_STREAM)
IRC.connect ((SERVER, PORT))
IRC.send (f "PASS PASSWORD \ n" .encode ('utf-8'))
IRC.send (f "NICK NICKNAME \ n" .encode ('utf-8'))
IRC.send (f "JOIN CHANNEL \ n" .encode ('utf-8'))

while True:
     response = IRC.recv (1024) .decode ('utf-8')
     if response == "PING: tmi.twitch.tv \ r \ n":
         IRC.send ("PONG: tmi.twitch.tv \ r \ n" .encode ('utf-8'))

     print (response)
     time.sleep (.5)

在这个(尚未完成的)形式中,他收集消息,但不收集禁令等。

【问题讨论】:

你有什么问题? 【参考方案1】:

您是否考虑过偶然设置 Twitch-IO?如果您设置的机器人仅连接到您的聊天并配置日志记录,它将自动记录到文件,如下所示:

from twitchio.ext import commands
import logging

logging.basicConfig(filename='irclog.txt', encoding='utf-8', level=logging.DEBUG)

bot = commands.Bot(token="irc token", nickname="your username", prefix="doesn't really matter, can be anything", initial_channels=["your channel"])

@bot.event
async def event_ready():
    print("Bot ready, beginning logging")

bot.run()

希望对您有所帮助!

【讨论】:

是的,这部分是我正在寻找的,但问题出现了,是否有可能找出谁禁止了用户? 你怎么能赶上禁令?我从 Twitchio 的文档中了解了 fetch_ban_events (twitchio.readthedocs.io/en/latest/…),但我不明白它是如何工作的?

以上是关于禁止登录 IRC 频道,以 twitch 为例的主要内容,如果未能解决你的问题,请参考以下文章

在 Twitch bot 中添加帐户和更加用户友好的集成

创建 IRC 消息队列

c++ winsock irc客户端问题

如何使用 Irssi 将彩色文本写入 irc 频道?

在 Python 中使用 Twitch IRC 时“由对等方重置连接”

C# IRC 和 Twitch 空闲断开连接?