MCPcopy Create free account
hub / github.com/PierreGode/Ragnar / __init__

Method __init__

shared.py:195–289  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

193}
194
195
196logger = Logger(name="shared.py", level=logging.DEBUG) # Create a logger object
197
198class SharedData:
199 """Shared data between the different modules."""
200 def __init__(self):
201 # Detect Pager mode (set by pager_payload.sh before Python launch)
202 self._pager_mode = os.environ.get('RAGNAR_PAGER_MODE') == '1'
203
204 self.initialize_paths() # Initialize the paths used by the application
205
206 # --- Network storage & context (not available on Pager) ---
207 if not self._pager_mode and NetworkStorageManager is not None:
208 self.storage_manager = NetworkStorageManager(self.datadir)
209 else:
210 self.storage_manager = None
211 self.active_network_ssid = None
212 self.active_network_slug = None
213 self.current_network_dir = None
214 self.current_network_db_path = None
215 self.network_intelligence_dir = None
216 self.network_threat_dir = None
217 if self.storage_manager is not None:
218 self._apply_network_context(
219 self.storage_manager.get_active_context(),
220 configure_db=False
221 )
222 if not self._pager_mode and NetworkContextRegistry is not None:
223 self.context_registry = NetworkContextRegistry(self)
224 else:
225 self.context_registry = None
226
227 self.status_list = []
228 self.last_comment_time = time.time() # Last time a comment was displayed
229 self._stats_lock = threading.Lock() # Thread-safe lock for update_stats()
230 self._config_lock = threading.RLock() # Serializes save_config() vs mutations
231 self.default_config = self.get_default_config() # Default configuration of the application
232 self.config = self.default_config.copy() # Configuration of the application
233 # Load existing configuration first
234 self.load_config()
235
236 if not self._pager_mode and MultiInterfaceState is not None:
237 self.multi_interface_state = MultiInterfaceState(self)
238 else:
239 self.multi_interface_state = None
240
241 # Ensure the selected EPD profile is consistent and expose flip settings early
242 self.config.setdefault('epd_type', DEFAULT_EPD_TYPE)
243 self.apply_display_profile(self.config['epd_type'], set_orientation_if_missing=True, persist=not self._pager_mode)
244 self.screen_reversed = normalize_rotation(self.config.get('screen_reversed', 0))
245 self.web_screen_reversed = normalize_rotation(self.config.get('web_screen_reversed', 0))
246
247 # Check if auth is configured and DB might be encrypted
248 if not self._pager_mode:
249 self.auth_configured = self._check_auth_configured()
250 else:
251 self.auth_configured = False
252

Callers

nothing calls this directly

Calls 15

initialize_pathsMethod · 0.95
get_default_configMethod · 0.95
load_configMethod · 0.95
apply_display_profileMethod · 0.95
_configure_databaseMethod · 0.95
update_mac_blacklistMethod · 0.95
setup_environmentMethod · 0.95
initialize_variablesMethod · 0.95
create_livestatusfileMethod · 0.95

Tested by

no test coverage detected