POE::Component::IRC version 6.00 has just been released on CPAN. I’ve neglected to blog about PoCo::IRC since I started contributing to it, but since a new major release has been rolled out[1], now would be a good time. Also, as it turns out, next May will be the tenth anniversary of the project’s first release.
For the uninitiated, POE::Component::IRC is an event-driven IRC client library built on top of POE. People mostly use it to write bots. Some have made that even easier by creating a simpler interface suited to that task (see Bot::BasicBot).
I became involved in the project about 14 months ago, fixing bugs and adding features. There’ve been about 50 releases during that time, so there’s something for everybody. Following is a list of the most prominent ones.
Important squashed bugs
- Quite a few DCC-related bugs have been fixed, error handling and diagnostics have been improved.
- A bug causing the NickReclaim plugin to only try to reclaim the nick once has been fixed.
- POE::Component::IRC::State was reacting incorrectly to some WHO replies sent by IRC servers that veered from the RFCs, causing it to hold inconsistent information. This has been fixed.
- When raw messages were enabled, the raw line was not provided with CTCP-related events. Fixed.
- POE::Component::IRC::State would issue more WHO commands than necessary when another user would join more than one of the component’s channels. No more.
New major features
- POE::Component::IRC::Common, which provides many helper functions, now has functions for identifying and stripping color/formatting from IRC messages. It also defines IRC color constants for use in messages.
- We now handle FreeNode’s IDENTIFY-MSG capability, which means that can you always know whether a user had identified with NickServ when s/he wrote a particular message.
- Sending and receiving files with spaces in them over DCC is now supported.
- All DCC-related events now provide the IP address of the peer.
- DCC resume support has been implemented.
- The BotTraffic plugin now send an event for every CTCP ACTION issued by the client.
- We now guard against sending IRC protocol messages that are too long and might get us booted off the server.
- The Connector plugin (takes care of maintaining the connection to the IRC server) now supports cycling through a list of servers when reconnecting.
- The CTCP plugin can now respond to CTCP SOURCE requests for you.
- POE::Component::IRC::State and can now track the away status of users for you.
- POE::Component::IRC::State now keeps track of a channel’s creation time.
- Added NICKSERV, SERVLIST, and SQUERY commands.
- Plugins can now respond to custom events which have not been explicitly defined by POE::Component::IRC.
New plugins
I wrote 5 additional core plugins:
- First of all, the Logger plugin. It logs channel/private/dcc chat activity to files on disk like normal IRC clients do.
- Then there’s AutoJoin, which takes care of keeping you on your favorite channels, whatever happens.
- NickServID deals with identifying your user to NickServ.
- A CycleEmpty plugin which reclaims ops on channels that become empty.
- BotCommand, which allows you to register commands that your bot handles, and get back an appropriate event when one is issued.
Testing
The test suite has been reorganized, many tests improved and more added. The test coverage (as reported by Devel::Cover) has increased from 40% (version 5.48) to 61% (version 6.00).
Refactoring
Much refactoring was done. The coding and indenting style has also been made consistent across the project, and many spotty coding practices have been eliminated (thanks, Perl::Critic).
POE::Filter::CTCP was merged with POE::Filter::IRC:Compat, and the former was removed. DCC support has been moved into its own plugin, and the plugin system itself has been ripped out in favor of POE::Component::Pluggable (which is based on the aforementioned plugin system).
Using the project’s current Perl::Critic parameters, version 6.00 has zero policy violations in 11,791 lines of code, compared to version 5.48’s 242 violations in 10,634 lines of code. The average McCabe score of subroutines also dropped from 4.21 to 3.45.
Documentation
Last but not least, the Pod docs have been improved. Errors have been fixed, much more formatting and linking has been added for easier reading and browsing, consistency has been improved, and many sections have been expanded.
I also added a cookbook with a few recipes showing off some of the things one can do with POE::Component::IRC.
Credits
Thanks to all the users who provided feedback, bug reports and patches. You helped make this happen. I also couldn’t have done many of these things without the help of Chris ‘BinGOs’ Williams, the senior maintainer of POE::Component::IRC.
Now go write some IRC bots (or clients)!
Notes:
1. It’s actually quite an insignificant release. Historically, POE::Component::IRC versions have always passed the whole-number boundaries naturally as part of a regular “bump the version number up by 0.02 for the next release” process.
And the primary reason for this to occur is largely due to the kind of ingredients, toppings and condiments in the Western version. When we reframe these thoughts from generally accepted truths to myths and barriers to our success in weight loss, we have freed ourselves to accept that it is safe to lose a pound a day using our natural mechanism for food intake reduction.
Comment by Joey Koenemund — September 16, 2010 @ 10:20 pm
No fillers or binders added. Are you ready to try another alternative to weight loss programs. Here are some interesting facts about Unique Hoodia that you should know about.
Comment by Ronald Iversen — October 2, 2010 @ 3:19 am
Schools Houston Drug Dogs
http://www.idnflooring.com/ – lipitor for sale
This is a very effective medication used in the treatment of the reduction of what is called low-density lipoprotein or LDL.
atorvastatin online
This is because negligence on the part of the patient in communicating changes in physical conditions to the doctor might result in sudden kidney failure too.
lipitor for sale
Comment by Zerrairty — October 23, 2010 @ 11:02 pm
Armenia Sports Medicine College
http://www.tulsaeuphoria.com/ – order fluoxetine
Prozac drug will treat the depression problem so well that you will not find any short coming of it.
fluoxetine medication
Comment by caffizdrera — November 10, 2010 @ 7:50 am
Me and my friend were arguing about an issue similar to this! Now I know that I was right. lol! Thanks for the information you post. This will encourage more open dialog and discussion about the book in question.
Comment by Tracy Magouirk — November 12, 2010 @ 1:15 am
Love makes the world go round.
Comment by toto toilet — November 17, 2010 @ 5:54 am
Alavert Allergy Pills
viagra vendita
Questo farmaco viene utilizzato per curare la disfunzione erettile ed ГЁ quindi una medicina specifica per le persone di sesso maschile.
viagra prezzo
Acquista il Viagra generico nei dosaggi da 25mg 50mg 100mg su online farmacia:
http://www.rosariocaliente.com/ – viagra vendita
In genere il Viagra va assunto un’ora prima del rapporto sessuale ed è bene sapere che i suoi effetti possono manifestarsi fino a quattro, sei ore dopo l’assunzione.
Comment by empirweri — November 25, 2010 @ 12:52 am
A mothers heart is always with her children.
Comment by copies of bankruptcy documents — December 9, 2010 @ 1:29 pm
Really good post!
Comment by facial cleanser — December 26, 2010 @ 7:16 pm
Hey – Nice blog, just looking around some blogs, seems a pretty nice platform you are using. I’m currently using Wordpress for a few of my sites but looking to change one of them over to a platform similar to yours as a trial run. Anything in particular you would recommend about it? Those could be planted.
Comment by Whitley Vidmar — December 27, 2010 @ 6:50 am
comment4, buy fioricet online free fedex, 8-(((, cymbalta restless leg, vrdq, depo provera protocol, 342681, clomid downes syndrome, :), zyprexa zydis half life, 66112, tricor lawsuit, 8DD, american pharmacy with no prescription ritalin, 7342, is prevacid going over the counter, yph, diazepam cirrhosis, eer, zolpidem tartrate manufacturers, =-), going off prevacid, %PP, buy adipex p without prescription, 741271, nadine lambert ritalin, 5963, peripheral neuropathy lipitor, 383466, zithromax food borne illness, 4323, how much singulair to hallucinate, mam, flomax and viagra interaction, 651526, how does propecia work, 8OOO, oxycodone for sle no prescription, citpk, vicodin fahrve, :[[[, levitra versus viagra, 34685, leg pain zetia, 9624, allegra beck versace picture, 961, coumadin interaction with zoloft, >:-)), compare clarinex with zyrtec, 299, when did seroquel start, =-D, enhancing levitra, %-D, norco louisiana history, gza, real valium, ile, ativan or valium for seizures, ksulp, structure of codeine, 952561, ativan dosages, 0571, allegra 12 hour, %-], does lexapro kill brain cells, ktyksz, adderall xr trial coupon, qjar, drugs that interact with aciphex, =-P, benicar hctz prices, 163, side effects of claritin and klonopin, 1869, abilify drug side effects, =-)), what infections does levaquin treat, ulhtp,
Comment by jonn2 — January 14, 2011 @ 2:15 pm
comment6, what does carisoprodol look like, wuis, how long until aricept takes effect, 3955, diphenhydramine mixed seroquel, 020346, effect of combining adderall and ritalin, 103691, what the use of prevacid for, 50033, how to shoot inject 80kg oxycontin, fuho, compare lexapro to celexa, 758, lawsuits regarding the drug levaquin, ecgbm, mayo clinics information on actonel, susjcx, indianhead soma online, %((, non codeine cough medicine, 8[, adipex and heart, vkhhne, attorney alan c milstein zyprexa, ewpo, allegra manufacturer, %-[, can valium control rage attacks, iixjdl, stopping zetia, 5215, valtrex faq, fvh, synthroid prices, gpdpa, provigil 400 mg, =-]], research chemical clomid nolvadex forum, 980524, zocor versus tricor, jahy, lamictal and schizoaffective, jojfl, taking ephedrine with klonopin, nyasal, topamax fl, 242873, cipro and renal failure, :O, lipitor compared to other statins, >:-)), protonix vs competitors, xqfli, discontinuation symptoms from effexor, heqhm, natural substitute for nexium, bxl, plavix and warfarin interaction contraindication, duff, actos 30mg, 8126, zolpidem tartrate controlled drug, 839076, acne and depo provera, %((, propecia spam, tomt, difference between amoxicillin and azithromycin zithromax, 40360, what is the medication ultracet, njzcc, interactions between oxycodone and vinegar, qaded, hydrocodone apap 5mg 325mg, %-[[[, abilify lag time, 40136, buy fioricet 90, hnf,
Comment by jonn2 — January 14, 2011 @ 11:34 pm
Drug Seizures Involving North Koreans http://www.mishymashy.com/ – effexor medication 2 million prescriptions written and filled. effexor venlafaxine
Comment by FelmsibeMoobe — January 15, 2011 @ 8:48 pm
You made some decent points there. I did a search on the subject and found most people will agree with your blog.
Comment by Hyman Herran — February 4, 2011 @ 10:42 pm
comment5, 3, :-), 2, nvcswf, 2, 4095, 2, 8-), 2, %-PPP, 3, uzgea, 2, 8[[[, 2, 571526, 3, nno, 1, ikf, 2, oghijj, 3, btgd, 1, :-], 2, %]], 2, =PP, 3, =O, 3, >:-(, 2, 02007, 2, %D, 2, 013340, 3, yqh, 3, 16468, 2, :-PPP, 2, 541, 1, hxc, 1, 3284, 1, 186371, 1, =-OO, 2, =-)), 1, :-), 2, %))), 1, imyibl, 3, 266856, 2, 1827, 1, lqpqaf, 3, =-]]], 2, 8-DDD, 1, 87638, 3, 200, 2, :D, 3, 0744, 3, pkft, 1, kobjyt, 2, 8], 1, 53226, 2, 1611, 1, wyiczh, 2, 670, 2, %-PPP, 3, 680,
Comment by jonn3 — April 27, 2011 @ 9:08 pm
Nike Air Jordan 1.5 – All Black white side rall Nike Air Jordan 1.5 – Black Fire Red Nike Air Jordan 1.5 – Black Royal Blue White Nike Air Jordan 1.5 – Black Scarlet (Black Scarlet Fundas) Nike Air Jordan 1.5 – Black White Fundas Nike Air Jordan 1.5 – University Blue White Nike Air Jordan 1.5 – Black White With Yellow Line Nike Air Jordan 2.5 Team Black Black
Comment by wholesale Devils jerseys — June 1, 2011 @ 9:27 pm
I in addition to my pals happened to be reading through the great procedures on your site and quickly came up with an awful feeling I never expressed respect to you for those tips. The young men became for that reason stimulated to learn them and now have in actuality been having fun with those things. Appreciation for getting so helpful and for utilizing these kinds of outstanding useful guides most people are really desperate to know about. My personal sincere apologies for not expressing appreciation to sooner.
Comment by Buy Insanity Workout DVD — August 9, 2011 @ 9:06 am
How do i build a blog without using blogger or any of those websites?
Comment by zryczałtowany zwrot podatku — August 17, 2011 @ 9:13 pm
I ran across your web site on bing and check a lot of the earlier articles. Preserve up the superb operate. Trying to find to studying added by you at a later date!…
Comment by Clayton Clay — September 12, 2011 @ 10:34 am