diff --git a/adapters/tg.py b/adapters/tg.py index bf4c6b4..3b2470f 100644 --- a/adapters/tg.py +++ b/adapters/tg.py @@ -12,7 +12,6 @@ from aiogram import F from core.bitflip import handle_bitflip_command from core.link import handle_links -from core.promote import handle_promote_command from core.repeater import MessageRepeater from core.simple import handle_start_command, handle_baka, dummy_handler, handle_info_command from core.actions import handle_actions, handle_reverse_actions @@ -40,8 +39,6 @@ class TelegramAdapter: router.message(Command('info'))(handle_info_command) # bitflip 模块 router.message(Command('bitflip'))(handle_bitflip_command) - # promote 模块 - router.message(Command('t'))(handle_promote_command) # stats 模块 router.message(Command('stats'))(handle_stats_command) # unpin 模块 diff --git a/config.example.yaml b/config.example.yaml index e5630ae..5e06e7b 100644 --- a/config.example.yaml +++ b/config.example.yaml @@ -1,6 +1,4 @@ -# 管理员对应的 Telegram 用户 ID -# 你可以通过 /info 命令获取你的用户 ID -admin: 123456789 +admin: 616760897 # global features settings features: @@ -13,9 +11,6 @@ features: # 启用链接解析/清理 link: enable: true - # 启用互送头衔 - promote: - enable: true # 启用复读 repeater: enable: true diff --git a/config.py b/config.py index 98d46a8..cf91b60 100644 --- a/config.py +++ b/config.py @@ -4,7 +4,7 @@ from pathlib import Path class Config: - def __init__(self, config_path: str = "config.yaml"): + def __init__(self, config_path: str = "config.example.yaml"): self.config_path = Path(config_path) self.config_data = self._load_config() diff --git a/core/middleware/stats.py b/core/middleware/stats.py index e543522..5efd007 100644 --- a/core/middleware/stats.py +++ b/core/middleware/stats.py @@ -53,19 +53,10 @@ class MessageStatsMiddleware(BaseMiddleware): if not self.stats[chat_id]['users'][user_id]['xm_count']: self.stats[chat_id]['users'][user_id]['xm_count'] = 0 self.stats[chat_id]['users'][user_id]['xm_count'] += 1 - if event.sticker and event.sticker.file_unique_id in ['AQADhhcAAs1rgFVy']: - if not self.stats[chat_id]['users'][user_id]['xm_count']: - self.stats[chat_id]['users'][user_id]['xm_count'] = 0 - self.stats[chat_id]['users'][user_id]['xm_count'] += 1 - if event.text and '我菜' in event.text: if not self.stats[chat_id]['users'][user_id]['wocai_count']: self.stats[chat_id]['users'][user_id]['xm_count'] = 0 self.stats[chat_id]['users'][user_id]['wocai_count'] += 1 - if event.sticker and event.sticker.file_unique_id in ['AQAD6AUAAgGeUVZy']: - if not self.stats[chat_id]['users'][user_id]['wocai_count']: - self.stats[chat_id]['users'][user_id]['wocai_count'] = 0 - self.stats[chat_id]['users'][user_id]['wocai_count'] += 1 # 保存统计数据 self.save_stats() diff --git a/core/promote.py b/core/promote.py deleted file mode 100644 index c3a81f5..0000000 --- a/core/promote.py +++ /dev/null @@ -1,48 +0,0 @@ -from aiogram.exceptions import TelegramBadRequest -from aiogram.types import Message - -from config import config - - -async def handle_promote_command(message: Message) -> None: - title = message.text.replace('/t', '').strip() - if not config.is_feature_enabled('promote', message.chat.id): - return - if message.chat.type not in ['group', 'supergroup']: - return - try: - if not message.reply_to_message: - await message.reply('咱不知道给谁头衔呢') - return - if not title: - await message.reply('咱不知道给什么头衔呢') - return - else: - member = await message.chat.get_member(message.reply_to_message.from_user.id) - if len(title) > 16: - await message.reply('头衔太长了,咱设置不了') - return - if member.status == 'creator': - await message.reply('咱不能给群主设置头衔') - return - if not member.status in ['administrator','creator']: - await message.chat.promote(message.reply_to_message.from_user.id,can_manage_chat=True) - await message.chat.set_administrator_custom_title(message.reply_to_message.from_user.id,title) - await message.reply( - f'{message.from_user.mention_html()} 把 {message.reply_to_message.from_user.mention_html()} 变成了 {title}!', - parse_mode='HTML') - elif member.status == 'administrator' and member.can_be_edited: - await message.chat.set_administrator_custom_title(message.reply_to_message.from_user.id,title) - await message.reply( - f'{message.from_user.mention_html()} 把 {message.reply_to_message.from_user.mention_html()} 变成了 {title}!', - parse_mode='HTML') - else: - await message.reply('咱不能给这个人设置头衔,可能是因为ta已经被其它管理员设置了头衔') - return - except TelegramBadRequest as e: - await message.reply(f'因为咱没有添加新的管理员的权限,咱没办法设置头衔') - return - except Exception as e: - await message.reply(f'发生了错误: {str(e)}') - return - diff --git a/core/stats.py b/core/stats.py index 2de464b..e1882ab 100644 --- a/core/stats.py +++ b/core/stats.py @@ -30,12 +30,12 @@ async def handle_stats_command(message: Message): ) sorted_most_xm_users = sorted( stats['users'].items(), - key=lambda x: x[1].get('xm_count',0), + key=lambda x: x[1]['xm_count'], reverse=True ) sorted_most_wocai_users = sorted( stats['users'].items(), - key=lambda x: x[1].get('wocai_count',0), + key=lambda x: x[1]['wocai_count'], reverse=True ) @@ -48,13 +48,13 @@ async def handle_stats_command(message: Message): for i, (user_id, user_data) in enumerate(sorted_users[:10], 1): name = user_data['name'] or user_data['username'] or str(user_id) text += f"{i}. {name}: {user_data['message_count']} 条\n" - if sorted_most_xm_users and any(user_data['xm_count'] > 0 for _, user_data in sorted_most_xm_users): - text += "\n🍋 羡慕统计:\n" + if sorted_most_xm_users: + text += "\n💬 羡慕统计:\n" for user_id, user_data in sorted_most_xm_users: if user_data['xm_count'] > 0: name = user_data['name'] or user_data['username'] or str(user_id) text += f"{name}: {user_data['xm_count']} 次羡慕\n" - if sorted_most_wocai_users and any(user_data['wocai_count'] > 0 for _, user_data in sorted_most_wocai_users): + if sorted_most_wocai_users: text += "\n🥬 卖菜统计:\n" for user_id, user_data in sorted_most_wocai_users: if user_data['wocai_count'] > 0: