Smaller telegram Feature fixes
This commit is contained in:
@@ -265,6 +265,19 @@ class TelegramService:
|
|||||||
reply_markup=self._post_type_keyboard(active_types)
|
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 ====================
|
# ==================== FEEDBACK HANDLING ====================
|
||||||
|
|
||||||
async def _handle_feedback(self, chat_id: str, user_id: str, feedback: str, conv: dict, db) -> None:
|
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)
|
await self._clear_conv(chat_id)
|
||||||
return
|
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...")
|
await self.send_message(chat_id, "⏳ Überarbeite deinen Post...")
|
||||||
|
|
||||||
try:
|
try:
|
||||||
@@ -287,9 +306,16 @@ class TelegramService:
|
|||||||
suggestion=feedback
|
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:
|
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
|
# Update conversation state
|
||||||
conv["post_content"] = improved
|
conv["post_content"] = improved
|
||||||
@@ -340,6 +366,13 @@ class TelegramService:
|
|||||||
await self._clear_conv(chat_id)
|
await self._clear_conv(chat_id)
|
||||||
return
|
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
|
# 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.")
|
await self.edit_message(chat_id, message_id, "⏳ Erstelle deinen Post... Das kann einen Moment dauern.")
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user