summaryrefslogtreecommitdiff
path: root/tracker.jordan.im/update-stats.py
blob: bb6a97757c2025f11a29d2e071f337f64c4bb529 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/usr/bin/env python3

import fileinput
import subprocess
import sys

INDEX_PATH = '/var/www/html/tracker.jordan.im/index.html'

stats = dict.fromkeys(['torrents', 'connections', 'uptime'])

conn = subprocess.run(
    ['curl',
    'http://127.0.0.1:6969/stats?format=txt&mode=conn'],
    stdout=subprocess.PIPE,
)
conn = conn.stdout.decode("utf-8").split('\n')
stats['uptime'] = int(int(conn[2].split()[0]) / 3600)
stats['connections'] = conn[3].split()[2]

bare = subprocess.run(
    ['curl', 'http://127.0.0.1:6969/stats?format=txt'],
    stdout=subprocess.PIPE
)
bare = bare.stdout.decode("utf-8").split('\n')
stats['torrents'] = bare[2].split()[2]

s = (
    f'The tracker has been online for {stats["uptime"]} hrs, '
    f'serving {stats["torrents"]} torrents '
    f'with {stats["connections"]} connections per second.\n'
)

for line in fileinput.input([INDEX_PATH], inplace=True):
    if line.strip().startswith('The tracker has been'):
        line = s
    sys.stdout.write(line)