|
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() |