From 93adc81894d8f722627acca4eb82accd3a2fb080 Mon Sep 17 00:00:00 2001 From: yasir Date: Sat, 28 Jan 2023 22:52:18 +0700 Subject: [PATCH] Fix --- database/sangmata_db.py | 16 ++++++++++++-- misskaty/plugins/sangmata.py | 41 +++++++++++++++++++++++++++++++----- 2 files changed, 50 insertions(+), 7 deletions(-) diff --git a/database/sangmata_db.py b/database/sangmata_db.py index 9cfbff99..5b510538 100644 --- a/database/sangmata_db.py +++ b/database/sangmata_db.py @@ -2,13 +2,25 @@ from database import dbname matadb = dbname.sangmata +# Get Data User async def cek_userdata(user_id: int) -> bool: user = await matadb.find_one({"user_id": user_id}) - return True if user else False + return bool(user) async def get_userdata(user_id: int) -> bool: user = await matadb.find_one({"user_id": user_id}) return user["username"], user["first_name"], user["last_name"] async def add_userdata(user_id: int, username, first_name, last_name): - await matadb.update_one({"user_id": user_id}, {"$set": {"username": username, "first_name": first_name, "last_name": last_name}}, upsert=True) \ No newline at end of file + await matadb.update_one({"user_id": user_id}, {"$set": {"username": username, "first_name": first_name, "last_name": last_name}}, upsert=True) + +# Enable Mata MissKaty in Selected Chat +async def is_sangmata_on(chat_id: int) -> bool: + chat = await matadb.find_one({"chat_id_toggle": chat_id}) + return bool(chat) + +async def sangmata_on(chat_id: int) -> bool: + await matadb.update_one({"chat_id_toggle": chat_id}) + +async def sangmata_off(chat_id: int): + await matadb.delete_one({"chat_id_toggle": chat_id}) \ No newline at end of file diff --git a/misskaty/plugins/sangmata.py b/misskaty/plugins/sangmata.py index cb77e972..0f967485 100644 --- a/misskaty/plugins/sangmata.py +++ b/misskaty/plugins/sangmata.py @@ -1,13 +1,21 @@ from misskaty import app from pyrogram import filters from database.sangmata_db import * +from misskaty.vars import COMMAND_HANDLER + +__MODULE__ = "SangMata" +__HELP__ = """" +This feature inspired from SangMata Bot. I'm created simple detection to check user data include username, first_name, and last_name. +/sangmata_set [on/off] - Enable/disable sangmata in groups. +""" # Check user that change first_name, last_name and usernaname @app.on_message( - filters.group & filters.chat(-1001580327675) & ~filters.bot & ~filters.via_bot, + filters.group & ~filters.bot & ~filters.via_bot, group=3, ) async def cek_mataa(_, m): + if not is_sangmata_on: return if not await cek_userdata(m.from_user.id): return await add_userdata(m.from_user.id, m.from_user.username, m.from_user.first_name, m.from_user.last_name) username, first_name, last_name = await get_userdata(m.from_user.id) @@ -15,12 +23,35 @@ async def cek_mataa(_, m): if username != m.from_user.username or first_name != m.from_user.first_name or last_name != m.from_user.last_name: msg += "👀 Mata MissKaty\n\n" if username != m.from_user.username: - msg += f"{m.from_user.mention} mengganti username dari {username} menjadi {m.from_user.username}.\n" + msg += f"{m.from_user.mention} changed username from @{username} to @{m.from_user.username}.\n" await add_userdata(m.from_user.id, m.from_user.username, m.from_user.first_name, m.from_user.last_name) if first_name != m.from_user.first_name: - msg += f"{m.from_user.mention} mengganti username dari {username} menjadi {m.from_user.username}.\n" + msg += f"{m.from_user.mention} changed first_name from {first_name} to {m.from_user.first_name}.\n" await add_userdata(m.from_user.id, m.from_user.username, m.from_user.first_name, m.from_user.last_name) if last_name != m.from_user.last_name: - msg += f"{m.from_user.mention} mengganti username dari {username} menjadi {m.from_user.username}." + msg += f"{m.from_user.mention} changed last_name from {last_name} to {m.from_user.last_name}." await add_userdata(m.from_user.id, m.from_user.username, m.from_user.first_name, m.from_user.last_name) - await m.reply(msg) \ No newline at end of file + await m.reply(msg, quote=True) + +@app.on_message( + filters.group & filters.command("sangmata_set", COMMAND_HANDLER) & ~filters.bot & ~filters.via_bot +) +async def set_mataa(_, m): + if len(m.command) == 1: + return m.reply(f"Use /{m.command[0]} on, to enable sangmata. If you want disable, you can use off parameter.") + if m.command[1] == "on": + cekset = await is_sangmata_on(m.chat.id) + if cekset: + await m.reply("SangMata already enabled in your groups.") + else: + await sangmata_on(m.chat.id) + await m.reply("Sangmata enabled in your groups.") + elif m.command[1] == "off": + cekset = await is_sangmata_on(m.chat.id) + if cekset: + await m.reply("SangMata already enabled in your groups.") + else: + await sangmata_off(m.chat.id) + await m.reply("Sangmata enabled in your groups.") + else: + await m.reply("Unknown parameter, use only on/off parameter.") \ No newline at end of file