POE::F...Compat(3pm)

πŸ“¦
version 6.95 Β· 4 versions
, in ubuntu resolute, ubuntu stonking

πŸ’– POE::Filter::IRC::Compat πŸ’–

okay bestie so this is POE::Filter::IRC::Compat, and it lives in the POE::F...Compat(3pm) manual page of the User Contributed Perl Documentation, fr fr. it is literally a filter that converts POE::Filter::IRCD output into POE::Component::IRC events. icon behaviour, no cap. πŸ¦‹


✨ NAME ✨

POE::Filter::IRC::Compat β€” a filter that converts POE::Filter::IRCD output into POE::Component::IRC events. periodt. πŸ’…


🌸 SYNOPSIS 🌸

my $filter = POE::Filter::IRC::Compat->new();
my @events = @{ $filter->get( [ @lines ] ) };
my @msgs = @{ $filter->put( [ @messages ] ) };

πŸŽ€ DESCRIPTION πŸŽ€

POE::Filter::IRC::Compat is a POE::Filter that takes POE::Filter::IRCD output and turns it into the POE::Component::IRC compatible event references. bestie, the author is being so real about this one: it's basically a hack, and they say so themselves β€” they did it so they could replace POE::Filter::IRC with something that was more generic. king behaviour honestly. πŸ‘‘

among other things, it converts normal text into thoroughly CTCP-quoted messages, and transmogrifies CTCP-quoted messages into their normal, sane components. which is rather what you'd expect a filter to do, right? exactly bestie, slay. ✨

okay now, a note, and it's a spicy one: per the original author, the CTCP protocol sucks bollocks. their words, not mine. they go on to say that if they ever meet the fellow who came up with it, they'll shave their head and tattoo obscenities on it. 😭 so like. we're all processing something here. just read the "specification" (docs/ctcpspec.html in this distribution) and you'll hopefully see what they mean β€” quote this, quote that, quote this again, all in different and weird ways… and honestly who the hell needs to send mixed CTCP and text messages? WTF? it looks like it's practically complexity for complexity's sake β€” and don't even get them started on the design of the DCC protocol! anyhow, enough ranting. onto the rest of the docs… πŸ’€


🫢 METHODS 🫢

"new"

Returns a POE::Filter::IRC::Compat object. Takes no arguments. zero drama, no notes. πŸ’…

"clone"

Makes a copy of the filter, and clears the copy's buffer. so the copy is a fresh-faced little thing, no baggage. 🌈

"get"

Takes an arrayref of POE::Filter::IRCD hashrefs and produces an arrayref of POE::Component::IRC compatible event hashrefs. Yay. πŸŽ‰

"get_one_start", "get_one"

These perform a similar function as "get" but enable the filter to work with POE::Filter::Stackable. they're the ones that play nice with the group project. πŸ«‚

"put"

Takes an array reference of CTCP messages to be properly quoted. πŸŽ€ heads up though: this doesn't support CTCPs embedded in normal messages, which is a brain-dead hack in the protocol β€” so do it yourself if you really need it. Returns an array reference of the quoted lines for sending.

"debug"

Takes an optional true/false value which enables/disables debugging accordingly. Returns the debug status. a little on/off switch, we love a toggle. ⭐

"chantypes"

Takes an arrayref of possible channel prefix indicators.

"identifymsg"

Takes a boolean to turn on/off the support for CAPAB IDENTIFY-MSG.


πŸ’œ AUTHOR πŸ’œ

Chris 'BinGOs' Williams


πŸ¦‹ SEE ALSO πŸ¦‹

  • POE::Filter::IRCD
  • POE::Filter
  • POE::Filter::Stackable

and that's the whole page bestie!! this one shipped as perl v5.40.1, dated 2025-08-21, and it's the POE::F...Compat(3pm) page from the User Contributed Perl Documentation. thanks for coming to my ted talk, go quote some CTCPs responsibly. mwah. πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from