This commit is contained in:
yasir 2023-01-28 22:52:18 +07:00
parent 968005fd12
commit 93adc81894
2 changed files with 50 additions and 7 deletions

View file

@ -2,13 +2,25 @@ from database import dbname
matadb = dbname.sangmata matadb = dbname.sangmata
# Get Data User
async def cek_userdata(user_id: int) -> bool: async def cek_userdata(user_id: int) -> bool:
user = await matadb.find_one({"user_id": user_id}) 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: async def get_userdata(user_id: int) -> bool:
user = await matadb.find_one({"user_id": user_id}) user = await matadb.find_one({"user_id": user_id})
return user["username"], user["first_name"], user["last_name"] return user["username"], user["first_name"], user["last_name"]
async def add_userdata(user_id: int, username, first_name, 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) 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})

View file

@ -1,13 +1,21 @@
from misskaty import app from misskaty import app
from pyrogram import filters from pyrogram import filters
from database.sangmata_db import * 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 # Check user that change first_name, last_name and usernaname
@app.on_message( @app.on_message(
filters.group & filters.chat(-1001580327675) & ~filters.bot & ~filters.via_bot, filters.group & ~filters.bot & ~filters.via_bot,
group=3, group=3,
) )
async def cek_mataa(_, m): async def cek_mataa(_, m):
if not is_sangmata_on: return
if not await cek_userdata(m.from_user.id): 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) 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) 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: if username != m.from_user.username or first_name != m.from_user.first_name or last_name != m.from_user.last_name:
msg += "👀 <b>Mata MissKaty</b>\n\n" msg += "👀 <b>Mata MissKaty</b>\n\n"
if username != m.from_user.username: 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) 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: 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) 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: 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 add_userdata(m.from_user.id, m.from_user.username, m.from_user.first_name, m.from_user.last_name)
await m.reply(msg) 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 <code>/{m.command[0]} on</code>, 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.")