Development
This commit is contained in:
parent
e77ebdb100
commit
226a2e2e06
10 changed files with 444 additions and 368 deletions
|
|
@ -398,6 +398,41 @@ def _bl_last_update():
|
|||
except Exception:
|
||||
return '-'
|
||||
|
||||
def _blocklist_stats_html(core):
|
||||
bl_dir = f'{CONFIGS_DIR}/blocklists'
|
||||
rows = ''
|
||||
for bl in core.get('blocklists', []):
|
||||
name = e(bl.get('name', ''))
|
||||
save_as = bl.get('save_as', '')
|
||||
bl_path = f'{bl_dir}/{save_as}' if save_as else ''
|
||||
try:
|
||||
with open(bl_path) as f:
|
||||
entries = sum(1 for _ in f)
|
||||
size_str = _fmt_bytes(os.path.getsize(bl_path))
|
||||
last_refreshed = _fmt_timestamp(int(os.path.getmtime(bl_path)))
|
||||
except Exception:
|
||||
entries, size_str, last_refreshed = '-', '-', 'Never'
|
||||
rows += (f'<tr>'
|
||||
f'<td class="table-cell">{name}</td>'
|
||||
f'<td class="table-cell">{entries}</td>'
|
||||
f'<td class="table-cell">{size_str}</td>'
|
||||
f'<td class="table-cell">{e(last_refreshed)}</td>'
|
||||
f'</tr>')
|
||||
if not rows:
|
||||
return ''
|
||||
return (
|
||||
'<table class="data-table" style="margin-bottom:1rem">'
|
||||
'<thead><tr>'
|
||||
'<th class="table-header">Blocklist</th>'
|
||||
'<th class="table-header">Entries</th>'
|
||||
'<th class="table-header">Size</th>'
|
||||
'<th class="table-header">Last Refreshed</th>'
|
||||
'</tr></thead>'
|
||||
f'<tbody>{rows}</tbody>'
|
||||
'</table>'
|
||||
)
|
||||
|
||||
|
||||
def _ddns_log_tail(n=50):
|
||||
log_path = f'{CONFIGS_DIR}/ddns.log'
|
||||
try:
|
||||
|
|
@ -552,7 +587,7 @@ def collect_tokens():
|
|||
'</tr></thead>'
|
||||
f'<tbody>{rows}</tbody>'
|
||||
'</table>'
|
||||
'<form method="post" action="/action/apply_pending">'
|
||||
'<form method="post" action="/action/general_cardpendingchanges_applyselected">'
|
||||
f'<input type="hidden" name="config_hash" value="{e(core_hash())}">'
|
||||
'<div class="button-row">'
|
||||
'<button type="submit" class="btn btn-primary">Apply Now</button>'
|
||||
|
|
@ -586,6 +621,7 @@ def collect_tokens():
|
|||
tokens['EXISTING_VLAN_INTERFACES_JSON'] = json.dumps([_resolve_iface(v, core) for v in vlans])
|
||||
tokens['STAT_BANNED_IP_COUNT'] = str(sum(1 for b in core.get('banned_ips', []) if b.get('enabled', True)))
|
||||
tokens['STAT_BLOCKLIST_COUNT'] = str(len(core.get('blocklists', [])))
|
||||
tokens['BLOCKLIST_STATS_HTML'] = _blocklist_stats_html(core)
|
||||
|
||||
ddns = _load_ddns()
|
||||
tokens['DDNS_TIMER_INTERVAL'] = ddns.get('general', {}).get('timer_interval', '-')
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue