| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- from wbb import app, arq, SUDOERS, IMGBB_API_KEY, MESSAGE_DUMP_CHAT
- from wbb.utils.filter_groups import nsfw_detect_group
- from pyrogram import filters
- from random import randint
- import aiohttp
- import aiofiles
- import os
- @app.on_message(filters.document | filters.photo & ~filters.private, group=nsfw_detect_group)
- async def detect_nsfw(_, message):
- if message.from_user.id in SUDOERS:
- return
- if message.document:
- if int(message.document.file_size) > 3145728:
- return
- mime_type = message.document.mime_type
- if mime_type != "image/png" and mime_type != "image/jpeg":
- return
- image = await message.download(f"{randint(6666, 9999)}.jpg")
- async with aiofiles.open(image, mode='rb') as f:
- payload = {
- "key": IMGBB_API_KEY,
- "image": await f.read(),
- "expiration": "60"
- }
- async with aiohttp.ClientSession() as session:
- async with session.post("https://api.imgbb.com/1/upload", data=payload) as resp:
- data = await resp.json()
- url = data['data']['url']
- os.remove(image)
- results = await arq.nsfw_scan(url)
- hentai = results.data.hentai
- sexy = results.data.sexy
- porn = results.data.porn
- neutral = results.data.neutral
- if hentai < 80 and porn < 70 and sexy < 80:
- return
- if neutral > 30:
- return
- user_mention = message.from_user.mention
- user_id = message.from_user.id
- m = await message.forward(MESSAGE_DUMP_CHAT)
- try:
- await message.delete()
- except Exception:
- pass
- await message.reply_text(f"""
- **NSFW [Image]({m.link}) Detected & Deleted Successfully!
- ————————————————————————**
- **User:** {user_mention} [`{user_id}`]
- **Safe:** `{neutral}` %
- **Porn:** `{porn}` %
- **Adult:** `{sexy}` %
- **Hentai:** `{hentai}` %
- """)
|