aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Spaeth <Sebastian@SSpaeth.de>2012-12-14 10:54:53 +0100
committerSebastian Spaeth <Sebastian@SSpaeth.de>2012-12-14 11:52:53 +0100
commit2f5926a65d4e56d4ab9c7bfd6b3de25a032b8be5 (patch)
treefbec7069b00a5810c4e3fb2ec7ba378346405cb1
parenta04cd2e596887e8d8f59534ffc3a3795fc9d4be9 (diff)
downloadmediagoblin-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.py10
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({