Revision history for Perl extension e2interface. 0.34 Thu Aug 07 2003 - Fixed a bug in E2::Interface::extract_cookies: either HTTP::Cookies or e2's server is unreliable as to whether is structures the cookie as 'userpass="...";' or 'userpass=...;'. I believe this hit me before, so I switched from one to the other--now I realize it needs to cover both. - I think I finally found a usable workaround for the issue of E2 not escaping titles. E2::Interface:: post_process now escapes all '<', '>', and '&' between "" and "". 0.33 Sun Jul 20 2003 - Resolved a problem with E2::Interface::parse_twig and unicode, so we no longer have to strip unicode to avoid parse errors. - Updated E2::Interface::post_process to leave unicode intact--this also removes the requirement for Unicode::String. Also modified the demoronizer to convert nonstandard Microsoft encoding to html entities. - Fixed a bug that caused E2::E2Node::get_my_writeup to often return undef even if the user has a writeup in the selected node. - Various fixes to E2::UserSearch::compare (added a couple new keys, fixed a bug that terminated execution). - Added softlink parameter to E2::Node::load and E2::Node::load_by_id. - Removed 'TYPE' parameter in E2::Node::load_by_id and E2::Node::load_from_xml, because, basically, it didn't make any sense. - Changed a bunch of use()s to require()s in E2::Interface so use_threads runs much, much faster if called early. - Added a third parameter to E2::Interface::thread_then to allow a piece of code to be run after the deferred method finishes, regardless of whether exceptions were thrown. - Fixed a couple bugs in E2::Interface::finish that were causing strange behaviour when it was called without a specified job. - Added a workaround to the various e2 xmltrue exports that don't in fact escape fields that they should be escaping (E2::Interface::post_process) 0.32 Wed Jun 18 2003 - Removed E2::Ticker::scratch_pad and created E2::Scratchpad, adding the ability to update scratchpads. - Various documentation tweaking and updating (writing a script to autoupdate online docs) - Added the ability to use multiple parameters in calls to the E2::Message methods archive, unarchive, and delete; added E2::Message::perform to allow a list of messages to be archived, unarchived, and deleted all in the same HTTP request. - Added E2::Writeup::vote (basically redundant with E2::E2Node::vote, but E2::Writeup should have the method as well for the sake of intuitiveness (intuititon?). - Added E2::Writeup::reply - E2::E2Nodes now call clone() on any E2::Writeups they create. - Created generate_e2_docs, a script that automatically keeps e2interface's online documentation up-to-date with each release. - Fixed a bug in E2::Writeup::update that caused a run-time error. 0.31 Tue Jun 10 2003 - Fixed a bug in E2::Interface::extract_cookie introduced in 0.30--the method was writing directly to a reference rather than to the data the reference pointed to - Simplified E2::Ticker::parse() - Modified E2::Ticker and its descendants to be reentrant (or at least _more_ reentrant--strange things still might happen if one uses multiple threads AND calls more than one "update" type of methods simultaneously AND doesn't use E2::Interface::thread_then() to retrieve the data immediately upon completion) - Added E2::Ticker::use_string()--we can now load tickers from xml strings rather than directly from the e2 servers, if we wish - Added E2::UserSearch::compare() and stats(), so E2::UserSearch can now do nodetracker-like comparisons - Added threading to the list of data that is cloned by a call to E2::Interface::clone(), so background threads can now be shared between multiple objects - Added E2::Interface::debug() and debugging info to all classes of e2interface - Added E2::Interface::join_threads() and E2::Interface::detach_threads() to allow threads to be finished (getting tired of those "A thread exited while 14 other threads were still running" warnings. 0.30 Wed May 14 2003 - Added multithreading for all network-dependant methods - Reworked E2::Interface::clone() so that changes made to cloned objects after the call to clone() will be propogated - Reworked E2::Interface::login() to request cookies instead of packing them itself (there was an issue with case-sensitivity of usernames they way it was originally implemented) - Added E2::Interface::document()--callers now have access to the document most recently retrieved and processed. - Added archive handling to E2::Message. - Brought docs up-to-date. 0.22 Sun Apr 20 2003 (unreleased) - Brought E2::Ticker up to parity with the current everything2 tickers. - Centralized parse code at E2::Interface::parse_twig - Test cases are now included in the tarball. 0.21 Sun Mar 16 2003 - Added E2::Room, E2::Session, and E2::ClientVersion. - Added additional tickers to E2::Ticker. - Various bugfixes and new test cases. - Initial CPAN release. 0.20 Sun Mar 02 2003 - Split most of the modules into either subclasses of E2::Node or E2::Ticker and consolidated a lot of the process_request and XML::Twig::parse calls. - Standardized the exception handling and documented possible exceptions for each method. - Split E2::User into E2::User and E2::UserSearch. - Added E2::Usergroup and E2::Superdoc. - Removed E2::Code and E2::Nodetrack for the time being. - Updated all the documentation and added a couple test cases, in order to be ready for the initial public (e2-wide) release. 0.13 Sun Feb 23 2003 - Migrated E2::User return values to hashrefs. - Added E2::Xmltrue and edited E2::Node ande E2::User to inherit it (so they now provide a consistent interface). - Added E2::Ticker 0.12 Fri Feb 21 2003 - Migrated some list return values to hashrefs. - Fixed (workaround) the character encoding bug that caused expat to die on certain nodes. - Added an (optional) dot directory to the user's home, allowing cookies and other data to persist. - Added E2::Code, E2::Nodetrack 0.11 Thu Nov 21 2002 - Replaced parser XML::Simple with XML::Twig for thread safety. - Added E2::User, E2::Search 0.10 Fri Nov 15 2002 - Initial release to clientdev usergroup on E2