azils3/bash
0
1# Ultroid - UserBot2# Copyright (C) 2021-2025 TeamUltroid3#4# This file is a part of < https://github.com/TeamUltroid/Ultroid/ >5# PLease read the GNU Affero General Public License in6# <https://www.github.com/TeamUltroid/Ultroid/blob/main/LICENSE/>.7"""8✘ Commands Available -9 10•`{i}addnsfw <ban/mute/kick>`11 If someone sends 18+ content it will be deleted and action will be taken.12 13•`{i}remnsfw`14 Remove Chat from nsfw filtering.15"""16 17import os18 19from . import LOGS20 21try:22 from ProfanityDetector import detector23except ImportError:24 detector = None25 LOGS.error("nsfwfilter: 'Profanitydetector' not installed!")26from pyUltroid.dB.nsfw_db import is_nsfw, nsfw_chat, rem_nsfw27 28from . import HNDLR, async_searcher, eor, events, udB, ultroid_bot, ultroid_cmd29 30 31@ultroid_cmd(pattern="addnsfw( (.*)|$)", admins_only=True)32async def addnsfw(e):33 if not udB.get_key("DEEP_API"):34 return await eor(35 e, f"Get Api from deepai.org and Add It `{HNDLR}setdb DEEP_API your-api`"36 )37 action = e.pattern_match.group(1).strip()38 if not action or ("ban" or "kick" or "mute") not in action:39 action = "mute"40 nsfw_chat(e.chat_id, action)41 ultroid_bot.add_handler(nsfw_check, events.NewMessage(incoming=True))42 await e.eor("Added This Chat To Nsfw Filter")43 44 45@ultroid_cmd(pattern="remnsfw", admins_only=True)46async def remnsfw(e):47 rem_nsfw(e.chat_id)48 await e.eor("Removed This Chat from Nsfw Filter.")49 50 51NWARN = {}52 53 54async def nsfw_check(e):55 chat = e.chat_id56 action = is_nsfw(chat)57 if action and udB.get_key("DEEP_API") and e.media:58 pic, name, nsfw = "", "", 059 try:60 pic = await e.download_media(thumb=-1)61 except BaseException:62 pass63 if e.file:64 name = e.file.name65 if detector and name:66 x, y = detector(name)67 if y:68 nsfw += 169 if pic and not nsfw:70 r = await async_searcher(71 "https://api.deepai.org/api/nsfw-detector",72 data={73 "image": open(pic, "rb"),74 },75 post=True,76 re_json=True,77 headers={"api-key": udB.get_key("DEEP_API")},78 )79 try:80 k = float((r["output"]["nsfw_score"]))81 except KeyError as er:82 LOGS.exception(er)83 LOGS.info(r)84 return85 score = int(k * 100)86 if score > 45:87 nsfw += 188 os.remove(pic)89 if nsfw:90 await e.delete()91 if NWARN.get(e.sender_id):92 count = NWARN[e.sender_id] + 193 if count < 3:94 NWARN.update({e.sender_id: count})95 return await ultroid_bot.send_message(96 chat,97 f"**NSFW Warn {count}/3** To [{e.sender.first_name}](tg://user?id={e.sender_id})\nNSFW prohibited! Repeated violation would lead to {action}",98 )99 if "mute" in action:100 try:101 await ultroid_bot.edit_permissions(102 chat, e.sender_id, until_date=None, send_messages=False103 )104 await ultroid_bot.send_message(105 chat,106 f"NSFW Warn 3/3 to [{e.sender.first_name}](tg://user?id={e.sender_id})\n\n**Action Taken** : {action}",107 )108 except BaseException:109 await ultroid_bot.send_message(110 chat,111 f"NSFW Warn 3/3 to [{e.sender.first_name}](tg://user?id={e.sender_id})\n\nUnable to {action}.",112 )113 elif "ban" in action:114 try:115 await ultroid_bot.edit_permissions(116 chat, e.sender_id, view_messages=False117 )118 await ultroid_bot.send_message(119 chat,120 f"NSFW Warn 3/3 to [{e.sender.first_name}](tg://user?id={e.sender_id})\n\n**Action Taken** : {action}",121 )122 except BaseException:123 await ultroid_bot.send_message(124 chat,125 f"NSFW Warn 3/3 to [{e.sender.first_name}](tg://user?id={e.sender_id})\n\nUnable to {action}.",126 )127 elif "kick" in action:128 try:129 await ultroid_bot.kick_participant(chat, e.sender_id)130 await ultroid_bot.send_message(131 chat,132 f"NSFW Warn 3/3 to [{e.sender.first_name}](tg://user?id={e.sender_id})\n\n**Action Taken** : {action}",133 )134 except BaseException:135 await ultroid_bot.send_message(136 chat,137 f"NSFW Warn 3/3 to [{e.sender.first_name}](tg://user?id={e.sender_id})\n\nUnable to {action}.",138 )139 NWARN.pop(e.sender_id)140 else:141 NWARN.update({e.sender_id: 1})142 return await ultroid_bot.send_message(143 chat,144 f"**NSFW Warn 1/3** To [{e.sender.first_name}](tg://user?id={e.sender_id})\nNSFW prohibited! Repeated violation would lead to {action}",145 )146 147 148if udB.get_key("NSFW"):149 ultroid_bot.add_handler(nsfw_check, events.NewMessage(incoming=True))150 