megabot / megadl /forcesub.py
imseldrith's picture
Upload 5 files
9725bda
# (c) Asm Safone
# A Part of MegaDL-Bot <https://github.com/AsmSafone/MegaDL-Bot>
import asyncio
from config import Config
from pyrogram import Client
from pyrogram.errors import FloodWait, UserNotParticipant
from pyrogram.types import Message, InlineKeyboardMarkup, InlineKeyboardButton
async def handle_force_subscribe(bot, message):
try:
invite_link = await bot.create_chat_invite_link(int(Config.UPDATES_CHANNEL))
except FloodWait as e:
await asyncio.sleep(e.x)
return 400
try:
user = await bot.get_chat_member(int(Config.UPDATES_CHANNEL), message.from_user.id)
if user.status == "kicked":
await bot.send_message(
chat_id=message.from_user.id,
text="Sorry Sir, You are Banned. Contact My [Support Group](https://t.me/AsmSupport).",
parse_mode="markdown",
disable_web_page_preview=True,
reply_to_message_id=message.message_id,
)
return 400
except UserNotParticipant:
await bot.send_message(
chat_id=message.from_user.id,
text="**Please Join My Updates Channel To Use Me!**\n\nDue to Overload, Only Channel Subscribers Can Use Me!",
reply_markup=InlineKeyboardMarkup(
[
[
InlineKeyboardButton("πŸ€– Join Updates Channel πŸ€–", url=invite_link.invite_link)
],
[
InlineKeyboardButton("πŸ”„ Refresh πŸ”„", callback_data="refreshmeh")
]
]
),
parse_mode="markdown",
reply_to_message_id=message.message_id,
)
return 400
except Exception:
await bot.send_message(
chat_id=message.from_user.id,
text="Something Went Wrong. Contact My [Support Group](https://t.me/AsmSupport).",
parse_mode="markdown",
disable_web_page_preview=True,
reply_to_message_id=message.message_id,
)
return 400