~~~~~~~~~~~~~~~~
pr0t0bot v4.1.1
~~~~~~~~~~~~~~~~


pr0t0bot is a fork of phenny that has two intentions: 
1: to be a useful little bot to the creator, and 2: to possibly be useful to someone else.

Ok, to get started, make sure you have python 2.5 or better (but not 3.x), then edit pr0t0def.py to your liking. 
Read the comments, some things are different from phenny. pr0t0bot is the default nick.
Then just execute pr0t0bot_start.py. 

Major changes for 4.1.1 INCLUDE:
No major changes so to speak, fixed more unicode bugs and a bug with the $owner command.

Major changes for 4.1.0 INCLUDE:
Fixed a crapton of UTF-8 related problems, minor bugfixes for features that were new in 4.0.0, fixed the channel joiner so it occurs after
a nickserv password (if any) has been sent, to permit joining auth-only channels, added pr0t0prefixwarn to the status display, 
and other than bugfixes and tiny tweaks, that's it folks. Your existing pr0t0def.py should be OK, just change the version string at 
the very bottom to 4.1.0. An overwrite of components and core files is acceptable here, and $restart after pr0t0def modifications should actually
allow you to perform a live upgrade.

Major changes for 4.0.0 INCLUDE:
Subsentient is VERY proud to introduce pr0t0bot 4.0.0!
This release deprecates and replaces all phenny modules and components in the ./components/ folder, leaving only the IRC core
to deal with! plog prints messages to the console (which can be disabled in pr0t0def.py as usual), so you can sit and watch the messages
scroll by, and the bot now has a place to get raw IRC data from a buffer: irc.ircrecv is what you want. ofchk() was removed from pr0t0api
since it was a horrible solution, and gooduser() put in it's place. Aditionally, another big feature, the bot has an option that is turned on
by default that enables password authentication for admins, the owner having a different password from the others. You will need to set these
in your pr0t0def.py file. I fixed the wz.py module up a bit and made it more reliable and cleaner, and I simplified the clock component
to have five settings, the first being the bot time, and the others being lt12, lt24, and utc12 and utc24. Commands such as $sendmsg and
$settopic no longer require the colon, they can be used like in IRC clients. pseen and ptell replace phenny's seen and tell modules, and 
both of these new ones offer functionality that the previous did not. pseen stores up to 512 nicks in a database file, along with the 
last thing they said, and when it hits the 512 limit, it just starts deleting the ones at the beginning of the file to make room for the new ones.
ptell now sends it's messages via PM, and is a simpler solution than tell in phenny. The search component has been replaced by pgoogle,
which sacrificed bing and google results to provide the first three results rather than the first one. The bot will now reply to CTCP version
requests as well. The $kill command was removed, and so was pr0t0stime. Many inner bugs were fixed as well, I might add. 

I hope you find pr0t0bot 4.0 to be as vastly superior to it's predecessors as I do!

-Subsentient

Major changes for 3.1.1 INCLUDE:
Added an option to mute the wpr1-7 commands by request.

Major changes for 3.1.0 INCLUDE:
IRC server password support has been readded. This is kind of a bug fix. pr0t0function renamed to pr0t0api, a bunch of
little under the hood tweaks, including the migration of help info into a dictionary in pr0t0def.py and such things, where the same was done with lingo.py. 
Finished the personality changes, and FIXED THAT DAMN TIME KEEPING BUG. Also did a MAJOR overhaul
on the sticky module, and it can now show only one sticky and delete singles, using assigned numbers. pr0t0api.timespec is
the new global thing for getting your clock going, it's not in pr0t0def anymore. Also secured/crippled the calculator a little more.
Read the notes in pr0t0api before using those features yourself.
Some are new and cool, but can be a nuisance if used wrongly. :^)

Major changes FOR 3.0.0 INCLUDE: 
Fixed bugs in wz.py, added minimal jenni module support, 
added a new API file (with little in it right now) pr0t0function.py, cut AdminControl in half, now it's botctl
and chanctl. Fixed a bunch of miscellanious bugs in the new split modules, fixed bugs in bagofweasels and added a couple little things,
(a way to respond to pr0t0: hi and added a $why command) made
plog properly log /me messages, added time types for logger etc in pr0t0def.py, edited the crap out of bagofweasels to allow the usage of
kinder commands and added an option in pr0t0def.py to set the personality, fixed a LOT of really, really, REALLY ugly code, added more security
of various sorts, a tiny bit of work on the core, little stuff like that, taken to a big proportion. Fixed that which needed fixing.


Major changes for 2.3.2 INCLUDE:
Updated wz.py module, fixed a few bugs in pr0t0init and admincontrol, 
fixed something in bagofweasels, and I'm sure I did more than that but I can't think of anything.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
FAQ:

Q: I get the message I am not logged in, but I am the owner!
What gives?

A: pr0t0bot 4.0 offers admin password authentication. There is a seperate password setting for
the owner and the admins in pr0t0def.py. Set your passwords there and PM your new bot 
the command $admin_login <your password without these brackets>. See $commands admin once
you log in to get a lead on more stuff used for password authentication.

Q: You say that authentication is optional, but I keep seeing calls to pr0t0api.isauthed()
everywhere! How can this be so if all admin functions call it?

A: The pr0t0api.isauthed() function will report that you are authenticated all the time
if you disable admin authentication. It will be transparent.

Q: Where is the configuration file?

A: pr0t0def.py, in the same folder as the rest of pr0t0bot.

Q: How do I start pr0t0bot? 

A: launch pr0t0bot_start.py in python.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Modifications for pr0t0bot in original phenny code are under the 
Eiffel Forum License v2, whereas pr0t0bot components that state to
have been written by "bendib" or "Subsentient" (or just listed in the core component list at startup)
are public domain. wz.py is also public domain.

There is no warranty, implied or otherwise, for pr0t0bot and any software included with it.
I make no guarantees as to it's usefulness or stability and by using it you claim all liability for any events
that may come from it's usage.
Have fun!
