Smaller telegram Feature fixes

This commit is contained in:
2026-02-19 20:19:13 +01:00
parent 2d3c559fcb
commit 0163767171

View File

@@ -265,6 +265,19 @@ class TelegramService:
reply_markup=self._post_type_keyboard(active_types)
)
# ==================== TOKEN LIMIT CHECK ====================
async def _check_token_limit(self, user_id: str, db) -> tuple[bool, str]:
"""Check company token limit for the user. Returns (can_proceed, error_msg)."""
try:
profile = await db.get_profile(UUID(user_id))
if profile and profile.company_id:
can_proceed, error_msg, _, _ = await db.check_company_token_limit(profile.company_id)
return can_proceed, error_msg
except Exception as e:
logger.warning(f"Token limit check failed (allowing): {e}")
return True, ""
# ==================== FEEDBACK HANDLING ====================
async def _handle_feedback(self, chat_id: str, user_id: str, feedback: str, conv: dict, db) -> None:
@@ -277,6 +290,12 @@ class TelegramService:
await self._clear_conv(chat_id)
return
# Check token limit before calling the LLM
can_proceed, limit_msg = await self._check_token_limit(user_id, db)
if not can_proceed:
await self.send_message(chat_id, f"⚠️ {limit_msg}")
return
await self.send_message(chat_id, "⏳ Überarbeite deinen Post...")
try:
@@ -287,9 +306,16 @@ class TelegramService:
suggestion=feedback
)
# Update post in DB if we have a post_id
# Update post in DB: append new version, increment iteration counter
if post_id:
await db.update_generated_post(UUID(post_id), {"post_content": improved})
existing = await db.get_generated_post(UUID(post_id))
if existing:
new_versions = list(existing.writer_versions) + [improved]
await db.update_generated_post(UUID(post_id), {
"post_content": improved,
"writer_versions": new_versions,
"iterations": existing.iterations + 1,
})
# Update conversation state
conv["post_content"] = improved
@@ -340,6 +366,13 @@ class TelegramService:
await self._clear_conv(chat_id)
return
# Check token limit before calling the LLM
can_proceed, limit_msg = await self._check_token_limit(user_id, db)
if not can_proceed:
await self.edit_message(chat_id, message_id, f"⚠️ {limit_msg}")
await self._clear_conv(chat_id)
return
# Edit the post-type selection message to show progress
await self.edit_message(chat_id, message_id, "⏳ Erstelle deinen Post... Das kann einen Moment dauern.")