Development
This commit is contained in:
parent
563d82daf3
commit
70ccfe2c29
48 changed files with 549 additions and 578 deletions
|
|
@ -1,14 +1,14 @@
|
|||
import re
|
||||
import os
|
||||
from config_utils import collect_layout_tokens, fmt_timestamp, BLOCKLISTS_DIR
|
||||
from factory import run, load_ddns
|
||||
import config_utils
|
||||
import factory
|
||||
from pages.ddns.view import public_ip_info
|
||||
from pages.dhcpleases.view import live_dhcp_leases
|
||||
|
||||
|
||||
def get_dnsmasq_stats():
|
||||
stats = {'queries': '-', 'hits': '-', 'hit_rate': '-', 'forwarded': '-', 'auth': '-', 'tcp_peak': '-'}
|
||||
out = run('journalctl -u dnsmasq -n 200 --no-pager 2>/dev/null')
|
||||
out = factory.run('journalctl -u dnsmasq -n 200 --no-pager 2>/dev/null')
|
||||
for line in reversed(out.splitlines()):
|
||||
if 'queries forwarded' in line:
|
||||
m = re.search(r'queries forwarded (\d+)', line)
|
||||
|
|
@ -36,15 +36,15 @@ def get_dnsmasq_stats():
|
|||
|
||||
|
||||
def count_blocked_today():
|
||||
out = run("journalctl -u dnsmasq --since today --no-pager 2>/dev/null | grep -c 'is NXDOMAIN'")
|
||||
out = factory.run("journalctl -u dnsmasq --since today --no-pager 2>/dev/null | grep -c 'is NXDOMAIN'")
|
||||
return out or '0'
|
||||
|
||||
|
||||
def count_blocked_domains():
|
||||
try:
|
||||
total = sum(
|
||||
int(run(f'wc -l < "{BLOCKLISTS_DIR}/{f}"') or 0)
|
||||
for f in os.listdir(BLOCKLISTS_DIR) if f.endswith('.con')
|
||||
int(factory.run(f'wc -l < "{config_utils.BLOCKLISTS_DIR}/{f}"') or 0)
|
||||
for f in os.listdir(config_utils.BLOCKLISTS_DIR) if f.endswith('.con')
|
||||
)
|
||||
return str(total)
|
||||
except Exception:
|
||||
|
|
@ -54,23 +54,23 @@ def count_blocked_domains():
|
|||
def bl_last_update():
|
||||
try:
|
||||
mtime = max(
|
||||
os.path.getmtime(f'{BLOCKLISTS_DIR}/{f}')
|
||||
for f in os.listdir(BLOCKLISTS_DIR) if f.endswith('.con')
|
||||
os.path.getmtime(f'{config_utils.BLOCKLISTS_DIR}/{f}')
|
||||
for f in os.listdir(config_utils.BLOCKLISTS_DIR) if f.endswith('.con')
|
||||
)
|
||||
return fmt_timestamp(int(mtime))
|
||||
return config_utils.fmt_timestamp(int(mtime))
|
||||
except Exception:
|
||||
return '-'
|
||||
|
||||
|
||||
def collect_tokens(cfg):
|
||||
tokens = collect_layout_tokens(cfg)
|
||||
tokens = config_utils.collect_layout_tokens(cfg)
|
||||
vlans = cfg.get('vlans', [])
|
||||
non_vpn_vlans = [v for v in vlans if not v.get('is_vpn')]
|
||||
vlan_names = [v.get('name', '') for v in vlans]
|
||||
net = cfg.get('network_interfaces', {})
|
||||
dns = cfg.get('upstream_dns', {})
|
||||
dns_stats = get_dnsmasq_stats()
|
||||
ddns = load_ddns()
|
||||
ddns = factory.load_ddns()
|
||||
ip_str, domains_sub, last_obtained = public_ip_info(ddns)
|
||||
|
||||
tokens['GENERAL_WAN_INTERFACE'] = str(net.get('wan_interface', '-'))
|
||||
|
|
@ -82,8 +82,8 @@ def collect_tokens(cfg):
|
|||
tokens['STAT_BLOCKED_TODAY'] = count_blocked_today()
|
||||
tokens['STAT_BLOCKED_DOMAINS'] = count_blocked_domains()
|
||||
tokens['STAT_BL_LAST_UPDATE'] = bl_last_update()
|
||||
tokens['STAT_UPTIME'] = run('uptime -p') or '-'
|
||||
tokens['STAT_NFTABLES_STATUS'] = 'Active' if run('nft list tables 2>/dev/null').strip() else 'Inactive'
|
||||
tokens['STAT_UPTIME'] = factory.run('uptime -p') or '-'
|
||||
tokens['STAT_NFTABLES_STATUS'] = 'Active' if factory.run('nft list tables 2>/dev/null').strip() else 'Inactive'
|
||||
tokens['STAT_PUBLIC_IP'] = ip_str
|
||||
tokens['STAT_DDNS_HOSTNAME'] = domains_sub
|
||||
tokens['DNS_CACHE_SIZE'] = str(dns.get('cache_size', '-'))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue