Update app.py
This commit is contained in:
@@ -79,7 +79,7 @@ def log_event(event: str, **kwargs):
|
||||
logger.info(f"{base} {details}")
|
||||
|
||||
# ============================================================
|
||||
# INIT
|
||||
# INIT CONFIG
|
||||
# ============================================================
|
||||
|
||||
config = Config()
|
||||
@@ -90,7 +90,7 @@ if missing:
|
||||
raise SystemExit(1)
|
||||
|
||||
# ============================================================
|
||||
# STATE + CACHE
|
||||
# STATE & Cache
|
||||
# ============================================================
|
||||
|
||||
KNOWN_EXTERNAL_USERS = {}
|
||||
@@ -104,7 +104,7 @@ CACHE_FILE = "/app/cache/known_users.json"
|
||||
CACHE_DIRTY = False
|
||||
|
||||
# ============================================================
|
||||
# CACHE HANDLING
|
||||
# CACHE Handling
|
||||
# ============================================================
|
||||
|
||||
def load_cache():
|
||||
@@ -127,9 +127,6 @@ def load_cache():
|
||||
def save_cache():
|
||||
global CACHE_DIRTY
|
||||
|
||||
if not CACHE_DIRTY:
|
||||
return
|
||||
|
||||
try:
|
||||
with CACHE_LOCK:
|
||||
os.makedirs(os.path.dirname(CACHE_FILE), exist_ok=True)
|
||||
@@ -186,7 +183,7 @@ def get_role(user_id):
|
||||
return "admin" if user_id in config.admin_users else "user"
|
||||
|
||||
# ============================================================
|
||||
# RATE LIMIT (FIXED)
|
||||
# RATE LIMIT
|
||||
# ============================================================
|
||||
|
||||
def is_rate_limited(domain, sender):
|
||||
@@ -294,7 +291,6 @@ def is_likely_dm_create(payload):
|
||||
return True
|
||||
|
||||
invite = payload.get("invite", [])
|
||||
|
||||
if isinstance(invite, list) and len(invite) == 1:
|
||||
return True
|
||||
|
||||
@@ -315,6 +311,24 @@ def is_likely_dm_event(event):
|
||||
members = [e for e in state if e.get("type") == "m.room.member"]
|
||||
return len(members) <= 2
|
||||
|
||||
# ============================================================
|
||||
# INIT (🔥 CRITICAL FIX FOR GUNICORN)
|
||||
# ============================================================
|
||||
|
||||
def init_app():
|
||||
logger.info("Initializing interceptor (gunicorn mode)...")
|
||||
|
||||
load_cache()
|
||||
seed_known_users()
|
||||
|
||||
threading.Thread(target=periodic_seed, daemon=True).start()
|
||||
threading.Thread(target=periodic_cache_save, daemon=True).start()
|
||||
|
||||
logger.info("Initialization complete")
|
||||
|
||||
init_app()
|
||||
|
||||
|
||||
# ============================================================
|
||||
# ROUTES
|
||||
# ============================================================
|
||||
@@ -475,16 +489,3 @@ def forward_request(method, url, headers, body):
|
||||
return Response(status=200)
|
||||
|
||||
return Response(status=502)
|
||||
|
||||
# ============================================================
|
||||
# START
|
||||
# ============================================================
|
||||
|
||||
if __name__ == '__main__':
|
||||
load_cache()
|
||||
seed_known_users()
|
||||
|
||||
threading.Thread(target=periodic_seed, daemon=True).start()
|
||||
threading.Thread(target=periodic_cache_save, daemon=True).start()
|
||||
|
||||
app.run(host='0.0.0.0', port=5000)
|
||||
|
||||
Reference in New Issue
Block a user