diff options
author | Sebastian Spaeth <Sebastian@SSpaeth.de> | 2012-12-14 10:54:53 +0100 |
---|---|---|
committer | Sebastian Spaeth <Sebastian@SSpaeth.de> | 2012-12-14 11:52:53 +0100 |
commit | 2f5926a65d4e56d4ab9c7bfd6b3de25a032b8be5 (patch) | |
tree | fbec7069b00a5810c4e3fb2ec7ba378346405cb1 | |
parent | a04cd2e596887e8d8f59534ffc3a3795fc9d4be9 (diff) | |
download | mediagoblin-2f5926a65d4e56d4ab9c7bfd6b3de25a032b8be5.tar.lz mediagoblin-2f5926a65d4e56d4ab9c7bfd6b3de25a032b8be5.tar.xz mediagoblin-2f5926a65d4e56d4ab9c7bfd6b3de25a032b8be5.zip |
Fiy python2.7'ism (#566)
The oauth plugin used timedelta.total_seconds which was introduced
in python 2.7 only. To preserve backwards compatability, we simply
calculate the time difference in seconds manually.
I considered monkeypatching total_seconds to the timedelta object,
but it is a built-in type written in C (I believe) and modifying
attributes failed horribly. Switch this to use total_seconds once we
require python 2.7 as minimum version.
Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
-rw-r--r-- | mediagoblin/plugins/oauth/views.py | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/mediagoblin/plugins/oauth/views.py b/mediagoblin/plugins/oauth/views.py index cf605fd2..643c2783 100644 --- a/mediagoblin/plugins/oauth/views.py +++ b/mediagoblin/plugins/oauth/views.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- # GNU MediaGoblin -- federated, autonomous media hosting # Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # @@ -216,12 +217,15 @@ def access_token(request): token.client = code.client token.save() + # expire time of token in full seconds + # timedelta.total_seconds is python >= 2.7 or we would use that + td = token.expires - datetime.now() + exp_in = 86400*td.days + td.seconds # just ignore µsec + access_token_data = { 'access_token': token.token, 'token_type': 'bearer', - 'expires_in': int( - round( - (token.expires - datetime.now()).total_seconds()))} + 'expires_in': exp_in} return json_response(access_token_data, _disable_cors=True) else: return json_response({ |