コード例 #1
0
ファイル: make_app.py プロジェクト: kimusan/toolbox
class Credentials:
    username: str
    password: str


class ToolboxServerException(Exception):
    pass


upload_tokens: Dict[UploadTokenId, UploadToken] = {}

server = Blueprint("serve",
                   __name__,
                   template_folder=TEMPLATE_DIRECTORY,
                   static_folder=None)
server.app_template_filter("pretty_date")(formatters.pretty_date)

csrf = CSRFProtect()
auth = HTTPBasicAuth()


# No login required - shells can be accessed from anywhere
@server.route("/shells/<name>")
@server.route("/shells/<name>/<lport>")
@server.route("/shells/<name>/<lhost>/<lport>")
def shell(name: str, lhost: Optional[str] = None, lport: Optional[str] = None):
    payload_generator = PayloadGenerator()
    payload = payload_generator.generate(name=name, lhost=lhost, lport=lport)
    if payload is None:
        return abort(HTTPStatus.NOT_FOUND)
    response = make_response(payload)
コード例 #2
0
from flask import url_for

import reader
from .api_thing import APIError
from .api_thing import APIThing
from reader import Content
from reader import Entry
from reader import EntrySearchResult
from reader import InvalidSearchQueryError
from reader import ParseError
from reader import ReaderError
from reader._plugins import Loader

blueprint = Blueprint('reader', __name__)

blueprint.app_template_filter('humanize_naturaltime')(humanize.naturaltime)

# if any plugins need signals, they need to install blinker
signals = flask.signals.Namespace()

# NOTE: these signals are part of the app extension API
got_preview_parse_error = signals.signal('preview-parse-error')


def get_reader():
    if not hasattr(g, 'reader'):
        g.reader = current_app.config['READER_CONFIG'].make_reader(
            'app', plugin_loader=current_app.plugin_loader
        )
    return g.reader