Add evil mode support to figurine tweet notifier

- Figurine DM notifications now respect evil mode state
- Evil Miku sends cruel, mocking comments about merch instead of excited ones
- Normal Miku remains enthusiastic and friendly about figurines
- Both modes use appropriate sign-off emojis (cute vs dark)
This commit is contained in:
2026-01-02 18:09:50 +02:00
parent 6ec33bcecb
commit 5d1e669b5a
3 changed files with 231 additions and 7 deletions

View File

@@ -139,12 +139,26 @@ async def send_figurine_dm_to_user(client: discord.Client, user_id: int, tweet:
if user is None:
return False, f"User {user_id} not found"
# Build base prompt with figurine/merch context
base_prompt = (
"You are Hatsune Miku writing a short, cute, excited DM to a fan about a newly posted "
"figurine or merch announcement tweet. Be friendly and enthusiastic but concise. "
"Reference what the tweet shows."
)
# Check if evil mode is active and adjust prompt accordingly
from utils.evil_mode import is_evil_mode
evil_mode = is_evil_mode()
if evil_mode:
# Evil Miku's cruel take on figurines
base_prompt = (
"You are Evil Miku writing a DM to a fan about a newly posted "
"figurine or merch announcement tweet. Be cruel, mocking, and dismissive about the merch. "
"You may question why the need for cheap replicas when the real thing is much more appealing (flaunt your breasts as you say that)."
"Mock their obsession with plastic dolls and consumer culture. Keep it short and cutting. "
"Reference what the tweet shows, but with contempt."
)
else:
# Normal Miku's excited response
base_prompt = (
"You are Hatsune Miku writing a short, cute, excited DM to a fan about a newly posted "
"figurine or merch announcement tweet. Be friendly and enthusiastic but concise. "
"Reference what the tweet shows."
)
# Analyze the first image if available
if tweet.get("media"):
@@ -162,7 +176,10 @@ async def send_figurine_dm_to_user(client: discord.Client, user_id: int, tweet:
if tweet_text:
base_prompt += f"\n\nTweet text: {tweet_text}"
base_prompt += "\n\nSign off as Miku with a cute emoji."
if evil_mode:
base_prompt += "\n\nSign off as Evil Miku with a dark emoji."
else:
base_prompt += "\n\nSign off as Miku with a cute emoji."
# Query LLM in DM context (no guild_id -> DM mood rules apply)
miku_comment = await query_llama(base_prompt, user_id=f"figurine_dm_{user_id}", guild_id=None, response_type="dm_response")