fix forward channel check admin user

This commit is contained in:
2024-07-09 16:27:13 +08:00
parent be77a33e9d
commit ebb48d2bb5
2 changed files with 8 additions and 3 deletions
+7 -2
View File
@@ -17,7 +17,7 @@ from utils.pixiv import ProcessPixiv
from utils.telegram import Telegram from utils.telegram import Telegram
if TYPE_CHECKING: if TYPE_CHECKING:
from telegram import Chat, Message, Update from telegram import Message, Update
from telegram.ext import Application, ContextTypes from telegram.ext import Application, ContextTypes
logger = get_logger(__name__) logger = get_logger(__name__)
@@ -141,7 +141,7 @@ async def cmd_set_forward_channel(update: Update, context: ContextTypes.DEFAULT_
return return
channel = context.args[0] channel = context.args[0]
try: try:
channel: Chat = await context.bot.get_chat(channel) channel = await context.bot.get_chat(channel)
except Exception as e: except Exception as e:
await update.effective_message.reply_text(str(e)) await update.effective_message.reply_text(str(e))
return return
@@ -153,6 +153,11 @@ async def cmd_set_forward_channel(update: Update, context: ContextTypes.DEFAULT_
except Exception as e: except Exception as e:
await update.effective_message.reply_text(str(e) + "\nPlease add the bot to the channel and set as admin") await update.effective_message.reply_text(str(e) + "\nPlease add the bot to the channel and set as admin")
return return
user = filter(lambda x: x.user.id == update.effective_user.id, channel_admin)
user = next(user, None)
if not user:
await update.effective_message.reply_text("You are not an admin of the channel.")
return
user_bot = filter(lambda x: x.user.id == context.bot.id, channel_admin) user_bot = filter(lambda x: x.user.id == context.bot.id, channel_admin)
user_bot = next(user_bot, None) user_bot = next(user_bot, None)
if user_bot.can_post_messages: if user_bot.can_post_messages:
+1 -1
View File
@@ -18,7 +18,7 @@ class Telegram:
async with TelegramPixiv(self._url) as pixiv: async with TelegramPixiv(self._url) as pixiv:
return pixiv return pixiv
else: else:
return None return None # TODO add raise and catch
async def __aexit__(self, exc_type, exc_val, exc_tb): async def __aexit__(self, exc_type, exc_val, exc_tb):
pass pass