diff --git a/Scripts/update_server.py b/Scripts/update_server.py --- a/Scripts/update_server.py +++ b/Scripts/update_server.py @@ -8,8 +8,9 @@ import requests from ast import literal_eval OBFS_REGEX = re.compile(r'^ServerTransportPlugin (obfs\d+|scramblesuit)') - FTEPROXY_REGEX = re.compile(r'^ServerTransportPlugin fte') +FLASHPROXY_REGEX = re.compile(r'^ServerTransportPlugin webproxy') +MEEKPROXY_REGEX = re.compile(r'^ServerTransportPlugin meek') IP_REGEX = re.compile(r'^(OutboundBindAddress)\ (\d{1,3}\.\d{1,3}\.\d{1,3}\.' r'\d{1,3})') @@ -71,6 +72,16 @@ def get_fte_proxy(tor_config): return any(FTEPROXY_REGEX.match(i) for i in tor_config) +def get_flash_proxy(tor_config): + + return any(FLASHPROXY_REGEX.match(i) for i in tor_config) + + +def get_meek_proxy(tor_config): + + return any(MEEKPROXY_REGEX.match(i) for i in tor_config) + + def get_ip(tor_config): for i in tor_config: @@ -100,10 +111,14 @@ def create_server_json(tor_configfile='/ obfs = None fte = None + flash = None + meek = None if server_type == 'Bridge': obfs = get_obfs_proxy(tor_config) fte = get_fte_proxy(tor_config) + flash = get_flash_proxy(tor_config) + meek = get_meek_proxy(tor_config) dictionary = {'server_type': server_type, 'server_name': hostname, 'tor_status': tor_status, 'fingerprint': fingerprint} @@ -117,6 +132,12 @@ def create_server_json(tor_configfile='/ if fte is not None: dictionary['fteproxy'] = fte + if flash is not None: + dictionary['flashproxy'] = flash + + if meek is not None: + dictionary['meek'] = meek + return dictionary diff --git a/ennstatus/api/functions.py b/ennstatus/api/functions.py --- a/ennstatus/api/functions.py +++ b/ennstatus/api/functions.py @@ -55,7 +55,7 @@ def check_json_format(server): raise ValueError('fingerprint has not the right format!\n') if server['server_type'] == 'bridge': - for key in ('obfs', 'fteproxy'): + for key in ('obfs', 'fteproxy', 'flashproxy', 'meek'): check_bridge(key, server) if 'ip' in server: 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 @@ -9,6 +9,8 @@ {% if server['server_type'] == 'bridge' %} {{ server['obfs'] }} {{ server['fteproxy'] }} + {{ server['flashproxy'] }} + {{ server['meek'] }} {% else %} {{ server['ip'] }} {% endif %} diff --git a/ennstatus/templates/status/macros.html b/ennstatus/templates/status/macros.html --- a/ennstatus/templates/status/macros.html +++ b/ennstatus/templates/status/macros.html @@ -40,7 +40,7 @@ {% if server_type in ('Exit', 'Relay') %} {% set headers = ('#', 'Name', 'IP', 'Server Status', 'Tor Status', 'Country', 'Fingerprint', 'Last Updated (UTC)') %} {% else %} - {% set headers = ('#', 'Name', 'Server Status', 'Tor Status', 'Country', 'Fingerprint', 'OBFS', 'FTEProxy', 'Last Updated (UTC)') %} + {% set headers = ('#', 'Name', 'Server Status', 'Tor Status', 'Country', 'Fingerprint', 'OBFS', 'FTEProxy', 'Flashproxy', 'meek', 'Last Updated (UTC)') %} {% endif %}

{{ server_type }}

@@ -69,6 +69,8 @@ {% if server_type == 'Bridge' %} + + {% endif %} diff --git a/setup.py b/setup.py --- a/setup.py +++ b/setup.py @@ -11,7 +11,7 @@ def _get_requirements(): setup(name='Ennstatus', - version='4.1.4', + version='4.2.0', description=('Ennstatus provides the user with vital information about ' 'the status of the organizations Tor servers.'), author='Frënn vun der Ënn',
{{ colorize_obfs(server['obfs']) }} {{ colorize_obfs(server['fteproxy']) }}{{ colorize_obfs(server['flashproxy']) }}{{ colorize_obfs(server['meek']) }}{{ server['last_updated'] }}