diff --git a/ennstatus/api/functions.py b/ennstatus/api/functions.py
--- a/ennstatus/api/functions.py
+++ b/ennstatus/api/functions.py
@@ -23,9 +23,21 @@ DATE_FORMAT = '%d-%m-%Y %H:%M:%S'
gi4 = pygeoip.GeoIP('/usr/share/GeoIP/GeoIP.dat', pygeoip.MEMORY_CACHE)
+def check_bridge(key, server):
+
+ if key not in server:
+ raise ValueError('%s key not present!\n' % key)
+ else:
+ if server[key] not in ('True', 'False'):
+ error_message = ('%s has not the right content!'
+ ' is: %s must be one of: True or False\n') \
+ % (key, server[key])
+ raise ValueError(error_message)
+
+
def check_json_format(server):
- for key in ('server_type', 'server_name', 'tor_status'):
+ for key in ('server_type', 'server_name', 'tor_status', 'fingerprint'):
if key not in server:
raise ValueError('%s key not present!\n' % key)
@@ -40,22 +52,12 @@ def check_json_format(server):
' is: %s must be one of: Online or Offline\n') \
% server['tor_status']
- if server['server_type'] in ('Exit', 'Relay'):
- if 'fingerprint' not in server:
- raise ValueError('fingerprint key not present!\n')
- else:
- if FINGERPRINT_REGEX.match(server['fingerprint']) is None:
- raise ValueError('fingerprint has not the right format!\n')
+ if FINGERPRINT_REGEX.match(server['fingerprint']) is None:
+ raise ValueError('fingerprint has not the right format!\n')
- else:
- if 'obfs' not in server:
- raise ValueError('obfs key not present!\n')
- else:
- if server['obfs'] not in ('True', 'False'):
- error_message = ('obfs has not the right content!'
- ' is: %s must be one of: True or False\n') \
- % server['obfs']
- raise ValueError(error_message)
+ if server['server_type'] == 'bridge':
+ for key in ('obfs', 'fteproxy'):
+ check_bridge(key, server)
if 'ip' in server:
if IP_REGEX.match(server['ip']) is None:
@@ -74,6 +76,7 @@ def update_server(server, ip):
if server['server_type'] == 'Bridge':
server['obfs'] = literal_eval(server['obfs'])
+ server['fteproxy'] = literal_eval(server['fteproxy'])
if 'ip' in server:
del server['ip']
diff --git a/ennstatus/templates/api/export/xml/server.xml b/ennstatus/templates/api/export/xml/server.xml
--- a/ennstatus/templates/api/export/xml/server.xml
+++ b/ennstatus/templates/api/export/xml/server.xml
@@ -5,13 +5,11 @@
{{ loop.index }} | {% if server_type in ('Exit', 'Relay') %}{{ create_name(server['server_name']) }} | +{{ server['ip'] }} | {% else %}{{ server['server_name'] }} | {% endif %} - {% if server_type in ('Exit', 'Relay') %} -{{ server['ip'] }} | - {% endif %} - {% for status in [server['server_status'], server['tor_status']] %} + {% for status in (server['server_status'], server['tor_status']) %}{{ colorize_status(status) }} | {% endfor %}{{ create_country(server['country']) }} | {{ create_fingerprint(server['fingerprint'], server['server_type']) }} | {% if server_type == 'Bridge' %}{{ colorize_obfs(server['obfs']) }} | +{{ colorize_obfs(server['fteproxy']) }} | {% endif %}{{ server['last_updated'] }} |