pax_global_header00006660000000000000000000000064112445077030014515gustar00rootroot0000000000000052 comment=fff3f8c6297f06bac116a05802d3dc0c1257a276 pyaimt-0.8.0.1/000077500000000000000000000000001124450770300131645ustar00rootroot00000000000000pyaimt-0.8.0.1/AUTHORS000066400000000000000000000021171124450770300142350ustar00rootroot00000000000000Primary Developers ------------------ Daniel Henninger Chris Carlin James Bunton (indirectly) Also, thanks to --------------- Paul Clegg for helping me figure out how to make use of some of the oscar functionality, and for his initial discussions with the Twisted Matrix team. Magnus Henoch for discovering and fixing the issues with registration under ejabberd. Daniel Chandran for adding Socks5 support. Martin von Loewis for supplying xmlify function. Robert B Quattlebaum, Jr. for his many patches to fix numerous problems and add various new functionality. Andreas van Cranenburgh for his patches for JEP-0085. Gonzalo Barrio for various iq/disco related fixes and improvements. Norman Rasmussen for figuring out Jabberd 2's component protocol. Scott Dial for stability improvements and OSCAR protocol patches. The Twisted Matrix development team who have put together this wonderful framework we are making use of. =) I'd like to especially thank Paul Swartz for his work on the oscar.py piece and for working with me to get various pieces working correctly! pyaimt-0.8.0.1/COPYING000066400000000000000000000431411124450770300142220ustar00rootroot00000000000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave, Cambridge, MA 02139, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS Appendix: How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) 19yy This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) 19yy name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. pyaimt-0.8.0.1/ChangeLog000066400000000000000000001375421124450770300147520ustar00rootroot000000000000002007-06-02 Chris Carlin * src/tlib/oscar.py: Fixed the delayed message syndrome (caused by non-threadsafe twisted libs) 2007-06-02 Chris Carlin * src/tlib/oscar.py: Another patch from Scott Dial to keep up with AIM protocol changes involving away messages and away contacts not showing up 2007-03-25 Daniel Henninger * AUTHORS: Adjusted slightly (mostly for an SVN hook test). * README: Referencing AUTHORS instead of listing developers explicltly. 2007-03-23 Chris Carlin * src/tlib/oscar.py: Applied patch from Scott Dial to add a ton of error catching 2007-03-22 Daniel Henninger * src/tlib/oscar.py: Applied patch from Michael Dyrna to fix password hash issues. 2007-02-16 Daniel Henninger * src/xdb/mysql.py: Applied patch from Alexander Sulfrian to handle mysql auto-reconnect. 2006-10-03 Daniel Henninger * src/services/IqAvatarFactory.py: Was not sending actual response. 2006-10-01 Daniel Henninger * config_example.xml: * tools/migrate.py: * tools/Makefile: * tools/managessi.py: * tools/infodump.py: * src/adhoc.py: * src/avatar.py: * src/config.py: * src/contact.py: * src/daemonize.py: * src/debug.py: * src/disco.py: * src/globals.py: * src/groupchat.py: * src/iq.py: * src/jabw.py: * src/lang.py: * src/main.py: * src/misciq.py: * src/register.py: * src/sasl.py: * src/session.py: * src/svninfo.py: * src/utils.py: * src/xmlconfig.py: * src/services: * src/services/ConnectUsers.py: * src/services/EntityTime.py: * src/services/GatewayTranslator.py: * src/services/__init__.py: * src/services/IqAvatarFactory.py: * src/services/LastActivity.py: * src/services/PingService.py: * src/services/RosterRetrieval.py: * src/services/SearchFactory.py: * src/services/Statistics.py: * src/services/VCardFactory.py: * src/services/VersionTeller.py: * src/xdb/__init__.py: * src/xdb/legacyaimtransport.py: * src/xdb/mysql.py: * src/xdb/template.py: * src/xdb/xmlfiles.py: * src/web/handler.py: * src/web/xmppcred.py: * src/tlib/twistwrap.py: * src/tlib/domish.py: * src/tlib/xmlstream.py: * src/tlib/jabber: * src/tlib/httpcompat.py: * src/tlib/ifcompat.py: * src/tlib/oscar.py: * src/tlib/scheduler.py: * src/langs/en.py: * src/legacy/aimt.py: * src/legacy/buddies.py: * src/legacy/glue.py: * src/legacy/legacyiq.py: * src/legacy/legacylist.py: * src/legacy/services: * src/legacy/services/AIMURITranslate.py: * src/legacy/services/ChangeEmail.py: * src/legacy/services/ChangePassword.py: * src/legacy/services/ConfirmAccount.py: * src/legacy/services/EmailLookup.py: * src/legacy/services/FormatScreenName.py: * src/legacy/services/__init__.py: Updated to match PyICQt release. * src/legacy/glue.py: Updated for 0.8 release. * config_example.xml: Made saslUsername tag more clear. * src/legacy/glue.py: Killed pointless traceback. 2006-09-11 Daniel Henninger * src: Added external ref to pull twistfix. (twistfix-0.6) 2006-05-31 Daniel Henninger * src/xdb/mysql.py: Updated to fix security hole and disconnection issues. 2006-05-22 Daniel Henninger * src/session.py: * src/misciq.py: * src/jabw.py: * src/disco.py: Changed defaultUri to uri. * src/avatar.py: Killed newlines in base64 encodings. 2006-04-28 Daniel Henninger * src/legacy/aimt.py: Fixed bad call to config.encoding. * src/main.py: Fixed bad call to handleResourcePresence. 2006-04-25 Daniel Henninger * src/legacy/glue.py: Fixed icqHandle bug. 2006-04-20 Daniel Henninger * src/avatar.py: Fixed bug with jabber-side icons. * src/config.py: * src/main.py: * config_example.xml: Synced up component binding and route wrap. 2006-04-03 Daniel Henninger * src/main.py: Updated to not require sasl for jabberd2 component auth. 2006-03-20 Daniel Henninger * src/main.py: Added better handling of reactors. 2006-03-06 Daniel Henninger * src/main.py: * PyAIMt.py: Added option to enable profiling. * src/legacy/glue.py: Updated version to 0.7c. 2006-03-05 Daniel Henninger * src/legacy/legacylist.py: Fixed stupid bug with cached avatars. * src/web/handler.py: Fixed bug with access check. * src/main.py: Fixed debugLog vs debugFile. 2006-03-04 Daniel Henninger * src/legacy/glue.py: Fixed misplaced return. * tools/migrate.py: * tools/managessi.py: Switched to /usr/bin/env python. 2006-03-03 Daniel Henninger * src/legacy/glue.py: Fixed call to non-existent variable. * src/tlib/oscar.py: Fixed lack of check for errorurl. 2006-03-01 Daniel Henninger * src/web/handler.py: Fixed stupid call to attribute that didn't exist. * tools/Makefile: Made testinst more verbose. * src/legacy/legacylist.py: Fixed bad call to updateIconHashes. 2006-02-28 Daniel Henninger * src/tlib/oscar.py: Fixed warning (thanks to pkern from chatroom). * src/legacy/glue.py: Fixed lack of removal of buddy icon request indicator. * src/tlib/oscar.py: Added another error code handled. * src/legacy/aimt.py: Cleaned up connectionLost code a tad. * src/legacy/legacylist.py: Fixed bug with using encoding attribute that doesn't exist. 2006-02-27 Daniel Henninger * tools/Makefile: Added mini-script to create a test install. * src/legacy/glue.py: * src/legacy/legacylist.py: * src/tlib/oscar.py: Worked on improvements to direct buddy icons. 2006-02-26 Daniel Henninger * AUTHORS: Updated information about Robert's contributions. * src/avatar.py: * src/contact.py: * src/config.py: * src/debug.py: * src/disco.py: * src/groupchat.py: * src/jabw.py: * src/main.py: * src/misciq.py: * src/register.py: * src/session.py: * src/xmlconfig.py: * src/xdb/__init__.py: * src/xdb/xmlfiles.py: * src/xdb/legacyaimtransport.py: * src/legacy/legacylist.py: * src/legacy/legacyiq.py: * src/legacy/aimt.py: * src/legacy/glue.py: Switched debug style. * src/contact.py: * src/config.py: * src/imgmanip.py: * src/misciq.py: * src/session.py: * src/legacy/glue.py: * src/legacy/legacylist.py: * config_example.xml: Added ability to disable avatars, or just default avatar. * src/legacy/__init__.py: Fixed lack of import of defaultAvatar. * src/config.py: * src/legacy/aimt.py: * config_example.xml: Added ability to disable mail notifications. * src/contact.py: * src/utils.py: * src/tlib/domish.py: * src/tlib/oscar.py: * src/legacy/oscart.py: * src/legacy/glue.py: * src/legacy/legacylist.py: * src/jabw.py: * src/main.py: * src/debug.py: * src/session.py: Applied Robert Quattlebaum's many patches. Includes: iTunes URL support encoding fixes less presence spam when another resource comes online better (ie, actually functional) xhtml support misc other things * src/globals.py: Updated globals list. * src/main.py: Misc cleanup. * src/main.py: Added auto-find of 'best reactor'. * src/webadmin: * src/webadmin/__init__.py: * src/webadmin/handler.py: * src/web: * src/web/__init__.py: * src/web/handler.py: * src/web/xmppcred.py: * src/main.py: * data/www: * data/www/template.html: * data/www/images: * data/www/images/pyaim.png: * data/www/css: * data/www/css/style.css: Switched over to new web interface. * src/tlib/oscar.py: Updated to newer OSCAR handler. * tools/Makefile: Added developer Makefile. * INSTALL: Updated to reflect lack of web interface in Twisted 1.*. 2006-02-25 Daniel Henninger * src/tlib/twistwrap.py: * src/avatar.py: * src/contact.py: * src/disco.py: * src/groupchat.py: * src/jabw.py: * src/main.py: * src/misciq.py: * src/register.py: * src/session.py: * src/utils.py: * src/xmlconfig.py: * src/xdb/xmlfiles.py: * src/xdb/legacyaimtransport.py: * src/legacy/glue.py: * src/legacy/legacylist.py: * src/legacy/legacyiq.py: * tools/migrate.py: Added twisted version wrapper. * src/sasl.py: Updates SASL support framework. * PyAIMt: * PyAIMt.py: * src/avatar.py: * src/main.py: * src/xmlconfig.py: * src/utils.py: * src/xdb/xmlfiles.py: * src/xdb/legacyaimtransport.py: * src/legacy/legacylist.py: * src/debug.py: Changed to new style startup and os path fixes. * src/main.py: * src/exception.py: Ditched useless exception crap. * data: * data/defaultAIMAvatar.png: * data/defaultICQAvatar.png: * src/legacy/defaultAvatar.png: * src/legacy/defaultJabberAvatar.png: * src/legacy/glue.py: * src/legacy/legacylist.py: * src/misciq.py: * src/avatar.py: Moved avatars. * src/legacy/glue.py: * src/legacy/__init__.py: Mild cleanup. * src/imgmanip.py: * src/legacy/aimt.py: * src/legacy/legacylist.py: Moved image manipulation stuff. 2006-01-10 Daniel Henninger * config_example.xml: * src/config.py: * src/jabw.py: * src/legacy/aimt.py: Added support for disabling XHTML. 2005-12-12 Daniel Henninger * src/tlib/domish.py: Fixed utf encoding issue. * src/tlib/oscar.py: Restructured extended status encoding check. * src/main.py: Added utf-8 encoding of debugging output. * src/legacy/aimt.py: Fixed available status encoding handling. 2005-12-01 Daniel Henninger * src/legacy/legacyiq.py: Added check for active bos session as well. 2005-11-29 Daniel Henninger * src/misciq.py: Fixed error packet to go back to user. * src/tlib/oscar.py: Added default exchange for all createChat calls. 2005-11-28 Daniel Henninger * src/jabw.py: Fixed typo with chatStateEvent. * src/legacy/aimt.py: If image can't be converted to JPG, then we punt. * src/main.py: Added Norman's fixes for jabberd 2 component protocol. Removed "I am sending" debug messages which are +10 to annoyance. * src/misciq.py: Fixed crash bug when not logged in on searches. * src/legacy/glue.py: Removed / from end of url for cleanliness. * src/sasl.py: Fixed up to override everything necessary to make sasl auth work across twisted versions. * src/tlib/xmlstream.py: Restored to non-messed-with xmlstream. =) * config_example.xml: * src/config.py: * src/main.py: * src/sasl.py: Changed useSASL to saslUsername and switched to that for sasl auth. * src/legacy/legacylist.py: Fixed hasCapability check to not crash. * src/legacy/glue.py: Updated version number. * README: Updated to mention new saslUser functionality. 2005-11-27 Daniel Henninger * src/debug.py: Changed debugSmart to tracebackDebug, since I had renamed it. * src/tlib/oscar.py: Added defer response even when deferred not used. 2005-11-26 Daniel Henninger * src/xdb/xmlfiles.py: Fixed bug with encrypt spool check. * src/legacy/glue.py: Updated version to 0.7a. 2005-11-25 Daniel Henninger * src/legacy/aimt.py: Fixed problem with multiple resource handling. * src/xdb/xmlfiles.py: Minor stability mods. * src/xdb/mysql.py: Removal of entry cleans up properly. Other stability fixes. * src/xdb/legacyaimtransport.py: Stability fixes. * src/xdb/template.py: Mods for new functions. * src/xdb/xmlfiles.py: * src/xdb/mysql.py: Added extra functions for migration. * tools/migrate.py: Added migration tool. * src/config.py: Added xdbDriver_xmlfiles and removed encryptSpool. * config_example.xml: Migrated encryptSpool into xdbDriver_xmlfiles config. * src/xdb/xmlfiles.py: Added encrypted password functionality back. * README: * INSTALL: Updated documentation. * src/legacy/glue.py: Updated to version 0.7. 2005-11-24 Daniel Henninger * src/session.py: Tweaked SessionResource to match PyMSNs, still no luck. 2005-11-23 Daniel Henninger * src/legacy/aimt.py: * src/main.py: More minor mods in an attempt to get multi-resources working. 2005-11-22 Daniel Henninger * src/legacy/glue.py: * src/legacy/aimt.py: * src/contact.py: Some work on better handling of session removal. 2005-11-21 Daniel Henninger * src/tlib/oscar.py: Finally found the magic formula to make vim do space-based tabs. 2005-11-20 Daniel Henninger * src/tlib/oscar.py: Modifications to make extended status stuff work more like gaim. * src/legacy/aimt.py: Added check for weird 90 and 0 length icons. Added check for "is this an icon we don't already have". * src/legacy/legacylist.py: Added support for xdb attributes and checking of hashes. 2005-11-19 Daniel Henninger * src/tlib/oscar.py: Added handling of SNAC flag 0x8000, which is some weird family crap. Various other cleanup due to this change. * src/tlib/oscar.py: * src/legacy/aimt.py: Modifications to make icon uploads work (yay!). * src/utils.py: Added convertToJPG, since AIM does accept PNG. 2005-11-17 Daniel Henninger * tools/managessi.py: Bugfixes and added delete support. * src/legacy/aimt.py: Made removeContact delete -all- instances of a user from buddy list. * src/tlib/oscar.py: Declared iconSum variable earlier. Repaired handling of buddy icon sums from SSI. * src/legacy/legacylist.py: Readded avatar debugging so I can see why some are coming up blank. * src/tlib/oscar.py: Added string representations of various objects. * src/legacy/aimt.py: Updated to handle new SSIIconSum format. 2005-11-16 Daniel Henninger * tools/managessi.py: Working on command line tool to interact with SSI directly. * src/utils.py: Applied unicode/iso-8859-1 patch provided by Aria. 2005-11-14 Daniel Henninger * src/main.py: Adjusted send to send text, not xml. (fixes words 0.3.0 compatibility) * src/tlib/oscar.py: Patched a bug where a file transfer offering would crash pyaim. 2005-11-13 Daniel Henninger * src/legacy/legacylist.py: Updated incoming avatar code to not always set back to default avatar. * src/session.py: Fixed typo amongst avatar stuff. 2005-11-12 Daniel Henninger * src/tlib/oscar.py: Code cleanup here and there. 2005-11-08 Daniel Henninger * src/avatar.py: * src/config.py: * src/contact.py: * src/debug.py: * src/disco.py: * src/groupchat.py: * src/jabw.py: * src/lang.py: * src/main.py: * src/misciq.py: * src/register.py: * src/session.py: * src/utils.py: * src/webadmin/__init__.py: * src/webadmin/handler.py: * src/xdb/legacyaimtransport.py: * src/xdb/xmlfiles.py: Copyright statements updated. * src/disco.py: * src/globals.py: * src/jabw.py: * src/main.py: * src/misciq.py: * src/register.py: * src/legacy/legacyiq.py: Moved globally used variables to globals.py. 2005-11-06 Daniel Henninger * src/webadmin/handler.py: Removed odd call of getattr that I'm not sure why it was there. * src/legacy/aimt.py: Moved initialization of ssigroups and ssiiconsum. * src/register.py: Patched to request only user@host pair for spool jid. 2005-11-05 Daniel Henninger * src/tlib/oscar.py: Removed calls to d.arm. Was depricated, now is gone. 2005-10-12 Daniel Henninger * src/main.py: * src/sasl.py: * src/config.py: * config_example.xml: Added support for SASL auth and JabberD2 Component Protocol. * src/tlib/xmlstream.py: Tweaked to provide version and such. 2005-10-11 Daniel Henninger * config_example.xml: * src/config.py: Added sasl bind option. * src/xdb/xmlfiles.py: * src/main.py: Cleanup of exit routines. * src/xdb/xmlfiles.py: Modified house keeper to put spool files that upset it into BAD dir. * src/xdb/xmlfiles.py: Fixed bug with spool file removal. 2005-10-10 Daniel Henninger * src/main.py: * src/config.py: * config_example.xml: Added some jabberd2 component pieces. 2005-10-09 Daniel Henninger * tools/db-setup.mysql: Adjusted to create proper settings tables. 2005-10-03 Daniel Henninger * src/langs/en.py: * src/misciq.py: Added "Update My VCard" function. * src/main.py: Reordered adhoccommands initialization. Minor patch. * src/utils.py: Added beExtremelyLenient option . . . shall I use this? * src/legacy/aimt.py: * src/legacy/legacylist.py: * src/tlib/oscar.py: Added initial functionality for retrieving buddy icons. * src/xdb/xmlfiles.py: * src/xdb/legacyaimtransport.py: * src/xdb/mysql.py: * src/xdb/template.py: Changed Preference calls to Settings to encourage use for other things. * src/tlib/oscar.py: Failed connection handling... which seems to occur a lot for buddy icons if you bother the icon server a lot. * src/legacy/aimt.py: Fixed crash bug. 2005-10-02 Daniel Henninger * src/legacy/glue.py: * src/legacy/aimt.py: Added hooks for avatar changing. * src/tlib/oscar.py: Slight remodelling and fixes for buddy icon hashes. Switched gotSelfInfo to a "standard call". * src/xdb/xmlfiles.py: Fixed bug with removal of spool file. * src/tlib/oscar.py: * src/legacy/aimt.py: Much tweaking trying to get avatars to work. 2005-10-01 Daniel Henninger * src/tlib/oscar.py: Added minor description for UTF8 capability. * src/legacy/aimt.py: Added ICON capability. * src/tlib/oscar.py: Added SSIIconSum. 2005-09-28 Daniel Henninger * src/xdb/xmlfiles.py: Added 'replace' to conversion to utf-8. 2005-09-27 Daniel Henninger * src/xdb/xmlfiles.py: Added function to handle conversion of old format to new format. Fixed calls to formRegEntry and getAttributes. Whoooaaa.. fixed ugly bug that would wipe your roster. Misc other roster handling fixes/cleanup. * src/legacy/legacylist.py: Commented out capability handler for now. 2005-09-26 Daniel Henninger * src/legacy/aimt.py: * src/legacy/legacylist.py: Encoding fixes for non-english languages. 2005-09-25 Daniel Henninger * src/main.py: Switched default encoding to utf-8. * src/xdb/mysql.py: Fixed bug with cursor. * src/tlib/oscar.py: Fixed issues with unhandled character per encoding for utf-8. Fixed dumb bug with bad readSNAC. Imported over PyICQ pieces so oscar.py can be common between them. * src/legacy/aimt.py: Added autoresponse flag to away message autoresponse. * src/tlib/oscar.py: Revamp of message data handling and encoding indicators. * src/legacy/aimt.py: Handle encoding in a reasonable manner. * src/utils.py: Tweaks to prepxhtml to see reason for failure. * src/main.py: * src/misciq.py: Disabled groupchat disco handler. * src/legacy/aimt.py: * src/legacy/legacyiq.py: Fixed call to Groupchat. 2005-09-24 Daniel Henninger * src/langs/de.py: Repaired German translation which would not import properly. * src/utils.py: Minor fix to handle empty strings. * src/legacy/aimt.py: Minor spacing adjustments. * src/utils.py: * src/xdb/xmlfile.py: * src/xdb/xmlhashdirs.py: Fixes for NotesToSelf. * src/avatar.py: * src/config.py: * src/debug.py: * src/xdb/xmlfile.py: * src/xdb/xmlhashdirs.py: * src/jabw.py: * src/main.py: * src/session.py: * src/xmlconfig.py: * src/legacy/legacylist.py: Memory usage and code improvements. XCP fixes. * config_example.xml: More XCP adjustments. * src/xdb/xmlfile.py: * src/xdb/xmlhashdirs.py: Check for attempts to prep 'avatars' dir. * src/legacy/glue.py: * src/legacy/__init__.py: * src/main.py: * src/xdb/xmlfile.py: * src/xdb/xmlhashdirs.py: Removed mangle 'option'. * src/xdb/xmlfile.py: * src/xdb/xmlhashdirs.py: * src/xdb/template.py: Added hooks for XDB driver support. * src/register.py: * src/session.py: * src/main.py: * src/legacy/legacyiq.py: * src/legacy/legacylist.py: * src/legacy/aimt.py: Updated to use new XDB calls. * src/legacy/glue.py: * src/utils.py: Moved password encryption functions. * src/legacy/glue.py: Cleaned up moved functions. * src/xdb/xmlfile.py: * src/xdb/xmlhashdirs.py: * src/xdb/xmlfiles.py: Removed xmlfile, renamed xmlhashdirs to xmlfiles. * src/config.py: * config_example.xml: Updated default driver to xmlfiles. * src/legacy/defaultAvatar.png: Updated to cleaner icon. * src/legacy/legacylist.py: Removed reference to msn. * config_example.xml: * tools/db-setup.mysql: * src/xdb/mysql.py: Added MySQL pieces. * src/xmlconfig.py: Added dict handling. 2005-09-23 Daniel Henninger * src/langs/ru.py: Added Russian language translation. * src/legacy/defaultAvatar.png: Updated to an icon made by me. 2005-09-22 Daniel Henninger * src/jabw.py: Added check/punt on bad xhtml. * src/lang.py: Switched to new model. * src/langs: * src/langs/__init__.py: * src/langs/en.py: * src/langs/fr.py: * src/langs/nl.py: * src/langs/pl.py: Added in new lang model. * src/register.py: * src/disco.py: * src/misciq.py: * src/session.py: * src/main.py: * src/groupchat.py: * src/webadmin/handler.py: * src/legacy/aimt.py: * src/legacy/legacyiq.py: Switched to new lang model. * src/main.py: Fixed bad call to notloggedin string. * src/langs/de.py: Added German translation. * src/langs/nl.py: Updated translation. 2005-09-20 Daniel Henninger * src/legacy/aimt.py: * src/legacy/glue.py: * src/lang.py: Added AIM URI translator. 2005-09-18 Daniel Henninger * src/legacy/aimt.py: Added passing of html -> xhtml message. Added handling of xhtml in sendMessage. * src/jabw.py: Added handling of xhtml passed to sendMessage. Added handling of xhtml in messageReceived. * src/session.py: Added handling of xhtml in messageReceived. * src/legacy/glue.py: Added handling of xhtml in sendMessage. * src/utils.py: Added function to convert craptastic html into xhtml. * src/avatar.py: Placed SPOOL_UMASK in this file. * src/jabw.py: Added check for xhtml support. * config_example.xml: * src/config.py: Added avatarsOnlyOnChat and useXCP options. * src/debug.py: Added flush after all stdout prints. * src/avatar.py: * src/contact.py: * src/debug.py: * src/disco.py: * src/groupchat.py: * src/jabw.py: * src/lang.py: * src/legacy/aimt.py: * src/legacy/glue.py: * src/legacy/legacyiq.py: * src/legacy/legacylist.py: * src/main.py: * src/misciq.py: * src/register.py: * src/session.py: * src/utils.py: * src/webadmin/handler.py: * src/xdb/xmlfile.py: * src/xdb/xmlhashdirs.py: * src/xmlconfig.py: Code/speed improvements. * src/main.py: XCP handling added. * src/misciq.py: Ping improvements, less log bothering. * src/register.py: Moved check for registration disabling. * src/tlib/domish.py: Removed functions that have long since been moved. * src/jabw.py: * src/session.py: * src/legacy/glue.py: * src/legacy/aimt.py: JEP-0085 additions based on Andreas van Cranenburgh's patches w/mods. * src/tlib/oscar.py: Removed annoying log message. 2005-09-11 Daniel Henninger * src/legacy/glue.py: Added noerror arg to sendLegacyMessage. * src/legacy/aimt.py: Added check for exchange-less room name. * src/legacy/glue.py: Removed useless mungeroom variable. * src/tlib/oscar.py: Tracking problems with idle disconnect. "fix" for acceptance of invite handling. * src/tlib/oscar.py: * src/legacy/aimt.py: Spelling fixes that were bothering me. =) 2005-09-09 Daniel Henninger * src/tlib/oscar.py: Fixed spacing. * src/xdb/xmlfile.py: * src/xdb/xmlhashdirs.py: * src/utils.py: Moved NotesToSelf handler and mangle functions into utils. * src/tlib/oscar.py: Pulled in a lot of misc information from gaim. 2005-09-08 Daniel Henninger * src/contact.py: Added groups handling. * src/xdb/xmlhashdirs.py: * src/xdb/xmlfile.py: Patched to use mangle and unmangle for better jid handling. * src/misciq.py: Added debug message for ping checks. * src/xdb/xmlhashdirs.py: Removed stupid requirement of legacy. 2005-09-05 Daniel Henninger * src/lang.py: Added changeemail strings. * src/legacy/legacyiq.py: * src/legacy/glue.py: Added changeemail hooks. * src/tlib/oscar.py: Added changeemail call. Made return error codes more useful. * src/legacy/legacyiq.py: Restructured reused functions. * src/legacy/oscar.py: Disconnect from various services after they return results. * src/legacy/glue.py: * src/legacy/legacyiq.py: Added change screen name format command. Added confirm account command. * src/legacy/legacyiq.py: Adjusted changeemail to pull current email address into form. * src/tlib/oscar.py: Added commands for various functions above. * src/tlib/oscar.py: Removed check for existing service for 'in-and-out' services. 2005-09-04 Daniel Henninger * src/legacy/legacyiq.py: Changed error response to include form to redo. Mods to make changepassword commands function correctly. * src/legacy/aimt.py: * src/tlib/oscar.py: Renamed sendEmailRequest to activateEmailNotifications. * src/tlib/oscar.py: Fixes to EmailService, actual parsing done. * src/legacy/aimt.py: Added handler for email notifications. * src/lang.py: Added emailnotification message. * src/tlib/oscar.py: Added administrative service. * src/tlib/oscar.py: Mild adjustments of error messages returned at login. * src/legacy/legacyiq.py: Password change handling added. * src/legacy/glue.py: Repaired poor handling of encrypted spool. * src/lang.py: Added email lookup service strings. * src/legacy/legacyiq.py: * src/legacy/glue.py: Added email lookup service. 2005-09-03 Daniel Henninger * config_example.xml: * src/config.py: Added xdbDriver option. * src/xdb.py: Removed old xdb front end. * src/xdb: * src/xdb/__init__.py: * src/xdb/xmlfile.py: Set up new xdb structure. * src/xdb/xmlhashdirs.py: Added newer xdb hashed directories driver. * src/main.py: Added call to housekeeper. * src/xdb/xmlfile.py: Added housekeeper stuff. * src/xdb/xmlhashdirs.py: Removed need for noteListF. * src/legacy/glue.py: Added addCommands function to be called on startup. * src/main.py: Added addCommands call. * src/lang.py: Added command_Done. * src/legacyiq.py: Added new legacy based iqs, and ChangePassword command. * src/legacy/__init__.py: Added addCommands import. * src/legacy/aimt.py: Added message send of away message if set. 2005-09-01 Daniel Henninger * src/tlib/oscar.py: More work trying to get email notifications to work, still busted. * src/main.py: * src/daemonize.py: Added ability to daemonize transport via -b. 2005-08-30 Daniel Henninger * src/misciq.py: Fixed bug with iq error response calls. Fixed dumb bug with iqavatar support. * src/legacy/glue.py: * src/main.py: * src/legacy/__init__.py: Removed dippy confid variable. * src/legacy/glue.py: Added import of base64. * src/legacy/aimt.py: Added another connectionLost handler for before the BOS connection is ready. * src/tlib/oscar.py: Added checks for poor received data, and handling of disconnect from OSCAR server's side. * src/tlib/oscar.py: Repaired name/address search. * src/tlib/oscar.py: Added interests search. * src/tlib/oscar.py: Added email service and minor code cleanup. * src/legacy/aimt.py: Added email request for testing. 2005-08-29 Daniel Henninger * src/tlib/oscar.py: Added checks for server support of SNAC families. * src/disco.py: Fixes for better disco handling. * src/tlib/oscar.py: * src/misciq.py: * src/legacy/glue.py: * src/legacy/aimt.py: Worked out handling of directory search, at least with email addresses. * config_example.xml: * src/config.py: Removed aimhttpServer useless variable. 2005-08-28 Daniel Henninger * src/jabw.py: Updated presence slightly and added payload inclusion. * src/contact.py: Added caps inclusion. * src/legacy/__init__.py: Added url to import list. * src/misciq.py: * src/utils.py: Moved makeDataFormElement, created getDataFormValue. * config_example.xml: * src/config.py: Added aimhttpServer variable, to be used with directory function. 2005-08-27 Daniel Henninger * src/disco.py: Applied changes that James made to PyMSN. * src/legacy/glue.py: Added url. * src/misciq.py: Added invite users and misc other adjustments. * src/xmlconfig.py: Added support for list config options. * src/config.py: * config_example.py: Added admins list option. * src/main.py: * src/misciq.py: Changed case of versionTeller. * src/lang.py: Added search instructions. Added connect users string. * src/misciq.py: Added beginnings of search handler. * src/legacy/glue.py: Added doSearch function. 2005-08-26 Daniel Henninger * src/legacy/aimt.py: Switched to usage of dehtml instead of re directly. * src/tlib/oscar.py: Added check for empty string/None. * src/tlib/oscar.py: * src/legacy/aimt.py: Adjusted profile handling to be more proper with something I would submit to twisted. * config_example.xml: Added options for spool encryption and comment about disabling pid file. * INSTALL: Updated information on requirements. * src/main.py: Moved exception handler to being the first thing imported. * src/tlib/oscar.py: Include many modifications ported from PyICQ. * src/legacy/aimt.py: Updated getAway to handle newer response. * src/legacy/glue.py: Added spool encryption support. * src/main.py: Added tests for config.pid to be empty and other code reorgs. * src/main.py: * src/jabw.py: * src/session.py: Added request for capabilities from client. * src/session.py: Added description retrieval from vcard. * src/legacy/aimt.py: Applied description to profile. * src/tlib/oscar.py: Adjusted flags on users to match Gaim/OSCAR docs. * src/legacy/aimt.py: Fixed bug with not setting extended status on initial login. * src/xdb.py: * src/avatar.py: Fixed umask. * src/disco.py: Removed unnecessary pieces. * src/legacy/aimt.py: Fixed bug with crashes from user going offline before login completed. * src/legacy/aimt.py: * src/jabw.py: Fixed poor translation of message characters from aol, I think... * src/jabw.py: * src/legacy/aimt.py: Fixed passing of status messages. * src/tlib/oscar.py: Mild code cleanup. 2005-08-25 Daniel Henninger * src/misciq.py: Added patch to make transport respond to vcard request. * src/legacy/aimt.py: Added proper handling of profile return data. 2005-08-23 Daniel Henninger * src/legacy/aimt.py: Added DESC back with utf8encoding. However... we're getting RTF now. 2005-08-22 Daniel Henninger * src/jabw.py: Added iq-based avatar announcement. * src/misciq.py: Added iq-based avatar handler. * src/avatar.py: Added makeDataElement for iq-based avatar support. * src/main.py: Added call of IqAvatarFactory. * src/misciq.py: Fixed stupid capitalization bug. * src/misciq.py: * src/disco.py: Added Norman's disco/adhoc commands patches. * src/jabw.py: Fixed stupid placement bug with jabber:x:avatar hash. * src/legacy/aimt.py: Switched many sendPresence calls to use updatePresence from contacts. * src/legacy/legacylist.py: Adjusted updateSSIContact to be more proper. * src/legacy/aimt.py: Commented out DESC part of vcard until I can fix it. * src/tlib/domish.py: Fixes for odd getPrefix misuse. 2005-08-21 Daniel Henninger * src/disco.py: * src/main.py: * src/misciq.py: * src/register.py: Adjusted disco to handle multiple jids. * src/legacy/glue.py: Added MessageCnt stat. * src/main.py: Took out apparantly stupid connection I was making to router. * src/misciq.py: * src/contact.py: * src/legacy/legacylist.py: Fixes for returned "full" vcard support. * src/session.py: Changed order of contactList vs legacyList vs legacyConnection. * src/legacy/aimt.py: Fixed check for start of html section. * src/tlib/oscar.py: Fixed dehtml-ization functionality. * src/session.py: Added nickname stuff in, but not heavily used yet. * src/disco.py: Removed unwanted functions and cleaned up others. * src/legacy/aimt.py: * src/legacy/glue.py: * src/groupchat.py: * src/session.py: Changed to new statistics style. * src/groupchat.py: * src/session.py: * src/legacy/aimt.py: * src/webadmin/handler.py: Removed import stats. * src/stats.py: Removed separate stats module. * src/webadmin/handler.py: Switched to new stats style. * src/lang.py: Changed statistics related command_ instances to statistics_. * src/misciq.py: * src/lang.py: Changed case of various pieces of lang.py. * src/legacy/glue.py: * src/legacy/legacylist.py: Added default avatar support. * src/legacy/defaultAvatar.png: Updated to submitted avatars. 2005-08-20 Daniel Henninger * src/main.py: * config_example.xml: Added in conference jid announcement. * src/legacy/glue.py: Adjusted groupjid checks to account for alt jid. * src/groupchat.py: * src/session.py: Adjusted to use conference jid. 2005-08-19 Daniel Henninger * src/lang.py: Added string for chatroom disco. * src/tlib/oscar.py: Commented out quit on limit, but still need to do something about it. 2005-08-18 Daniel Henninger * src/contact.py: Started mods to get full vcard. 2005-08-16 Daniel Henninger * src/legacy/aimt.py: Switched from AIMContacts to LegacyList. * src/legacy/legacylist.py: Created to work with new contact list patches and replace AIMContacts from aimt.py. 2005-08-15 Daniel Henninger * src/main.py: Returned loopCall to it's previous name because it doesn't work under Python 2.3 with the setup as per PyMSN. * src/config.py: * config_example.xml: * src/main.py: Swapped disableAutoInvite with enableAutoInvite. * src/config.py: Added new bool class usage. * src/bool.py: Added bool emulation from PyICQ for Python 2.2. * src/xmlconfig.py: Copied updated xmlconfig from PyICQ. * src/main.py: * src/misciq.py: * src/register.py: * src/session.py: * src/xdb.py: * src/utils.py: * src/jabw.py: * src/groupchat.py: * src/avatar.py: * src/contact.py: * src/config.py: * src/main.py: * src/disco.py: * src/legacy/defaultAvatar.png: * src/tlib/jabber/xmpp_stringprep.py: * config_example.xml: Applied bulk of changes to base code between PyMSN 0.9.1 and avatars branch. * src/main.py: Commented out respawn with correct name code. * src/tlib/oscar.py: Upgraded announced version of AIM that we are, which fixes extended message for available status. * src/main.py: * src/config.py: * config_example.xml: Added disableAutoInvite option to disable automatic invitations to reconnect upon startup. 2005-08-14 Robert Quattlebaum * src/main.py: Added code to send a "probe" presence to everyone registered on the transport, so that if they happen to be logged in when the transport starts up they are automaticly logged into the transport as well. Just be careful with restarting the transport frequently, this can very quickly annoy users! * src/xdb.py: Added a function to grab the JID's of all the registered users. Necessary to send the initial "probe" presence packets. 2005-08-12 Daniel Henninger * src/tlib/oscar.py: * src/legacy/aimt.py: * src/legacy/glue.py: * src/main.py: Applied patch from Robert B Quattlebaum, Jr. for extended status messages, send message upon disconnect, and various other feature additions. See: http://article.gmane.org/gmane.network.jabber.py-transports/780 * src/tlib/scheduler.py: * src/tlib/oscar.py: Applied Chris Carlin's new scheduler patches. 2005-06-13 Daniel Henninger * src/disco.py: Fixed type in debugging line. Applied patch from Magnus Henoch for proper error handling. 2005-04-28 Daniel Henninger * src/legacy/glue.py: Added translation of @ to %, instead of @ to nothing, and visa versa. 2005-04-26 Daniel Henninger * src/disco.py: Fixed bug 69 responding to result iq. 2005-04-07 Daniel Henninger * src/legacy/glue.py: * src/legacy/aimt.py: * src/tlib/oscar.py: Many modifications to get chatrooms to work via exchanges. 2005-04-05 Daniel Henninger * src/utils.py: Fixed another xmlify bug regarding unicode vs non-unicode. 2005-04-04 Daniel Henninger * src/utils.py: Fixed bug with xmlify not checking for string. * src/legacy/aimt.py: Fixed problem with variable being used before being set. 2005-03-22 Daniel Henninger * src/webadmin/.cvsignore: * src/tlib/jabber/.cvsignore: * src/tlib/.cvsignore: * src/legacy/.cvsignore: * src/.cvsignore: Removed legacy CVS files. 2005-03-20 Daniel Henninger * src/utils.py: Added Martin von Loewis's xmlify function. * src/main.py: Fixed what appears to be an infinite stream error loop. 2005-03-17 Daniel Henninger * src/tlib/oscar.py: * src/legacy/aimt.py: Added check for user to actually be online before vcard request. Bug id 42. * src/lang.py: Added useroffline. * src/jabw.py: Added error handler fix. * src/legacy/aimt.py: Fixed problem with spaces in invite names. Bug id 46. 2005-03-12 Daniel Henninger * src/legacy/aimt.py: Added lang import that was forgotten. Bug id 44 (Daniel Chandran). * src/legacy/aimt.py: Added patches for better handling of usernames with spaces. Feature id 15 (Daniel Chandran). * src/exception.py: * src/main.py: Added new exception handler. Feature id 13. * src/debug.py: Changed logging format slightly. Feature id 13. 2005-03-11 Daniel Henninger * src/main.py: Added required python version check. 2005-03-09 Daniel Henninger * src/tlib/oscar.py: Added fix for getting weird TLV for visibility. 2005-03-08 Daniel Henninger * src/utils.py: Added regex check for illegal control chars. Bug id 26 (Bastian Bense). * src/session.py: Fixed lack of calling SessionResource with all args. Bug id 24 (Bastian Bense). * src/legacy/glue.py: Repaired resourceOffline typo. Bug id 25 (Bastian Bense). 2005-03-07 Daniel Henninger * src/utils.py: Altered utf8encode to use tests offered by Florian. 2005-03-05 Daniel Henninger * src/legacy/aimt.py: Removed unnecessary error report. * src/main.py: * src/session.py: * src/register.py: * src/legacy/aimt.py: * src/legacy/glue.py: * src/xmlconfig.py: * src/config.py: * src/jabw.py: Applied some of James's PyMSNt 0.9.1 patches. 2005-03-03 Daniel Henninger * src/main.py: Added observer for stream errors. 2005-03-02 Daniel Henninger * src/tlib/oscar.py: * src/tlib/socks5.py: * src/tlib/sockserror.py: * src/legacy/aimt.py: * config_example.xml: * src/config.py: * AUTHORS: Applied Daniel Chandran's socks patches. 2005-02-27 Daniel Henninger * src/tlib/oscar.py: Applied Chris Carlin's threading patch. * src/disco.py: Applied Florian's error IQ patch. 2005-02-26 Daniel Henninger * INSTALL: Minor fix, partially to test hook scripts. * src/legacy/aimt.py: Added check for ICQ/AIM target user to determine htmlization. 2005-02-21 Daniel Henninger * PyAIMt: * config_example.xml: * src/debug.py: * src/disco.py: * src/groupchat,py: * src/jabw.py: * src/main.py: * src/misciq.py: * src/register.py: * src/xdb.py: Applied changes between PyMSNt 0.8 and 0.9, and misc others. * src/lang.py: Adjusted to check english if lang doesn't have own entry. * src/legacy/aimt.py: Added more exception handling. 2005-02-20 Daniel Henninger * src/main.py: Added auto-restart if not run with 'proper' process name. 2005-02-17 Daniel Henninger * src/legacy/icqt.py: Added check for whether buddy list is actually non-existant. * src/tlib/toc.py: * src/tlib/tocsupport.py: * src/tlib/locals.py: Removed old TOC support stuff. 2005-02-16 Daniel Henninger * src/tlib/oscar.py: Added check for readiness. * src/legacy/oscar: * src/legacy/toc: * src/legacy/__init__.py: * src/legacy/glue.py: * src/legacy/aimt.py: Removed TOC support and collapsed legacy tree. 2005-02-15 Daniel Henninger * src/jabw.py: Added unicode conversion. * src/stats.py: * src/main.py: * src/session.py: * src/webadmin/handler.py: * src/legacy/oscar/aimt.py: Changed to new stats handler. 2005-02-10 Daniel Henninger * src/debug.py: * src/main.py: * src/config.py: Added extended debugging support. * src/tlib/oscar.py: Fixed/finished groupchat support. 2005-02-09 Daniel Henninger * src/legacy/oscar/aimt.py: * src/tlib/oscar.py: More work on outgoing invitation support. 2005-02-08 Daniel Henninger * src/legacy/oscar/aimt.py: * src/tlib/oscar.py: Work on outgoing invitation support. 2005-02-07 Daniel Henninger * src/legacy/oscar/glue.py: * src/legacy/oscar/aimt.py: Invitation support added. * src/tlib/oscar.py: Invitation support added, sort of. Added Chris's rate limiting patch. 2005-02-06 Daniel Henninger * src/legacy/oscar/glue.py: * src/legacy/oscar/aimt.py: Finished groupchat support! 2005-02-05 Daniel Henninger * src/session.py: Changed ordering of session kills. (groupchat needs to be earlier) * src/legacy/oscar/glue.py: * src/legacy/oscar/oscar.py: Most of groupchat support completed. 2005-02-04 Daniel Henninger * src/disco.py: Imported part of Florian's version patch. 2005-02-03 Daniel Henninger * PyAIMt: Switched to /bin/sh. Then switched to /usr/bin/env. * src/config.py: * src/legacy/oscar/aimt.py: * config_example.xml: Added aimServer and aimPort config setting. 2005-01-18 Daniel Henninger * src/lang.py: * src/session.py: * src/register.py: * src/utils.py: * src/misciq.py: * src/main.py: * src/groupchat.py: Changed case of lang strings. 2005-01-17 Daniel Henninger * src/register.py: Fixed lack of config import. * src/legacy/oscar/glue.py: * src/legacy/toc/glue.py: Upped version number to 0.4a. 2005-01-15 Daniel Henninger * src/legacy/oscar/glue.py: * src/legacy/toc/glue.py: Upped version number to 0.4. * src/legacy/oscar/glue.py: Killed conference support until I get it working. * src/legacy/oscar/aimt.py: Altered to check for high id number. * src/tlib/oscar.py: Added extra crash prevention and delete-from-group support. 2005-01-14 Daniel Henninger * src/webadmin/handler.py: Added authentication support thanks to one of the folk in twisted.web. Switched shut down button to form-driven and to not generate errors. 2005-01-11 Daniel Henninger * src/register.py: Fixed bug from earlier config patches. 2005-01-10 Daniel Henninger * src/main.py: Added check for existance of nevow. 2005-01-09 Daniel Henninger * INSTALL: Updated to indicate config.xml needs to be changed. * config_example.xml: Added new-style config file. * src/config_example.py: Removed. * src/session.py: * src/legacy/oscar/aimt.py: Stats added. * src/webadmin: Webadmin interface imported. * src/main.py: * src/xmlconfig.py: * src/config.py: Arg handler added. Switching to xmlconfig. Stats + webadmin functionality added. * PyICQt: Altered to pass on args. 2005-01-04 Daniel Henninger * src/main.py: Removed unnecessary sys reference. 2004-12-30 Daniel Henninger * src/disco.py: Fixed 'not valid' response to version requests. 2004-12-28 Daniel Henninger * src/legacy/icqt.py: * src/tlib/oscar.py: * src/config_example.py: Added setProfile command as well as capability to do cross-im chat. 2004-12-25 Daniel Henninger * src/legacy/oscar/aimt.py: Undid patch to have transport subscribe back to users. * src/legacy/oscar/aimt.py: Applied patch to have transport subscribe back to users. * src/register.py: Applied patch from Magnus Henoch for interaction with ejabberd. 2004-12-23 Daniel Henninger * src/tlib: Many updates to clean up and add new requirements. * src/disco.py: * src/groupchat.py: * src/jabw.py: * src/legacy/oscar/glue.py: * src/legacy/oscar/icqt.py: * src/legacy/toc/glue.py: * src/legacy/toc/icqt.py: * src/main.py: * src/misciq.py: * src/register.py: Updated to match recent MSN code more accurately. 2004-12-14 Daniel Henninger * src/jabw.py: Applied patch to messageIDs handling as suggested by macbar. 2004-12-13 Daniel Henninger * src/tlib/oscar.py: Fixed html handler to not translate ". * src/session.py: * src/register.py: * src/legacy/oscar/glue.py: * src/legacy/toc/glue.py: Removed references to unused nicknames. 2004-12-05 Daniel Henninger * PyAIMt: * src/groupchat.py: * src/jabw.py: * src/utils.py: * src/session.py: * src/legacy/oscar/glue.py: * src/legacy/toc/glue.py: * src/xdb.py: Ported PyMSNt changes to check for pid file, add typing notifications, memory leak fixes, etc. Based around PyMSN-t 0.8 upgrades. 2004-11-30 Daniel Henninger * src/register.py: Changed username to be lowercased in registration. 2004-11-29 Daniel Henninger * src/tlib/oscar.py: * src/legacy/oscar/aimt.py: Added better vcard support. 2004-11-28 Daniel Henninger * src/session.py: * src/legacy/oscar/aimt.py: * src/legacy/toc/aimt.py: Added registered munge handling. 2004-11-21 Daniel Henninger * src/tlib: Added 'twisted library', stuff that won't really be in twisted long. * src/legacy/oscar.py: Hrm, had icqcon instead of aimcon. Dumb. =) * src/lang.py: Added french language from Pyros! 2004-10-10 Daniel Henninger * src/disco.py: Spelling fix. * src/main.py: Fixed path bug, I think. 2004-10-09 Daniel Henninger * src/lang.py: Added dutch. 2004-10-06 Daniel Henninger * src/legacy/oscar/aimt.py: Added better error display. 2004-10-05 Daniel Henninger * src/lang.py: Fixed up locale defs. * src/legacy/oscar/aimt.py: * src/legacy/oscar/glue.py: Added patches as per PyICQ-t changes for away problems. 2004-10-03 Daniel Henninger * src/main.py: Prepend . to module path to catch patched twisted properly. 2004-09-30 Daniel Henninger * src/legacy/oscar/aimt.py: Fixed contact list handling support. 2004-09-29 Daniel Henninger * src/legacy/oscar/aimt.py: * src/legacy/toc/aimt.py: Set default to "replace" in encoding/decoding. 2004-09-26 Daniel Henninger * src/lang.py: Added Polish translation. * src/legacy/oscar/aimt.py: Now we retrieve away messages. Don't save during initial import. Also, don't save if no changes. Fixed poor handling of incoming messages. 2004-09-09 Daniel Henninger * *: Initial setup of code and distribution. I'm not doing real changelog stuff until I get to a certain point. pyaimt-0.8.0.1/INSTALL000066400000000000000000000106741124450770300142250ustar00rootroot00000000000000More thorough install/configuration documents are available at: http://pyaim-t.blathersource.org/ There's really not much to the install at the moment. It's important to make sure you have the following installed: - Jabber ;D - Python Python (>= 2.2.0) http://www.python.org/ - Twisted (www.twistedmatrix.com) Twisted 1.0 Based: Twisted 1.3.0 http://twistedmatrix.com/products/download PLEASE NOTE: The web interface no longer works with Twisted 1.*. Twisted 2.0 Based: Note: You can dodge most of this by installing TwistedSumo, which contains all of the below and then some, including a copy of Zope Interface. Zope Interface (>= 3.0.1) http://www.zope.org/Products/ZopeInterface [ or ZopeX3 (>= 3.0.0c1) http://www.zope.org/Products/ZopeX3 ] Twisted (>= 2.0.0) http://twistedmatrix.com/projects/core/ TwistedWeb (>= 0.5.0) http://twistedmatrix.com/projects/web/ TwistedWords (>= 0.1.0) http://twistedmatrix.com/projects/words/ TwistedXish (>= 0.1.0) http://twistedmatrix.com/projects/xish/ - Optional: nevow (http://www.nevow.org/) for web interface nevow (>= 0.4.1) http://www.nevow.org/ - Optional: epoll for epoll reactor choice epoll (>= 0.4) http://msn-transport.jabberstudio.org/?page=downloads - Optional: python mysql interface for mysql xdb backend mysql-python (>= 1.0.0) http://sourceforge.net/projects/mysql-python Then, in the same directory as this INSTALL, copy config_example.xml to config.xml and edit config.xml. Change the jid to the Jabber ID you want this transport to answer as. Change mainServer to the IP address or DNS name of your Jabber server. Change secret to the shared secret between transports and your Jabber server (should be in router.xml for Jabberd2). Change port to the port this transport is to connect to (also found in router.xml for Jabberd2). Edit other options at your leisure, they are fairly self-documented. If you are migrating from the C-based aim-transport, you can copy over your spool directory into the same directory that this INSTALL file is. (make the jid field is set to the same name as this spool directory) If you are starting a fresh spool directory, simply mkdir the same name you used in the jid field. Note that you can set the actual location of the spool directory if you want, instead of having to put it in this directory. If you want PyAIMt to retain backwards compatibility with the C-based aim-transport, make sure to set xdbDriver to legacyaimtransport. With Jabberd2, there's little else you need to do than run PyAIMt in this directory. It's important to know that you should -not- have an alias line in your router.xml for PyAIM-t's main jid. You will probably want to create a user for the transport to authenticate as (using SASL) in your roster-users.xml file, and give that user bind access in sm.xml. Set the user as saslUser in your config file and secret will be used as the password. At that point, the transport will use Jabberd2's own component protocol to identify itself as every JID it's expecting to take care of. Be sure to also enable useJ2Component so that the transport properly binds as all of it's JIDs. Note: the following instructions are provided almost word for word from James Bunton, just modified for AIM. ;) With Jabberd1, you need to add something like the following to jabber.xml: aim.host.com chatrooms.aim.host.com 127.0.0.1 XXXX secret Check that aim.host.com is the same as the 'jid' setting from config.xml and that XXXX is the same as the 'port' setting. Also 'secret' must correspond, and the 'mainServer' setting should be pointing to the same interface as the tag is (in this example the loopback interface is used. So 'mainServer' would be '127.0.0.1'). You must also add this to the browse section of your jabber.xml file jabber:iq:register Once again, aim.host.com must correspond to the 'jid' setting in config.xml Once you have made all these changes, restart your Jabberd1.4.x server, then start PyAIMt and it should all work. Note that the documentation on the web site is sometimes a tad more thorough, so you will want to look at http://pyaim-t.blathersource.org/. pyaimt-0.8.0.1/NEWS000066400000000000000000000061531124450770300136700ustar00rootroot000000000000000.8a: * Fixes for delayed in packets getting through to AIM. * Fixes for AIM protocol changes regarding away messages and contacts. * Lots of stability improvements. 0.8: * Support for newer Twisted versions. * Improved ad-hoc command support. * Improved daemonized mode support. * Improved roster import support. * Support for vcard filtering (JEP-0164). * Improved unicode handling. * Fixes for handling of AIM permissions. * More thorough avatar support. * Added support for MySQL database encrypted passwords. * Lots of misc other improvements. 0.7c: * Web interface now only functions under Twisted 2.*. * Fixed to work with newer Twisted releases. * Partial support for iChat "iTunes URLs". * Web interface now includes information about your account. * Web interface now uses Jabber authentication instead of custom. * Added cross-platform capable startup script. (python PyAIMt.py) * Restructured code a fair amount. * New more informative debug logging. * Support for directly transferred buddy icons. 0.7b: * Added Jabberd2 component protocol support. 0.7: * Script added to migrate between XDB formats/backends. * Script added to view/manage buddy list directly. * Spool encryption (for xmlfiles driver) is now driver-specific config option. * Default driver is now xmlfiles. * Backwards compatible (c-based aim transport) driver is legacyaimtransport. * MySQL XDB driver. * Support for multiple drivers for XDB. * Improved language layout. * Chat State Notifications (JEP-0085) support. * XHTML support. * Ad-Hoc commands added to handle AIM specific tasks. * Email notification support added. * Added ability to daemonize from command line option. * Directory search functionality added. * Support for Avatars/Buddy Icons. * Non-ascii character support improved. * Support for Ad-Hoc commands. * Groupchat moved to separate jid. Please see online docs. * Improved disco support. * Improvements for running under Python 2.2. * Improved notification of errors to user. * New option to encrypt passwords in spool. * Profile now set based off vcard DESC field. * Support for choices of poll reactors. 0.6: * Support for @mac.com screen names. * Support for chat room exchanges. * Better unicode support. * Support for extended status messages. * Contact users upon disconnection. * Support for displaying idle times. * Improved rate limit handling. 0.5: * Socks5 support. * SSI buddy list handling that works corrrectly. * No more TOC support. * Groupchat/chat room support. * Rate limit handling. 0.4: * Added typing notifications. * Brand new configuration file style (now xml based). * Web administration interface added w/ statistics gathering. * PyAIMt now accepts args (-h for list). * Cross-im chat option. (can chat with ICQ users via AIM) * Now works correctly with ejabberd. 0.3: * Now handles /registered from older transports. * Slight vCard support. 0.2: * Incorporation of many improvements applied to PyICQ. * Incorporation of 'words' pieces of Twisted into main dist, since it is not going to be a part of Twisted for long. 0.1: * First release, base AIM chat support pyaimt-0.8.0.1/PyAIMt000077500000000000000000000004241124450770300142150ustar00rootroot00000000000000#!/usr/bin/env bash # # This is just a temporary wrapper to get folk used to starting up PyAIMt # in a different manner. # echo "This script is deprecated and will vanish in a future version." echo "PyAIMt should be started with: python PyAIMt.py" sleep 2 python ./PyAIMt.py pyaimt-0.8.0.1/PyAIMt.py000077500000000000000000000005171124450770300146470ustar00rootroot00000000000000#!/usr/bin/env python # Make 'cwd'/src in the PYTHONPATH import sys, os, os.path PATH = os.path.abspath(os.path.dirname(sys.argv[0])) os.chdir(PATH) PATH = os.path.join(PATH, "src") sys.path[0] = PATH # Start the service import main if main.profilelog: import profile profile.run('main.main()', main.profilelog) else: main.main() pyaimt-0.8.0.1/README000066400000000000000000000014741124450770300140520ustar00rootroot00000000000000 _/_/_/ _/_/ _/_/_/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/_/ _/_/ _/_/_/_/ _/_/_/ _/ _/ _/_/_/_/ _/ _/ _/ _/ _/_/_/_/_/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/_/_/ _/ _/ _/_/_/ _/ _/ _/_/ _/ _/_/ AIM Transport for Jabber, implemented with Python and Twisted See AUTHORS for developers. This project is based off of James Bunton's PyMSNt code. See INSTALL for installation instructions. Also see web site at http://pyaim-t.blathersource.org/ for more detailed documentation. pyaimt-0.8.0.1/config_example.xml000066400000000000000000000155771124450770300167050ustar00rootroot00000000000000 aim.example.org chatrooms.aim.example.org . PyAIMt.pid 127.0.0.1 jabber.localhost http://jabber.localhost/ 5347 secret en login.oscar.aol.com 5190 pyaimt-0.8.0.1/data/000077500000000000000000000000001124450770300140755ustar00rootroot00000000000000pyaimt-0.8.0.1/data/defaultAIMAvatar.png000066400000000000000000000072241124450770300177220ustar00rootroot00000000000000‰PNG  IHDR``ÕF‡ gAMAÖØÔOX2tEXtSoftwareAdobe ImageReadyqÉe<ýPLTEˆ‡‡÷ãÓóóòô×^ÿÒ ô´*÷Ç7(ýÓýþýé¦Yê¨lé–'üÄߺP<ôº,ªªªåHôÄ^þÊøøøÙ´ó”&þÚ ¦‰ôÇJõÙaýÎè¤Jì·†“y·¶¶öÜÇô¢)þÎõµ5ôž)°ŽËËÊöÙŒúÍõÑb÷º_ò×|ÜÜÛÃÃÃUUUõÉ-ÿÙÁœ YGöä‡Ô´õµ^ÿÕõ¾]ö×1kkk„hóÍõÎaë³yôÔ»Ó«õѤ¥¤õÉaõ¥*ó¦8íí픓”ñʫŔKè–ô¬))ùóºIIIó£A͘7ñ%÷Ð-ž† ôµ)q ÷ë¡nNöꜺ–úÍÔÒÓliuèŽ/aK îÏ þÔýÍ ì¼Nó–'õÞmøÊ ÿÌúÊõÏyýöñó›)ò—(ñ’%ûÕxxvtjfùãªõÓcïºl }~ë(ó¸'ô¦)  ihdÑÏÏ©§¸ñ‘% š—ŸPONñ’&øè–®” ô¾OŽŽŽŸõ­5îÉË¡϶Ö«¤ˆnúîº ñ‘$øñ¦÷ÅkŸ¡þûø²–ð—ì½T² øÓúÖ ƒ^ òβòÒgõÄQóËQ¥ïÇW€e ææç…s¼­£¯¯¯ò¡)öß|î§/ð™/ò× ggfpooúéÝõ¤'üÎþÊöª,øí£ß¾_^\åÄòÕoãÃðÁ-øâ”hPúûù¾¿¾ÁÄ¿ÓÊÌþÌÿÿÿ Ó—tRNSÿÿ×Ê A IDATxÚì™{PçÀÃ@#»¡F.æZˆñÁÓòv@œ’NÕ¨$Ú@£a¥„ZµJ«N]•µ6 ‚(ˆ#hÕÐn‰ª­´j[iÚJö ÚŠªk[ÛáÞÌ7÷|›6¨-AûÇËq‘Ýó=¿ÝýÎwÎÙEàý7‹`0 †C€ÿA@dxJPPXø¯;¼Î„‡¥„GÚ}ªßö‡mº¾yâ¯ÛÃrúr¶ÿ:qóõM‹Þî—:8ÿ)Ÿ.úèúæÍ›®.\½è›0/>À+ì›E ^¸ióæë-ú4eî½ü¾œx~$';&.,\}~Fj uÆùÕ… 'îpŒŸŸø¥Ÿ—Çþs‡íæ8ä°a#Ï/,|{F¤ 9ãíÂ…ç±Þi°cX®§¿s#åÉÒ¿þîçøÁÁ¥üñ‘çü<óÿÌSxô–á Œ)Ü]àì.óÖqƒXÀø©g<„-å¼rž2wÁ‡a—0àR؇ 溴.«KÃîâ*:úŽ7ðà X<‡=e–™97sÿ˜ H³23¹GæžsšÞé•VbUºë¿’H^wˆä…¯22w÷þ TwjÐþÝs]º¯^è5”}ÑÏ}Æ)Ô+§2ø#þ¼¾qãFŸ>œŒ>ö§,ð x‡û-pí°Ó_ÀßÝ¿¹‰’xÍçi¾Œ>6KÂîƒþoÿƒ»¸Ãc£ÝŒ|^sP?1ðO¿òä’%OÂϪU«–<î>>X ð.8ø1ìΞý7ÀY<‰­Ÿv¬qxeòó'Ô9ö×ðøä7`sJÖå÷Æ&̎À¸Ù°›ðÞå,×(gºj‰ ‰sY1ÓŽåwØÔ7ode=ä&QSÆŽ›†QXìN‰rÏÊzƒ?ó¸è°;ÅTÊEÓ¼^Àå®®¨®(žìy|J\ÜØ\ È7åñ=üQ0îºÌtcæçí}’5Ý®T”µÇ)‹Æ¥¡fm\\EŽÀ;§".nmMƒC‹Ç’”ÓÐcwsxþí&3hô®LWÐk` © Ñà_í qkýñBó_×ÐŽ5šÇ86lXÜUЗïb±ÿ»›„b]¬‹Pe Ñ€àÿŒÇ^ûÚ / ðªXÛÎ 8†vƨ ^>ÍÆÎBÝ3m ËvYtÕ´4¶·76[Ú5íí-GCŽú;’?ì¶€JÓÞ€]KMW/†´ì°ãHÒöVˆ¬š#>ÝhÔ4âKmo ™îåxM(\}£ÆhÄcKMV¿næaÀóý Ëë5Éõ¹¶\Õ€‡#P4!Ós\õ g:<PÂ%5G³çšO®wÿUp§;hê+È‰ÏªÅÆ—ð-p¢áü;KfÎtSÝ&‹WùH$ne9^q÷oÂë¹/å¥Üš5Kâs-*\!\^ÊäýÈÜ— ¸`ÈuÍG2kÖ-7@ 仯c]L`}ârŒxñ¡(XR{*Â/¹·-—Â+°>ꡱûå‰ëÝ‹ùàÌöümS0¿Ïâ‡uë—›%‘\û1×ÿÌ¥Û¯Kgüs¼&‘Ì·<1qýºÜ\œNàûÿ'Ö<Ûg‘ôêËëÆbù¿È»·Ž‘~–ƒûqë^~5Éû¶[@¥¦^ÿ¯ØÜo`TQ ¦ÞJ¼úç½iê…Ä[SÁ}RÑ(7ý(’ËviÎEÆe"’g¢MJêÎk|05ò¯šßÈ©šòº“’´ý å`BÄœ9¡¥Ž‚À;÷ðͼ¤î}‚ÀÓ=Ý]÷œìëNÊ»yØ]¯í_ÑøW£ÍÌu¢¼ÌVÄõ¦æ´xbò^1¡šd¦!àz<LÃe²ö`_q™¯ê„Ҳ朶A…@¢*ß2±oðµ¸|N8 :(»´yÃYߪ`3¾|}¿æ³SoÂ\å{v\?˜#4jàwÍ5E,ÍTž¼!‚öº­¯Š†—f$ºq²’¡Y®5Êöd’cöQègèNH$4æŽ}UÏ|Ä@"‘`ö3¢öÅx¸Ð¢•V\ˆiÔÌÜ%Ècõ ÓŒh\ž­ÊèAä¢NX ,~—±Þ¥ùï´â÷x:†ÎA¦ë6î%ݵ¶gsá{ªmðg^tvIwO‚Î./æžjrôß ŽDý©ñÿð_$9FŒ¹šÑQIEND®B`‚pyaimt-0.8.0.1/data/defaultICQAvatar.png000066400000000000000000000072241124450770300177300ustar00rootroot00000000000000‰PNG  IHDR``ÕF‡ gAMAÖØÔOX2tEXtSoftwareAdobe ImageReadyqÉe<ýPLTEˆ‡‡÷ãÓóóòô×^ÿÒ ô´*÷Ç7(ýÓýþýé¦Yê¨lé–'üÄߺP<ôº,ªªªåHôÄ^þÊøøøÙ´ó”&þÚ ¦‰ôÇJõÙaýÎè¤Jì·†“y·¶¶öÜÇô¢)þÎõµ5ôž)°ŽËËÊöÙŒúÍõÑb÷º_ò×|ÜÜÛÃÃÃUUUõÉ-ÿÙÁœ YGöä‡Ô´õµ^ÿÕõ¾]ö×1kkk„hóÍõÎaë³yôÔ»Ó«õѤ¥¤õÉaõ¥*ó¦8íí픓”ñʫŔKè–ô¬))ùóºIIIó£A͘7ñ%÷Ð-ž† ôµ)q ÷ë¡nNöꜺ–úÍÔÒÓliuèŽ/aK îÏ þÔýÍ ì¼Nó–'õÞmøÊ ÿÌúÊõÏyýöñó›)ò—(ñ’%ûÕxxvtjfùãªõÓcïºl }~ë(ó¸'ô¦)  ihdÑÏÏ©§¸ñ‘% š—ŸPONñ’&øè–®” ô¾OŽŽŽŸõ­5îÉË¡϶Ö«¤ˆnúîº ñ‘$øñ¦÷ÅkŸ¡þûø²–ð—ì½T² øÓúÖ ƒ^ òβòÒgõÄQóËQ¥ïÇW€e ææç…s¼­£¯¯¯ò¡)öß|î§/ð™/ò× ggfpooúéÝõ¤'üÎþÊöª,øí£ß¾_^\åÄòÕoãÃðÁ-øâ”hPúûù¾¿¾ÁÄ¿ÓÊÌþÌÿÿÿ Ó—tRNSÿÿ×Ê A IDATxÚì™{PçÀÃ@#»¡F.æZˆñÁÓòv@œ’NÕ¨$Ú@£a¥„ZµJ«N]•µ6 ‚(ˆ#hÕÐn‰ª­´j[iÚJö ÚŠªk[ÛáÞÌ7÷|›6¨-AûÇËq‘Ýó=¿ÝýÎwÎÙEàý7‹`0 †C€ÿA@dxJPPXø¯;¼Î„‡¥„GÚ}ªßö‡mº¾yâ¯ÛÃrúr¶ÿ:qóõM‹Þî—:8ÿ)Ÿ.úèúæÍ›®.\½è›0/>À+ì›E ^¸ióæë-ú4eî½ü¾œx~$';&.,\}~Fj uÆùÕ… 'îpŒŸŸø¥Ÿ—Çþs‡íæ8ä°a#Ï/,|{F¤ 9ãíÂ…ç±Þi°cX®§¿s#åÉÒ¿þîçøÁÁ¥üñ‘çü<óÿÌSxô–á Œ)Ü]àì.óÖqƒXÀø©g<„-å¼rž2wÁ‡a—0àR؇ 溴.«KÃîâ*:úŽ7ðà X<‡=e–™97sÿ˜ H³23¹GæžsšÞé•VbUºë¿’H^wˆä…¯22w÷þ TwjÐþÝs]º¯^è5”}ÑÏ}Æ)Ô+§2ø#þ¼¾qãFŸ>œŒ>ö§,ð x‡û-pí°Ó_ÀßÝ¿¹‰’xÍçi¾Œ>6KÂîƒþoÿƒ»¸Ãc£ÝŒ|^sP?1ðO¿òä’%OÂϪU«–<î>>X ð.8ø1ìΞý7ÀY<‰­Ÿv¬qxeòó'Ô9ö×ðøä7`sJÖå÷Æ&̎À¸Ù°›ðÞå,×(gºj‰ ‰sY1ÓŽåwØÔ7ode=ä&QSÆŽ›†QXìN‰rÏÊzƒ?ó¸è°;ÅTÊEÓ¼^Àå®®¨®(žìy|J\ÜØ\ È7åñ=üQ0îºÌtcæçí}’5Ý®T”µÇ)‹Æ¥¡fm\\EŽÀ;§".nmMƒC‹Ç’”ÓÐcwsxþí&3hô®LWÐk` © Ñà_í qkýñBó_×ÐŽ5šÇ86lXÜUЗïb±ÿ»›„b]¬‹Pe Ñ€àÿŒÇ^ûÚ / ðªXÛÎ 8†vƨ ^>ÍÆÎBÝ3m ËvYtÕ´4¶·76[Ú5íí-GCŽú;’?ì¶€JÓÞ€]KMW/†´ì°ãHÒöVˆ¬š#>ÝhÔ4âKmo ™îåxM(\}£ÆhÄcKMV¿næaÀóý Ëë5Éõ¹¶\Õ€‡#P4!Ós\õ g:<PÂ%5G³çšO®wÿUp§;hê+È‰ÏªÅÆ—ð-p¢áü;KfÎtSÝ&‹WùH$ne9^q÷oÂë¹/å¥Üš5Kâs-*\!\^ÊäýÈÜ— ¸`ÈuÍG2kÖ-7@ 仯c]L`}ârŒxñ¡(XR{*Â/¹·-—Â+°>ꡱûå‰ëÝ‹ùàÌöümS0¿Ïâ‡uë—›%‘\û1×ÿÌ¥Û¯Kgüs¼&‘Ì·<1qýºÜ\œNàûÿ'Ö<Ûg‘ôêËëÆbù¿È»·Ž‘~–ƒûqë^~5Éû¶[@¥¦^ÿ¯ØÜo`TQ ¦ÞJ¼úç½iê…Ä[SÁ}RÑ(7ý(’ËviÎEÆe"’g¢MJêÎk|05ò¯šßÈ©šòº“’´ý å`BÄœ9¡¥Ž‚À;÷ðͼ¤î}‚ÀÓ=Ý]÷œìëNÊ»yØ]¯í_ÑøW£ÍÌu¢¼ÌVÄõ¦æ´xbò^1¡šd¦!àz<LÃe²ö`_q™¯ê„Ҳ朶A…@¢*ß2±oðµ¸|N8 :(»´yÃYߪ`3¾|}¿æ³SoÂ\å{v\?˜#4jàwÍ5E,ÍTž¼!‚öº­¯Š†—f$ºq²’¡Y®5Êöd’cöQègèNH$4æŽ}UÏ|Ä@"‘`ö3¢öÅx¸Ð¢•V\ˆiÔÌÜ%Ècõ ÓŒh\ž­ÊèAä¢NX ,~—±Þ¥ùï´â÷x:†ÎA¦ë6î%ݵ¶gsá{ªmðg^tvIwO‚Î./æžjrôß ŽDý©ñÿð_$9FŒ¹šÑQIEND®B`‚pyaimt-0.8.0.1/data/www/000077500000000000000000000000001124450770300147215ustar00rootroot00000000000000pyaimt-0.8.0.1/data/www/css/000077500000000000000000000000001124450770300155115ustar00rootroot00000000000000pyaimt-0.8.0.1/data/www/css/style.css000066400000000000000000000044221124450770300173650ustar00rootroot00000000000000BODY { background-color: #dfefff; font-family: Arial, Helvetica, sans-serif; margin-top: 0.0px; margin-bottom: 0.0px; margin-left: 0.0px; margin-right: 0.0px; } P.intro { margin-top: 10.0px; margin-left: 10.0px; margin-right: 10.0px; margin-bottom: 10.0px; } SPAN.title { font-family: Arial, Helvetica, sans-serif; font-size: 200%; font-weight: bolder; border-left: 2.0px solid #000000; border-top: 2.0px solid #000000; border-right: 2.0px solid #bbccff; border-bottom: 2.0px solid #bbccff; padding-top: 2.0px; padding-bottom: 2.0px; padding-left: 50.0px; padding-right: 50.0px; } SPAN.name { font-family: Arial, Helvetica, sans-serif; font-size: 100%; font-weight: bold; } SPAN.version { font-family: Arial, Helvetica, sans-serif; font-size: 100%; font-weight: bold; } TR.title { background-color: #b3cde7; } TD.menu { background-color: #cfdfee; } TD.menuentrypressed { background-color: #bbccff; border-left: 2.0px solid #000000; border-top: 2.0px solid #000000; border-right: 2.0px solid #bbccff; border-bottom: 2.0px solid #bbccff; } TD.menuentry { background-color: #bbccff; border-right: 2.0px solid #000000; border-bottom: 2.0px solid #000000; border-left: 2.0px solid #bbccff; border-top: 2.0px solid #bbccff; } A, A:visited { color: #000000; } A:hover { color: #777777; } A.menuentry, A:visited.menuentry { text-decoration: none; } A:hover.menuentry { text-decoration: none; color: #000000; } A.control { color: #000000; text-decoration: none; background-color: #bbccff; border-right: 2.0px solid #000000; border-bottom: 2.0px solid #000000; border-left: 2.0px solid #bbccff; border-top: 2.0px solid #bbccff; } A:hover.control { color: #000000; text-decoration: none; background-color: #bbccff; border-left: 2.0px solid #000000; border-top: 2.0px solid #000000; border-right: 2.0px solid #bbccff; border-bottom: 2.0px solid #bbccff; } pyaimt-0.8.0.1/data/www/images/000077500000000000000000000000001124450770300161665ustar00rootroot00000000000000pyaimt-0.8.0.1/data/www/images/pyaim.png000066400000000000000000000072241124450770300200200ustar00rootroot00000000000000‰PNG  IHDR``ÕF‡ gAMAÖØÔOX2tEXtSoftwareAdobe ImageReadyqÉe<ýPLTEˆ‡‡÷ãÓóóòô×^ÿÒ ô´*÷Ç7(ýÓýþýé¦Yê¨lé–'üÄߺP<ôº,ªªªåHôÄ^þÊøøøÙ´ó”&þÚ ¦‰ôÇJõÙaýÎè¤Jì·†“y·¶¶öÜÇô¢)þÎõµ5ôž)°ŽËËÊöÙŒúÍõÑb÷º_ò×|ÜÜÛÃÃÃUUUõÉ-ÿÙÁœ YGöä‡Ô´õµ^ÿÕõ¾]ö×1kkk„hóÍõÎaë³yôÔ»Ó«õѤ¥¤õÉaõ¥*ó¦8íí픓”ñʫŔKè–ô¬))ùóºIIIó£A͘7ñ%÷Ð-ž† ôµ)q ÷ë¡nNöꜺ–úÍÔÒÓliuèŽ/aK îÏ þÔýÍ ì¼Nó–'õÞmøÊ ÿÌúÊõÏyýöñó›)ò—(ñ’%ûÕxxvtjfùãªõÓcïºl }~ë(ó¸'ô¦)  ihdÑÏÏ©§¸ñ‘% š—ŸPONñ’&øè–®” ô¾OŽŽŽŸõ­5îÉË¡϶Ö«¤ˆnúîº ñ‘$øñ¦÷ÅkŸ¡þûø²–ð—ì½T² øÓúÖ ƒ^ òβòÒgõÄQóËQ¥ïÇW€e ææç…s¼­£¯¯¯ò¡)öß|î§/ð™/ò× ggfpooúéÝõ¤'üÎþÊöª,øí£ß¾_^\åÄòÕoãÃðÁ-øâ”hPúûù¾¿¾ÁÄ¿ÓÊÌþÌÿÿÿ Ó—tRNSÿÿ×Ê A IDATxÚì™{PçÀÃ@#»¡F.æZˆñÁÓòv@œ’NÕ¨$Ú@£a¥„ZµJ«N]•µ6 ‚(ˆ#hÕÐn‰ª­´j[iÚJö ÚŠªk[ÛáÞÌ7÷|›6¨-AûÇËq‘Ýó=¿ÝýÎwÎÙEàý7‹`0 †C€ÿA@dxJPPXø¯;¼Î„‡¥„GÚ}ªßö‡mº¾yâ¯ÛÃrúr¶ÿ:qóõM‹Þî—:8ÿ)Ÿ.úèúæÍ›®.\½è›0/>À+ì›E ^¸ióæë-ú4eî½ü¾œx~$';&.,\}~Fj uÆùÕ… 'îpŒŸŸø¥Ÿ—Çþs‡íæ8ä°a#Ï/,|{F¤ 9ãíÂ…ç±Þi°cX®§¿s#åÉÒ¿þîçøÁÁ¥üñ‘çü<óÿÌSxô–á Œ)Ü]àì.óÖqƒXÀø©g<„-å¼rž2wÁ‡a—0àR؇ 溴.«KÃîâ*:úŽ7ðà X<‡=e–™97sÿ˜ H³23¹GæžsšÞé•VbUºë¿’H^wˆä…¯22w÷þ TwjÐþÝs]º¯^è5”}ÑÏ}Æ)Ô+§2ø#þ¼¾qãFŸ>œŒ>ö§,ð x‡û-pí°Ó_ÀßÝ¿¹‰’xÍçi¾Œ>6KÂîƒþoÿƒ»¸Ãc£ÝŒ|^sP?1ðO¿òä’%OÂϪU«–<î>>X ð.8ø1ìΞý7ÀY<‰­Ÿv¬qxeòó'Ô9ö×ðøä7`sJÖå÷Æ&̎À¸Ù°›ðÞå,×(gºj‰ ‰sY1ÓŽåwØÔ7ode=ä&QSÆŽ›†QXìN‰rÏÊzƒ?ó¸è°;ÅTÊEÓ¼^Àå®®¨®(žìy|J\ÜØ\ È7åñ=üQ0îºÌtcæçí}’5Ý®T”µÇ)‹Æ¥¡fm\\EŽÀ;§".nmMƒC‹Ç’”ÓÐcwsxþí&3hô®LWÐk` © Ñà_í qkýñBó_×ÐŽ5šÇ86lXÜUЗïb±ÿ»›„b]¬‹Pe Ñ€àÿŒÇ^ûÚ / ðªXÛÎ 8†vƨ ^>ÍÆÎBÝ3m ËvYtÕ´4¶·76[Ú5íí-GCŽú;’?ì¶€JÓÞ€]KMW/†´ì°ãHÒöVˆ¬š#>ÝhÔ4âKmo ™îåxM(\}£ÆhÄcKMV¿næaÀóý Ëë5Éõ¹¶\Õ€‡#P4!Ós\õ g:<PÂ%5G³çšO®wÿUp§;hê+È‰ÏªÅÆ—ð-p¢áü;KfÎtSÝ&‹WùH$ne9^q÷oÂë¹/å¥Üš5Kâs-*\!\^ÊäýÈÜ— ¸`ÈuÍG2kÖ-7@ 仯c]L`}ârŒxñ¡(XR{*Â/¹·-—Â+°>ꡱûå‰ëÝ‹ùàÌöümS0¿Ïâ‡uë—›%‘\û1×ÿÌ¥Û¯Kgüs¼&‘Ì·<1qýºÜ\œNàûÿ'Ö<Ûg‘ôêËëÆbù¿È»·Ž‘~–ƒûqë^~5Éû¶[@¥¦^ÿ¯ØÜo`TQ ¦ÞJ¼úç½iê…Ä[SÁ}RÑ(7ý(’ËviÎEÆe"’g¢MJêÎk|05ò¯šßÈ©šòº“’´ý å`BÄœ9¡¥Ž‚À;÷ðͼ¤î}‚ÀÓ=Ý]÷œìëNÊ»yØ]¯í_ÑøW£ÍÌu¢¼ÌVÄõ¦æ´xbò^1¡šd¦!àz<LÃe²ö`_q™¯ê„Ҳ朶A…@¢*ß2±oðµ¸|N8 :(»´yÃYߪ`3¾|}¿æ³SoÂ\å{v\?˜#4jàwÍ5E,ÍTž¼!‚öº­¯Š†—f$ºq²’¡Y®5Êöd’cöQègèNH$4æŽ}UÏ|Ä@"‘`ö3¢öÅx¸Ð¢•V\ˆiÔÌÜ%Ècõ ÓŒh\ž­ÊèAä¢NX ,~—±Þ¥ùï´â÷x:†ÎA¦ë6î%ݵ¶gsá{ªmðg^tvIwO‚Î./æžjrôß ŽDý©ñÿð_$9FŒ¹šÑQIEND®B`‚pyaimt-0.8.0.1/data/www/template.html000066400000000000000000000016431124450770300174260ustar00rootroot00000000000000 PyAIM-t Web Administration
PyAIM-t