Skip to content
Snippets Groups Projects
Commit 85625e19 authored by Arlo Breault's avatar Arlo Breault
Browse files

Count the number of clients the webext has served

parent 91255463
No related branches found
No related tags found
No related merge requests found
......@@ -51,13 +51,26 @@ class DebugUI extends UI
class WebExtUI extends UI
port: null
stats: null
constructor: ->
@initStats()
chrome.runtime.onConnect.addListener @onConnect
initStats: ->
@stats = [0]
setInterval (() =>
@stats.unshift 0
@stats.splice 24
@postActive()
), 60 * 60 * 1000
postActive: ->
@port?.postMessage
active: @active
total: @stats.reduce ((t, c) ->
t + c
), 0
onConnect: (port) =>
@port = port
......@@ -69,6 +82,7 @@ class WebExtUI extends UI
setActive: (connected) ->
super connected
if connected then @stats[0] += 1
@postActive()
chrome.browserAction.setIcon
path:
......
......@@ -5,6 +5,7 @@ body {
#active {
padding: 2em;
text-align: center;
min-width: 128px;
}
.learn {
......
......@@ -8,7 +8,8 @@
<body>
<div id="active">
<img src="icons/status-off.png" />
<p>Offline</p>
<p></p>
<p></p>
</div>
<div class="learn">
<a target="_blank" href="https://snowflake.torproject.org/">Learn more</a>
......
......@@ -7,6 +7,8 @@ port.onMessage.addListener((m) => {
const div = document.getElementById('active');
const img = div.querySelector('img');
img.src = `icons/status-${active ? "on" : "off"}.png`;
const p = div.querySelector('p');
p.innerText = active ? "Connected" : "Offline";
const ps = div.querySelectorAll('p');
const clients = active ? 1 : 0;
ps[0].innerText = `${clients} client${(clients !== 1) ? 's' : ''} connected.`;
ps[1].innerText = `Your snowflake has helped ${m.total} user${(m.total !== 1) ? 's' : ''} circumvent censorship in the last 24 hours.`;
});
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment