This commit is contained in:
kislovdm
2026-04-09 16:40:07 +03:00
parent 0163cdc685
commit c8476a2bac
+9 -10
View File
@@ -40,11 +40,12 @@ def _infer_max_chat_type(chat_obj: Any) -> str:
if value is None: if value is None:
continue continue
v = str(value).strip().casefold() v = str(value).strip().casefold()
if v in {"channel", "канал"}: # PyMax часто использует enum-ы вида ChatType.CHANNEL, поэтому проверяем и точные значения, и подстроки.
if v in {"channel", "канал"} or "channel" in v or "канал" in v:
return "канал" return "канал"
if v in {"group", "supergroup", "группа"}: if v in {"group", "supergroup", "группа"} or "group" in v or "груп" in v:
return "группа" return "группа"
if v in {"direct", "dm", "private"}: if v in {"direct", "dm", "private"} or "direct" in v or "private" in v or "dm" == v:
return "direct" return "direct"
# 2) Флаги. # 2) Флаги.
@@ -225,14 +226,12 @@ async def handle_control_command(
if ctype != "канал": if ctype != "канал":
return f"'{_max_chat_title(chat)}' — это не канал (тип: {ctype})." return f"'{_max_chat_title(chat)}' — это не канал (тип: {ctype})."
fetch_history = getattr(max_client, "fetch_history", None)
if fetch_history is None:
return "У клиента MAX нет метода fetch_history(chat_id, backward, forward)."
try: try:
history = await fetch_history(chat_id=int(chat_id), backward=10, forward=0) # PyMax: MessageMixin.fetch_history(chat_id, from_time=None, forward=0, backward=200)
except TypeError: # https://github.com/MaxApiTeam/PyMax/blob/041dedeb9f9461b3360e2881a8a18a767de74871/src/pymax/mixins/message.py#L594
history = await fetch_history(int(chat_id), 10, 0) history = await max_client.fetch_history(chat_id=int(chat_id), forward=0, backward=10)
except AttributeError:
return "У клиента MAX нет метода fetch_history(chat_id, from_time=None, forward=0, backward=200)."
except Exception as e: except Exception as e:
logger.exception("MAX fetch_history failed") logger.exception("MAX fetch_history failed")
return f"Ошибка при получении истории: {e}" return f"Ошибка при получении истории: {e}"