Changes for version 5.4

  • Modernization and security updates:
    • Changed all API URLs from HTTP to HTTPS
    • Changed all OAuth URLs from HTTP to HTTPS
    • Fixed POD version number mismatch
    • Added proper Carp imports to Blog.pm and User.pm
    • Fixed ResponseError to handle non-JSON responses gracefully
    • Fixed Authentication::OAuth mixed inheritance (use base + extends)
    • Updated test URLs: replaced dead lorempixel/quotesondesign APIs
    • Updated metacpan API URL to fastapi.metacpan.org
    • Fixed tagged() method to return decoded JSON instead of HTTP::Response
    • Updated follow/unfollow tests to use staff.tumblr.com (old blog deleted)
    • Fixed UTF-8 posting: encode params to bytes before POST (PR #15)
    • Fixed post_reblog() - was broken, now works for all post types (issue #7)
    • Added rate limit handling for CPAN Testers (issue #17):
      • Added is_rate_limited() method to ResponseError
      • Tests now gracefully skip when rate limit is hit
      • Added TUMBLR_SKIP_POSTING_TESTS env var to skip posting tests
      • Added TUMBLR_SKIP_LIVE_TESTS env var to skip all live API tests
    • Documented image format limitations (issue #18):
      • Legacy API only supports JPEG/PNG/GIF (not WebP)
      • NPF support noted as future enhancement
    • Security: Require Net::OAuth::Client >= 0.30 for CVE-2025-22376 (issue #19)

Provides

in lib/WWW/Tumblr/API.pm
in lib/WWW/Tumblr/Authentication.pm
in lib/WWW/Tumblr/Authentication/APIKey.pm
in lib/WWW/Tumblr/Authentication/None.pm
in lib/WWW/Tumblr/Authentication/OAuth.pm
in lib/WWW/Tumblr/Test.pm