added stats reporter

This commit is contained in:
Kevin Froman 2020-03-31 04:00:48 -05:00
parent 0da27a78c7
commit 8d372cccfb
7 changed files with 112 additions and 1 deletions

View file

@ -41,5 +41,5 @@ class Client:
better_sleep(self.pull_delay)
better_sleep(self.poll_delay)

View file

@ -38,6 +38,7 @@ from utils.boxprint import bordered
from lan import LANManager
from lan.server import LANServer
from sneakernet import sneakernet_import_thread
from onionrstatistics.devreporting import statistics_reporter
"""
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -172,6 +173,8 @@ def daemon():
LANManager(shared_state).start()
if config.get('transports.sneakernet', True):
Thread(target=sneakernet_import_thread, daemon=True).start()
Thread(target=statistics_reporter, args=[shared_state], daemon=True).start()
communicator.startCommunicator(shared_state)
clean_ephemeral_services()

View file

@ -0,0 +1,26 @@
import config
from utils.bettersleep import better_sleep
from utils.gettransports import get as get_transports
from onionrutils import basicrequests
from onionrutils import epoch
import json
def statistics_reporter(shared_state):
server = config.get('statistics.server', '')
if not config.get('statistics.i_dont_want_privacy', False) or \
not server: return
def compile_data():
return {
'time': epoch.get_epoch(),
'adders': get_transports(),
'peers': shared_state.get_by_string('OnionrCommunicatorDaemon').onlinePeers
}
while True:
better_sleep(5)
data = compile_data()
basicrequests.do_post_request(
f'http://{server}/sendstats/' + get_transports()[0],
data=json.dumps(data))