41 lines
1.3 KiB
Python
Executable File
41 lines
1.3 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
|
|
from flask.app import Flask
|
|
from flask.globals import request
|
|
from flask.helpers import make_response
|
|
from flask.wrappers import Response
|
|
from werkzeug.middleware.proxy_fix import ProxyFix
|
|
|
|
from .ip_collector.reader import redownload_ranges
|
|
from .middleware import RequesterFilterMiddleWare
|
|
from .utils import ListenerAddEvaluator, ListenerRemoveEvaluator
|
|
|
|
flask_app = Flask(import_name='icy_governor')
|
|
flask_app.wsgi_app = RequesterFilterMiddleWare( # type: ignore
|
|
app=flask_app.wsgi_app) # type: ignore
|
|
wsgi_app = ProxyFix(app=flask_app, x_for=1, x_host=1)
|
|
|
|
BASE_PATH = '/icy-governor/'
|
|
|
|
|
|
@flask_app.route(rule=f'{BASE_PATH}reload-ranges/', methods=['GET'])
|
|
def reload_ranges() -> Response:
|
|
# flask_app.logger.debug('REMOTE_ADDR: %s', request.remote_addr)
|
|
redownload_ranges()
|
|
response = make_response('', 200)
|
|
return response
|
|
|
|
|
|
@flask_app.route(rule=f'{BASE_PATH}listener-add/', methods=['POST'])
|
|
def listener_add() -> Response:
|
|
evaluator = ListenerAddEvaluator(
|
|
form=request.form, logger=flask_app.logger)
|
|
return evaluator.response
|
|
|
|
|
|
@flask_app.route(rule=f'{BASE_PATH}listener-remove/', methods=['POST'])
|
|
def listener_remove() -> Response:
|
|
evaluator = ListenerRemoveEvaluator(
|
|
form=request.form, logger=flask_app.logger)
|
|
return evaluator.response
|