2021-11-28 14:55:10 +00:00
|
|
|
import re
|
|
|
|
|
|
|
|
from pyrogram import Client, filters, ContinuePropagation
|
|
|
|
from pyrogram.types import Message
|
|
|
|
|
|
|
|
last_msg = {}
|
|
|
|
last_repeat_msg = {}
|
|
|
|
repeat_count = {}
|
|
|
|
|
|
|
|
|
2022-07-25 09:35:54 +00:00
|
|
|
@Client.on_message(filters.incoming & filters.group)
|
2021-11-28 14:55:10 +00:00
|
|
|
async def repeater_handler(client: Client, message: Message):
|
|
|
|
global last_msg, last_repeat_msg, repeat_count
|
|
|
|
|
|
|
|
group_id = message.chat.id
|
|
|
|
|
|
|
|
try:
|
|
|
|
last_msg[group_id]
|
|
|
|
except KeyError:
|
|
|
|
last_msg[group_id] = ""
|
|
|
|
try:
|
|
|
|
last_repeat_msg[group_id]
|
|
|
|
except KeyError:
|
|
|
|
last_repeat_msg[group_id] = ""
|
|
|
|
|
|
|
|
msg = t_msg = message.text
|
2021-11-29 05:11:21 +00:00
|
|
|
if not msg:
|
|
|
|
raise ContinuePropagation
|
2021-11-28 14:55:10 +00:00
|
|
|
if re.match(r"^/", msg) or re.match(r"^!", msg):
|
2021-11-29 05:11:21 +00:00
|
|
|
raise ContinuePropagation
|
2021-11-28 14:55:10 +00:00
|
|
|
|
|
|
|
if msg != last_msg[group_id] or msg == last_repeat_msg[group_id]:
|
|
|
|
last_msg[group_id] = msg
|
|
|
|
repeat_count[group_id] = 0
|
|
|
|
else:
|
|
|
|
repeat_count[group_id] += 1
|
|
|
|
last_repeat_msg[group_id] = ""
|
|
|
|
if repeat_count[group_id] >= 2:
|
|
|
|
await client.send_message(group_id, t_msg)
|
|
|
|
repeat_count[group_id] = 0
|
|
|
|
last_msg[group_id] = ""
|
|
|
|
last_repeat_msg[group_id] = msg
|
2021-11-29 05:11:21 +00:00
|
|
|
raise ContinuePropagation
|