nsfw.py 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. from wbb import app, arq, SUDOERS, IMGBB_API_KEY
  2. from wbb.utils.filter_groups import nsfw_detect_group
  3. from pyrogram import filters
  4. from random import randint
  5. import aiohttp
  6. import aiofiles
  7. import os
  8. @app.on_message(filters.document | filters.photo & ~filters.private, group=nsfw_detect_group)
  9. async def detect_nsfw(_, message):
  10. if message.document:
  11. if int(message.document.file_size) > 3145728:
  12. return
  13. mime_type = message.document.mime_type
  14. if mime_type != "image/png" and mime_type != "image/jpeg":
  15. return
  16. image = await message.download(f"{randint(6666, 9999)}.jpg")
  17. async with aiofiles.open(image, mode='rb') as f:
  18. payload = {
  19. "key": IMGBB_API_KEY,
  20. "image": await f.read(),
  21. "expiration": "60"
  22. }
  23. async with aiohttp.ClientSession() as session:
  24. async with session.post("https://api.imgbb.com/1/upload", data=payload) as resp:
  25. data = await resp.json()
  26. url = data['data']['url']
  27. os.remove(image)
  28. results = await arq.nsfw_scan(url)
  29. hentai = results.data.hentai
  30. sexy = results.data.sexy
  31. porn = results.data.porn
  32. neutral = results.data.neutral
  33. if hentai < 80 and porn < 70 and sexy < 80:
  34. return
  35. if neutral > 30:
  36. return
  37. await message.delete()
  38. user_mention = message.from_user.mention
  39. user_id = message.from_user.id
  40. await message.reply_text(f"""
  41. **NSFW Image Detected & Deleted Successfully!
  42. ————————————————————————**
  43. **User:** {user_mention} [`{user_id}`]
  44. **Safe:** `{neutral}`
  45. **Porn:** `{porn}`
  46. **Adult:** `{sexy}`
  47. **Hentai:** `{hentai}`
  48. """)