123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170 |
- phpTOCLib version 1.0 RC1
- This is released under the LGPL. AIM,TOC,OSCAR, and all other related protocols/terms are
- copyright AOL/Time Warner. This project is in no way affiliated with them, nor is this
- project supported by them.
- Some of the code is loosely based off of a script by Jeffrey Grafton. Mainly the decoding of packets, and the
- function for roasting passwords is entirly his.
- TOC documentation used is available at http://simpleaim.sourceforge.net/docs/TOC.txt
- About:
- phpTOCLib aims to be a PHP equivalent to the PERL module NET::AIM. Due to some limitations,
- this is difficult. Many features have been excluded in the name of simplicity, and leaves
- you alot of room to code with externally, providing function access to the variables that
- need them.
- I have aimed to make this extensible, and easy to use, therefore taking away some built in
- functionality that I had originally out in. This project comes after several months of
- researching the TOC protocol.
- example.php is included with the class. It needs to be executed from the command line
- (ie:php -q testscript.php) and you need to call php.exe with the -q
- example is provided as a demonstaration only. Though it creats a very simple, functional bot, it lacks any sort of commands, it merely resends the message it recieves in reverse.
- Revisions:
- -----------------------------------
- by Rajiv Makhijani
- (02/24/04)
- - Fixed Bug in Setting Permit/Deny Mode
- - Fixes so Uninitialized string offset notice doesn't appear
- - Replaced New Lines Outputed for Each Flap Read with " . " so
- that you can still tell it is active but it does not take so much space
- - Removed "eh?" message
- - Added MySQL Database Connection Message
- - New Functions:
- update_profile(profile data string, powered by boolean)
- * The profile data string is the text that goes in the profile.
- * The powered by boolean if set to true displays a link to the
- sourceforge page of the script.
- (02/28/04)
- - Silent option added to set object not to output any information
- - To follow silent rule use sEcho function instead of Echo
- -----------------------------------
- by Jeremy (pickleman78)
- (05/26/04) beta 1 release
- -Complete overhaul of class design and message handling
- -Fixed bug involving sign off after long periods of idling
- -Added new function $Aim->registerHandler
- -Added the capability to handle all AIM messages
- -Processing the messages is still the users responsibility
- -Did a little bit of code cleanup
- -Added a few internal functions to make the classes internal life easier
- -Improved AIM server error message processing
- -Updated this document (hopefully Rajiv will clean it up some, since I'm a terrible documenter)
- -------------------------------------------------------------------------------------------------------------
- Functions:
- Several methods are provided in the class that allow for simple access to some of the
- common features of AIM. Below are details.
- $Aim->Aim($sn,$password,$pdmode, $silent=false)
- The constructor, it takes 4 arguments.
- $sn is your screen name
- $password is you password, in plain text
- $pdmode is the permit deny mode. This can be as follows:
- 1 - Allow All
- 2 - Deny All
- 3 - Permit only those on your permit list
- 4 - Permit all those not on your deny list
- $silent if set to true prints out nothing
- So, if your screen-name is JohnDoe746 and your password is fertu, and you want to allow
- all users of the AIM server to contact you, you would code as follows
- $myaim=new Aim("JohnDoe746","fertu",1);
- $Aim->add_permit($buddy)
- This adds the buddy passed to the function to your permit list.
- ie: $myaim->add_permit("My friend22");
- $Aim->block_buddy($buddy)
- Blocks a user. This will switch your pd mode to 4. After using this, for the user to remain
- out of contact with you, it is required to provide the constructor with a pd mode of 4
- ie:$myaim->block_buddy("Annoying guy 4");
- $Aim->send_im($to,$message,$auto=false)
- Sends $message to $user. If you set the 3rd argument to true, then the recipient will receive it in
- the same format as an away message. (Auto Response from me:)
- A message longer than 65535 will be truncated
- ie:$myaim->send_im("myfriend","This is a happy message");
- $Aim->set_my_info()
- Sends an update buddy command to the server and allows some internal values about yourself
- to be set.
- ie:$myaim->set_my_info();
- $Aim->signon()
- Call this to connect to the server. This must be called before any other methods will work
- properly
- ie:$mybot->signon();
- $Aim->getLastReceived()
- Returns $this->myLastReceived['decoded']. This should be the only peice of the gotten data
- you need to concern yourself with. This is a preferred method of accessing this variable to prevent
- accidental modification of $this->myLastReceived. Accidently modifying this variable can
- cause some internal failures.
- $Aim->read_from_aim()
- This is a wrapper for $Aim->sflap_read(), and only returns the $this->myLastReceived['data']
- portion of the message. It is preferred that you do not call $Aim->sflap_read() and use this
- function instead. This function has a return value. Calling this prevents the need to call
- $Aim->getLastReceived()
- $Aim->setWarning($wl)
- This allows you to update the bots warning level when warned.
- $Aim->getBuddies()
- Returns the $this->myBuddyList array. Use this instead of modifying the internal variable
- $Aim->getPermit()
- Returns the $this->myPermitList array. Use this instead of modifying the internal variable
- $Aim->getBlocked()
- Returns the $this->myBlockedList array. Use this instead of modifying the internal variable
- $Aim->warn_user($user,$anon=false)
- Warn $user. If anon is set to true, then it warns the user anonomously
- $Aim->update_profile($information, $poweredby=false)
- Updates Profile to $information. If $poweredby is true a link to
- sourceforge page for this script is appended to profile
- $Aim->registerHandler($function_name,$command)
- This is by far the best thing about the new release.
- For more information please reas supplement.txt. It is not included here because of the sheer size of the document.
- supplement.txt contains full details on using registerHandler and what to expect for each input.
- For convenience, I have provided some functions to simplify message processing.
- They can be read about in the file "supplement.txt". I chose not to include the text here because it
- is a huge document
- There are a few things you should note about AIM
- 1)An incoming message has HTML tags in it. You are responsible for stripping those tags
- 2)Outgoing messages can have HTML tags, but will work fine if they don't. To include things
- in the time feild next to the users name, send it as a comment
- Conclusion:
- The class is released under the LGPL. If you have any bug reports, comments, questions
- feature requests, or want to help/show me what you've created with this(I am very interested in this),
- please drop me an email: pickleman78@users.sourceforge.net. This code was written by
- Jeremy(a.k.a pickleman78) and Rajiv M (a.k.a compwiz562).
- Special thanks:
- I'd like to thank all of the people who have contributed ideas, testing, bug reports, and code additions to
- this project. I'd like to especially thank Rajiv, who has done do much for the project, and has kept this documnet
- looking nice. He also has done alot of testing of this script too. I'd also like to thank SpazLink for his help in
- testing. And finally I'd like to thank Jeffery Grafton, whose script inspired me to start this project.
|