Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
malwaredllc
GitHub Repository: malwaredllc/byob
Path: blob/master/web-gui/buildyourownbotnet/__init__.py
1292 views
1
import os, sys
2
from flask import Flask
3
4
# import configs
5
from buildyourownbotnet.config import ProdConfig, TestConfig
6
7
# login manager
8
from flask_login import LoginManager
9
10
# import models and create tables in database
11
login_manager = LoginManager()
12
login_manager.login_view = 'users.login'
13
login_manager.login_message_category = 'info'
14
15
# server and client generator
16
from buildyourownbotnet import client, server
17
_debug = bool('--debug' in sys.argv)
18
c2 = server.C2(debug=_debug)
19
20
def create_app(test=False):
21
# initialize app and configure global objects
22
app = Flask(__name__,
23
static_url_path='/assets',
24
static_folder='assets',
25
template_folder='templates')
26
27
# configure app
28
config = ProdConfig if not test else TestConfig
29
app.config.from_object(config)
30
31
from buildyourownbotnet.models import db, bcrypt
32
db.init_app(app)
33
34
with app.app_context():
35
db.create_all()
36
bcrypt.init_app(app)
37
login_manager.init_app(app)
38
39
# import blueprints
40
from buildyourownbotnet.main.routes import main
41
from buildyourownbotnet.users.routes import users
42
from buildyourownbotnet.api.files.routes import files
43
from buildyourownbotnet.api.session.routes import session
44
from buildyourownbotnet.api.payload.routes import payload
45
from buildyourownbotnet.errors.handlers import errors
46
47
# register blueprints
48
app.register_blueprint(main)
49
app.register_blueprint(users)
50
app.register_blueprint(files)
51
app.register_blueprint(session)
52
app.register_blueprint(payload)
53
app.register_blueprint(errors)
54
55
# bind app to server
56
c2.bind_app(app)
57
58
return app
59
60