bot/core/simple.py

93 lines
No EOL
3.8 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import asyncio
from aiogram import html
from aiogram.types import Message
import config
async def handle_start_command(message: Message) -> None:
"""Handle /start command"""
await message.answer(f"Hello, {html.bold(message.from_user.full_name)}!")
async def handle_baka(message: Message) -> None:
await message.reply(f"你是笨蛋")
async def handle_info_command(message: Message) -> None:
"""Handle /info command"""
user = message.from_user
chat = message.chat
response = (
f"User Info:\n"
f"Name: {html.bold(user.full_name)}\n"
f"Username: @{user.username if user.username else 'N/A'}\n"
f"User ID: {user.id}\n\n"
f"Chat Info:\n"
f"Chat Title: {html.bold(chat.title)}\n"
f"Chat ID: {chat.id}\n"
)
await message.reply(response)
async def handle_ping_command(message: Message) -> None:
"""Handle /ping command"""
import time
user_sent_time = message.date.timestamp()
bot_time_now = time.time()
time_diff = bot_time_now - user_sent_time
response = f"Pong! Time taken: {round(time_diff * 1000, 2)} milliseconds"
await message.reply(response)
async def handle_tips_command(message: Message) -> None:
"""Handle /tips command"""
tips = [
"你知道吗:其实 tips 都是废话(确信",
"如果 bot 没有回复链接,说明链接不需要被清理",
"不管如何,你今天都很棒!",
"这个 bot 暂时还跑在一台运行着 Arch Linux 的笔电上",
"/ping 命令其实显示的是 bot 到 Telegram 服务器的延迟,而不是用户到 bot 的延迟",
"bot 的链接清理功能其实大多归功于 ➗ Actually Legitimate URL Shortener Tool 规则集",
"bot 的功能可以被选择性的开启或者关闭,但是示例 bot 为了方便开发和测试,默认开启了所有功能",
"说真的,你应该去看看 @kmuav2bot",
"任何一条 tips 消息都会在一分钟后自动消失,再也不用担心消息堆积了",
"/mc 命令使用了 mcstatus 库来查询 Minecraft 服务器状态,而这个库曾经由 Dinnerbone 维护",
]
import random
response = random.choice(tips)
tips_message = await message.reply(response)
# Delete the message after 1 minute
await asyncio.sleep(60)
await tips_message.delete()
async def handle_about_command(message: Message) -> None:
"""Handle /about command"""
import time
bot_time_start = time.time()
about_message = await message.reply('Loading...')
try:
from dulwich.repo import Repo
git_commit_hash = f"g{Repo('.').head().decode('utf-8')[:7]}" # Get the first 7 characters of the commit hash
except Exception:
git_commit_hash = 'v20250802' # Fallback when git operations fail
response = f"realbot@{git_commit_hash}\n\n"
response += "孩子不懂随便写的 bot\n"
if message.chat.id == config.config.get_admin_id():
response += '\nDebug Info:\n'
import os
response += 'Python Version: ' + str(os.sys.version) + '\n'
response += 'System Info: ' + '\n' + ' '.join(str(x) for x in os.uname()) + '\n'
response += '\n这个命令比较慢dulwich 负全责(小声),'
bot_time_end = time.time()
time_diff = bot_time_end - bot_time_start
if time_diff < 1:
response += f"也就大概花了 {round(time_diff * 1000, 2)} ms..."
elif time_diff < 60:
response += f"也就大概花了 {round(time_diff, 2)} 秒..."
else:
minutes = int(time_diff // 60)
seconds = round(time_diff % 60, 2)
response += f"也就大概花了 {minutes}{seconds} 秒..."
await about_message.edit_text(response)
async def dummy_handler(message: Message) -> None:
"""A handler to catch all other messages"""
pass