fix level requirements, level picker
This commit is contained in:
parent
706c9548a7
commit
9673655b44
|
@ -1,9 +1,9 @@
|
||||||
import yaml # reads hint configurations from a .yml file
|
import yaml # reads hint configurations from a .yml file
|
||||||
|
|
||||||
class LevelSelector:
|
class LevelSelector:
|
||||||
def __init__(self, tool_list_filename):
|
def __init__(self, tool_list_filename, level_requirements_filename):
|
||||||
self.read_level_requirements(filename)
|
self.read_level_requirements(level_requirements_filename)
|
||||||
self.read_tool_list(filename)
|
self.read_tool_list(tool_list_filename)
|
||||||
self.known_tools = []
|
self.known_tools = []
|
||||||
|
|
||||||
def read_level_requirements(self, filename):
|
def read_level_requirements(self, filename):
|
||||||
|
@ -20,14 +20,14 @@ class LevelSelector:
|
||||||
self.known_tools.append(tool)
|
self.known_tools.append(tool)
|
||||||
|
|
||||||
def next_level(self, current_level, current_time):
|
def next_level(self, current_level, current_time):
|
||||||
next_levels = self.level_requirements[level]
|
next_levels = self.level_requirements["level" + str(current_level+1)]
|
||||||
if len(next_levels) == 1:
|
if len(next_levels) == 1:
|
||||||
return next_levels[0][0]
|
return next_levels[0][0]
|
||||||
candidate_level = None
|
candidate_level = None
|
||||||
for {level, requirements} in next_levels:
|
for level, requirements in next_levels:
|
||||||
if requirements is None:
|
if requirements is None:
|
||||||
candidate_level = level
|
candidate_level = level
|
||||||
elif ((requirements[0] < current_time) and (requirements[1] in self.known_tools)):
|
elif ((requirements[0] > current_time) and (requirements[1] in self.known_tools)):
|
||||||
candidate_level = level
|
candidate_level = level
|
||||||
else:
|
else:
|
||||||
pass
|
pass
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
# level_name: {branch_name: [machines_to_provision]}
|
# level_name: {branch_name: [machines_to_provision]}
|
||||||
level2: [{level2a, null}, {level2b, {10, "SQL injection"}}]
|
level2: [[level2a, null], [level2b, [10, "SQL injection"]]]
|
||||||
level3: [{level3, null}]
|
level3: [[level3, null]]
|
||||||
level4: [{level4a, null}, {level4b, {30, "John the Ripper"}}]
|
level4: [[level4a, null], [level4b, [30, "John the Ripper"]]]
|
||||||
level5: [{level5, null}]
|
level5: [[level5, null]]
|
||||||
...
|
...
|
|
@ -1,6 +1,6 @@
|
||||||
---
|
---
|
||||||
metamask: null
|
- metamask
|
||||||
SQL injection: {10, level2b}
|
- SQL injection
|
||||||
nmap: null
|
- nmap
|
||||||
John the Ripper: {30, level4b}
|
- John the Ripper
|
||||||
...
|
...
|
Reference in New Issue