-
Notifications
You must be signed in to change notification settings - Fork 49
/
Copy pathavredweb.py
executable file
·54 lines (41 loc) · 1.74 KB
/
avredweb.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
#!/usr/bin/python3
import os
import argparse
from flask import Flask
from config import Config
from app.views import views
from app.views_upload import views_upload
from app.views_auth import views_auth, login_manager
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument('--listenip', type=str, help='IP to listen on', default="0.0.0.0")
parser.add_argument('--listenport', type=int, help='Port to listen on', default=5000)
parser.add_argument('--debug', action='store_true', help='Debug', default=False)
args = parser.parse_args()
config = Config()
config.load()
root_folder = os.path.dirname(__file__)
app_folder = os.path.join(root_folder, 'app')
app = Flask(__name__,
static_folder=os.path.join(app_folder, 'static'),
template_folder=os.path.join(app_folder, 'templates')
)
app.config['UPLOAD_FOLDER'] = os.path.join(app_folder, 'upload')
app.config['EXAMPLE_FOLDER'] = os.path.join(app_folder, 'examples')
app.config['TEMPLATES_AUTO_RELOAD'] = True
app.config['SECRET_KEY'] = os.urandom(24)
app.config['SESSION_TYPE'] = 'filesystem'
app.config['AVRED_SERVERS'] = config.get('server')
app.config['PASSWORD'] = config.get('password')
app.config['WebMaxFileSizeMb'] = config.get('WebMaxFileSizeMb')
app.config['AVRED_SCANNER'] = os.path.join(root_folder, 'avred.py')
app.config['ALLOWED_EXTENSIONS'] = { 'exe', 'dll', 'ps1', 'docm', 'bin', 'lnk' }
app.config.from_prefixed_env()
for key in ('UPLOAD_FOLDER', 'EXAMPLE_FOLDER', 'ALLOWED_EXTENSIONS',):
print("{}: {}".format(key, app.config[key]))
print("")
app.register_blueprint(views)
app.register_blueprint(views_upload)
app.register_blueprint(views_auth)
login_manager.init_app(app)
app.run(host=args.listenip, port=args.listenport, debug=args.debug)