DB_NAME = "{}_{}".format(USERNAME, DOMAIN.replace(".", "_")) DB = mongo_client[DB_NAME] GRIDFS = mongo_client[f"{DB_NAME}_gridfs"] MEDIA_CACHE = MediaCache(GRIDFS, USER_AGENT) def _drop_db(): if not DEBUG_MODE: return mongo_client.drop_database(DB_NAME) KEY = get_key(ID, ID + "#main-key", USERNAME, DOMAIN) JWT_SECRET = get_secret_key("jwt") JWT = JSONWebSignatureSerializer(JWT_SECRET) def _admin_jwt_token() -> str: return JWT.dumps( # type: ignore { "me": "ADMIN", "ts": datetime.now().timestamp() }).decode( # type: ignore "utf-8") ADMIN_API_KEY = get_secret_key("admin_api_key", _admin_jwt_token) attachments = []
from config import _drop_db from config import custom_cache_purge_hook from utils.httpsig import HTTPSigAuth, verify_request from utils.key import get_secret_key from utils.webfinger import get_remote_follow_template from utils.webfinger import get_actor_url from utils.errors import Error from utils.errors import UnexpectedActivityTypeError from utils.errors import BadActivityError from utils.errors import NotFromOutboxError from utils.errors import ActivityNotFoundError from typing import Dict, Any app = Flask(__name__) app.secret_key = get_secret_key('flask') app.config.update(WTF_CSRF_CHECK_DEFAULT=False, ) csrf = CSRFProtect(app) logger = logging.getLogger(__name__) # Hook up Flask logging with gunicorn gunicorn_logger = logging.getLogger('gunicorn.error') root_logger = logging.getLogger() root_logger.handlers = gunicorn_logger.handlers root_logger.setLevel(gunicorn_logger.level) SIG_AUTH = HTTPSigAuth(ID + '#main-key', KEY.privkey) def verify_pass(pwd):
host=[os.getenv('MICROBLOGPUB_MONGODB_HOST', 'localhost:27017')], ) DB_NAME = '{}_{}'.format(USERNAME, DOMAIN.replace('.', '_')) DB = mongo_client[DB_NAME] def _drop_db(): if not DEBUG_MODE: return mongo_client.drop_database(DB_NAME) KEY = Key(USERNAME, DOMAIN, create=True) JWT_SECRET = get_secret_key('jwt') JWT = JSONWebSignatureSerializer(JWT_SECRET) def _admin_jwt_token() -> str: return JWT.dumps({'me': 'ADMIN', 'ts': datetime.now().timestamp()}).decode('utf-8') # type: ignore ADMIN_API_KEY = get_secret_key('admin_api_key', _admin_jwt_token) ME = { "@context": [ CTX_AS, CTX_SECURITY, ], "type": "Person", "id": ID,
from core.shared import activitypubify from core.shared import csrf from core.shared import htmlify from core.shared import is_api_request from core.shared import jsonify from core.shared import login_required from core.shared import noindex from core.shared import paginated_query from utils.blacklist import is_blacklisted from utils.emojis import EMOJIS from utils.highlight import HIGHLIGHT_CSS from utils.key import get_secret_key from utils.template_filters import filters app = Flask(__name__) app.secret_key = get_secret_key("flask") app.register_blueprint(filters) app.register_blueprint(blueprints.admin.blueprint) app.register_blueprint(blueprints.api.blueprint, url_prefix="/api") app.register_blueprint(blueprints.indieauth.blueprint) app.register_blueprint(blueprints.tasks.blueprint) app.register_blueprint(blueprints.well_known.blueprint) app.config.update(WTF_CSRF_CHECK_DEFAULT=False) app.config.update( SESSION_COOKIE_SECURE=True if config.SCHEME == "https" else False) csrf.init_app(app) logger = logging.getLogger(__name__)