Skip to content

Releases: snarfed/oauth-dropins

v6.4

25 Jun 04:45
281e98b
Compare
Choose a tag to compare

Misc webutil updates.

v6.3

16 Mar 04:39
02e49be
Compare
Choose a tag to compare

Notable changes

  • Bluesky:
    • Normalize handles to lower case, remove leading @ (bridgy#1667).

Miscellaneous changes in webutil.

v6.2

15 Sep 21:28
fc10b09
Compare
Choose a tag to compare

Miscellaneous changes in webutil.

v6.1: ### Notable changes

22 Mar 20:15
30a9ca4
Compare
Choose a tag to compare

Notable changes

Non-breaking changes:

  • IndieAuth:
    • Store access token and refresh token in IndieAuth datastore entities.
  • Misc webutil changes.

v6.0: ### Breaking changes

04 Dec 04:13
9221ced
Compare
Choose a tag to compare

Breaking changes

  • Remove webutil.handlers, which was based on the largely unmaintained webapp2. All known clients have migrated to Flask and webutil.flask_util.
  • Drop Python 3.6 support. Python 3.7 is now the minimum required version.

Non-breaking changes

  • Add new twitter_v2 module for Twitter's new OAuth 2 with PKCE support and v2 API.
  • Blogger:
    • Fix bug when user approves the OAuth prompt but has no Blogger blogs. Instead of crashing, we now redirect to the callback with declined=True, which is still wrong, but less bad.
  • Mastodon:
    • Change MastodonAuth.access_token_str from ndb TextProperty to StringProperty so that it's indexed in the Datastore.
    • When the callback gets an invalid state parameter, return HTTP 400 instead of raising JSONDecodeError.
  • Misc webutil updates.

v5.0

23 Mar 15:16
2631b37
Compare
Choose a tag to compare

Breaking changes

  • Drop Python 3.5 support. Python 3.6 is now the minimum required version.

Non-breaking changes

  • Switch from app_server to flask run for local development.
  • Add webutil.util.set_user_agent to set User-Agent header to be sent with all HTTP requests.

v4.0: ### Breaking changes

16 Sep 04:39
41c4355
Compare
Choose a tag to compare

Breaking changes

  • Migrate from webapp2 to Flask. webapp2 had a good run, but it's no longer actively developed, and Flask is one of the most widely adopted standalone web framework in the Python community.

  • Remove to() class methods. Instead, now pass redirect paths to Flask's as_view() function, eg:

    app = Flask()
    app.add_url_rule('/start', view_func=twitter.Callback.as_view('start', '/oauth_callback'))
  • Remove deprecated blogger_v2 module alias.

  • webutil: migrate webapp2 HTTP request handlers in the handlers module - XrdOrJrdHandler, HostMetaHandler, and HostMetaXrdsHandler - to Flask views in a new flask_util module.

Non-breaking changes

  • webutil: implement Webmention protocol in new webmention module.
  • webutil: add misc Flask utilities and helpers in new flask_util module.

v3.1: ### Notable changes

04 Apr 05:58
03cd954
Compare
Choose a tag to compare

Notable changes

  • Add Python 3.8 support, drop 3.3 and 3.4. Python 3.5 is now the minimum required version.
  • Add Pixelfed support, heavily based on Mastodon.
  • Add Reddit support. Thanks Will Stedden!
  • WordPress.com:
    • Handle errors from access token request.

v3.0: ### _Breaking changes_

15 Mar 18:19
071df7d
Compare
Choose a tag to compare

Breaking changes

  • Python 2 is no longer supported! Including the App Engine Standard Python 2 runtime. On the plus side, the Python 3 runtimes, both Standard and Flexible, are now supported.
  • Replace handlers.memcache_response(), which used Python 2 App Engine's memcache service, with cache_response(), which uses local runtime memory.
  • Remove the handlers.TemplateHandler.USE_APPENGINE_WEBAPP toggle to use Python 2 App Engine's google.appengine.ext.webapp2.template instead of Jinja.
  • Blogger:
    • Login is now based on Google Sign-In. The api_from_creds(), creds(), and http() methods have been removed. Use the remaining api() method to get a BloggerClient, or access_token() to make API calls manually.
  • Google:
  • Mastodon:
    • StartHandler: drop APP_NAME/APP_URL class attributes and app_name/app_url kwargs in the to() method and replace them with new app_name()/app_url() methods that subclasses should override, since they often depend on WSGI environment variables like HTTP_HOST and SERVER_NAME that are available during requests but not at runtime startup.
  • webutil:
    • Drop handlers.memcache_response() since the Python 3 runtime doesn't include memcache.
    • Drop handlers.TemplateHandler support for webapp2.template via USE_APPENGINE_WEBAPP, since the Python 3 runtime doesn't include webapp2 built in.
    • Remove cache and fail_cache_time_secs kwargs from util.follow_redirects(). Caching is now built in. You can bypass the cache with follow_redirects.__wrapped__(). Details.

Non-breaking changes

  • Add Meetup support. (Thanks Jamie Tanna!)
  • Blogger, Google:
    • The state query parameter now works!
  • Add new outer_classes kwarg to button_html() for the outer <div>, eg as Bootstrap columns.
  • Add new image_file kwarg to StartHandler.button_html()

v2.2: ### Notable changes

01 Nov 23:13
6bc2ca3
Compare
Choose a tag to compare

Notable changes

  • Add LinkedIn and Mastodon!
  • Add Python 3.7 support, and improve overall Python 3 compatibility.
  • Add new button_html() method to all StartHandler classes. Generates the same button HTML and styling as on oauth-dropins.appspot.com.
  • Blogger: rename module from blogger_v2 to blogger. The blogger_v2 module name is still available as an alias, implemented via symlink, but is now deprecated.
  • Dropbox: fix crash with unicode header value.
  • Google: fix crash when user object doesn't have name field.
  • Facebook: upgrade Graph API version from 2.10 to 4.0.
  • Update a number of dependencies.
  • Switch from Python's built in json module to ujson (built into App Engine) to speed up JSON parsing and encoding.