Revision history for WWW::Myspace
0.91 2008-11-20
- Fixed approve_friend_requests which was no longer working as a result
of Myspace changes (RT#41074, patch from David Moreno Garza)
- Example script samples/approve_friends also fixed by the above change
0.90 2008-11-15
- Fixed a new problem in get_inbox and read_message, which were no
longer returning the message sender's name or ID due to Myspace
changes probably made on 2008-11-15
0.89 2008-11-14
- This release replaces a dud re-release of 0.88 made earlier today
which had some of the following enhancements but the version
number had not been increased
- Fixed a problem with get_inbox whereby no messages were returned
unless the inbox held more than one page of messages (more than 10
messages)
- Fixed post_comment, broken by recent Myspace changes
- Altered CAPTCHA handling in post_comment such that the configured
handler (if any) is now called repeatedly if CAPTCHA responses are
rejected
0.88 2008-10-01
- Fixed is_band to correctly detect music profiles, which broke due to
Myspace changes around 2008-09-30; this was also causing
get_basic_info to fail to work with music profiles
- Fixed get_basic_info to return correct timestamps in 'lastlogin'
field, both for personal and music profiles
- New tests in t/17-get_basic_info.t check that that get_basic_info
returns a sensible 'lastlogin' timestamp for personal and music
profiles, and a sensible 'profileviews' for a band profile
- New tests in t/22-search_music.t check that multiple results pages
are read, and that spaces in search terms are properly escaped
0.87 2008-09-12
- New method captcha_handler allows a user-defined function to provide
captcha responses directly
- For backward-compatibility, setting captcha_killer_api_key will
automatically enable the built-in Captcha Killer handler
- Fixed send_friend_request to submit CAPTCHA responses correctly
- Fixed send_message to submit CAPTCHA responses correctly
- Fixed post_comment to submit CAPTCHA responses correctly
- Fixed the login mechanism to return an error upon a failed login
attempt. An invalid username/password should also now return the
appropriate error message.
- Added to the documentation of the 'new' method (the constructor) a way
to detect an invalid username/password error within a script
- Restored the t/11-badlogin.t test
0.86 2008-09-10
- Fixed get_friends; in most cases the method would only have worked
the first time it was executed (fixed RT#38716)
- Created new tests t/21-get-friends.t for get_friends method
- Fixed submit_form flaw; fields_ref entries were not being submitted
where a form input of the same name existed but with the disabled
attribute set
- Fixed search_music; searching by keywords was not working due to the
above flaw in submit_form, and the method was looking for search
results beyond the last page. Also now croaks if given a parameter
which is not a hash ref.
- Created new tests t/22-search-music.t for search_music method
- Added to send_message documentation a note about line endings and
accounts which disable HTML in incoming messages
0.85 2008-08-23
- Fixed get_inbox; method was always returning zero messages due to
changes around 2008-08-20 (RT#38639)
0.84 2008-08-16
- Fixed last_login to ignore a supplied 'undef' parameter (RT#38457)
- Fixed problems in test script t/01-login.t which caused that script to
abort without running all tests; there was inadequate error checking
when opening a data file, and the file t/login-forms/latest.html was
missing from the MANIFEST in the 0.83 release
0.83 2008-08-15
- Fixed send_message, broken by Myspace changes 2008-08-15 (RT#38494)
- Fixed send_friend_request, broken by Myspace changes (RT#38385)
of Myspace changes
- Fixed friends_from_profile; function was returning friends from
the logged-in account, instead of the profile specified (RT#37057)
- Removed example documenting the use of the "exclude" option
from friends_from_profile method. This option relied on the
"exclude" option in get_friends, which was removed during the
re-write of get_friends_on_page in version 0.62.
- Fixed get_basic_info
- Fixed friend_user_name
- Fixed last_login
- Fixed last_login_ymd
- read_message now cleans the 'gauntlet_tokenizer_reserved' attribute
from HTML tags in received messages
- Disabled cool_new_people function and tests because the feature has
been replaced by Myspace with a similar feature on the homepage; this
may be supported in the future
- It should be no longer necessary to change an account's language/
location to English/United States; this is now handled automatically
without changing your account settings directly (currently by
modifying the MSCulture cookie)
- Much functionality previously worked with language/location set to
English/United Kingdom, until changes on 2008-07-18 which broke
messaging functions. That is fixed in this release by way of the
change mentioned above
- Send Accept-Language HTTP header in anticipation of Myspace one day
respecting it when guessing the visitor's language preference
- Added a file 'mechanize.patch' which can be used to stop warnings
generated by WWW::Mechanize -- refer to KNOWN ISSUES section of the
module's documentation for more details
0.82 2008-06-19
- New login method adapts to recent changes in Myspace login form;
hopefully this will be more robust against future changes
- send_message method correctly reporting CAPTCHA responses as 'FC'
again; has recently been wrongly reporting as network failure ('FN')
- find_friend adapted to recent changes in Myspace 'People' search
- Tests requiring network access in t/01-login.t are now skipped if it
appears network access is unavailable
- META.yml now declares that WWW::Myspace is licensed under the same
conditions as Perl (as was previously documented in the README)
- New dependency: URI::Encode
0.81 2008-06-14
- Updated login method to adapt to recent changes in Myspace login form
- Minor edits to POD entry for friends_in_group method, to stop
podchecker warnings, and a warning when viewing the WWW::Myspace(3)
man page generated from it
0.80 2008-05-24
- Applied patch from RT#35703 by steven [...] pyro.eu.org
- Applied patch from RT#35702 by steven [...] pyro.eu.org
- Applied patch from RT#36100 by steven [...] pyro.eu.org
0.79 2008-04-30
- Updated get_friends method to work with current myspace paging system.
- get_comments now returns the sender's profile "name" in
$comments->{'sendername'}.
- get_comments sample script displays $comments->{'sendername'}.
- Updated get_comments to properly display comment after myspace
format change (was displaying a "span" tag around the comment).
- Updated get_inbox to use current myspace form values and to
work more robustly with changes in the form values. This
fixes a bug that caused get_inbox to return only the first
page of messages.
- Added sendername to get_inbox sample script output.
0.78 2008-04-14
- Applied patch from RT#34921 by steven [...] pyro.eu.org,
fixes post_comment and send_message methods to work with current
myspace forms.
0.77 2008-04-11
- MAINTENANCE RELEASE NOTE:
Several methods are still not working due
to changes in myspace forms. As such, the tests will probably fail.
Do a "force install" - this version is at least better than what
you have now. :)
PLEASE SUBMIT PATCHES if you are able as we (the developers) really
busy at the moment and I'm not sure when we'll be able to go through
and update things.
Only through the group effort that is the strength of open source
programming can this module evolve as quickly as a site as dynamic
as Myspace.
Thanks! - Grant
- send_friend_request now takes either a single message as a string,
or an arrayref of messages for the value of $message. If passed an
arrayref, send_friend_request will pick one of the messages at random
to include with the friend request.
- Applied patch by steven [...] pyro.eu.org that fixes login form
change 4/11/08
0.76 2008-04-11
- Bad release - patch not applied due to svn problems.
0.75 2008-01-17
- Removed badly programmed "die" statement that could cause the module to
die if an invalid argument was passed to certain methods. Now sets error
and returns undef as is standard practice throughout the module.
- read_message now returns the URL to the message in the message hashref.
- Corrected documentation for reply_message.
- get_inbox now accepts a "page_no" argument, useful for stepping through
and processing messages.
- send_message now correctly returns "FI" when it encounters an invalid
friendID. Previously it would return "FL" because it couldn't find the
link on the page.
- get_inbox now returns the full name of the sender in the message hash
- added a subroutine called search_friend_list() that allows you to search
for a friend by name.
- Fixed bug in _get_friend_id that could cause it to fail under the new "skin".
- search_friend_list and find_friend now return with an error if called without
arguments.
- Fixed "find_friend" method broken by change in myspace code.
- got rid of $FRIEND_REGEXP in favor of %regex's friend_link.
fixed subroutines that used $FRIEND_REGEXP
- removed excessive references to veeRob in comments
- changed get_friends_on_page() to use regex very similar to friend_link
- changed _get_friend_id() to use %regex's friend_link instead of inline regex
- Added get_friends_images_on_page method.
- send_friend_request now accepts a message argument and works with the
Add Friend form changed by myspace on 1/25/08.
0.74 2007-11-20
- Implemented workaround submitted by William in RT issue#30762 - stops
get_inbox from hanging on Linux.
- Fixed regex used to get Subject line to fix an issue in which
a subject line containing an HTML tag would be cut short.
- Fixed bug in get_comments that would cause a stream of "uninitialized value"
errors.
- Fixed a bug in which get_comments would skip the rest of the comments on
the page when it reached "last_comment", but continue reading the rest of the
comment pages.
0.73 2007-11-13
- Updated last_login regex to be more sturdy.
- Updated get_profile to use long form of URL when passed a friend_id.
This works around a myspace bug that causes a stream of "302 Found" errors
when accessing certain profiles.
- WARNING: POSSIBLE BACKWARD COMPATIBILITY BREAKAGE.
send_friend_request now returns "FU" (Failed, User's settings require
you to enter a CAPTCHA to add them as a friend). This might break your scripts
if you're checking for "FC", as some CAPTCHAs will now be "FU" instead.
Be sure to check for FC and FU if you're looking for CAPTCHAs.
For the record, I picked the code as "Failed, User", but since they're requiring
you to enter an annoying captcha code, I think it sounds like they're really
saying "FU" anyway, don't you?
- Fixed bug in get_birthdays that would cause an error stating "Can't
'last' outside a loop block" if more than 5 pages were read.
- get_birthdays now safety-exists after 10 pages instead of 5 (this exit
is solely to prevent endless loops).
- Fixed get_comments, broken by myspace change.
- get_comments will now retrieve the logged-in user's comments if no friendID
is passed.
- send_friend_request now retries captcha 5 times if it guesses it incorrectly,
and will properly return "FC" or "FU" instead of "F" if it can't guess correctly.
- Added expire time and total attempts count ("attempt 1 of x") to captcha handling
output.
- get_comments now accepts a hash of options including the new "last_comment_time"
argument.
- get_comments now returns up to 100 pages (5000 comments) of comments instead of
50.
- Fixed read_message - body RE broken by myspace change.
- get_comments now returns comment_id also.
- get_comments accepts "last_comment" argument.
0.72 2007-10-10
- Fixed a bug that would cause get_birthdays to enter an endless loop.
- Fixed form name in get_birthdays due to change on myspace.
- get_photo_ids now errors properly if called when not logged in,
even if a friend_id is passed.
- Test 14-photos.t now skips both tests if not logged in.
- Added get_birthdays and get_basic_info sample scripts
- Added bail out to tests in case WWW::Myspace doesn't compile for some reason.
- Renamed sample_scripts -> samples for
http://cpants.perl.org/kwalitee/WWW-Myspace
- Added use warnings and use strict to Myspace.pm, Comment.pm, FriendRequest.pm,
Message.pm, MyBase, Promoter. (not sure how those got left out...?)
- Updated MANIFEST
- Added Catpcha Killer patch from rt#29773
- Fixed login method. Broken by change in "Home" link handling on myspace.
- Disabled friend_count test in 01-login.t.
- Updated post_comment verification REs; Fixes post_comment method.
- Fixed button target handling in send_message; Fixes send_message.
- Fixed post_bulletin broken by recent myspace change.
- Fixed find_friend URL lookup broken by myspace change.
0.71 2007-09-18
- MAINTENANCE RELEASE:
This release handles the myspace login form change 9/17/07.
post_comment and send_message are failing tests.
Other changes in this release are as listed below.
- Added end_page and end_msg options to get_inbox.
- Updated 05-message test to use get_inbox (instead of inbox)
and to use end_page option for speed.
- Fixed paging in get_inbox - was only getting the 1st page.
- Created test_next_button sample script to ease testing of _next_button
method across different paging methods (get_friends, get_inbox, etc).
- Updated login method to check for button names Myspace switches between.
- get_profile can now take a friend_id or friend_url
- Updated _try_login method broken by change in login form 9/17/07.
- Updated "View All Friends" URL to account for myspace change.
Fixes get_friends.
- Updated field names in post_comment due to myspace change.
- Updated set_default_photo to work with new button on photo page.
- Updated RE used in $FRIEND_REGEXP to include "&" (fixes
get_friends_on_page and all other get_friends-style methods).
- Removed outdated get_friends_on_page code.
0.70 2007-08-16
- Updated captcha handling to stop trying when "FAILURE" is returned by
captchakiller.com.
- Fixed 0.69 release date.
- Added "o" to end of REs in captcha handling routine for efficiency.
- Fixed name of login button due to myspace change 8/15/07.
- Fixed 19-find_friend.t "skip" warning message.
- Updated read_message to work with changed myspace code.
- Updated last_login sample script to report error on failure.
- Updated last_login method to use Time::ParseDate to better handle
UK dates.
0.69 2007-08-14
- Added get_real_name sample script
- Updated Known Issues in Myspace.pm docs to mention that location
must be United States or other location that uses English with
month/day/year dates.
- Added CAPTCHA Killer patch and updated coding and placement.
Currently only handles captcha for send_friend_request.
- last_login now sets $myspace->error if it gets an error while
parsing the date.
- Fixed friend_id test in 01-login to check for friendID passed in a URL
as the test comments state.
- Added is_comedy method.
- get_basic_info now returns undef if it can't match its main regex on the
profile page (as will happen on band pages).
- get_real_name now only checks from the top of the profile to the "top friends"
section to avoid conflicts in the friend names and comments.
- get_real_name now properly returns the capitalized name.
- is_private now deals with private profiles which don't appear to
have any content
- updated friend_id regex to return friend_id on private profiles
- Added find_friend method which takes an email address and returns any
matching friendIDs.
- Added find_friend sample script in sample_scripts
- Added 19-find_friend.t test.
- updated get_friends to correctly handle profiles with no friends
at all (not even Tom)
- find_friend now returns friends as a list even if there is only one.
- added get_profile_type to for an easy check on type of profile
- added tests for get_profile_type in t/01-login.t
- fixed get_basic_info (also for band profiles!) and related tests in
t/17-get_basic_info.t
- fixed comment_count to detect profiles without any comments (eg 76772500),
also updated test t/15-profile_views.t
- Cleaned up code in captcha handling methods.
- Changed temporary file used by _handle_captcha to $self->cache_dir/captcha$$.
- Added (untested) captcha handling to post_comment
- Removed obsolete "_get_friends" method.
- send_friend_request method now returns "FE" status if "user has exceeded
daily useage" message is encountered (their spelling error, not mine :)
- added "sleep 2" in captcha handling to improve chances of positive match.
- is_private now returns 0 rather than undef if the profile does not
appear to be private
- post_comment now properly returns status code and description in all cases.
- send_message now properly returns status code and description in all cases.
- Added get_birthdays method.
- Added get_birthdays test to 01-login.t
- fixed get_comments so that it won't break if a comment contains a form of its
own (e.g. page 4 on 18087140)
- Applied patch to fix delete_message (Thanks Steven!) from RT issue#28561.
- Re-enabled delete_message tests.
- Renamed "inbox" to "get_inbox", added "inbox" convenience method for
backwards-compatibility.
- Removed outdated comments in code before get_friends method.
- Disabled delete_message test - still failing.
- Added warning message to delete_message but kept method operational.
- Fixed bug in friend_request that would cause it to always return FN if
there was no form on the page, instead of returning the proper status code.
- Moved "captcha_result" initialization closer to top of send_friend_request method.
- Fixed a bug where a public, pimped profile with no friends was
returning as "private".
- Fixed friend_url regex and moved it to the _apply_regex method.
- Added "captcha_tries" accessor method to allow user to change number
of attempts at retrieving the captcha from captchakiller.com
- Fixed RE for New Photo Comments indicator in get_notifications (Myspace
changed from "New Image Comments!" to "New Photo Comments!").
- If there are new image comments, get_notifications now reports
"New Photo Comments!" instead of "New Image Comments!" to match myspace's
output. Be aware of that if your script is interpreting that output
instead of just displaying it.
- Added captcha_tries to list of allowed options.
- Fixed get_real_name test.
0.68 2007-07-06
- Updated post_bulletin method to work with changed myspace forms.
- Added 25-30 second random sleep after each group of 25 group invitations
is sent in send_group_invitation.
- Humanized send_friend_request method (gets profile, clicks "add to friends"
button). Added FL return code if button not found on profile page.
Updated status codes in docs.
- Added "fulltests" config parameter to developer test_config file
documentation in README.
- Updated bulletin and blog tests to use new "fulltest" config item.
If set to 1, blog and bulletin tests will do a full post instead of
stopping short of the final confirmation.
- Updated prerequisite list to require Locale::SubCountry 1.38
- Disabled "use WWW::Myspace::FriendAdder" in 10-myspace test to prevent
errors on systems without it installed.
- Moved last_login_ymd method to right beneath last_login method for clarity.
- Added warning to test for last_login to report if an error occurred to help
track down mysterious failure in CPAN testing.
- Added additional error message to last_login if the regex isn't found on
the profile page.
- Moved Locale::Subcountry to an eval statement within cool_new_people to
stop warnings when it's loaded.
- Added get_real_name method that tries to get the user's real name from their
profile page if they say "my real name is ___" or similar.
- Added test 17-get_basic_info.t to MANIFEST.
- Added test 18-get_real_name.t to distribution and MANIFEST.
- Updated internal profile page validation method.
- Fixed issue that would cause bulletin test to fail in testing mode.
- Fixed error output in submit_form when a form number isn't found on the page.
0.67 2007-07-02
- Updated patch submission instructions in CONTRIBUTING section of POD.
- Split out FriendAdder and Data into separate modules.
This was done to lighten the core WWW::Myspace module for developers
not using FriendAdder or Data, which had many dependencies.
If you need these modules, simply:
cpan -i WWW::Myspace::FriendAdder
cpan -i WWW::Myspace::Data
They each require WWW::Myspace, so you'll get this module also.
- Updated "An error has occurred" error in @ERROR_REGEXPS.
- internal method _page_ok now accepts multiple forms of RE, including
a key to _regex, so now regex hash keys or quoted REs can be
passed to get_page, follow_to, and submit_form.
- Fixed NOT_FRIEND_ERROR regexp.
- Fixed _apply_regex to return 1 if RE matches but Re has no parenthesis.
- Fixed post_comment method.
- Disabled MyBase test - uses FriendAdder.
- Fixed test names in 16-myspace.t
- Login now tests for new (ASP) and old (CFM) login forms in _try_login.
- Internal _apply_regex method defaults to current_page if no page or
source is specified.
- Marked approve_friends tests with TODO blocks to stop them from failing.
- Marked delete_friend test (03-delete.t) with TODO block to stop it from failing.
- Disabled post_bulletin method and marked with a TODO in 12-bulletin test.
- Updated get_photo_ids, set_default_photo, and photos test to work with
new album-based photo structure.
0.66 2007-06-29
- KNOWN ISSUES IN THIS RELEASE:
- post_comment is not working
- post_bulletin is not working
- approve_friends may or may not be working
(test fails because delete_friend is broken)
- "make test" run with a full config file will fail (due to the above).
- This is a maintenance release that fixes several major issues below.
- Added Tobias' get_comments method fix from RT issue #27707.
(thanks Tobias!)
- Added Tobias' get_basic_info method from RT issue #22707 and
updated it.
- Added test 17-get_basic_info.t.
- Minor typo fixes in docs.
- Applied (possibly outdated) change to browse method's sample
script in WWW::Myspace POD from RT ticket#25254.
- Fixed send_message method
- Started implementing a fix for post_comment - still failing testing.
- Disabled delete_friend method until/if it can be fixed
(myspace form has changed significantly)
- Fixed login processing and bad login checking.
- Updated documentation for submit_form and contributing sections
- Moved several REs into regex hash.
0.65 2007-06-25
- KNOWN ISSUES IN THIS RELEASE:
- Myspace just made changes that break send_message and post_comment.
0.65 was released because it fixes a change to the login form.
- Fixed 0.64 release date in Changes file
- Changed Myspace.pm to use "decoded_content" method of HTTP::Request
instead of "content" method so that charsets are properly decoded
when checking regexps, among other things. See RT issue #27453.
- Added note in Myspace::Data about Class::DBI bug as noted in
RT issue #27453
- changed regex for is_logged_in to look for a logout URL rather
than logout text (this should help for pages in languages
other than English)
- Updated debug statement in Message and Comment to use decoded_content
for consistency.
- Updated information in README:
Prerequesites
Config "Username" info (removed "#" that YAML isn't treating as a comment)
Other misc fixes.
- De-tabbed "Changes" and "README" files (converted tabs to 4 spaces).
- is_private and is_invalid now return "undef" instead of "0" if an error
is encountered.
- Added example use to documentation for is_private and is_invalid.
- Added max_get_attempts and max_post_attempts options and accessors
to allow control over the number of times a certain page retrieval
or form post is attempted.
- Minor internal changes to centralize language handling for possible
future internationalization.
- Removed table info which may be MySQL-specific from mysql.txt
- Updated docs for Myspace::FriendAdder and Myspace::Data
- Changed WWW::FriendAdder::_sleep_now to report sleeps in integer
seconds
- Updated is_band regex
- Applied fix from RT issue #27706 to fix login form.
0.64 2007-06-03
- Tweaked friend_id regex that FriendAdder uses
- Added Myspace::is_private method
- Added Myspace::is_invalid method
- Added Myspace::Data::post_comment method
- Added Myspace::Data::approve_friend_requests method
- Added Myspace::Data::send_message method
- Myspace::_validate_page_request defaults to $self->current_page if
no parameters are passed
- Fixed bug in get_friends that caused it to return every other
page of friends.
- Applied patch from RT issue #27381 (thanks Mike)
- Applied patch from RT issue #27390 (thanks Mike)
- Updated patch to use "SignOut" RE when loading home page to force
more robust checking.
- Updated follow_to link to use internal get_page method instead of
mech object.
- Updated get_page: split random delay so that there will be a delay
when retrying a failed URL.
0.63 2007-02-18
- Fixed an issue with the logic in Myspace::get_friends. end_page
and max_count checks would only be reached once all of the friends
pages had been spidered. This was causing get_friends to pull
entire friend lists regardless of limiting parameters.
- Added note about cool_new_people being deprecated.
- Myspace::last_login now checks to see if $page is defined in order
to prevent dying on "can't call method on undefined value"
- Added Myspace::profile_views method
- Added Myspace::comment_count
- Added Myspace::_validate_page_request
- Added Myspace::Data::track_friend
- Updated mysql.txt with new table ("tracking")
- Added new test 15-profile_views.t
- 'FB' error code once again being returned for accounts which
do not accept add requests from bands
- Added "firefox" parameter to Myspace::Data
- Added Myspace::last_login_ymd
- Fixed last_login bug in Myspace::Data::cache_friend
- Added private methods Myspace::_regex and Myspace::_apply_regex
- Added mysql_changes.txt to make keeping up with db schema changes easier
- Moved login verification regex into site_login method.
- get_inbox sample script now checks for login problems.
- Changed RE in _next_button to look for "Next >" as well as
"Next >". Yes, they're really using an un-escaped greater-than
sign...
- Updated warning at top of Myspace.pm, Comment.pm, Message.pm,
FriendAdder.pm, and README
0.62 2007-01-30
- Added date.patch to MANIFEST so it'll appear in the distribution.
- Added "HOW TO SUBMIT A PATCH" instructions to Myspace.pm docs and
README file.
- Added Crypt::SSLeay as a prerequesite. This fixes ticket#24224: myspace
logins fail if Crypt::SSLeay not installed due to recent myspace switch
requiring SSL.
- Implemented re-written get_friends method. The new method is simpler
and acts like a web browser paging through the friends list using
the new form-based navigation system implemented by myspace.
WARNING: There are a few differences in this method:
- It no longer supports the "exclude_friends" option.
- It returns the friendIDs in the order in which they appear on the
friend list (which is, btw, in order of friendID).
- It no longer returns additional information if called in a hashref
context. It can only be called in a list context.
- Re-wrote get_friends_on_page method.
- Disabled get_comments for now. Displays a warning and returns undef.
Method needs to be re-written due to change in myspace code.
- Disabled friends_from_group for now. Displays a warning and returns undef.
Method needs to be separated from get_friends and re-written as the form
used in groups is currently different from that used in profile friends list.
- "Skipped" friends_from_group test in 01-login.t
0.61 2006-12-20
- Added note about:
Day too big - 2932896 > 24855
Sec too big - 2932896 > 11647
Day too big - 2932896 > 24855
Sec too big - 2932896 > 11647
warnings and about the "date.patch" file included at the root level of
the distribution to KNOWN ISSUES and to this Changes file due to questions on
CPAN forum.
- Removed the extra "._" files that cause installs to fail due to the failure of
POD tests.
- Added 12-bulletin.t and 14-photos.t tests into the distribution.
- Updated prerequisite list to require WWW::Mechanize 1.20. A user on
the CPAN Form reported getting an error:
Unrecognized LWP::UserAgent options: stack_depth at C:/Perl/lib/WWW/Myspace.pm line 700
while using WWW::Myspace with an earlier version of WWW::Mechanize.
- Fixed a bug in which post_comment would fail with an "FN" error instead of an
"FF" error when it received the "You must be someone's friend" error.
- Fixed a bug in which "This user is away" or "This user's profile is set
to private" errors would not be properly recognized when sending a message.
0.60 2006-11-19
- Added get_photo_ids method
- Added set_default_photo method
- Added set_random_photo sample script
- _go_home and get_page now return undef if there's an error
- Added 14-photos.t test.
- Added missing tests 12-bulletin.t and 13-blog.t to distribution.
- Added a trace mode by defining a method called "trace_func" which
allows detailed user-specifiable tracing of retrieved web pages
- Fixed bug in get_comments that could cause a person's image code
to be returned as the friendID if the person is online. Reported by
Costas.
- Updated RE in _get_friend_id to match change in Myspace code. This
fixes login errors among other things. (CPAN Ticket 23487 reported by
Paul Smith).
0.59 2006-10-18
- Added mech_params method to provide greater control over
mech object.
- Added follow_to method (mostly for internal use) to simulate
clicking links.
- Updated many methods to use "follow_to".
- Fixed inbox method to work with new Myspace "messaging" server.
- Updated delete_message to work on new "messaging" server and
severly simplified the code.
- Updated read_message to work with new server.
- Added delete_message sample script.
- Added check_notifications and get_login_form sample scripts.
- Added get_notifications method which returns a hash of codes
and displayable "New" notifications (New Messages!, etc)
- Added get_login_form method which returns an HTML login form.
- Minor humanization updates in get_friends, friends_in_group,
friends_who_emailed, friends_from_profile.
- Fixed error checking in get_friends, friends_in_group,
friends_who_emailed, friends_from_profile per trouble ticket:
http://rt.cpan.org/Ticket/Display.html?id=20354
- Added Dave's "date.patch" to distribution directory with
instructions for those who want to stop the "Sec too big",
"Day too big" warnings on login.
- Optimized regular expression handling in the module, specifically
precompiling many regular expressions.
- Removed "inbox" source from get_friends.
- Updated "friends_who_emailed" to use "inbox" method instead
of "get_friends" method.
- Added semi-internal "follow_link" method.
- Added "send_group_invitations" method.
- Added send_group_invitations and send_event_invitations
sample scripts into distribution.
- Changed warnings in "get_friends" to warn if a page has less than
30 friends (was 35).
- Fixed minor bug in submit_form that could cause unnecessary
errors or warnings if a named form was not on the page. It
now sets error appropriately and returns 0.
- post_bulletin test now properly handles end user tests (i.e.
it's skipped because you're not logged in).
- Added post_blog method and post_blog sample script.
- Fixed send_group_invitations sample script's cache handling.
- Removed Poster.pm from distribution. Moved to separate (currently
unreleased) module.
- Made send_group_invitations more efficient if called repeatedly
(doesn't reload the page).
- Reset test count in 00-load.t
- Added Class::Factory::Util 1.3 as prereq to account for
possible bug in DateTime::Format::MySQL (I believe it's
a prereq that isn't listed in the latter module's Build.PL)?
- Updated approve_friend_requests to use new button name.
- Fixed bug in read_message that would cause blank lines to be
stripped from message body.
- Updated "From:" RE in read_message so that "from" will be properly
read again.
- Disabled "delete_message" method and tests. "Delete" button on Myspace
doesn't work (you can only delete from the Inbox, and that's a bit
trickier to handle than this method is worth :).
0.58 2006-09-17
- Added post_bulletin method and 12-bulletin.t test (don't worry,
doesn't confirm the bulletin when testing).
0.57 2006-09-16
- Added FL status code to send_message (can't find Send Message
link on profile page).
- Fixed condition in send_message that would cause "FN" to be
returned instead of "FF" (private profile, must be friend to
send message).
- Updated "post_comment" for new form field names.
- Updated RE in friend_user_name to use "nametext" span tag instead
of comment link (name attribute was removed from there).
- Added WARNING to Myspace.pm, Comment.pm, and Message.pm
regarding account crippling. WARNING: DO NOT USE THIS
MODULE FOR MASS MESSAGING OR MASS COMMENTING. YOUR
ACCOUNT WILL BE CRIPPLED OR DISABLED. See docs for details.
0.56 2006-09-09
- Added "FL" response code to post_comment. Returns FL if it
can't find the "Add Comment" link on the profile page.
(0.55 will die if this condition exists).
On a side note, this condition "shouldn't" exist, but does
if Myspace incorrectly says a profile is private even though
they're your friend. Yes, it happened and so I had to add this.
0.55 2006-09-05
- Changed default value of max_count from 300 to 100 in Message.pm
since captcha kicks in around 102.
- Added send_event_invite method.
- Added send_event_invite sample script.
- Tested browse method, updated docs, moved from
IN PROGRESS area to FIND PEOPLE area.
- Added "quiet" flag to mech object to stop superfluous warnings.
- Set "stack_depth => 1" in mech object to save memory. Previously
the module would store all page loads, which could eat up
huge amounts of memory when dealing with large friend lists
or event invitations.
- Re-wrote approve_friend_requests method to use the new servers
and act super-human.
- Added "form" option to submit_form that allows passing a
ready-to-post HTML::Form object.
0.54 2006-09-04
- Corrected new method docs: replaced "username" parameter in
examples with "account_name".
- Fixed send_message to properly return "FC" instead of "F" when
captcha input requested.
0.53 2006-09-01
- Changed RE to identify "away" and "private" mail send errors to
allow for profiles with no user names (or myspace database errors).
The error would cause this message to appear for private profiles:
"You can't send a message to because you must be 's friend to
send them a message."
- Modified send_message to get the profile, find and click the
Send Message link, and compensate for the two different mail
forms Myspace now has as they transition to the new messaging
servers. Note that this both acts more naturally and may be more
stable, and enables use of the new servers, or the old one that
some accounts still apparently use.
Note that the new servers do issue CAPTCHA responses for mail. Not
sure of the limits yet.
- Added "human" option which slows down gets and such.
IMPORTANT: THIS IS SET TO 1 (TRUE) BY DEFAULT. THIS WILL SLOW
DOWN YOUR SCRIPT. BUT BE SURE YOU READ THE ACCESSOR'S DOCUMENTATION
IF YOU WANT TO TURN IT OFF - MYSPACE MAY DISABLE YOUR ACCOUNT.
Currently adds a 6-11 second delay after each get, but should get
fancier later.
- FriendChanges.pm: Now dies if error is set after get_friends is
called.
- FriendAdder.pm: Added last_login parameter using the myspace
method of the same name.
- send_message now takes named parameters.
- Addad "skip_re" option to send_message. Allows you to skip
a profile if it matches the RE you specify.
- Added skip_re handling to Message.pm.
- post_comment now acts more human also.
- is_band now looks for the "Upcoming Shows" box instead of
"My Bulletin Space" when determining if the logged in account
is a band or not.
- Changed mech agent to identify itself as IE 6.
0.52 2006-08-08
- Message.pm now displays "Sending to friendID" as expected when
displaying an inactive account failure instad of just displaying
the warning message.
- Fixed a condition that would cause Myspace.pm to die if last_login
was called on a profile whose last login was in december.
- last_login now returns the correct date instead of being
a month late. Corrected last_login sample script to match.
- "ADD TO FRIENDS" CODE IN SEND_MESSAGE IS NOW A "VIEW MY PROFILE"
LINK DUE TO MYSPACE BREAKING THE "ADD TO FRIENDS" CODE.
- Added warning re: broken "Add to friends" code to send_message
docs in Myspace.pm and to "add_to_friends" method docs in Message.pm.
- Enhanced RE check in post_comment to hopefully make it even more
robust.
- Fixed bugs in post_comment so that FF and FI return codes should
now work instead of "die"ing (note that currently though an invalid
ID will return a "must be someone's friend" error or a general
error).
- Fixed bug in submit_form that, when posting to form number 1,
would cause Myspace.pm to die if no forms were on the page
instead of returning an error.
- Added post_comment sample script
- Updated RE in send_message to match myspace change.
- Updated RE for Subject field in read_message due to myspace change
that caused it to display the date.
- Added "if" statement to have subject be left out of hash if
the RE can't be matched.
- Added read_message and send_friend_request sample scripts.
PREVIOUS VERSIONS WILL FAIL WHEN SENDING MESSAGES
0.51 2006-08-03
- If a value greater than 1 is passed to send_message as the
"Add To Friends" flag, the value will be used as the friendID
for the button's link. This allows you to set a friendID that
is different from the account from which you're sending the message.
- Added message_delay and random_delay accessor methods to
Message.pm. These allow the user to set a delay between messages
sent.
- Added _is_fresh and _fresh_after to Data.pm
- Added ability to set "freshness" parameters to update_friend and
update_all_friends in Data.pm
- Added DateTime::Format::MySQL to Makefile.PL
- Added tests for _is_fresh and _fresh_after to 09-data.t
- Added Params::Validate routines to update_friend and update_all_friends
- Added account disable/deletion warning to Message.pm.
- friend_user_name will now return the user name from the last page
retreived ("$myspace->current_page") if no friend_id is specified.
- friend_url will now return the friend URL from the last page
retreived ("$myspace->current_page") if no friend_id is specified.
- Fixed probable bug in friend_id method. It "shouldn't" have worked.
- If "friend_id" method is called without a friend URL it will scan
the last page retreived ("$myspace->current_page") for the friendID.
- Added new "last_login" method which returns the Last Login date
of the specified profile (or the last page retreived) in "time"
format.
- Added test for last_login to 01-login.t
- Removed test for friend_id method that checks for null value
when no URL is passed (since this behavior has changed).
- Added Time::Local prequisite to Makefile.PL
- Fixed RE for _next_button and _previous button methods to be
more robust. This also fixes friends_in_group, which was broken
by a change in Myspace formatting so that it would only return the
first page of the group's friends.
- Message.pm now checks the Last Login date of the friend before
messaging. If the account hasn't been logged into in the last
60 days, Message will log "FL" and skip the friend. The friend
will be skipped on future runs also.
- Fixed a couple typos in Data.pm's POD.
- Added last_login and friends_in_group sample scripts.
0.50 2006-07-06
- get_comments sample script now accepts a profile to scan for
comments and an optional friendID to use as a filter (i.e. to
show only the comments they left).
- Created friend_id, to return a user's friend id when passed
their custom URL.
- Changed return code for get_friends so that calling in any
scalar context will return a hashref. This fixes a bug
which would produce an error stating that get_friends cannot
be called in a boolean context if the method was called in
any means not explicitly a list or a hash dereference. That is:
"$myhashref = $myspace->get_friends" wouldn't work. Now it will.
0.49 2006-06-15
- Added cool_new_people to sample_scripts.
- Corrected cache_file example in Message.pm docs. Must be
complete path.
- get_friends/friends_who_emailed no longer displays inaccurate
warning messages about page having only 7 friends and duplicate
friendIDs.
- get_friends now actually checks each friend page loaded to
make sure it has the whole page (this was added before but
wasn't working).
- Fixed a bug in get_friends in which a warning would be generated
stating the friend count was low when the "exclude" option was
used.
- get_friends now returns an error if it encounters a friend
page with a duplicate friendID (i.e. if the URL breaks due
to a myspace change and the same page of friends loads again).
- Fixed bug in get_friends/friends_in_group in which
erroneous "Une of initialized value in numeric gt (>)" warnings
would be generated when getting friends from a group.
- Updated friend_from_profile docs and examples.
- Updated page verification RE in search_music to include ".*<\/html>"
to make sure the full page is loaded.
- Cleaned up code in get_friends, minor internal fixes elsewhere.
0.48 2006-06-15
- Added get_comments method. Returns a list of comments left
for the specified profile.
- Added get_comments sample script (mainly to test get_comments
method).
- approve_friends now "die"s if called with an invalid argument
instead of displaying an error about calling an undefined
subroutine "fail".
- Message.pm now checks for consecutive failures and returns
"FAILURES" if the message fails due to network error (FN)
or unknown error (F) more than 50 times in a row. This works
around an issue discovered in version 0.47 in which a change in
Myspace could cause messages to fail, which could cause Message.pm
to continue trying to post to every friend on its list.
- get_friends now sets $myspace->error if it can't read all of
the friend pages. That is, if there are 205 pages and it, for
some reason, stops at page 197 and it's not reported as an
error by the "get_page" method, get_friends will set error
stating that the friends list is incomplete. I'd do this
with the "friend_count" warning, but I can't because Myspace's
friend count is so inaccurate.
- Added friends_from_profile, _add_friend_to_account,
_find_or_create_friend to Data.pm (friend lists can now be cached
in Data.pm)
- Added get_data_object to FriendAdder.pm
- Altered properties in db to allow for caching friend lists
of any friend_id on Myspace
- send_message and post_comment will now return "FI" if the
friend they're sending to has been deleted (that is, the
"invalid friend ID" error is encountered).
- Message.pm, Comment.pm, and FriendAdder.pm count "FI" posts as
items to exclude on subsequent runs.
- In Comment.pm: Updated docs for post_comments and post_all,
updated copyright, added SEE ALSO section and note about
comment_myspace script in SYNOPSIS.
- Updated synopsys in comment_myspace docs.
- Added "-q" option to add_friends script. Runs in "quiet" mode
(Sets "interactive" to 0 in FriendAdder).
- Expanded cache_friend to cache much more info like last_login,
country, region, city, tagline, member_since, age, sex
- get_friends does a basic duplicates check and displays
a warning if it finds one.
0.47 2006-05-31
- send_message REs updated due to change in MySpace site.
THE FOLLOWING METHODS WILL NOT WORK WITH PREVIOUS VERSIONS
DUE TO MYSPACE CHANGES:
- send_message
- reply_message
0.46 2006-05-24
- get_friends and friends_from_profile now accept an "exclude"
option that lets you pass a reference to a list or hash of
friendIDs to exclude. Since friendIDs are excluded as they are
read, passing an exclude list along with a max_count is much more
efficient (and faster) than reading all friends, then excluding.
- get_friends is now documented to accept a "source" option
( group, profile, or inbox ) and "id" option (friendID or groupID
as appropriate to the source). This both makes it possible to
use the new features on a group (because friends_from_group doesn't
take options yet), and makes the other methods convenience methods
(which they really already were, it just wasn't documented).
- Changed RE in friend_count to match Myspace formatting change.
Made more "robust".
- Changed RE in user_name to match Myspace formatting change.
Made more "robust".
- get_friends now sets $myspace->error if it encounters a page with
no friends on it.
- Changed RE in is_band to handle whitespace and account for Myspace
formatting change.
- Added _previous_button internal method.
- Updated REs in internal save_friend_info method to check for
whitespace instead of single space for robustness.
- Updated "private profile" RE in _get_friend_page to check for
whitespace instead of single spaces; added check for whitespace
after <br>.
- message_group will now die if get_friends returns with an error.
- get_friends now checks for "View All Friends", a Previous or
Next link, and for the </html> tag to make sure it's got a full
page, and displays a warning if it encounters a page with less than
35 friends on it.
THE FOLLOWING METHODS WILL NOT WORK WITH PREVIOUS VERSIONS
DUE TO MYSPACE CHANGES:
- friend_count
- user_name
- is_band
0.45 2006-05-09
- Added note regarding logins to test output.
- Fixed bug in FriendAdder.pm that re-cached friend ids even
if they already existed in the database
- Added methods to FriendAdder.pm and Data.pm to take advantage
of caching. FriendAdder.pm's is_band will first attempt to
get is_band info from the database before using the Myspace.pm
method
- Cleaned up get_friends code
- get_friends now accepts a hash of options. Current options are
max_count and end_page.
- friends_from_profile accepts a hash of options like get_friends
(same options). IDs can be passed as an array reference or
as a single ID ( id => 12345 ) or ( id => [ 12345, 123456 ] ).
- Altered MySQL table structures to make timestamps consistent
- add_log table has been dropped in database schema
- date_stamp now allows user to provide an epoch value in
Data.pm
- accelerated initial sorting of ids in FriendAdder when Data.pm
is used
- Added debugging code to Comment.pm to help track occasional
error that causes the module to die with an error about calling
post_comment in a boolean context.
- Removed explicit "$self->current_page" from submit_form calls in
post_comment method.
- site_login now checks for the "You must be logged in" page
immediately after submitting the login form.
In short, if your password is wrong, it'll try once then
return 0 and set $myspace->error. Once logged in, it will cache
the username/password as "valid", and subsequent "You must be
logged in" pages will be retried more vigorously.
- Added bad login test script.
- post_comment now croaks unless friend_id and message are passed.
- Fixed bug that would cause incorrect warning from get_friends if
called a second time after adding or deleting friends within the
same script.
- Modified post_comment to check for SCALAR instead of STR in
contextual "return" statement. This hopefully fixes an
error which caused WWW::Myspace::Comment::post_comments to fail
with "Can't call WWW::Myspace::post_comment in boolean context
at /Library/Perl/5.8.6/WWW/Myspace/Comment.pm line 448".
(This most notibly affects approve_friends, which would trip this
error when posting general comments after approving friends).
- Modified send_message and send_friend_request to check for
SCALAR instead of STR in contextual "return" statement.
- Modularized site_login method code.
- Added test to verify logged_in = 1 to 01-login.t.
0.44 2006-04-28
- add_friends script now documents a known issue in which friend
requests will be re-sent if they are denied.
- FriendAdder.pm now reports the number of skipped profiles if
profile_type parameter is not set to 'all' and interactive
mode is enabled
- Updated docs for is_band to note that one cannot assume that
a profile is a personal profile if is_band is false.
- Fixed issue that was causing logins to fail.
- Updated user_name and friend_count methods to work with new
Myspace change.
VERSIONS BEFORE 0.44 WILL FAIL LOGIN VERIFICATION as of 4/28/2006.
0.43 2006-04-19
- Factored sleep and random sleeping into _sleep_now method
in FriendAdder.pm
- FriendAdder.pm now sleeps when skipping profile_type profiles
- Updated FriendAdder.pm to skip adds if the following errors
were encountered on a previous attempt: 'P', 'FA', 'FB', 'FF',
'FP'
- post_comment and send_message now return status code and text
description if called in a list context.
- added cache_friend to Data.pm
- added call to cache_friend in FriendAdder.pm
- Added "set_options" method to MyBase.pm. Allows you to set options
after calling "new".
- Added "get_options" method to MyBase.pm. Allows you to get the
value of one, more, or all options (generic accessor method).
- fixed bug in FriendAdder.pm that returned inaccurate current
friends when used with Data.pm
- Message.pm no longer displays "Excluding" messages.
- Message.pm's friend_ids method now creates an anonymous array
when taking a list of friendIDs to avoid possible bugs.
- search_music method now uses new format for call to submit_form.
- Removed debugging code that limits search_music to 3 pages.
Method functional but needs tests written.
- search_music moved to the "Contact People" section, out of the
development dungeon.
- Removed unfinished Poster.pm from distribution.
0.42 2006-04-19
- All page loads now check for "You must be logged in" error and
re-login if necessary. This fixes a bug many have reported in
which they will start receiving "Failed, Network Error" messages
for every post.
- Recoded delete_form to allow it to delete more than one
friend at a time.
- Message.pm now excludes previously posted friends whose profiles
were set to "private" or "away".
- Message.pm now displays the "counter" value for each message it's
sending.
- Removed delete_friend note from TODO.
- Corrected "Sorry! an unexpected error has occurred" RE check.
(Wasn't identifying that error, now it will).
- Re-wrote browse function. Returns proper number of friends,
needs testing to make sure filters are working, and needs
proper docs to make it more useful.
- Re-wrote submit_form to use hashref of options and accept some
more options needed for browse.
- Updated browse sample script. Doesn't require login, displays
error if one occurs.
- "Detabbed" Myspace.pm code.
- get_inbox sample script can now take a friendID as an argument to
display messages from that friendID.
- Comment.pm no longer prints "Excluding " messages.
- Switched Data.pm from add_log to post_log table
- Added get_account_id to Data.pm
- Added DateTime.pm dependancy to Data.pm
- Added time_zone parameter to FriendAdder
- Changed $logged to be true on 'P', 'FF', 'FP' in FriendAdder
- Added Class::DBI::AbstractSearch dependancy to FriendAdder
- Added profile_type parameter to FriendAdder
- Myspace.pm now correctly recognizes "doing some maintenance on the
mail for certain users" as an error page.
- Changed get_account_id to get_account in Data.pm
- Changed add_account to set_account in Data.pm
- Myspace object no longer needs to be passed to Data.pm to get
account info
- FF response code in FriendAdder now automatically logs friends if
Data.pm is used
- Added db documenation to Data.pm
- Removed add_log from database scheme
- Added date_stamp routine to Data.pm
0.41 2006-04-15
- Fixed tiny typo in Data.pm docs.
- Fixed possible bug in FriendAdder.pm that would cause failed add
attempts to never be retried.
- Added Poster.pm to MANIFEST.
0.40 2006-04-14
- Fixed a bug in FriendAdder.pm that caused an invalid captcha
message to appear
- Updated Myspace.pm docs, putting options at top.
- Added auto_login option, which turns off auto-login if called
with a false value like so: "new WWW::Myspace( auto_login => 0 )".
- Added routines to croak if a function that requires login is
called when not logged in.
- Moved methods and their docs around in an attempt to
better organize things.
- Added search_music method. Still in testing.
- Removed test account logins. Only tests that don't require login
will be run by default. You can add a config file with personal
test accounts if you want to run full tests (see README for more
info and sample config file).
- Updated TestConfig.pm to use user-specific config file for full test
with generic fallback file.
- Fixed bug in Data.pm where friend_id was not passed to is_band
- add_account and update_friend in Data.pm now croak if database
connection cannot be created
- Fixed bug in send_message that would cause it to delay and return
"FN" if it encountered a user whose status was set to "away" or
who only accepts messages from friends. It should now return the
appropriate status code.
- submit_form now accepts a null URL, meaning it should search the
contents of $self->current_page for the form.
- Added delete_message method.
- Added bug in delete_friends to TODO.
- Added cleanup_inbox script to sample_scripts (deletes messages
from inbox, leaving most recent 40 messages).
- Added mail suite test in 05-message that tests send,
read, and delete (not reply yet).
- get_friends now displays a warning and sets "error" if it
encounters a private profile.
- get_friends correctly allows friend viewing when not logged in,
but croaks if attempting to view a mailbox or group when not
logged in.
- Added 99-enduser test script that runs "end-user" test suite
after full test suite to make sure everything works in both modes.
0.39 2006-04-08
- Fixed bug in MyBase.pm that could cause an error in some
cases when the new method was invoked.
- Added fatal error in WWW:Myspace::FriendAdder if
send_friend_requests is called and a myspace object hasn't
been passed to the FriendAdder object.
- Rewrote add_friends to use FriendAdder module. Still works the
same except for different output format.
- Updated FriendAdder to count passed attempts instead of all
attempts.
- Added save and load methods to MyBase.
- Added previously_posted method to Poster.pm, fixed bugs,
updated docs.
- Poster.pm's friend_ids method can now take a list or arrayref
to set its value.
- Updated get_friends to start at page 1 when serarching friend
lists, 0 for group and inbox due to myspace chage. (Note that this
change doesn't seem to affect the results, it was just loading
page 1 twice).
- Added get_friend_page to sample_scripts
- Added delete_friend to sample_scripts
- Fixed a bug in submit_form which could cause failures if an error
page was encountered on the first submit.
- Commented out "An Error Has Occurred" from the errors array in
Myspace.pm because it conflicts with the "Exceeded Useage"
(their typo, not mine) error message. It should fail, not try
again.
- Updated TODO with note about proper handling of Mech.
- Updated send_message to semi-properly handle Mech. and to use
the error method to check for failure from get_page.
- Updated sample_scripts/send_message to display any errors
encountered.
- Added mention of YAML indent to message_group synopsis
documentation.
- Added usage comments to get_friends sample script.
- Changed nomenclature of incrementing internals in FriendAdder.pm
- Changed max_attempts param to max_adds in FriendAdder.pm
- Fixed wrapping in FriendAdder.pm
- Added documentation for _report() and return_params to FriendAdder.pm
- Expanded documentation for new() on FriendAdder.pm
- Added beta dB schema "mysql.txt"
- Changed method update_friends to update_all_friends in Data.pm
- Added method update_friend to Data.pm
- Added table to schema to distinguish between friends from different accounts
- Modified update_friend to add info for is_band, user_name, and url
- Data.pm now a subclass of MyBase.pm
- Added column my_friend_id to accounts table
- Added internal method _die_pretty to Data.pm and FriendAdder.pm
- Updated docs for FriendAdder.pm and Data.pm
Made several enhancements to Myspace.pm:
- Myspace.pm is now a subclass of WWW::Myspace::MyBase.pm, so the
new method inherits options processing.
- Added logout method.
- Made "site_login" method public.
- Started changes to not require login for functions that don't need it.
- Added account_name and password accessor methods.
- Updated docs and reviewed code for proper Mech usage (needs more).
- Fixed delete_friends method broken by Myspace security enhancement.
- delete_friends is now much more efficient if deleting multiple
friends.
- delete_friends now croaks if called when not logged in.
- Added additional diagnostic output for failing "Post Comment" test
in 01-login.t
- Added test to 03-delete to check return status of delete_friends.
0.38 2006-03-28
- Removed extra "&"s from end of URLs in get_friends routines.
- get_friends methods (friends_from_profile, etc) will display
a warning if it encounters a page with no friendIDs.
- get_friends methods will display a warning if the friend count
is off of myspace's friend count by more than 5% when getting
friends from another user's profile (already did this when
getting our friends).
- get_friends methods will display a warning and return if they
fail to get a page.
- Enhanced get_friends sample script
- Fixed bug that was making get_page fail too easily.
- Added version 0.02 of FriendAdder.pm to the distribution
- FriendAdder.pm is now (mostly) documented
- FriendAdder->friend_request() renamed to
FriendAdder->send_friend_requests()
- Added convenience method FriendAdder->add_to_friends() for
FriendAdder->send_friend_requests()
- Added version 0.01 of Myspace::Data.pm to the distribution
- Added test 09-data.t for Myspace::Data
- Added test 10-mybase.t for MyBase.pm
- FriendAdder.pm now uses MyBase.pm as a base class
- Added MyBase.pm to dist (for internal modules to use).
- Fixed bug in message_group - docs said to add "delay: 0"
to the config file to stop it from sleeping. Correct setting
is "delay_time: 0". Fixed docs, and made "delay: 0" work
also so it'll work as expected for people with old config files.
- Removed dependency on IO::All in approve_friends, message_group,
and Message.pm (no longer required in the distribution, removed
from Makefile.PL also).
- Updated output in approve_friends to display result of commenting
(DONE, CAPTCHA, COUNTER). DONE means you've commented all your
friends.
- send_friend_request now checks to make sure there's a button
before posting to avoid:
"Can't call method "click" on an undefined value at
/usr/local/ActivePerl-5.8/lib/site_perl/5.8.7/WWW/Mechanize.pm
line 1345."
- send_friend_request now returns FN if a known error page is returned
even after the multiple attempts get_page makes at retreiving the
page. Before it could cause the error above also.
- Fixed a bug in which get_friends would produce a "use of
unitialized value" error if called with no arguments.
- Updated VERIFY_COMMENT_POST due to change in myspace.com profile
page display.
- Added eval around the "click" in submit_form to prevent the error
above from all methods. Failed form load will now just fail,
not "die".
- Added RE checks to post_comment to strengthen initial load.
Helps overcome FN post errors due to network problems.
EARLIER VERSIONS WILL REPORT FALSE COMMENT POST FAILURES.
0.37 2006-03-22
- Added "We\'re doing some maintenance on the mail for certain users"
error message to errors array.
- Fixed and added example to friends_from_profile method's docs.
- if get_friends is called in a HASHREF context, it returns
a hash of info about each friend (currently just the page they're
on in the friends list).
- Added version 0.01 of FriendAdder.pm to the distribution
- Added 07-friend_adder test script
- Added cool_new_people method to Myspace.pm
- Added 08-cool_new_people test script
comment_myspace:
- Added -i flag to comment_myspace. Causes comment_myspace to ignore
duplicates when posting comments.
- Added -r flag to comment_myspace. Reset the exclusions file before
running.
0.36 2006-03-22 - maintenance release, replaces 0.35.
- Removed signature code - was breaking install.
0.35 2006-03-15
- Added inbox method. Returns the contents of your inbox complete
with sender, messageID, subject, and status (read, unread, sent,
replied).
- Removed commented-out libraries deprecated in version 0.34.
- Added get_inbox sample script.
- submit_form now properly returns a failure code if it can't
load the form, instead of letting WWW::Mechanize choke on it.
This hopefully fixes bug#18232, where post_comments can fail
with no such field 'f_comments' at /.../WWW/Mechanize.pm line 1178.
0.34 2006-03-14
- Switched to use WWW::Mechanize
- Removed dependency on HTTP::Request::Form
- Fixes "Use of initialized value" errors when sending
friend requests.
- Removed cookie_jar method. Cookies stored in memory only.
- Moved login functions to more logical location in the code.
- Fixed some docs typos.
- logged_in will return false if my_friend_id couldn't be set for
some reason.
- If already_commented can't load the page, or if my_friend_id
isn't set, it will return a false "true" value and set
$myspace->error to a message describing the problem.
- Added mortality to all "scripts" - if login fails, the script
will die with "Login Failed". This prevents continuing with
unpredictable results.
0.33 2006-03-10
- Added signature code to Makefile.PL
- Added sample code to logged_in method to keep trying forever
until logged in.
- Added sample_scripts directory to MANIFEST
- Converted tabs into spaces in Changes file.
- Applied patch in bug#18055 to fix send_friend_request. Now
properly returns status code instead of status description
when called in a list context.
- Added dependency for Contextual::Return to Makefile.PL
(used in above bug fix).
- Added is_band method. Returns true if the profile is a band profile.
- Added code to send_friend_request to return "FB" if the
friend we're trying to add doens't accept friend requests from
bands, and the account we're sending from is a band.
- Added is_band tests to 01-login.t.
- Debugged response codes in send_friend_requests. The method
returned mostly FN and F before, codes are accurate now.
- Added "error" method and removed page-load warnings. They
are returned in "error" now and can be displayed by your script if
desired. See docs for "error" method.
- Added code to friend_request to return "FA" (Short for
Failed, Anonomyous adds rejected) if the user requires
a last name or email address to add them.
add_friends:
- Added add_friends to Makefile.PL so it'll actually install.
- add_friends will now die if it can't log in.
- Converted tabs into spaces in code.
- Fixed redundant status_codes code.
- Debugged CAPTCHA prompt
- Updated text.
0.32 2006-03-08
- Added add_friends script to the distribution. Simple script to
help send friend requests to friends list of another profile.
- Updated comment test script to skip post_all test if CAPTCHA
encountered.
- Corrected docs for comment_friends method.
- Corrected potential bug in approve_friend_requests which could
cause duplicate comments.
- Added CAPTCHA check to new friend commenting in
approve_friend_requests so it will not try to post any more
comments after receiving a CAPTCHA response.
- You can now check $myspace->captcha after runing
approve_friend_requests to see if it hit a CAPTCHA response or not.
- Updated approve test to skip comment testing if CAPTCHA was
encountered to prevent unnecessary test failures.
- Fixed Tom's ID in docs (it's 6221, not 6229). Note that it
-was- correct in the code, just not in the docs.
- Fixed test script bug that would cause friends_from_profile
method test to fail.
Comment.pm:
- post_all method now returns CAPTCHA, COUNTER, or DONE like
post_comments. (Only useful when delay = 0).
0.31 2006-03-06
- Added reply_message method. Not tested.
- Added friends_from_profile method which returns a list of
one or more other profile's friends.
- Updated login test script to work like the others,
added tests for friend_from_profile method.
- send_friend_request:
- Applied patch from Olaf Alders to return human-readable
status codes. Added his CAPTCHA-handling sample code
to docs.
Message.pm:
- send_all method now returns a response code (fixes a bug
in message_group in which it would say "Stopped due to "
instead of specifying why it had stopped).
- approve_friends:
- Added "-gc message" argument. If used, approve_friends, after
approving and commenting new friend requests, will leave
"message" as a comment for existing friends.
0.30 2006-03-05
- Added read_message method to Myspace.pm
- Added tests for read_message
- Moved Message.pm testing to 05-message.t
- Renamed approve.t 04-approve.t
- Renamed comment.t 05-comment.
- Changed verification RE for get_profile so that
profiles marked as "private" won't produce "Page doesn't
match verification pattern." warnings.
- Fixed bug#17999: Can't modify non-lvalue subroutine call.
(When post_comment would return an FC response, the module
would produce an error).
0.29 2006-02-27
message_group:
- Now accepts a reference to a list of groups or a single group.
0.28 2006-02-26
- Fixed a bug in post_comment that would cause comments with
multiple lines to display "<br>" tags when posted to pages that
don't allow HTML comments.
- Made same change in send_message, which makes no difference
in MacOS X, but might on other platforms that interpret "\n"
differently. Should be "safer".
- Updated test scripts to post multi-line messages.
0.27 2006-02-24
- Added "An error has occurred trying to send this message" error RE.
message_group:
- Now displays the reason it stopped (CAPTCHA, USAGE, COUNTER, or DONE).
0.26 2006-02-20
- Included approve_friends, message_group, and comment scripts
in distribution.
- Added browse method, but not yet functional. If you want to
help debug, please do. Otherwise, don't use it yet.
- Added CAPTCHA handling (alpha stage):
- post_comment sets $myspace->captcha and returns FC
- Call post_comment with ID, message, captcha response to
continue.
Note: Using this is a bit tricky, needs better examples.
- Fixed "t/02-dual.........Can't open test config file
readline() on closed filehandle CONFIG at t/TestConfig.pm
line 50." error in test.
- CHANGED submit_friend_request. This implements feature request
17587, but IS NOT BACKWARDS COMPATIBLE. It will DIE if you call
it with more than one friend, so that it can tell you to update
your code. Now returns a status code like post_comment instead
of a true/false value.
- Added submit_friend_requests method for multiple adds (but see
docs for a better example).
0.25 2006-02-20
- Added debugging code.
- Updated URLs for get_friends sub-methods. Versions before
this one will not return all friends.
- Added warning if friend_count and number of friends returned
by get_friends differs by more than 10 friends or 5% of
friend_count.
- Added page verification RE to get_friends to help ensure all
friends are accounted for.
0.24 2006-02-19
- Added logged_in method. Returns true if login was successful.
- Added login failure tests to test scripts.
- Updated for changes in myspace.com. These fix install test
errors and the get_friends method (whose URL relies on
friend_count) as well.
- user_name now gets name from "Hello, <name>!" line.
- Included test for optional "<span>" in friend_count.
PREVIOUS VERSION WILL FAIL INSTALL TESTS AND get_friends,
user_name, AND friend_count METHODS (and possibly others)
WILL NOT WORK.
0.23 2006-02-11
- Added "profile undergoing routine maintenance" error RE to
list of error pages.
- Added add_to_friends convenience method.
- Updated URL for inbox friends check. Fixes friends_who_emailed
method and tests so install works.
- Updated $SEND_MESSAGE_FORM URL. Fixes mail sending and tests.
- Fixed POD for add_to_friends.
PREVIOUS VERSIONS WILL FAIL INSTALL TESTS AND CAN'T SEND
MESSAGES.
0.22 2006-02-10
- Added regexp for "This user's profile has been temporarily
disabled for special maintenance" error.
- Added an array of regexps for error page handling.
- Added ability to explicitly verify certain pages in get_pages.
- Added explicit verify for get_profile method.
- Updated known issues.
- Added explicit check for verify form for post_comments.
- Added dual RE check options for submit_form.
0.21 2006-02-07
- Added example and "See also WWW::Myspace::Message" docs for
send_message due to a user question.
- Added "See also WWW::Myspace::Comment" for post_comment.
- Removed unnecessary pre-requesite "IO::All" from Makefile.PL
- Fixed condition in 03-delete.t in which test would fail if
Perl 2 was not in friend list.
- Added code to check for "unexpected error" page.
- Made get_page and submit_form functions much more robost.
- Updated URLs in send_friend_request, delete_friends,
post_comment to use new myspace URLs.
- Added flag to send_message to have it attach an "Add to Friends"
button. This is mostly to save people having to update their
message files manually if the code for this changes again.
- Fixed delete_friends method, broken by myspace change.
- Numerous other changes and bug fixes from extensive changes at
Myspace.com.
- Reinforcement of test script items so that tests should pass,
so that end-user installations can include auto-update code
without forcing install.
Message.pm (0.8):
- Added add_to_friends method which adds an "Add to friends"
button after the message if set to true.
If you include an "add to friends" button in your messages,
YOU SHOULD UPDATE YOUR CODE TO USE THIS METHOD instead.
PREVIOUS VERSIONS WILL ENCOUNTER MANY ERRORS:
Posting comments, deleting friends, sending friend requests.
Install tests will fail.
0.20 2006-02-04
- Added Tom's friend_user_name method and test for it.
- Added more output info to approve.t test.
0.19 2006-02-04
Maintenance release
- Added missing test files to distribution
0.18 2006-02-02
- Added bug reporting note to docs.
Message.pm (0.7):
- Counter now only counts successful posts.
Comment.pm (0.11):
- Counter now only counts successful posts.
0.17 2006-02-01/6:43pm
- Updated Login script due to change in myspace.com login form.
Unless Myspace.com changes the form back, NO PREVIOUS VERSION
WILL WORK as of the date/time of this version above.
0.16 2006-01-26/8:09pm
- Set test count correctly in approve.t
Comment.pm:
- Added post_all method
- Added comment.t test.
- Fixed a condition which could cause an "undefined variable"
warning when reset_exclusions is called.
- Fixed a bug that would produce an error:
Can't use an undefined value as an ARRAY reference at
/path/to/WWW/Myspace/Comment.pm line 124, <STDIN> line 2.
if post_comments was called without any friends.
(RT Bug 17379: http://rt.cpan.org/Ticket/Display.html?id=17379).
- Added test for defaults to comment.t
0.15 2006-01-25/3:12pm
- Fixed condition in submit_form so it'll try 5 times with 2
second delay if there's a network error.
- Updated test suite for new max_count in Message and removed
extra "approve_friends" test in 01-login.t
- Added handling of private profiles in send_message - returns "FF"
- send_message converts literal '\n' into "\n".
- Added handling of away messages - returns "FA"
- Added handling of excess usage - returns "FE"
Message.pm:
- Added result code display (i.e. why are we sleeping?) when
sleeping and "noisy" is on.
- Det default max_count to 300.
- Added handling of private profiles and away messages.
- Added handling of usage being exceeded - returns "USAGE".
0.14 2006-01-25/11:41am
- Added loop code to submit_form - will now try each
submit 5 times if the submit fails.
- Added optional "message" argument to approve_friend_requests.
You can now call approve_friend_requests( message )
and message will be posted to each approved friend.
- Added TODO and CONTRIBUTING section to docs.
- Updated docs for all methods.
- Updated get_page to attempt GET 20 times instead of forever.
- Added methods:
- send_friend_request
- add_as_friend
- delete_friend
Comment.pm (0.9):
- Reworked module internals. Made Spiffy.
- Numerous minor bug fixes.
- Renamed "HTML" accessor "html".
- Added "noisy" accessor.
- Added "cache_file" to conform to Message and Myspace.
0.13 2006-01-20/7:43pm
Fixed approve_friend_requests method. Was skipping valid friend
requests.
0.12 2006-01-17/1:20pm
Included Comment.pm, FriendChanges.pm, and Message.pm in
distribution.
Fixed bugs in cache_dir and cache_file handling.
Made pathname handling OS-independent using File::Spec.
Added friend_count and user_name accessors.
Fixed retreival of user's friend list in get_friends.
Added make_cache_dir method.
Comment.pm:
- Added exlusions_file method.
- Renamed "set_HTML" method "HTML". Made it a
standard accessor method.
FriendChanges.pm:
- Set default cache file to $myspace->cache_dir/friend_cache.
- Added cache_file accessor method.
- Obsoleted "set_cache_file" method.
Message.pm, Comment.pm, FriendChanges.pm:
- When cache_dir method is called to retreive its default
value, it calls the make_cache_dir method in the
WWW::Myspace object to create cache_dir if it
doesn't exist.
- File handling done by File::Spec for cross-platform
portability.
Message.pm:
- Added extensive test suite.
- Added "messaged" method.
- Stabilized code to beta release state. Passes test suite.
- Fixed bugs.
- Noted obscure known "bugs".
0.11 2006-01-19/3:07am
CPAN maintenance release. Removed stray ._ files from dist.
0.10 2006-01-16/8:12pm
Fixed setting of HOME_DIR to work if $ENV{HOME} is not
set (i.e. if running in a CGI script). Updated docs.
0.09 2006-01-11/10:24pm
Chnaged name from "Myspace" to "WWW::Myspace"
Made "Spiffy".
Updated docs.
Changed cache file to use $HOME/.www-myspace/login_cache by default.
Fixed bugs:
Known issues:
- get_friends method does not work if user has > 40 friends
(bug introduced by change in myspace site).
- post_comment dies if it is told to post to a friendID that
is not a friend of the logged-in user. (Myspace displays
an error instead of a form).
Added test suite.
0.08 2006-01-07/12:52pm
*** REQUIRED VERSION AFTER 1/7/2006 ***
Added explicit load of "Home" page when logging in.
Note that this was done beacuse Myspace added an
ad page which breaks any version of this module prior
to this one.
0.07 2006-01-03/7:51pm
Added CAPTCHA response code "FC" to send_message method. send_message
returns FC if the $CAPTCHA regexp is found after submitting a message
form.
0.06 2005-12-27/5:04pm
Added friends_in_group method. Returns list of "friends" in a
Myspace group when passed the group ID.
0.05 2005-12-14/7:49pm
Added approve_friends method.
0.04 2005-12-11/9:38pm
Minor documentation tweaks: Updated BUGS and Copyright secsions,
added "send_messages" method in SYNOPSIS.
0.03 2005-12-11/9:21pm
Added send_message method.
Added already_commented method.
Updated documentation to be in-line in the package file.
0.02 2005-12-08/10:41pm
post_comments now adds "<br>" tags to the message
like myspace's Javascript does.
0.01 2005-12-05/1:14
First version, released on an unsuspecting world.