mirror of
https://github.com/moparisthebest/SickRage
synced 2024-12-12 11:02:21 -05:00
Merge pull request #146 from JackDandy/feature/FixAPI_JSON_Response
Fix API response header for JSON content type and the return of JSONP data
This commit is contained in:
commit
4d6543b73a
@ -73,7 +73,7 @@
|
||||
* Fix dropdown confirm dialogs for restart and shutdown
|
||||
* Fix parsing utf8 data from tvdb and tvrage
|
||||
* Fix display show status and subtitle searches to use new column class names
|
||||
|
||||
* Fix API response header for JSON content type and the return of JSONP data
|
||||
|
||||
### 0.2.1 (2014-10-22 06:41:00 UTC)
|
||||
|
||||
|
@ -164,14 +164,16 @@ class Api(webserve.MainHandler):
|
||||
self.set_header("Content-Type", "application/json")
|
||||
try:
|
||||
out = json.dumps(dict, indent=self.intent, sort_keys=True)
|
||||
callback = self.request.headers.get('callback', None) or self.request.headers.get('jsonp', None)
|
||||
if callback != None:
|
||||
out = callback + '(' + out + ');' # wrap with JSONP call if requested
|
||||
if 'jsonp' in self.request.query_arguments:
|
||||
out = self.request.arguments['jsonp'] + '(' + out + ');' # wrap with JSONP call if requested
|
||||
|
||||
except Exception, e: # if we fail to generate the output fake an error
|
||||
logger.log(u"API :: " + traceback.format_exc(), logger.DEBUG)
|
||||
out = '{"result":"' + result_type_map[RESULT_ERROR] + '", "message": "error while composing output: "' + ex(
|
||||
e) + '"}'
|
||||
return out
|
||||
|
||||
tornado_write_hack_dict = {'unwrap_json': out}
|
||||
return tornado_write_hack_dict
|
||||
|
||||
def _grand_access(self, realKey, args, kwargs):
|
||||
""" validate api key and log result """
|
||||
|
@ -652,7 +652,10 @@ class RequestHandler(object):
|
||||
if not isinstance(chunk, (bytes, unicode_type, dict)):
|
||||
raise TypeError("write() only accepts bytes, unicode, and dict objects")
|
||||
if isinstance(chunk, dict):
|
||||
chunk = escape.json_encode(chunk)
|
||||
if 'unwrap_json' in chunk:
|
||||
chunk = chunk['unwrap_json']
|
||||
else:
|
||||
chunk = escape.json_encode(chunk)
|
||||
self.set_header("Content-Type", "application/json; charset=UTF-8")
|
||||
chunk = utf8(chunk)
|
||||
self._write_buffer.append(chunk)
|
||||
|
Loading…
Reference in New Issue
Block a user