-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathconfig.py
More file actions
118 lines (95 loc) · 3.37 KB
/
Copy pathconfig.py
File metadata and controls
118 lines (95 loc) · 3.37 KB
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
from pathlib import Path
import curses
# Networking
LISTEN_ADDR = "127.0.0.1"
LISTEN_PORT = 5353
UPSTREAM_DNS = ("127.0.0.53", 53)
UPSTREAM_TIMEOUT = 5
# Files
WHITELIST_FILE = Path("whitelist.json")
LOG_FILE = Path("dns_firewall.log")
# Timeouts
TEMP_TTL_SECONDS = 300
# Banner
MINI_BANNER = " ALPHA Dev | Test Build | Léo BECHET @ 2025"
BANNER = r"""
____ _ _______ _ __ __
/ __ \/ | / / ___/____ (_) /______/ /_
/ / / / |/ /\__ \/ __ \/ / __/ ___/ __ \
/ /_/ / /| /___/ / / / / / /_/ /__/ / / /
/_____/_/ |_//____/_/ /_/_/\__/\___/_/ /_/
"""
MODE_DEFAULT = "DFT"
MODE_RECORD = "RCD"
MODE_RECORD_BL = "RBL"
# --- THEME CONFIGURATION ---
class Theme:
# --- 1. ID REGISTRY ---
# These are the internal IDs used by ncurses
PAIR_DEFAULT = 1
PAIR_OK = 2
PAIR_WARN = 3
PAIR_ERR = 4
PAIR_CYAN = 5
PAIR_MUTED = 6
PAIR_NEON = 10
PAIR_SELECTED_ROW = 11
# Header / Tabs
PAIR_HEADER_BG = 20
PAIR_TAB_ACTIVE = 21
PAIR_TAB_INACTIVE = 22
# Counters
PAIR_CNT_PENDING = 23
PAIR_CNT_STAGED = 24
# Console
PAIR_INPUT_PROMPT = 25
PAIR_REDIRECT_ARROW = 26
# Monitor Columns
PAIR_MON_HEADER_TEMP = 30
PAIR_MON_HEADER_ONCE = 31
PAIR_MON_HEADER_PERM = 32
PAIR_MON_HEADER_BLOCK = 33
# Modes
PAIR_MODE_DFT = 40
PAIR_MODE_REC = 41
# Records Tab
PAIR_REC_HEADER = 42
PAIR_REC_BLOCKED = 43
# --- 2. PALETTE DEFINITION ---
# Format: ID: (Foreground, Background)
# -1 represents the Terminal's default background (usually transparent/black)
COLOR_DEFINITIONS = {
# Base Colors
PAIR_DEFAULT: (curses.COLOR_WHITE, -1),
PAIR_OK: (curses.COLOR_GREEN, -1),
PAIR_WARN: (curses.COLOR_YELLOW, -1),
PAIR_ERR: (curses.COLOR_RED, -1),
PAIR_CYAN: (curses.COLOR_CYAN, -1),
PAIR_MUTED: (curses.COLOR_BLUE, -1),
PAIR_NEON: (curses.COLOR_MAGENTA, -1),
# UI Elements
# Cyan Text on Default BG (Selection)
PAIR_SELECTED_ROW: (curses.COLOR_CYAN, -1),
# Arrow for redirects
PAIR_REDIRECT_ARROW: (curses.COLOR_MAGENTA, -1),
# Header Area
PAIR_HEADER_BG: (curses.COLOR_BLACK, curses.COLOR_WHITE), # Greyish bar
PAIR_TAB_ACTIVE: (curses.COLOR_BLACK, curses.COLOR_YELLOW),
PAIR_TAB_INACTIVE: (curses.COLOR_WHITE, curses.COLOR_BLACK),
# Header Counters
PAIR_CNT_PENDING: (curses.COLOR_WHITE, curses.COLOR_RED),
PAIR_CNT_STAGED: (curses.COLOR_BLACK, curses.COLOR_CYAN),
# Console
PAIR_INPUT_PROMPT: (curses.COLOR_CYAN, -1),
# Monitor Column Headers
PAIR_MON_HEADER_TEMP: (curses.COLOR_BLACK, curses.COLOR_YELLOW),
PAIR_MON_HEADER_ONCE: (curses.COLOR_BLACK, curses.COLOR_CYAN),
PAIR_MON_HEADER_PERM: (curses.COLOR_BLACK, curses.COLOR_GREEN),
PAIR_MON_HEADER_BLOCK: (curses.COLOR_WHITE, curses.COLOR_RED),
# Mode Indicators
PAIR_MODE_DFT: (curses.COLOR_BLACK, curses.COLOR_GREEN),
PAIR_MODE_REC: (curses.COLOR_WHITE, curses.COLOR_RED),
# Records Tab
PAIR_REC_HEADER: (curses.COLOR_BLACK, curses.COLOR_WHITE),
PAIR_REC_BLOCKED: (curses.COLOR_RED, -1),
}