mirror of https://gitlab.com/bashrc2/epicyon
77 lines
2.1 KiB
Python
77 lines
2.1 KiB
Python
|
__filename__ = "httprequests.py"
|
||
|
__author__ = "Bob Mottram"
|
||
|
__license__ = "AGPL3+"
|
||
|
__version__ = "1.5.0"
|
||
|
__maintainer__ = "Bob Mottram"
|
||
|
__email__ = "bob@libreserver.org"
|
||
|
__status__ = "Production"
|
||
|
__module_group__ = "Core"
|
||
|
|
||
|
from webapp_utils import text_mode_browser
|
||
|
|
||
|
|
||
|
def request_csv(headers: {}) -> bool:
|
||
|
"""Should a csv response be given?
|
||
|
"""
|
||
|
if not headers.get('Accept'):
|
||
|
return False
|
||
|
accept_str = headers['Accept']
|
||
|
if 'text/csv' in accept_str:
|
||
|
return True
|
||
|
return False
|
||
|
|
||
|
|
||
|
def request_ssml(headers: {}) -> bool:
|
||
|
"""Should a ssml response be given?
|
||
|
"""
|
||
|
if not headers.get('Accept'):
|
||
|
return False
|
||
|
accept_str = headers['Accept']
|
||
|
if 'application/ssml' in accept_str:
|
||
|
if 'text/html' not in accept_str:
|
||
|
return True
|
||
|
return False
|
||
|
|
||
|
|
||
|
def request_http(headers: {}, debug: bool) -> bool:
|
||
|
"""Should a http response be given?
|
||
|
"""
|
||
|
if not headers.get('Accept'):
|
||
|
return False
|
||
|
accept_str = headers['Accept']
|
||
|
if debug:
|
||
|
print('ACCEPT: ' + accept_str)
|
||
|
if 'application/ssml' in accept_str:
|
||
|
if 'text/html' not in accept_str:
|
||
|
return False
|
||
|
if 'image/' in accept_str:
|
||
|
if 'text/html' not in accept_str:
|
||
|
return False
|
||
|
if 'video/' in accept_str:
|
||
|
if 'text/html' not in accept_str:
|
||
|
return False
|
||
|
if 'audio/' in accept_str:
|
||
|
if 'text/html' not in accept_str:
|
||
|
return False
|
||
|
if accept_str.startswith('*') or 'text/html' in accept_str:
|
||
|
if headers.get('User-Agent'):
|
||
|
ua_str = headers['User-Agent']
|
||
|
if text_mode_browser(ua_str) or 'NetSurf/' in ua_str:
|
||
|
return True
|
||
|
if 'text/html' not in accept_str:
|
||
|
return False
|
||
|
if 'json' in accept_str:
|
||
|
return False
|
||
|
return True
|
||
|
|
||
|
|
||
|
def request_icalendar(headers: {}) -> bool:
|
||
|
"""Should an icalendar response be given?
|
||
|
"""
|
||
|
if not headers.get('Accept'):
|
||
|
return False
|
||
|
accept_str = headers['Accept']
|
||
|
if 'text/calendar' in accept_str:
|
||
|
return True
|
||
|
return False
|