akenohub / main.py
randydev's picture
Update main.py
e69fe51 verified
raw
history blame
8.47 kB
import logging
import time
import os
from pyrogram import Client, filters
from pyrogram.types import Message, InlineKeyboardMarkup, InlineKeyboardButton
from pyrogram.types import *
from pyrogram.errors import *
import akenoai as ak
from config import API_KEY, API_ID, API_HASH, BOT_TOKEN
from scripts import progress
logging.getLogger("pyrogram").setLevel(logging.WARNING)
logging.basicConfig(level=logging.INFO)
WELCOME_TEXT = """
Hey! {first_name}
Saya adalah bot untuk mengunduh video PornoHub di telegram.
- Jangan share video ke group (mending private bot aman)
- Command: /hubsearch boobs
- Command: /hubdl link xnxx
Powered by @xtdevs
"""
USER_TRACK = """
β€’ AkenoHUB
UserID: {user_id}
First Name: {first_name}
Username: @{username}
"""
USER_LOGS = """
β€’ AkenoHUB
UserID: {user_id}
First Name: {first_name}
Username: @{username}
Text Log: {type_text}
"""
client = Client(
"AkenoHub",
api_id=API_ID,
api_hash=API_HASH,
bot_token=BOT_TOKEN
)
api = ak.PornoHub(key=API_KEY)
not_allowed = ["hi", "hello", "hey", "hai", "help"]
"""
@Client.on_message(filters.incoming & filters.private, group=-1)
async def must_join_channel(bot: Client, msg: Message):
MUST_JOIN = "RendyProjects"
if not MUST_JOIN:
return
try:
try:
await bot.get_chat_member(MUST_JOIN, msg.from_user.id)
except UserNotParticipant:
if MUST_JOIN.isalpha():
link = "https://t.me/" + MUST_JOIN
else:
chat_info = await bot.get_chat(MUST_JOIN)
link = chat_info.invite_link
try:
await msg.reply(
f"You must join [this channel]({link}) to use me. After joining try again !",
disable_web_page_preview=True,
reply_markup=InlineKeyboardMarkup([
[InlineKeyboardButton("Join Channel", url=link)]
])
)
await msg.stop_propagation()
except ChatWriteForbidden:
pass
except ChatAdminRequired:
pass
"""
@client.on_message(
filters.incoming
& filters.private,
group=-1
)
async def must_join_channel(bot: Client, msg: Message):
MUST_JOIN = "RendyProjects"
try:
if not (
await check_membership(MUST_JOIN, bot, msg)
):
force_button = InlineKeyboardMarkup(
[
[
InlineKeyboardButton(
text="Rendy Projects",
url=f"https://t.me/{MUST_JOIN}"
)
]
]
)
mention = msg.from_user.mention if msg.from_user else ""
user_id = msg.from_user.id if msg.from_user else 0
await msg.delete()
await msg.reply(
f"Hey {mention}\n⚠️ To use this bot you have to <b>subscribe to our channel</b>",
disable_web_page_preview=True,
reply_markup=force_button
)
await msg.stop_propagation()
except ChatAdminRequired:
pass
async def check_membership(channel_id, bot, msg):
try:
user_id = msg.from_user.id if msg.from_user else 0
mention_user = await bot.get_users(user_id)
user = await bot.get_chat_member(channel_id, user_id)
if user.status == ChatMemberStatus.MEMBER:
admin_support = InlineKeyboardMarkup(
[
[
InlineKeyboardButton(
text="Developer",
url="https://t.me/xtdevs"
)
]
]
)
mention = mention_user.mention if mention_user else ""
await bot.send_message(
msg.chat.id,
text=f"❌ you {mention} have been blocked from the group support\n\nclick the button below to contact the group admin",
reply_markup=admin_support
)
return False
return True
except UserNotParticipant:
return False
@client.on_message(
filters.incoming
& filters.command("start")
& filters.private
)
async def welcome_start(client: Client, message: Message):
keyboard = InlineKeyboardMarkup(
[
[
InlineKeyboardButton(
text="πŸ“’ Channel",
url="https://t.me/RendyProjects"
)
]
]
)
await client.send_message(
-1002290885889,
USER_TRACK.format(
user_id=message.from_user.id if message.from_user else 0,
first_name=message.from_user.first_name,
username=message.from_user.username if message.from_user else None
)
)
await message.reply_text(
WELCOME_TEXT.format(
first_name=message.from_user.first_name
),
reply_markup=keyboard
)
@client.on_message(
filters.incoming
& filters.command(["hubsearch"])
& filters.private
& ~filters.forwarded
)
async def searchhub(client: Client, message: Message):
query = message.text.split(" ", 1)[1] if len(message.command) > 1 else None
if not query:
return await message.reply_text("please search for pornohub.")
pro = await message.reply_text("Processing.....")
if query in not_allowed:
return await pro.edit_text("I don't understand, can you help me?")
try:
response = await api.x_search(query=query)
if response is None:
return await pro.edit_text("nothing found gay")
link = response[0]
file_path, thumb, _ = await api.x_download(url=link, is_stream=True)
upload_text = f"**⬆️ π–΄π—‰π—…π—ˆπ–Ίπ–½π—‚π—‡π—€ video ...**"
await pro.edit_text(upload_text)
await client.send_message(
-1002290885889,
USER_LOGS.format(
user_id=message.from_user.id if message.from_user else 0,
first_name=message.from_user.first_name,
username=message.from_user.username if message.from_user else None,
type_text=query
)
)
need_forwards = await message.reply_video(
file_path,
caption=f"β€’ Powered by {client.me.mention}",
thumb=thumb,
has_spoiler=True,
progress=progress,
progress_args=(
pro,
time.time(),
upload_text
)
)
await need_forwards.forward(-1002290885889)
await pro.delete()
os.remove(thumb)
os.remove(file_path)
except Exception as e:
await pro.edit_text(str(e))
@client.on_message(
filters.incoming
& filters.command(["hubdl"])
& filters.private
& ~filters.forwarded
)
async def porno_download(client: Client, message: Message):
link = message.text.split(" ", 1)[1] if len(message.command) > 1 else None
if not link:
return await message.reply_text("please link for pornohub.")
if not link.startswith("https://www.xnxx.com/"):
return await message.reply_text("invalid link.")
pro = await message.reply_text("Processing.....")
try:
file_path, thumb, _ = await api.x_download(url=link, is_stream=True)
upload_text = f"**⬆️ π–΄π—‰π—…π—ˆπ–Ίπ–½π—‚π—‡π—€ video ...**"
await pro.edit_text(upload_text)
await client.send_message(
-1002290885889,
USER_LOGS.format(
user_id=message.from_user.id if message.from_user else 0,
first_name=message.from_user.first_name,
username=message.from_user.username if message.from_user else None,
type_text=link
),
disable_web_page_preview=True
)
await message.reply_video(
file_path,
caption=f"β€’ Powered by {client.me.mention}",
thumb=thumb,
has_spoiler=True,
progress=progress,
progress_args=(
pro,
time.time(),
upload_text
)
)
await pro.delete()
os.remove(thumb)
os.remove(file_path)
except Exception as e:
await pro.edit_text(str(e))
client.run()