bencser commited on
Commit
e25824e
·
verified ·
1 Parent(s): c5f9d2f

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +18 -2
app.py CHANGED
@@ -15,7 +15,7 @@ logging.basicConfig(level=logging.DEBUG)
15
 
16
  # Set up rate limiter
17
  limiter = Limiter(
18
- get_remote_address,
19
  app=app,
20
  default_limits=["5 per minute"],
21
  storage_uri="memory://"
@@ -119,11 +119,17 @@ html_template = """
119
  input[type="submit"]:hover, #regenerate:hover {
120
  background-color: #2980b9;
121
  }
 
 
 
 
 
122
  </style>
123
  </head>
124
  <body>
125
  <h1>Silly Detention Letter Generator</h1>
126
  <div id="letter"></div>
 
127
  <button id="regenerate" style="display: none;" onclick="regenerateLetter()">Regenerate Letter</button>
128
  <form id="letterForm" onsubmit="generateLetter(event)">
129
  <input type="text" name="parent_name" placeholder="Parent's Name" required>
@@ -145,11 +151,18 @@ html_template = """
145
  method: 'POST',
146
  body: formData
147
  })
 
 
 
 
 
 
148
  .then(response => {
149
  const reader = response.body.getReader();
150
  const decoder = new TextDecoder();
151
  const letterDiv = document.getElementById('letter');
152
  letterDiv.innerHTML = '';
 
153
 
154
  function read() {
155
  reader.read().then(({ done, value }) => {
@@ -164,6 +177,9 @@ html_template = """
164
  }
165
 
166
  read();
 
 
 
167
  });
168
  }
169
 
@@ -181,7 +197,7 @@ def home():
181
  return render_template_string(html_template)
182
 
183
  @app.route("/generate", methods=["POST"])
184
- @limiter.limit("5/minute")
185
  def generate():
186
  parent_name = request.form["parent_name"]
187
  child_name = request.form["child_name"]
 
15
 
16
  # Set up rate limiter
17
  limiter = Limiter(
18
+ key_func=get_remote_address,
19
  app=app,
20
  default_limits=["5 per minute"],
21
  storage_uri="memory://"
 
119
  input[type="submit"]:hover, #regenerate:hover {
120
  background-color: #2980b9;
121
  }
122
+ #error-message {
123
+ color: red;
124
+ text-align: center;
125
+ margin-top: 10px;
126
+ }
127
  </style>
128
  </head>
129
  <body>
130
  <h1>Silly Detention Letter Generator</h1>
131
  <div id="letter"></div>
132
+ <div id="error-message"></div>
133
  <button id="regenerate" style="display: none;" onclick="regenerateLetter()">Regenerate Letter</button>
134
  <form id="letterForm" onsubmit="generateLetter(event)">
135
  <input type="text" name="parent_name" placeholder="Parent's Name" required>
 
151
  method: 'POST',
152
  body: formData
153
  })
154
+ .then(response => {
155
+ if (!response.ok) {
156
+ throw new Error('Slow down. Please wait 1 minute before generating another letter.');
157
+ }
158
+ return response;
159
+ })
160
  .then(response => {
161
  const reader = response.body.getReader();
162
  const decoder = new TextDecoder();
163
  const letterDiv = document.getElementById('letter');
164
  letterDiv.innerHTML = '';
165
+ document.getElementById('error-message').textContent = '';
166
 
167
  function read() {
168
  reader.read().then(({ done, value }) => {
 
177
  }
178
 
179
  read();
180
+ })
181
+ .catch(error => {
182
+ document.getElementById('error-message').textContent = error.message;
183
  });
184
  }
185
 
 
197
  return render_template_string(html_template)
198
 
199
  @app.route("/generate", methods=["POST"])
200
+ @limiter.limit("5 per minute")
201
  def generate():
202
  parent_name = request.form["parent_name"]
203
  child_name = request.form["child_name"]