aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJordan <me@jordan.im>2020-03-27 12:47:54 -0700
committerJordan <me@jordan.im>2020-03-27 12:47:54 -0700
commit7b5448942cb7501aac960e98f73b7ee11a434517 (patch)
treeae4d1ca15141c34d72ddcb0873b44e68dd7904be
parent47c83a7c5a8b861d2205dc0076a120f1e74ce271 (diff)
downloadallium-7b5448942cb7501aac960e98f73b7ee11a434517.tar.gz
allium-7b5448942cb7501aac960e98f73b7ee11a434517.zip
add per-key middle/exit count to header
-rwxr-xr-xtor-metrics/generate.py72
-rw-r--r--tor-metrics/templates/as.html2
-rw-r--r--tor-metrics/templates/country.html2
-rw-r--r--tor-metrics/templates/effective_family.html2
-rw-r--r--tor-metrics/templates/flag.html2
-rw-r--r--tor-metrics/templates/platform.html2
6 files changed, 58 insertions, 24 deletions
diff --git a/tor-metrics/generate.py b/tor-metrics/generate.py
index ce7f5c2..ce3fa2a 100755
--- a/tor-metrics/generate.py
+++ b/tor-metrics/generate.py
@@ -66,10 +66,15 @@ def sort_relays(relays):
relays.json['sorted'][key][v] = dict()
relays.json['sorted'][key][v]['relays'] = list()
relays.json['sorted'][key][v]['bw'] = 0
- if idx not in relays.json['sorted'][key][v]['relays']:
- bw = relay['observed_bandwidth']
- relays.json['sorted'][key][v]['relays'].append(idx)
- relays.json['sorted'][key][v]['bw'] += bw
+ relays.json['sorted'][key][v]['exit_count'] = 0
+ relays.json['sorted'][key][v]['middle_count'] = 0
+ bw = relay['observed_bandwidth']
+ relays.json['sorted'][key][v]['relays'].append(idx)
+ relays.json['sorted'][key][v]['bw'] += bw
+ if 'Exit' in relay['flags']:
+ relays.json['sorted'][key][v]['exit_count'] += 1
+ else:
+ relays.json['sorted'][key][v]['middle_count'] += 1
flags = relay['flags']
for flag in flags:
@@ -80,10 +85,15 @@ def sort_relays(relays):
relays.json['sorted']['flags'][flag] = dict()
relays.json['sorted']['flags'][flag]['relays'] = list()
relays.json['sorted']['flags'][flag]['bw'] = 0
- if idx not in relays.json['sorted']['flags'][flag]['relays']:
- bw = relay['observed_bandwidth']
- relays.json['sorted']['flags'][flag]['relays'].append(idx)
- relays.json['sorted']['flags'][flag]['bw'] += bw
+ relays.json['sorted']['flags'][flag]['exit_count'] = 0
+ relays.json['sorted']['flags'][flag]['middle_count'] = 0
+ bw = relay['observed_bandwidth']
+ relays.json['sorted']['flags'][flag]['relays'].append(idx)
+ relays.json['sorted']['flags'][flag]['bw'] += bw
+ if 'Exit' in relay['flags']:
+ relays.json['sorted']['flags'][flag]['exit_count'] += 1
+ else:
+ relays.json['sorted']['flags'][flag]['middle_count'] += 1
members = relay['effective_family']
for member in members:
@@ -94,10 +104,15 @@ def sort_relays(relays):
relays.json['sorted']['family'][member] = dict()
relays.json['sorted']['family'][member]['relays'] = list()
relays.json['sorted']['family'][member]['bw'] = 0
- if idx not in relays.json['sorted']['family'][member]['relays']:
- bw = relay['observed_bandwidth']
- relays.json['sorted']['family'][member]['relays'].append(idx)
- relays.json['sorted']['family'][member]['bw'] += bw
+ relays.json['sorted']['family'][member]['exit_count'] = 0
+ relays.json['sorted']['family'][member]['middle_count'] = 0
+ bw = relay['observed_bandwidth']
+ relays.json['sorted']['family'][member]['relays'].append(idx)
+ relays.json['sorted']['family'][member]['bw'] += bw
+ if 'Exit' in relay['flags']:
+ relays.json['sorted']['family'][member]['exit_count'] += 1
+ else:
+ relays.json['sorted']['family'][member]['middle_count'] += 1
def unsorted(relays, filename, is_index):
'''
@@ -128,15 +143,22 @@ def effective_family(relays):
for family in relays.json['sorted']['family']:
members = []
bandwidth = relays.json['sorted']['family'][family]['bw']
+ exit_count = relays.json['sorted']['family'][family]['exit_count']
+ middle_count = relays.json['sorted']['family'][family]['middle_count']
for m_relay in relays.json['sorted']['family'][family]['relays']:
members.append(relay_list[m_relay])
dir_path = os.path.join(output_path, family)
os.makedirs(dir_path)
f_bandwidth = round(bandwidth / 1000000, 2) # convert to MB/s
relays.json['relay_subset'] = members
- rendered = template.render(relays=relays, bandwidth=f_bandwidth,
- is_index=False, path_prefix='../../',
- deactivate='family', family=family)
+ rendered = template.render(relays=relays,
+ bandwidth=f_bandwidth,
+ exit_count=exit_count,
+ middle_count=middle_count,
+ is_index=False,
+ path_prefix='../../',
+ deactivate='family',
+ family=family)
with open(os.path.join(dir_path, 'index.html'), 'w',
encoding='utf8') as html:
html.write(rendered)
@@ -159,13 +181,19 @@ def pages_by_key(relays, key):
for idx in relays.json['sorted'][key][v]['relays']:
m_relays.append(relays.json['relays'][idx])
bandwidth = relays.json['sorted'][key][v]['bw']
+ exit_count = relays.json['sorted'][key][v]['exit_count']
+ middle_count = relays.json['sorted'][key][v]['middle_count']
dir_path = os.path.join(output_path, v)
os.makedirs(dir_path)
f_bandwidth = round(bandwidth / 1000000, 2) # convert to MB/s
relays.json['relay_subset'] = m_relays
rendered = template.render(relays=relays,
- bandwidth=f_bandwidth, is_index=False,
- path_prefix='../../', deactivate=key,
+ bandwidth=f_bandwidth,
+ exit_count=exit_count,
+ middle_count=middle_count,
+ is_index=False,
+ path_prefix='../../',
+ deactivate=key,
special_countries=countries.THE_PREFIXED)
with open(os.path.join(dir_path, 'index.html'), 'w',
encoding='utf8') as html:
@@ -188,12 +216,18 @@ def pages_by_flag(relays):
for idx in relays.json['sorted']['flags'][flag]['relays']:
m_relays.append(relays.json['relays'][idx])
bandwidth = relays.json['sorted']['flags'][flag]['bw']
+ exit_count = relays.json['sorted']['flags'][flag]['exit_count']
+ middle_count = relays.json['sorted']['flags'][flag]['middle_count']
os.makedirs(output_path)
f_bandwidth = round(bandwidth / 1000000, 2) # convert to MB/s
relays.json['relay_subset'] = m_relays
rendered = template.render(relays=relays,
- bandwidth=f_bandwidth, is_index=False,
- path_prefix='../../', deactivate=flag,
+ bandwidth=f_bandwidth,
+ exit_count=exit_count,
+ middle_count=middle_count,
+ is_index=False,
+ path_prefix='../../',
+ deactivate=flag,
special_countries=countries.THE_PREFIXED,
flag=flag)
with open(os.path.join(output_path, 'index.html'), 'w',
diff --git a/tor-metrics/templates/as.html b/tor-metrics/templates/as.html
index c27c0ac..b2d6f90 100644
--- a/tor-metrics/templates/as.html
+++ b/tor-metrics/templates/as.html
@@ -3,4 +3,4 @@
{% set as_name = relays.json['relay_subset'][0]['as_name']|escape %}
{% block title %}Tor Relays :: {{ as_number }}{% endblock %}
{% block header %}<a href="../../">Home</a> :: {{ as_number }}{% endblock %}
-{% block description %}{{ as_number }} ({{ as_name }}) is responsible for ~{{ bandwidth }} MB/s of traffic.{% endblock %}
+{% block description %}{{ as_number }} ({{ as_name }}) is responsible for ~{{ bandwidth }} MB/s of traffic, consisting of {% if middle_count > 0 %}{{ middle_count }} middle relay{% if middle_count > 1 %}s{% endif %}{% if exit_count > 0 %} and {% endif %}{% endif %}{% if exit_count > 0 %}{{ exit_count }} exit relay{% if exit_count > 1 %}s{% endif %}{% endif %}.{% endblock %}
diff --git a/tor-metrics/templates/country.html b/tor-metrics/templates/country.html
index d7b3395..cd0bd27 100644
--- a/tor-metrics/templates/country.html
+++ b/tor-metrics/templates/country.html
@@ -8,4 +8,4 @@
{% endif %}
{% block title %}Tor Relays :: {{ country_orig }}{% endblock %}
{% block header %}<a href="../../">Home</a> :: {{ country_name }}{% endblock %}
-{% block description %}{{ country_name }} ({{ country_abbr }}) is responsible for ~{{ bandwidth }} MB/s of traffic.{% endblock %}
+{% block description %}{{ country_name }} ({{ country_abbr }}) is responsible for ~{{ bandwidth }} MB/s of traffic, consisting of {% if middle_count > 0 %}{{ middle_count }} middle relay{% if middle_count > 1 %}s{% endif %}{% if exit_count > 0 %} and {% endif %}{% endif %}{% if exit_count > 0 %}{{ exit_count }} exit relay{% if exit_count > 1 %}s{% endif %}{% endif %}.{% endblock %}
diff --git a/tor-metrics/templates/effective_family.html b/tor-metrics/templates/effective_family.html
index 7bd2c47..ca29756 100644
--- a/tor-metrics/templates/effective_family.html
+++ b/tor-metrics/templates/effective_family.html
@@ -1,4 +1,4 @@
{% extends "relay-list.html" %}
{% block title %}Tor Relays :: Family {{ family|escape }}{% endblock %}
{% block header %}<a href="../../">Home</a> :: Family {{ family|escape }}{% endblock %}
-{% block description %}Relays with effective family member {{ family|escape }} are responsible for ~{{ bandwidth }} MB/s of traffic.{% endblock %}
+{% block description %}Relays with effective family member {{ family|escape }} are responsible for ~{{ bandwidth }} MB/s of traffic, consisting of {% if middle_count > 0 %}{{ middle_count }} middle relay{% if middle_count > 1 %}s{% endif %}{% if exit_count > 0 %} and {% endif %}{% endif %}{% if exit_count > 0 %}{{ exit_count }} exit relay{% if exit_count > 1 %}s{% endif %}{% endif %}.{% endblock %}
diff --git a/tor-metrics/templates/flag.html b/tor-metrics/templates/flag.html
index d603940..de5135b 100644
--- a/tor-metrics/templates/flag.html
+++ b/tor-metrics/templates/flag.html
@@ -1,4 +1,4 @@
{% extends "relay-list.html" %}
{% block title %}Tor Relays :: {{ flag|escape }} Relays{% endblock %}
{% block header %}<a href="../../">Home</a> :: {{ flag|escape }} Relays{% endblock %}
-{% block description %}Relays with the {{ flag }} flag are responsible for ~{{ bandwidth }} MB/s of traffic.{% endblock %}
+{% block description %}Relays with the {{ flag }} flag are responsible for ~{{ bandwidth }} MB/s of traffic, consisting of {% if middle_count > 0 %}{{ middle_count }} middle relay{% if middle_count > 1 %}s{% endif %}{% if exit_count > 0 %} and {% endif %}{% endif %}{% if exit_count > 0 %}{{ exit_count }} exit relay{% if exit_count > 1 %}s{% endif %}{% endif %}.{% endblock %}
diff --git a/tor-metrics/templates/platform.html b/tor-metrics/templates/platform.html
index 1f2741e..847d884 100644
--- a/tor-metrics/templates/platform.html
+++ b/tor-metrics/templates/platform.html
@@ -2,4 +2,4 @@
{% set platform = relays.json['relay_subset'][0]['platform']|escape %}
{% block title %}Tor Relays :: {{ platform }}{% endblock %}
{% block header %}<a href="../../">Home</a> :: {{ platform }}{% endblock %}
-{% block description %}{{ platform }} systems are responsible for ~{{ bandwidth }} MB/s of traffic.{% endblock %}
+{% block description %}{{ platform }} systems are responsible for ~{{ bandwidth }} MB/s of traffic, consisting of {% if middle_count > 0 %}{{ middle_count }} middle relay{% if middle_count > 1 %}s{% endif %}{% if exit_count > 0 %} and {% endif %}{% endif %}{% if exit_count > 0 %}{{ exit_count }} exit relay{% if exit_count > 1 %}s{% endif %}{% endif %}.{% endblock %}