Remove duplicate h1, fix avatar gender caching, blacklist Celeste voice
- Hide h1 (sr-only) on homepage — banner already shows show name - Promote tagline as visual lead after banner - Fix avatar gender: add .gender marker files, re-fetch on mismatch - Clear stale avatar cache so all re-fetch with correct gender - Blacklist Celeste voice from caller pool Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
+1
-1
@@ -147,7 +147,7 @@ ELEVENLABS_MALE_VOICES.append("SAz9YHcvj6GT2YYXdXww") # River - Neutral
|
||||
ELEVENLABS_FEMALE_VOICES.append("SAz9YHcvj6GT2YYXdXww") # River - Neutral
|
||||
|
||||
# Voices to never assign to callers (annoying, bad quality, etc.)
|
||||
BLACKLISTED_VOICES = {"Evelyn", "Sebastian"} # Sebastian reserved for Silas
|
||||
BLACKLISTED_VOICES = {"Evelyn", "Sebastian", "Celeste"} # Sebastian reserved for Silas
|
||||
|
||||
|
||||
def _get_voice_pools():
|
||||
|
||||
@@ -25,14 +25,19 @@ class AvatarService:
|
||||
|
||||
async def get_or_fetch(self, name: str, gender: str = "male") -> Path:
|
||||
"""Get cached avatar or fetch from randomuser.me. Returns file path."""
|
||||
g = "female" if gender.lower().startswith("f") else "male"
|
||||
path = AVATAR_DIR / f"{name}.jpg"
|
||||
# Check for gender mismatch marker — re-fetch if gender changed
|
||||
marker = AVATAR_DIR / f"{name}.gender"
|
||||
if path.exists():
|
||||
return path
|
||||
cached_gender = marker.read_text().strip() if marker.exists() else None
|
||||
if cached_gender == g:
|
||||
return path
|
||||
# Gender mismatch or no marker — re-fetch
|
||||
path.unlink(missing_ok=True)
|
||||
|
||||
try:
|
||||
# Seed includes gender so same name + different gender = different face
|
||||
seed = f"{name.lower().replace(' ', '_')}_{gender.lower()}"
|
||||
g = "female" if gender.lower().startswith("f") else "male"
|
||||
seed = f"{name.lower().replace(' ', '_')}_{g}"
|
||||
resp = await self.client.get(
|
||||
"https://randomuser.me/api/",
|
||||
params={"gender": g, "seed": seed},
|
||||
@@ -42,11 +47,11 @@ class AvatarService:
|
||||
data = resp.json()
|
||||
photo_url = data["results"][0]["picture"]["large"]
|
||||
|
||||
# Download the photo
|
||||
photo_resp = await self.client.get(photo_url, timeout=8.0)
|
||||
photo_resp.raise_for_status()
|
||||
|
||||
path.write_bytes(photo_resp.content)
|
||||
marker.write_text(g)
|
||||
print(f"[Avatar] Fetched avatar for {name} ({g})")
|
||||
return path
|
||||
except Exception as e:
|
||||
|
||||
Reference in New Issue
Block a user