Skip to content

v5.0: ### Breaking changes

Compare
Choose a tag to compare
@snarfed snarfed released this 04 Dec 04:28
· 976 commits to main since this release
724d6b2

Breaking changes

  • Drop Python 3.6 support. Python 3.7 is now the minimum required version.
  • Twitter, Instagram, Mastodon:
    • Drop get_activities cache kwarg's support for App Engine memcache interface. It's now only used as a plain dict. get_activities will now make many small modifications, so if you pass an object that implements those as API calls, you'll probably want to batch those separately.
  • Twitter, Mastodon, Flickr, GitHub:
    • create/preview: support the AS1 favorite verb as well as like. (bridgy#1345)
  • Atom:
    • Switch to converting AS1 id (instead of url) to Atom id.
  • Reddit:
    • Implement get_actor.
  • Mastodon:
    • create/preview: allow non-Mastodon replies, ie activities that include inReplyTo URLs even if none of them point to a toot. (bridgy#1321)
    • Raise requests.HTTPError with response.status_code 502 instead of JSONDecodeError on non-JSON responses. This is synthetic, but more helpful for error handling.
  • microformats2:
    • object_to_json and related functions: handle all escaped HTML entities, not just & < >.
    • Unify microformats2.prefix_image_urls and prefix_video_urls into a new as1.prefix_urls function.
  • RSS:
  • ActivityStreams 2:
    • Translate both url and urls from AS1 into multi-valued AS2 url field.
  • Move a number of utility methods from the Source class to a new as1 module: object_type, merge_by_id, is_public, add_rsvps_to_event, get_rsvps_from_event, activity_changed, append_in_reply_to, actor_name, original_post_discovery.
  • as1.original_post_discovery: remove deprecated cache kwarg.

Non-breaking changes

  • ActivityStreams 2:
    • Fix spec compliance bug: icon and image are singly valued, not multiply valued.
    • Add new is_public method and PUBLIC_AUDIENCE constant.
    • Prefer "objectType": "featured" first in the image field when converting from AS1, last in the icon field. This matches the ActivityPub (Mastodon) convention of using icon for profile pictures and image for header images.
    • Propagate url values into new PropertyValue attachments on Person objects; these end up in Mastodon's "profile metadata" link fields.
    • to_as1: if an attachment's mediaType is image/..., override objectType and set it to image.
  • Twitter
    • Trim alt text in line between post preview and creation
    • Correctly trim Twitter alt text
  • Facebook
    • Scraping: extract post id and owner id from data-ft attribute and _ft_ query param more often instead of story_fbid, which is now an opaque token that changes regularly. (facebook-atom#27)
  • Instagram
    • Add new Instagram.scraped_json_to_activities method.
  • GitHub
    • create and preview: convert profile URLs to @-mentions, eg https://github.com/snarfed to @snarfed (bridgy#1090).
      • get_activities with activity_id now supports fetch_replies and fetch_likes.
  • Reddit
    • Add cache support to get_activities.
  • REST API
    • Add new /scraped endpoint that accepts POST requests with silo HTML as input. Currently only supports Instagram. Requires site=instagram, output=... (any supported output format), and HTML as either raw request body or MIME multipart encoded file in the input parameter.
  • microformats2
    • Add new extra and body_class kwargs to activities_to_html.
    • When converting u-featured images to AS1, add new non-standard "objectType": "featured" field to distinguish them from u-photo.
    • Convert p-note to AS1 summary.
    • Bug fixes for converting image attachments to photo.
  • Source.original_post_discovery: add new max_redirect_fetches keyword arg.