TestDesk/tools/providers/messer.py
2024-05-08 13:59:08 -04:00

92 lines
No EOL
2.8 KiB
Python

def Letter2Number(letter):
if("A" in letter):
return 0
if("B" in letter):
return 1
if("C" in letter):
return 2
if("D" in letter):
return 3
if("E" in letter):
return 4
if("F" in letter):
return 5
if("G" in letter):
return 6
if("H" in letter):
return 7
if("I" in letter):
return 8
if("J" in letter):
return 9
if("K" in letter):
return 10
def ParseMesser(lines):
result = []
# Pre-Stuff
tempQuestion = {
"type": 0,
"prompt": "",
"responses": [],
"correct": 0
}
state = 0
# Going through lines
for line in lines:
match(state):
case 0: # Awaiting question
if("Practice Exam A - Answers" in line
or "Practice Exam B - Answers" in line
or "Practice Exam C - Answers" in line):
state = 1
case 1: # Writing into prompt
if("*" in line):
if("PICK TWO" in line):
state = 0
tempQuestion = {
"type": 0,
"prompt": "",
"responses": [],
"correct": 0
}
state = 2
else:
for l in line:
if(l == '\n'):
tempQuestion["prompt"] += " "
else:
tempQuestion["prompt"] += l
case 2: # Awaiting for answers
if(line == "" or line == " " or line == "\n" or line == None):
state = 3
case 3: # Adding responses
if(line == "" or line == " " or line == "\n" or line == None):
state = 4
else:
if(len(line.split(".")) <= 1):
print("SKIPED QUESTION: " + tempQuestion["prompt"])
tempQuestion = {
"type": 0,
"prompt": "",
"responses": [],
"correct": 0
}
state = 0
else:
tempQuestion["responses"].append(line.split(".")[1])
case 4: # Awaiting for Correct Answer
if("The Answer" in line):
tempQuestion["correct"] = Letter2Number(line.split(":")[1].split(".")[0])
result.append(tempQuestion)
tempQuestion = {
"type": 0,
"prompt": "",
"responses": [],
"correct": 0
}
state = 0
return result