Exemple #1
0
async def reject(event):
    # print('Trying OmO')
    replied = await event.get_reply_message()
    me = await System.get_me()
    if replied.from_id.user_id == me.id:
        # print('Matching UwU')
        match = re.match(r"\$(SCAN|AUTO(SCAN)?)", replied.text)
        if match:
            # print('Matched OmU')
            id = replied.id
            await System.edit_message(Sibyl_logs, id, reject_string)
    orig = re.search(r"t.me/(\w+)/(\d+)", replied.text)
    _orig = re.search(r"t.me/c/(\w+)/(\d+)", replied.text)
    flags, reason = seprate_flags(event.text)
    if _orig and "r" in flags.keys():
        await System.send_message(
            int(_orig.group(1)),
            f'Crime coefficient less than 100\nUser is not a target for enforcement action\nTrigger of dominator will be locked.\nReason: **{reason.split(" ", 1)[1].strip()}**',
            reply_to=int(_orig.group(2)),
        )
        return
    if orig and "r" in flags.keys():
        await System.send_message(
            orig.group(1),
            f'Crime coefficient less than 100\nUser is not a target for enforcement action\nTrigger of dominator will be locked.\nReason: **{reason.split(" ", 1)[1].strip()}**',
            reply_to=int(orig.group(2)),
        )
async def approve(event):
        replied = await event.get_reply_message()
        match = re.match(r'\$SCAN', replied.text)
        auto_match = re.search(r'\$AUTO(SCAN)?', replied.text)
        me = await System.get_me()
        if auto_match:
            if replied.sender.id == me.id:
                id = re.search(
                    r"\*\*Scanned user:\*\* (\[\w+\]\(tg://user\?id=(\d+)\)|(\d+))",
                    replied.text).group(2)
                try:
                     bot = (await System.get_entity(id)).bot
                except:
                     bot = False
                reason = re.search('\*\*Reason:\*\* (.*)', replied.text).group(1)
                await System.gban(enforcer=me.id, target=id, reason = reason, msg_id=replied.id, auto=True, bot=bot)
                return "OwO"
        if match:
            reply = replied.sender.id
            sender = await event.get_sender()
            flags, reason = seprate_flags(event.text)
            # checks to not gban the Gbanner and find who is who
            if reply == me.id:
                list = re.findall(r'tg://user\?id=(\d+)', replied.text)
                if 'or' in flags.keys():
                    await replied.edit(re.sub('(\*\*)?(Scan)? ?Reason:(\*\*)? (`([^`]*)`|.*)', f'**Scan Reason:** {reason.split(" ", 1)[1].strip()}', replied.text))
                    reason = reason.split(" ", 1)[1].strip()
                else:
                    reason = re.search(r"(\*\*)?(Scan)? ?Reason:(\*\*)? (`([^`]*)`|.*)", replied.text)
                    reason = reason.group(5) if reason.group(5) else reason.group(4)
                if len(list) > 1:
                    id1 = list[0]
                    id2 = list[1]
                else:
                    id1 = list[0]
                    id2 = re.findall(r'(\d+)', replied.text)[1]
                if id1 in ENFORCERS or SIBYL:
                    enforcer = id1
                    scam = id2
                else:
                    enforcer = id2
                    scam = id1
                try:
                   bot = (await System.get_entity(scam)).bot
                except:
                   bot = False
                await System.gban(enforcer, scam, reason, replied.id, sender, bot=bot)
                orig = re.search(r"t.me/(\w+)/(\d+)", replied.text)
                if orig:
                  await System.send_message(orig.group(1), 'User is a target for enforcement action.\nEnforcement Mode: Lethal Eliminator', reply_to = int(orig.group(2)))
Exemple #3
0
async def scan(event):
    replied = await event.get_reply_message()
    flags, reason = seprate_flags(event.text)
    if len(reason.split(" ", 1)) == 1:
        return
    split = reason.strip().split(" ", 1)
    reason = reason.strip().split(" ", 1)[1].strip()
    if "u" in flags.keys():
        url = reason
        data = get_data_from_url(url)
        if not data:
            await event.reply("Invalid url")
            return
        try:
            message = await System.get_messages(
                int(data[0]) if data[0].isnumeric() else data[0], ids=int(data[1])
            )
        except:
            await event.reply("Failed to get data from url")
            return
        executor = await event.get_sender()
        executor = f"[{executor.first_name}](tg://user?id={executor.id})"
        if not message:
            await event.reply("Failed to get data from url")
            return
        if message.from_id.user_id in MANAGERS:
            return
        msg = await System.send_message(
            Sibyl_logs,
            scan_request_string.format(
                manager=executor,
                spammer=message.from_id.user_id,
                chat=f"https://t.me/{data[0]}/{data[1]}",
                message=message.text,
                reason=reason.split(" ", 1)[1].strip(),
            ),
        )
        return
    if not event.is_reply:
        return
    if "o" in flags.keys():
        if replied.fwd_from:
            reply = replied.fwd_from
            target = reply.from_id.user_id
            if reply.from_id.user_id in MANAGERS or reply.from_id.user_id in CARDINAL:
                return
            if not reply.from_id.user_id:
                await event.reply("Cannot get user ID.")
                return
            if reply.from_name:
                sender = f"[{reply.from_name}](tg://user?id={reply.from_id.user_id})"
            else:
                sender = f"[{reply.from_id.user_id}](tg://user?id={reply.from_id.user_id})"
    else:
        if replied.sender.id in MANAGERS:
            return
        sender = f"[{replied.sender.first_name}](tg://user?id={replied.sender.id})"
        target = replied.sender.id
    executer = await event.get_sender()
    req_proof = req_user = False
    if "f" in flags.keys() and executer.id in DEVELOPERS:
        approve = True
    else:
        approve = False
    if replied.media:
        await replied.forward_to(Sibyl_logs)
    executor = f"[{executer.first_name}](tg://user?id={executer.id})"
    chat = (
        f"t.me/{event.chat.username}/{event.message.id}"
        if event.chat.username
        else f"t.me/c/{event.chat.id}/{event.message.id}"
    )
    await event.reply("Connecting to Cardinal for a cymatic scan.")
    if req_proof and req_user:
        await replied.forward_to(Sibyl_logs)
        await System.gban(
            executer.id, req_user, reason, msg.id, executer, message=replied.text
        )
    if not approve:
        msg = await System.send_message(
            Sibyl_logs,
            scan_request_string.format(
                manager=executor,
                spammer=sender,
                chat=chat,
                message=replied.text,
                reason=reason,
            ),
        )
        return
    msg = await System.send_message(
        Sibyl_logs,
        forced_scan_string.format(
            dev=executor, spammer=sender, chat=chat, message=replied.text, reason=reason
        ),
    )
    await System.gban(
        executer.id, target, reason, msg.id, executer, message=replied.text
    )
async def stfu(event, flags):
    replied = await event.get_reply_message()
    if flags.r:
        reason = " ".join(flags.r)
    else:
        split = event.text.split(' ', 1)
        if len(split) == 1:
            return
        reason = seprate_flags(split[1]).strip()
        if not reason:
            return
    if flags.u:
        url = flags.u
        data = get_data_from_url(url)
        if not data:
            await event.reply("Invalid url")
            return
        try:
            message = await System.get_messages(
                int(data[0]) if data[0].isnumeric() else data[0],
                ids=int(data[1]))
        except:
            await event.reply("Failed to get data from url")
            return
        executor = await event.get_sender()
        executor = f"[{executor.first_name}](tg://user?id={executor.id})"
        if not message:
            await event.reply("Failed to get data from url")
            return
        if message.from_id.user_id in ENFORCERS:
            return
        msg = await System.send_message(
            Sibyl_logs,
            scan_request_string.format(
                enforcer=executor,
                spammer=message.from_id.user_id,
                chat=f"https://t.me/{data[0]}/{data[1]}",
                message=message.text,
                reason=reason,
            ),
        )
        return
    if not event.is_reply:
        return
    if flags.o:
        if replied.fwd_from:
            reply = replied.fwd_from
            target = reply.from_id.user_id
            if reply.from_id.user_id in ENFORCERS or reply.from_id.user_id in SIBYL:
                return
            if not reply.from_id.user_id:
                await event.reply("Cannot get user ID.")
                return
            if reply.from_name:
                sender = f"[{reply.from_name}](tg://user?id={reply.from_id.user_id})"
            else:
                sender = (
                    f"[{reply.from_id.user_id}](tg://user?id={reply.from_id.user_id})"
                )
    else:
        if replied.sender.id in ENFORCERS:
            return
        sender = f"[{replied.sender.first_name}](tg://user?id={replied.sender.id})"
        target = replied.sender.id
    executer = await event.get_sender()
    req_proof = req_user = False
    if flags.f and executer.id in INSPECTORS:
        approve = True
    else:
        approve = False
    if replied.media:
        await replied.forward_to(Sibyl_logs)
    executor = f"[{executer.first_name}](tg://user?id={executer.id})"
    chat = (f"t.me/{event.chat.username}/{event.message.id}"
            if event.chat.username else
            f"t.me/c/{event.chat.id}/{event.message.id}")
    await event.reply("Ok!")
    if req_proof and req_user:
        await replied.forward_to(Sibyl_logs)
        await System.gban(executer.id,
                          req_user,
                          reason,
                          msg.id,
                          executer,
                          message=replied.text)
    if not approve:
        msg = await System.send_message(
            Sibyl_logs,
            scan_request_string.format(
                enforcer=executor,
                spammer=sender,
                chat=chat,
                message=replied.text,
                reason=reason,
            ),
        )
        return
    msg = await System.send_message(
        Sibyl_logs,
        forced_scan_string.format(ins=executor,
                                  spammer=sender,
                                  chat=chat,
                                  message=replied.text,
                                  reason=reason),
    )
    await System.gban(executer.id,
                      target,
                      reason,
                      msg.id,
                      executer,
                      message=replied.text)
Exemple #5
0
async def scan(event):
    replied = await event.get_reply_message()
    flags, reason = seprate_flags(event.text)
    if len(reason.split(" ", 1)) == 1:
        return
    split = reason.strip().split(" ", 1)
    reason = reason.strip().split(" ", 1)[1]
    if 'u' in flags.keys():
        url = reason
        data = get_data_from_url(url.strip())
        if not data:
            await event.reply('Invalid url')
            return
        try:
            message = await System.get_messages(
                int(data[0]) if data[0].isnumeric() else data[0],
                ids=int(data[1]))
        except:
            await event.reply('Failed to get data from url')
            return
        executor = await event.get_sender()
        executor = f'[{executor.first_name}](tg://user?id={executor.id})'
        if not message:
            await event.reply('Failed to get data from url')
            return
        if message.from_id in ENFORCERS:
            return
        msg = await System.send_message(
            Sibyl_logs,
            scan_request_string.format(
                enforcer=executor,
                spammer=message.from_id,
                chat=f"https://t.me/{data[0]}/{data[1]}",
                message=message.text,
                reason=split[1].strip().split(' ')[1]))
        return
    if not event.is_reply:
        return
    if 'o' in flags.keys():
        if replied.fwd_from:
            reply = replied.fwd_from
            target = reply.from_id
            if reply.from_id in ENFORCERS or reply.from_id in SIBYL:
                return
            if not reply.from_id:
                await event.reply("Cannot get user ID.")
                return
            if reply.from_name:
                sender = f"[{reply.from_name}](tg://user?id={reply.from_id})"
            else:
                sender = f"[{reply.from_id}](tg://user?id={reply.from_id})"
    else:
        if replied.sender.id in ENFORCERS:
            return
        sender = f"[{replied.sender.first_name}](tg://user?id={replied.sender.id})"
        target = replied.sender.id
    executer = await event.get_sender()
    req_proof = req_user = False
    if 'f' in flags.keys() and executer.id in INSPECTORS:
        approve = True
    else:
        approve = False
    if replied.media:
        await replied.forward_to(Sibyl_logs)
    executor = f'[{executer.first_name}](tg://user?id={executer.id})'
    chat = f"t.me/{event.chat.username}/{event.message.id}" if event.chat.username else f"t.me/c/{event.chat.id}/{event.message.id}"
    await event.reply("Connecting to Sibyl for a cymatic scan.")
    if req_proof and req_user:
        await replied.forward_to(Sibyl_logs)
        await System.gban(executer.id, req_user, reason, msg.id, executer)
    if not approve:
        msg = await System.send_message(
            Sibyl_logs,
            scan_request_string.format(enforcer=executor,
                                       spammer=sender,
                                       chat=chat,
                                       message=replied.text,
                                       reason=reason))
        return
    msg = await System.send_message(
        Sibyl_logs,
        forced_scan_string.format(ins=executor,
                                  spammer=sender,
                                  chat=chat,
                                  message=replied.text,
                                  reason=reason))
    await System.gban(executer.id, target, reason, msg.id, executer)
async def approve(event):
    replied = await event.get_reply_message()
    match = re.match(r"\$SCAN", replied.text)
    auto_match = re.search(r"\$AUTO(SCAN)?", replied.text)
    me = await System.get_me()
    if auto_match:
        if replied.sender.id == me.id:
            id = re.search(
                r"\*\*Scanned user:\*\* (\[\w+\]\(tg://user\?id=(\d+)\)|(\d+))",
                replied.text,
            ).group(2)
            try:
                message = re.search(
                    "(\*\*)?Message:(\*\*)? (.*)", replied.text, re.DOTALL
                ).group(3)
            except:
                message = None
            try:
                bot = (await System.get_entity(id)).bot
            except:
                bot = False
            reason = re.search("\*\*Reason:\*\* (.*)", replied.text).group(1)
            await System.gban(
                enforcer=me.id,
                target=id,
                reason=reason,
                msg_id=replied.id,
                auto=True,
                bot=bot,
                message=message,
            )
            return "OwO"
    if match:
        reply = replied.sender.id
        sender = await event.get_sender()
        flags, reason = seprate_flags(event.text)
        # checks to not gban the Gbanner and find who is who
        if reply == me.id:
            list = re.findall(r"tg://user\?id=(\d+)", replied.text)
            if "or" in flags.keys():
                await replied.edit(
                    re.sub(
                        "(\*\*)?(Scan)? ?Reason:(\*\*)? (`([^`]*)`|.*)",
                        f'**Scan Reason:** {reason.split(" ", 1)[1].strip()}',
                        replied.text,
                    )
                )
                reason = reason.split(" ", 1)[1].strip()
            else:
                reason = re.search(
                    r"(\*\*)?(Scan)? ?Reason:(\*\*)? (`([^`]*)`|.*)", replied.text
                )
                reason = reason.group(5) if reason.group(5) else reason.group(4)
            if len(list) > 1:
                id1 = list[0]
                id2 = list[1]
            else:
                id1 = list[0]
                id2 = re.findall(r"(\d+)", replied.text)[1]
            if id1 in ENFORCERS or SIBYL:
                enforcer = id1
                scam = id2
            else:
                enforcer = id2
                scam = id1
            try:
                bot = (await System.get_entity(scam)).bot
            except:
                bot = False
            try:
                message = re.search(
                    "(\*\*)?Target Message:(\*\*)? (.*)", replied.text, re.DOTALL
                ).group(3)
            except:
                message = None
            await System.gban(
                enforcer, scam, reason, replied.id, sender, bot=bot, message=message
            )
            orig = re.search(r"t.me/(\w+)/(\d+)", replied.text)
            if orig:
                await System.send_message(
                    orig.group(1),
                    "**Arcane detected maliciousness on scanned user.**\n\n• Action: **Enforcing GBan**",
                    reply_to=int(orig.group(2)),
                )