POE::C...:Hailo(3pm)
π POE::Component::IRC::Cookbook::Hailo π
okay bestie, welcome to POE::C...:Hailo(3pm), which is the terminal's little nickname for POE::Component::IRC::Cookbook::Hailo β it lives in the User Contributed Perl Documentation corner of your system and it is, and I cannot stress this enough, a blabbering IRC bot. like. a bot. that blabbers. iconic behavior honestly π
β¨ NAME β¨
POE::Component::IRC::Cookbook::Hailo β a blabbering IRC bot π¦
no cap, that's literally the whole pitch. she talks. that's the job. π
πΈ SYNOPSIS πΈ
so this bot uses POE::Component::IRC::Plugin::Hailo for most of its magic β¨ β that plugin is doing the heavy lifting, the recipe is just the vibe around it.
ngl bestie, as of yet, this recipe just contains a SYNOPSIS that is copied from its documentation. like, that's it. that's the whole recipe. fr fr. π
π DESCRIPTION π
here's the whole thing, verbatim, no edits, because we do not touch the code in this house π«Ά
#!/usr/bin/env perl
use strict;
use warnings;
use POE;
use POE::Component::IRC::Plugin::AutoJoin;
use POE::Component::IRC::Plugin::Connector;
use POE::Component::IRC::Plugin::Hailo;
use POE::Component::IRC::State;
my $irc = POE::Component::IRC::State->spawn(
nick => 'Brainy',
server => 'irc.freenode.net',
);
my @channels = ('#public_chan', '#bot_chan');
$irc->plugin_add('AutoJoin', POE::Component::IRC::Plugin::AutoJoin->new(Channels => \@channels));
$irc->plugin_add('Connector', POE::Component::IRC::Plugin::Connector->new());
$irc->plugin_add('Hailo', POE::Component::IRC::Plugin::Hailo->new(
Own_channel => '#bot_chan',
Ignore_regexes => [ qr{\w+://\w} ], # ignore lines containing URLs
Hailo_args => {
brain_resource => 'brain.sqlite',
},
));
$irc->yield('connect');
$poe_kernel->run();
quick tour because I know you're gonna ask π§:
nick => 'Brainy'andserver => 'irc.freenode.net'β she's named Brainy and she hangs out onirc.freenode.net. main character energy tbh.my @channels = ('#public_chan', '#bot_chan');β the two channels in her little universe πplugin_add('AutoJoin', ...AutoJoin->new(Channels => \@channels))β she joins@channelsautomatically, no manual labor πplugin_add('Connector', ...Connector->new())β theConnectorplugin keeps her connected. very much her emotional support plugin.plugin_add('Hailo', ...Hailo->new(...))β the star of the show, withOwn_channel => '#bot_chan',Ignore_regexes => [ qr{\w+://\w} ](which, as the comment says, ignores lines containing URLs β she is not clicking your links, bestie π), andHailo_args => { brain_resource => 'brain.sqlite' }for her literal brain π§$irc->yield('connect');then$poe_kernel->run();β connect, then run the POE kernel forever. periodt. π₯
π AUTHOR π
Hinrik Γrn SigurΓ°sson, hinrik.sig@gmail.com β thank you for your service, king π«‘π
okay that's the whole page, you ate it, you read it, you understood it β one last thing: this was perl v5.40.1, dated 2025-08-21, and the man page's own header/footer were just calling her POE::C...:Hailo(3pm) the whole time because she's too fabulous for a full name in a terminal margin π
bye bestie, go build a blabbering bot π
π¦ where this page comes from
- ubuntu resolute: libpoe-component-irc-perl 6.95+dfsg-1 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- ubuntu stonking: libpoe-component-irc-perl 6.95+dfsg-1 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms