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