CyberArena / app /core /module_router.py
Hussien Haider
A
5d90003
Raw
History Blame Contribute Delete
731 Bytes
"""Map module names to challenge types and back.
The frontend uses ``module`` to route a row to the right editor.
We keep two parallel maps and a single function for clarity.
"""
from .constants import WEB_EXPLOIT_MODULES
def challenge_type_for_module(module: str) -> str:
"""Return challenge type for a module name.
Supports canonical challenge types AND topic names. New challenge
types are wired by extending this function — no caller change required.
"""
# Canonical challenge types
if module in ("web-exploitation", "steganography"):
return module
# Topic names that map to web-exploitation
if module in WEB_EXPLOIT_MODULES:
return "web-exploitation"
return "crypto"