Pyrogram v2.0

Minor changes in Pyrogram
This commit is contained in:
Avishkar Patil
2022-06-08 18:26:43 +05:30
committed by GitHub
5 changed files with 44 additions and 41 deletions

View File

@@ -3,7 +3,7 @@ from pyrogram import Client
from ..vars import Var
StreamBot = Client(
session_name='Web Streamer',
name='Web Streamer',
api_id=Var.API_ID,
api_hash=Var.API_HASH,
bot_token=Var.BOT_TOKEN,

View File

@@ -13,17 +13,18 @@ from WebStreamer.bot import StreamBot
from WebStreamer.vars import Var
from pyrogram import filters, Client
from pyrogram.types import Message
from pyrogram.enums.parse_mode import ParseMode
db = Database(Var.DATABASE_URL, Var.SESSION_NAME)
broadcast_ids = {}
@StreamBot.on_message(filters.command("status") & filters.private & filters.user(Var.OWNER_ID) & ~filters.edited)
@StreamBot.on_message(filters.command("status") & filters.private & filters.user(Var.OWNER_ID))
async def sts(c: Client, m: Message):
total_users = await db.total_users_count()
await m.reply_text(text=f"**Total Users in DB:** `{total_users}`", parse_mode="Markdown", quote=True)
await m.reply_text(text=f"**Total Users in DB:** `{total_users}`", parse_mode=ParseMode.MARKDOWN, quote=True)
@StreamBot.on_message(filters.command("broadcast") & filters.private & filters.user(Var.OWNER_ID) & filters.reply & ~filters.edited)
@StreamBot.on_message(filters.command("broadcast") & filters.private & filters.user(Var.OWNER_ID) & filters.reply)
async def broadcast_(c, m):
all_users = await db.get_all_users()
broadcast_msg = m.reply_to_message

View File

@@ -6,6 +6,7 @@ from WebStreamer.utils.database import Database
from pyrogram import filters
from pyrogram.types import InlineKeyboardMarkup, InlineKeyboardButton
from pyrogram.errors import UserNotParticipant
from pyrogram.enums.parse_mode import ParseMode
db = Database(Var.DATABASE_URL, Var.SESSION_NAME)
@@ -95,7 +96,7 @@ def get_media_file_name(m):
return None
@StreamBot.on_message(filters.command('start') & filters.private & ~filters.edited)
@StreamBot.on_message(filters.command('start') & filters.private)
async def start(b, m):
if not await db.is_user_exist(m.from_user.id):
await db.add_user(m.from_user.id)
@@ -112,7 +113,7 @@ async def start(b, m):
await b.send_message(
chat_id=m.chat.id,
text="__Sʀʀʏ Sɪʀ, Y ᴀʀᴇ Bᴀɴɴᴇᴅ ᴛᴏ sᴇ ᴍᴇ. Cɴᴛᴀᴛ ᴛʜᴇ Dᴇᴇʟᴘᴇʀ__\n\n @AvishkarPatil **Tʜᴇʏ Wɪʟʟ Hᴇʟᴘ Y**",
parse_mode="markdown",
parse_mode=ParseMode.MARKDOWN,
disable_web_page_preview=True
)
return
@@ -125,19 +126,19 @@ async def start(b, m):
InlineKeyboardButton("Jɪɴ ɴᴏᴡ 🔓", url=f"https://t.me/{Var.UPDATES_CHANNEL}")
]]
),
parse_mode="HTML"
parse_mode=ParseMode.HTML
)
return
except Exception:
await b.send_message(
chat_id=m.chat.id,
text="<i>Sᴍᴇᴛʜɪɴɢ ᴡʀᴏɴɢ ᴄᴏɴᴛᴀᴄᴛ ᴍʏ ᴅᴇᴠᴇʟᴏᴘᴇʀ</i> <b><a href='http://t.me/Avishkarpatil'>[ ᴄʟɪᴄᴋ ʜᴇʀᴇ ]</a></b>",
parse_mode="HTML",
parse_mode=ParseMode.HTML,
disable_web_page_preview=True)
return
await m.reply_text(
text=START_TEXT.format(m.from_user.mention),
parse_mode="HTML",
parse_mode=ParseMode.HTML,
disable_web_page_preview=True,
reply_markup=START_BUTTONS
)
@@ -151,7 +152,7 @@ async def start(b, m):
await b.send_message(
chat_id=m.chat.id,
text="**Sʀʀʏ Sɪʀ, Y ᴀʀᴇ Bᴀɴɴᴇᴅ ᴛᴏ sᴇ ᴍᴇ. Qɪᴋʟʏ ᴄᴏɴᴛᴀᴄᴛ** @Avishkarpatil",
parse_mode="markdown",
parse_mode=ParseMode.MARKDOWN,
disable_web_page_preview=True
)
return
@@ -166,14 +167,14 @@ async def start(b, m):
]]
),
parse_mode="markdown"
parse_mode=ParseMode.MARKDOWN
)
return
except Exception:
await b.send_message(
chat_id=m.chat.id,
text="**Sᴍᴇᴛʜɪɴɢ ᴡᴇɴᴛ Wʀɴɢ. Cɴᴛᴀᴛ ᴍᴇ** [Aɪsʜᴋᴀʀ Pᴀᴛɪʟ](https://t.me/Avishkarpatil).",
parse_mode="markdown",
parse_mode=ParseMode.MARKDOWN,
disable_web_page_preview=True)
return
@@ -181,10 +182,10 @@ async def start(b, m):
file_name = get_media_file_name(get_msg)
file_size = humanbytes(get_media_file_size(get_msg))
stream_link = "https://{}/{}/{}".format(Var.FQDN, get_msg.message_id, file_name) if Var.ON_HEROKU or Var.NO_PORT else \
stream_link = "https://{}/{}/{}".format(Var.FQDN, get_msg.id, file_name) if Var.ON_HEROKU or Var.NO_PORT else \
"http://{}:{}/{}/{}".format(Var.FQDN,
Var.PORT,
get_msg.message_id,
get_msg.id,
file_name)
msg_text ="""
@@ -198,7 +199,7 @@ async def start(b, m):
await m.reply_text(
text=msg_text.format(file_name, file_size, stream_link),
parse_mode="HTML",
parse_mode=ParseMode.HTML,
reply_markup=InlineKeyboardMarkup([[InlineKeyboardButton("Dɴʟᴀᴅ ɴᴏᴡ 📥", url=stream_link)]])
)
@@ -213,7 +214,7 @@ async def start(bot, update):
)
@StreamBot.on_message(filters.command('help') & filters.private & ~filters.edited)
@StreamBot.on_message(filters.command('help') & filters.private)
async def help_handler(bot, message):
if not await db.is_user_exist(message.from_user.id):
await db.add_user(message.from_user.id)
@@ -228,7 +229,7 @@ async def help_handler(bot, message):
await bot.send_message(
chat_id=message.chat.id,
text="<i>Sʀʀʏ Sɪʀ, Y ᴀʀᴇ Bᴀɴɴᴇᴅ ᴛᴏ sᴇ ᴍᴇ. Cɴᴛᴀᴛ ᴛʜᴇ Dᴇᴇʟᴘᴇʀ</i>",
parse_mode="HTML",
parse_mode=ParseMode.HTML,
disable_web_page_preview=True
)
return
@@ -241,19 +242,19 @@ async def help_handler(bot, message):
InlineKeyboardButton("🤖 Jɪɴ Uᴘᴅᴀᴛᴇs Cʜᴀɴɴᴇʟ", url=f"https://t.me/{Var.UPDATES_CHANNEL}")
]]
),
parse_mode="markdown"
parse_mode=ParseMode.MARKDOWN
)
return
except Exception:
await bot.send_message(
chat_id=message.chat.id,
text="__Sᴍᴇᴛʜɪɴɢ ᴡᴇɴᴛ Wʀɴɢ. Cɴᴛᴀᴛ ᴍᴇ__ [Aɪsʜᴋᴀʀ Pᴀᴛɪʟ](https://t.me/Avishkarpatil).",
parse_mode="markdown",
parse_mode=ParseMode.MARKDOWN,
disable_web_page_preview=True)
return
await message.reply_text(
text=HELP_TEXT,
parse_mode="HTML",
parse_mode=ParseMode.HTML,
disable_web_page_preview=True,
reply_markup=HELP_BUTTONS
)

View File

@@ -11,6 +11,7 @@ from WebStreamer.vars import Var
from pyrogram import filters, Client
from pyrogram.errors import FloodWait, UserNotParticipant
from pyrogram.types import Message, InlineKeyboardMarkup, InlineKeyboardButton
from pyrogram.enums.parse_mode import ParseMode
db = Database(Var.DATABASE_URL, Var.SESSION_NAME)
@@ -30,7 +31,7 @@ def get_media_file_name(m):
return None
@StreamBot.on_message(filters.private & (filters.document | filters.video | filters.audio) & ~filters.edited, group=4)
@StreamBot.on_message(filters.private & (filters.document | filters.video | filters.audio), group=4)
async def private_receive_handler(c: Client, m: Message):
if not await db.is_user_exist(m.from_user.id):
await db.add_user(m.from_user.id)
@@ -45,7 +46,7 @@ async def private_receive_handler(c: Client, m: Message):
await c.send_message(
chat_id=m.chat.id,
text="__Sʀʀʏ Sɪʀ, Y ᴀʀᴇ Bᴀɴɴᴇᴅ ᴛᴏ sᴇ ᴍᴇ.__\n\n **Cɴᴛᴀᴛ Dᴇᴇʟᴘᴇʀ @Avishkarpatil Tʜᴇʏ Wɪʟʟ Hᴇʟᴘ Y**",
parse_mode="markdown",
parse_mode=ParseMode.MARKDOWN,
disable_web_page_preview=True
)
return
@@ -56,24 +57,24 @@ async def private_receive_handler(c: Client, m: Message):
reply_markup=InlineKeyboardMarkup(
[[ InlineKeyboardButton("Jɪɴ ɴᴏᴡ 🔓", url=f"https://t.me/{Var.UPDATES_CHANNEL}") ]]
),
parse_mode="HTML"
parse_mode=ParseMode.HTML
)
return
except Exception:
await c.send_message(
chat_id=m.chat.id,
text="**Sᴍᴇᴛʜɪɴɢ ᴡᴇɴᴛ Wʀɴɢ. Cɴᴛᴀᴛ ᴍʏ ʙss** @Avishkarpatil",
parse_mode="markdown",
parse_mode=ParseMode.MARKDOWN,
disable_web_page_preview=True)
return
try:
log_msg = await m.forward(chat_id=Var.BIN_CHANNEL)
file_name = get_media_file_name(m)
file_size = humanbytes(get_media_file_size(m))
stream_link = "https://{}/{}/{}".format(Var.FQDN, log_msg.message_id, file_name) if Var.ON_HEROKU or Var.NO_PORT else \
stream_link = "https://{}/{}/{}".format(Var.FQDN, log_msg.id, file_name) if Var.ON_HEROKU or Var.NO_PORT else \
"http://{}:{}/{}/{}".format(Var.FQDN,
Var.PORT,
log_msg.message_id,
log_msg.id,
file_name)
msg_text ="""
@@ -84,10 +85,10 @@ async def private_receive_handler(c: Client, m: Message):
<b>🚸 Nᴛᴇ : Tʜɪs ᴘᴇʀᴍᴀɴᴇɴᴛ Lɪɴᴋ, Nᴛ Exᴘɪʀᴇᴅ</b>\n
<i>© @AvishkarPatil </i>"""
await log_msg.reply_text(text=f"**RᴇQᴛᴇᴅ ʙʏ :** [{m.from_user.first_name}](tg://user?id={m.from_user.id})\n**Uᴇʀ ɪᴅ :** `{m.from_user.id}`\n**Dɴʟᴀᴅ ʟɪɴᴋ :** {stream_link}", disable_web_page_preview=True, parse_mode="Markdown", quote=True)
await log_msg.reply_text(text=f"**RᴇQᴛᴇᴅ ʙʏ :** [{m.from_user.first_name}](tg://user?id={m.from_user.id})\n**Uᴇʀ ɪᴅ :** `{m.from_user.id}`\n**Dɴʟᴀᴅ ʟɪɴᴋ :** {stream_link}", disable_web_page_preview=True, parse_mode=ParseMode.MARKDOWN, quote=True)
await m.reply_text(
text=msg_text.format(file_name, file_size, stream_link),
parse_mode="HTML",
parse_mode=ParseMode.HTML,
disable_web_page_preview=True,
reply_markup=InlineKeyboardMarkup([[InlineKeyboardButton("Dɴʟᴀᴅ ɴᴏᴡ 📥", url=stream_link)]]),
quote=True
@@ -95,39 +96,39 @@ async def private_receive_handler(c: Client, m: Message):
except FloodWait as e:
print(f"Sleeping for {str(e.x)}s")
await asyncio.sleep(e.x)
await c.send_message(chat_id=Var.BIN_CHANNEL, text=f"Gᴛ FʟᴅWᴀɪᴛ ᴏғ {str(e.x)}s from [{m.from_user.first_name}](tg://user?id={m.from_user.id})\n\n**𝚄𝚜𝚎𝚛 𝙸𝙳 :** `{str(m.from_user.id)}`", disable_web_page_preview=True, parse_mode="Markdown")
await c.send_message(chat_id=Var.BIN_CHANNEL, text=f"Gᴛ FʟᴅWᴀɪᴛ ᴏғ {str(e.x)}s from [{m.from_user.first_name}](tg://user?id={m.from_user.id})\n\n**𝚄𝚜𝚎𝚛 𝙸𝙳 :** `{str(m.from_user.id)}`", disable_web_page_preview=True, parse_mode=ParseMode.MARKDOWN)
@StreamBot.on_message(filters.channel & (filters.document | filters.video) & ~filters.edited, group=-1)
@StreamBot.on_message(filters.channel & (filters.document | filters.video), group=-1)
async def channel_receive_handler(bot, broadcast):
if int(broadcast.chat.id) in Var.BANNED_CHANNELS:
await bot.leave_chat(broadcast.chat.id)
return
try:
log_msg = await broadcast.forward(chat_id=Var.BIN_CHANNEL)
stream_link = "https://{}/{}".format(Var.FQDN, log_msg.message_id) if Var.ON_HEROKU or Var.NO_PORT else \
stream_link = "https://{}/{}".format(Var.FQDN, log_msg.id) if Var.ON_HEROKU or Var.NO_PORT else \
"http://{}:{}/{}".format(Var.FQDN,
Var.PORT,
log_msg.message_id)
log_msg.id)
await log_msg.reply_text(
text=f"**Cʜᴀɴɴᴇʟ Nᴀᴍᴇ:** `{broadcast.chat.title}`\n**Cʜᴀɴɴᴇʟ ID:** `{broadcast.chat.id}`\n**Rᴇǫᴇsᴛ ᴜʀʟ:** https://t.me/{(await bot.get_me()).username}?start=AvishkarPatil_{str(log_msg.message_id)}",
# text=f"**Cʜᴀɴɴᴇʟ Nᴀᴍᴇ:** `{broadcast.chat.title}`\n**Cʜᴀɴɴᴇʟ ID:** `{broadcast.chat.id}`\n**Rᴇǫᴇsᴛ ᴜʀʟ:** https://t.me/FxStreamBot?start=AvishkarPatil_{str(log_msg.message_id)}",
text=f"**Cʜᴀɴɴᴇʟ Nᴀᴍᴇ:** `{broadcast.chat.title}`\n**Cʜᴀɴɴᴇʟ ID:** `{broadcast.chat.id}`\n**Rᴇǫᴇsᴛ ᴜʀʟ:** https://t.me/{(await bot.get_me()).username}?start=AvishkarPatil_{str(log_msg.id)}",
# text=f"**Cʜᴀɴɴᴇʟ Nᴀᴍᴇ:** `{broadcast.chat.title}`\n**Cʜᴀɴɴᴇʟ ID:** `{broadcast.chat.id}`\n**Rᴇǫᴇsᴛ ᴜʀʟ:** https://t.me/FxStreamBot?start=AvishkarPatil_{str(log_msg.id)}",
quote=True,
parse_mode="Markdown"
parse_mode=ParseMode.MARKDOWN
)
await bot.edit_message_reply_markup(
chat_id=broadcast.chat.id,
message_id=broadcast.message_id,
message_id=broadcast.id,
reply_markup=InlineKeyboardMarkup(
[[InlineKeyboardButton("Dɴʟᴀᴅ ʟɪɴᴋ 📥", url=f"https://t.me/{(await bot.get_me()).username}?start=AvishkarPatil_{str(log_msg.message_id)}")]])
# [[InlineKeyboardButton("Dɴʟᴀᴅ ʟɪɴᴋ 📥", url=f"https://t.me/FxStreamBot?start=AvishkarPatil_{str(log_msg.message_id)}")]])
[[InlineKeyboardButton("Dɴʟᴀᴅ ʟɪɴᴋ 📥", url=f"https://t.me/{(await bot.get_me()).username}?start=AvishkarPatil_{str(log_msg.id)}")]])
# [[InlineKeyboardButton("Dɴʟᴀᴅ ʟɪɴᴋ 📥", url=f"https://t.me/FxStreamBot?start=AvishkarPatil_{str(log_msg.id)}")]])
)
except FloodWait as w:
print(f"Sleeping for {str(w.x)}s")
await asyncio.sleep(w.x)
await bot.send_message(chat_id=Var.BIN_CHANNEL,
text=f"Gᴛ FʟᴅWᴀɪᴛ ᴏғ {str(w.x)}s from {broadcast.chat.title}\n\n**Cʜᴀɴɴᴇʟ ID:** `{str(broadcast.chat.id)}`",
disable_web_page_preview=True, parse_mode="Markdown")
disable_web_page_preview=True, parse_mode=ParseMode.MARKDOWN)
except Exception as e:
await bot.send_message(chat_id=Var.BIN_CHANNEL, text=f"**#ᴇʀʀʀ_ᴛʀᴀᴇʙᴀᴋ:** `{e}`", disable_web_page_preview=True, parse_mode="Markdown")
await bot.send_message(chat_id=Var.BIN_CHANNEL, text=f"**#ᴇʀʀʀ_ᴛʀᴀᴇʙᴀᴋ:** `{e}`", disable_web_page_preview=True, parse_mode=ParseMode.MARKDOWN)
print(f"Cᴀɴ'ᴛ Eᴅɪᴛ Bʀᴀᴅᴀsᴛ Mᴇssᴀɢᴇ!\nEʀʀʀ: {e}")

View File

@@ -1,4 +1,4 @@
pyrogram<=1.4.16
pyrogram>=2.0.0,<=2.0.26
tgcrypto<=1.2.3
aiohttp<=3.8.1
python-dotenv<=0.20.0