mirror of
https://github.com/cdryzun/tg_bot_collections.git
synced 2025-08-05 21:56:44 +08:00
Merge pull request #58 from yihong0618/fix/search
fix: support search with space
This commit is contained in:
@ -3,6 +3,7 @@ from __future__ import annotations
|
|||||||
import logging
|
import logging
|
||||||
from datetime import datetime, timezone
|
from datetime import datetime, timezone
|
||||||
from functools import partial
|
from functools import partial
|
||||||
|
import shlex
|
||||||
|
|
||||||
import telegramify_markdown
|
import telegramify_markdown
|
||||||
from telebot import TeleBot
|
from telebot import TeleBot
|
||||||
@ -96,7 +97,7 @@ def stats_command(message: Message, bot: TeleBot):
|
|||||||
@non_llm_handler
|
@non_llm_handler
|
||||||
def search_command(message: Message, bot: TeleBot):
|
def search_command(message: Message, bot: TeleBot):
|
||||||
"""搜索群组消息(示例:/search 关键词 [N])"""
|
"""搜索群组消息(示例:/search 关键词 [N])"""
|
||||||
text_parts = message.text.split(maxsplit=2)
|
text_parts = shlex.split(message.text)
|
||||||
if len(text_parts) < 2:
|
if len(text_parts) < 2:
|
||||||
bot.reply_to(message, "请提供要搜索的关键词。")
|
bot.reply_to(message, "请提供要搜索的关键词。")
|
||||||
return
|
return
|
||||||
@ -115,7 +116,7 @@ def search_command(message: Message, bot: TeleBot):
|
|||||||
items = []
|
items = []
|
||||||
for msg in messages:
|
for msg in messages:
|
||||||
link = f"https://t.me/c/{chat_id}/{msg.message_id}"
|
link = f"https://t.me/c/{chat_id}/{msg.message_id}"
|
||||||
items.append(f"{link}\n```\n{msg.content}\n```")
|
items.append(f"{link}\n```\n{msg.user_name}: {msg.content}\n```")
|
||||||
message_text = telegramify_markdown.markdownify("\n".join(items))
|
message_text = telegramify_markdown.markdownify("\n".join(items))
|
||||||
bot.reply_to(
|
bot.reply_to(
|
||||||
message,
|
message,
|
||||||
|
@ -92,7 +92,7 @@ class MessageStore:
|
|||||||
WHERE chat_id = ? AND timestamp >= ?
|
WHERE chat_id = ? AND timestamp >= ?
|
||||||
ORDER BY timestamp ASC;
|
ORDER BY timestamp ASC;
|
||||||
""",
|
""",
|
||||||
(chat_id, since.isoformat()),
|
(chat_id, since.astimezone(timezone.utc).isoformat()),
|
||||||
)
|
)
|
||||||
rows = cursor.fetchall()
|
rows = cursor.fetchall()
|
||||||
return [
|
return [
|
||||||
|
Reference in New Issue
Block a user