38 lines
833 B
Python
38 lines
833 B
Python
from __future__ import annotations
|
|
|
|
from typing import Iterable
|
|
|
|
DEMO_MARKERS: tuple[str, ...] = (
|
|
"demo",
|
|
"dummy",
|
|
"sample",
|
|
"lorem",
|
|
"placeholder",
|
|
"sandbox",
|
|
"staging",
|
|
"prototype",
|
|
"template-only",
|
|
)
|
|
|
|
# Known legacy/demo pages that should never surface on production.
|
|
BLOCKED_DEMO_PAGE_SLUGS: tuple[str, ...] = (
|
|
"starter-website-2",
|
|
"business-website-2",
|
|
)
|
|
|
|
|
|
def contains_demo_marker(values: Iterable[str | None]) -> bool:
|
|
for raw_value in values:
|
|
if not raw_value:
|
|
continue
|
|
lowered = raw_value.lower()
|
|
if any(marker in lowered for marker in DEMO_MARKERS):
|
|
return True
|
|
return False
|
|
|
|
|
|
def is_blocked_demo_slug(value: str | None) -> bool:
|
|
if not value:
|
|
return False
|
|
return value.lower() in BLOCKED_DEMO_PAGE_SLUGS
|