[FE] adds a rate limiter on random image pulling
This commit is contained in:
parent
c9b0dcdc50
commit
0b241902a7
12
frontend.py
12
frontend.py
|
|
@ -4,6 +4,8 @@ from flask import jsonify
|
||||||
from flask import Flask
|
from flask import Flask
|
||||||
from flask import render_template
|
from flask import render_template
|
||||||
from flask import request
|
from flask import request
|
||||||
|
from flask_limiter import Limiter
|
||||||
|
from flask_limiter.util import get_remote_address
|
||||||
|
|
||||||
from utilities.constants import LOGGER_NAME_FRONTEND
|
from utilities.constants import LOGGER_NAME_FRONTEND
|
||||||
|
|
||||||
|
|
@ -26,6 +28,10 @@ from utilities.database import Database
|
||||||
logger = Logger(name=LOGGER_NAME_FRONTEND)
|
logger = Logger(name=LOGGER_NAME_FRONTEND)
|
||||||
database = Database(logger)
|
database = Database(logger)
|
||||||
app = Flask(__name__)
|
app = Flask(__name__)
|
||||||
|
limiter = Limiter(
|
||||||
|
get_remote_address,
|
||||||
|
app=app,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
@app.route("/add_job", methods=["POST"])
|
@app.route("/add_job", methods=["POST"])
|
||||||
|
|
@ -120,13 +126,17 @@ def get_jobs():
|
||||||
job_count_limit = 20
|
job_count_limit = 20
|
||||||
|
|
||||||
if UUID in req:
|
if UUID in req:
|
||||||
jobs = database.get_jobs(job_uuid=req[UUID], apikey=req[APIKEY], limit_count=job_count_limit)
|
jobs = database.get_jobs(
|
||||||
|
job_uuid=req[UUID], apikey=req[APIKEY], limit_count=job_count_limit
|
||||||
|
)
|
||||||
else:
|
else:
|
||||||
jobs = database.get_jobs(apikey=req[APIKEY], limit_count=job_count_limit)
|
jobs = database.get_jobs(apikey=req[APIKEY], limit_count=job_count_limit)
|
||||||
|
|
||||||
return jsonify({"jobs": jobs})
|
return jsonify({"jobs": jobs})
|
||||||
|
|
||||||
|
|
||||||
@app.route("/random_jobs", methods=["GET"])
|
@app.route("/random_jobs", methods=["GET"])
|
||||||
|
@limiter.limit("1/second")
|
||||||
def random_jobs():
|
def random_jobs():
|
||||||
# define max number of jobs to fetch from db
|
# define max number of jobs to fetch from db
|
||||||
job_count_limit = 20
|
job_count_limit = 20
|
||||||
|
|
|
||||||
|
|
@ -8,3 +8,4 @@ scikit-image==0.20.0
|
||||||
torch==2.0.0
|
torch==2.0.0
|
||||||
transformers==4.28.1
|
transformers==4.28.1
|
||||||
sentencepiece==0.1.99
|
sentencepiece==0.1.99
|
||||||
|
Flask-Limiter==3.3.1
|
||||||
|
|
|
||||||
|
|
@ -517,7 +517,7 @@
|
||||||
|
|
||||||
function parsePromptString(prompt, is_negative) {
|
function parsePromptString(prompt, is_negative) {
|
||||||
// Split the prompt input by ","
|
// Split the prompt input by ","
|
||||||
var promptArray = prompt.replace(/[^\w\s,\p{Script=Han}]/gu, '').split(/[,,]/);
|
var promptArray = prompt.replace(/[^\w\s,\p{Script=Han}]|\d/gu, '').split(/[,,]/);
|
||||||
|
|
||||||
var result = "";
|
var result = "";
|
||||||
for (var i = 0; i < promptArray.length; i++) {
|
for (var i = 0; i < promptArray.length; i++) {
|
||||||
|
|
@ -729,9 +729,7 @@
|
||||||
|
|
||||||
},
|
},
|
||||||
error: function (xhr, status, error) {
|
error: function (xhr, status, error) {
|
||||||
// Handle error response
|
$('#othersJobList').html(error);
|
||||||
console.log(xhr.responseText);
|
|
||||||
$('#othersJobList').html("found nothing");
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue