-
Notifications
You must be signed in to change notification settings - Fork 0
/
app.py
83 lines (61 loc) · 2.02 KB
/
app.py
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
import traceback
from flask import Flask, render_template, request, jsonify, Response
from enigma.enigma import Enigma
app = Flask(__name__, template_folder='templates')
enigma = Enigma()
@app.route('/')
def index():
return render_template('index.html')
@app.route('/rotor_order', methods=['GET', 'POST'])
def rotor_order():
rotor1 = request.form['1']
rotor2 = request.form['2']
rotor3 = request.form['3']
if ((rotor1 =='') | (rotor2 == '') | (rotor3 == '')):
rotor1 = 1
rotor2 = 2
rotor3 = 3
rotor1 = int(rotor1)
rotor2 = int(rotor2)
rotor3 = int(rotor3)
enigma.set_rotor_order((rotor1, rotor2, rotor3))
results = {1: rotor1, 2: rotor2, 3: rotor3}
return jsonify(result = results)
@app.route('/rotor_setting', methods=['GET', 'POST'])
def rotor_setting():
rotor1 = request.form['1']
rotor2 = request.form['2']
rotor3 = request.form['3']
if ((rotor1 =='') | (rotor2 == '') | (rotor3 == '')):
rotor1 = 1
rotor2 = 1
rotor3 = 1
rotor1 = int(rotor1)
rotor2 = int(rotor2)
rotor3 = int(rotor3)
enigma.set_rotor_setting((rotor1 - 1, rotor2 - 1, rotor3 - 1))
results = {1: rotor1, 2: rotor2, 3: rotor3}
return jsonify(result = results)
@app.route('/plugboard', methods=['GET', 'POST'])
def plugboard():
plugboard = request.form['value']
print(plugboard)
enigma.set_plugboard(plug_boards=plugboard)
results = {"value" : plugboard}
return jsonify(result = results)
@app.route('/reflector', methods=['GET', 'POST'])
def reflector():
reflector = request.form['value']
print(reflector)
enigma.set_reflector(reflectors=reflector)
results = {"value" : reflector}
return jsonify(result = results)
@app.route('/letter', methods=['GET', 'POST'])
def letter():
letter = request.form['value']
letter = enigma.encode(letter)
rotor1, rotor2, rotor3 = enigma.get_rotor_positions()
results = {"value" : letter, "rotor": {"1": rotor1 + 1, "2": rotor2 + 1, "3": rotor3 + 1}}
return jsonify(result = results)
if __name__ == '__main__':
app.run(debug=False)