|
@@ -26,6 +26,7 @@ import json
|
26
|
26
|
import cStringIO
|
27
|
27
|
import os
|
28
|
28
|
|
|
29
|
+from itertools import chain
|
29
|
30
|
from flask import (
|
30
|
31
|
Flask, request, render_template, url_for, Response, make_response,
|
31
|
32
|
redirect, send_from_directory
|
|
@@ -86,10 +87,17 @@ def get_base_url():
|
86
|
87
|
|
87
|
88
|
|
88
|
89
|
def render(template_name, **kwargs):
|
89
|
|
- global categories
|
90
|
|
- kwargs['categories'] = ['general']
|
91
|
|
- kwargs['categories'].extend(x for x in
|
92
|
|
- sorted(categories.keys()) if x != 'general')
|
|
90
|
+ blocked_engines = request.cookies.get('blocked_engines', '').split(',')
|
|
91
|
+ nonblocked_categories = (engines[e].categories
|
|
92
|
+ for e in engines
|
|
93
|
+ if e not in blocked_engines)
|
|
94
|
+ nonblocked_categories = set(chain.from_iterable(nonblocked_categories))
|
|
95
|
+ if not 'categories' in kwargs:
|
|
96
|
+ kwargs['categories'] = ['general']
|
|
97
|
+ kwargs['categories'].extend(x for x in
|
|
98
|
+ sorted(categories.keys())
|
|
99
|
+ if x != 'general'\
|
|
100
|
+ and x in nonblocked_categories)
|
93
|
101
|
if not 'selected_categories' in kwargs:
|
94
|
102
|
kwargs['selected_categories'] = []
|
95
|
103
|
cookie_categories = request.cookies.get('categories', '').split(',')
|