allow many rate limiters per engine

This commit is contained in:
Marc Abonce Seguin 2022-03-27 20:21:37 -06:00
parent 93982f6d8e
commit 6eea3e7c1c
3 changed files with 18 additions and 23 deletions

View file

@ -44,7 +44,7 @@ ENGINE_DEFAULT_ARGS = {
"enable_http": False,
"using_tor_proxy": False,
"display_error_messages": True,
"rate_limit": { "max_requests": float('inf'), "interval": 1 },
"rate_limit": [{ "max_requests": float('inf'), "interval": 1 }],
"tokens": [],
"about": {},
}
@ -170,10 +170,10 @@ def update_engine_attributes(engine: Engine, engine_data):
elif hasattr(engine, 'about') and param_name == 'about':
engine.about = {**engine.about, **engine_data['about']}
elif hasattr(engine, 'rate_limit') and param_name == 'rate_limit':
engine.rate_limit = {
'max_requests': int(param_value.get('max_requests')),
'interval': int(param_value.get('interval', 1))
}
engine.rate_limit = [{
'max_requests': int(rate_limit.get('max_requests')),
'interval': int(rate_limit.get('interval', 1))
} for rate_limit in param_value]
else:
setattr(engine, param_name, param_value)