messy brotli experiment

This commit is contained in:
codl 2017-08-11 17:57:32 +02:00
parent 8a1b9c05de
commit a42c54aa50
No known key found for this signature in database
GPG Key ID: 6CD7C8891ED1233A
4 changed files with 17 additions and 0 deletions

View File

@ -3,3 +3,4 @@ from .interval import decompose_interval
from .interval import SCALES as interval_scales
from .cachebust import cachebust
from .session import set_session_cookie, get_viewer_session, get_viewer
from . import brotli

12
lib/brotli.py Normal file
View File

@ -0,0 +1,12 @@
import brotli
def compress_response(response):
if response.is_streamed:
return response
mode = brotli.MODE_GENERIC
if response.headers.get('content-type', '').startswith('text/'):
mode = brotli.MODE_TEXT
response.set_data(brotli.compress(response.get_data(), mode=mode))
response.headers.set('content-encoding', 'br')
response.headers.set('vary', 'content-encoding')
return response

View File

@ -2,6 +2,7 @@ alembic==0.9.5
amqp==2.2.1
billiard==3.5.0.3
blinker==1.4
Brotli==0.6.0
celery==4.1.0
click==6.7
cloudpickle==0.4.0

View File

@ -12,6 +12,7 @@ from zipfile import BadZipFile
from twitter import TwitterError
from urllib.error import URLError
import version
import lib.brotli
@app.before_request
def load_viewer():
@ -35,6 +36,8 @@ def touch_viewer(resp):
db.session.commit()
return resp
app.after_request(lib.brotli.compress_response)
@app.route('/')
def index():
if g.viewer: