Team Ai
Apppublic

azils3/bash

sourceHugging Faceupdated 2y agoView on Hugging Face
0likes
nsfwfilter.py150 linesDownload Raw Back to plugins
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