bug fix
This commit is contained in:
@@ -392,19 +392,31 @@ class EditorWizard:
|
||||
return -1
|
||||
|
||||
async def tpl_list(self, update: Update, context: CallbackContext):
|
||||
if not update.effective_user:
|
||||
return -1
|
||||
uid = update.effective_user.id
|
||||
|
||||
if update.callback_query and update.callback_query.data:
|
||||
q = update.callback_query
|
||||
if not q:
|
||||
return -1
|
||||
await q.answer()
|
||||
page = int(q.data.split(":", 1)[1]) if ":" in q.data else 0
|
||||
return await self._render_tpl_list(q, uid, page)
|
||||
|
||||
if not context or not context.user_data:
|
||||
return -1
|
||||
context.user_data["tpl_page"] = 0
|
||||
return await self._render_tpl_list(update.message, update.effective_user.id, page=0)
|
||||
|
||||
async def tpl_confirm_delete(self, update: Update, context: CallbackContext):
|
||||
from .keyboards import KbBuilder # локальный импорт уже есть, просто используем метод
|
||||
q = update.callback_query
|
||||
await q.answer()
|
||||
tpl_id = int(q.data.split(":", 1)[1])
|
||||
await q.edit_message_text("Удалить шаблон?", reply_markup=KbBuilder.tpl_confirm_delete(tpl_id))
|
||||
return States.TPL_CONFIRM_DELETE
|
||||
return await self._render_tpl_list(update.message, uid, page=0)
|
||||
|
||||
async def tpl_delete_ok(self, update: Update, context: CallbackContext):
|
||||
if not update.callback_query or not update.effective_user:
|
||||
return -1
|
||||
|
||||
q = update.callback_query
|
||||
if not q.data:
|
||||
return -1
|
||||
|
||||
await q.answer()
|
||||
uid = update.effective_user.id
|
||||
tpl_id = int(q.data.split(":", 1)[1])
|
||||
@@ -417,7 +429,7 @@ class EditorWizard:
|
||||
async def _render_preview_and_confirm(self, q_or_msg, uid: int, name: str, ctx_vars: dict):
|
||||
rendered = await render_template_by_name(owner_id=uid, name=name, ctx=ctx_vars)
|
||||
text = rendered["text"]
|
||||
parse_mode = rendered.get("parse_mode") or self.sessions.get(uid).parse_mode or "HTML"
|
||||
parse_mode = rendered.get("parse_mode") or (self.sessions.get(uid).parse_mode if self.sessions.get(uid) else None) or "HTML"
|
||||
|
||||
if hasattr(q_or_msg, "edit_message_text"):
|
||||
await q_or_msg.edit_message_text(f"Предпросмотр:\n\n{text[:3500]}", parse_mode=parse_mode)
|
||||
@@ -454,12 +466,13 @@ class EditorWizard:
|
||||
return
|
||||
token = settings.editor_bot_token
|
||||
payload = build_payload(
|
||||
ptype=s.type,
|
||||
text=s.text,
|
||||
ptype=str(s.type or "text"),
|
||||
text=s.text or "",
|
||||
media_file_id=s.media_file_id,
|
||||
parse_mode=s.parse_mode or "HTML",
|
||||
keyboard=s.keyboard,
|
||||
)
|
||||
from app.tasks.senders import send_post_task
|
||||
send_post_task.delay(token, s.channel_id, payload)
|
||||
await qmsg.edit_message_text("Отправка запущена.")
|
||||
|
||||
@@ -467,12 +480,13 @@ class EditorWizard:
|
||||
s = self.sessions.get(uid)
|
||||
token = settings.editor_bot_token
|
||||
payload = build_payload(
|
||||
ptype=s.type,
|
||||
text=s.text,
|
||||
ptype=str(s.type or "text"),
|
||||
text=s.text or "",
|
||||
media_file_id=s.media_file_id,
|
||||
parse_mode=s.parse_mode or "HTML",
|
||||
keyboard=s.keyboard,
|
||||
)
|
||||
from app.tasks.senders import send_post_task
|
||||
send_post_task.apply_async(args=[token, s.channel_id, payload], eta=when)
|
||||
|
||||
@staticmethod
|
||||
|
||||
Reference in New Issue
Block a user