【发布时间】:2012-08-20 23:06:34
【问题描述】:
我正在尝试编写一个非常简单的 IRC 客户端,它将主题设置在给定的频道上(首先需要识别并获得操作)。理想情况下,我希望能够写出这样的东西:
$client = new IRC::Client(%config);
$client->connect();
$client->identify('password');
$client->join('#channel');
$client->op('#channel'); # gain ops
$client->set_topic('#channel', 'new topic');
$client->disconnect();
是否有支持这种有限功能且界面简单的模块? metacpan 上所有与 IRC 相关的模块似乎都是针对想要编写功能齐全的机器人的人——我看过Bot::BasicBot,但这似乎希望我对模块进行子类化,而AnyEvent::IRC::Client 似乎相当低级。我不想写事件处理代码,只是连接,发出几个命令,然后断开连接。
【问题讨论】:
-
POE::Component::IRC怎么样? -
这对于我需要的东西来说似乎过于复杂和低级 - 我什至不理解像 $irc->yield( register => 'all' ); 这样的代码。
-
Net::IRC看起来很简单,不过没用过 -
不幸的是,它自 2004 年以来已被弃用。
-
IRC 不是那种没有事件驱动代码就可以正确执行的协议。您需要能够说“连接;当我得到 motd 结束时,识别。当我成功识别时,加入。当我加入时,op up。当我得到模式行时,改变主题”等.