async def on_snip(event): global last_triggered_filters name = event.raw_text if event.chat_id in last_triggered_filters: if name in last_triggered_filters[event.chat_id]: # avoid userbot spam # "I demand rights for us bots, we are equal to you humans." -Henri Koivuneva (t.me/UserbotTesting/2698) return False snips = get_all_filters(event.chat_id) if snips: for snip in snips: pattern = r"( |^|[^\w])" + re.escape(snip.keyword) + r"( |$|[^\w])" if re.search(pattern, name, flags=re.IGNORECASE): if snip.snip_type == TYPE_PHOTO: media = types.InputPhoto(int(snip.media_id), int(snip.media_access_hash), snip.media_file_reference) elif snip.snip_type == TYPE_DOCUMENT: media = types.InputDocument(int(snip.media_id), int(snip.media_access_hash), snip.media_file_reference) else: media = None message_id = event.message.id if event.reply_to_msg_id: message_id = event.reply_to_msg_id await borg.send_message(event.chat_id, snip.reply, reply_to=message_id, file=media) if event.chat_id not in last_triggered_filters: last_triggered_filters[event.chat_id] = [] last_triggered_filters[event.chat_id].append(name) await asyncio.sleep(DELETE_TIMEOUT) last_triggered_filters[event.chat_id].remove(name)
async def on_snip(event): name = event.pattern_match.group(1) snip = get_snips(name) if snip: if snip.snip_type == TYPE_PHOTO: media = types.InputPhoto( int(snip.media_id), int(snip.media_access_hash), snip.media_file_reference ) elif snip.snip_type == TYPE_DOCUMENT: media = types.InputDocument( int(snip.media_id), int(snip.media_access_hash), snip.media_file_reference ) else: media = None message_id = event.message.id if event.reply_to_msg_id: message_id = event.reply_to_msg_id await borg.send_message( event.chat_id, snip.reply, reply_to=message_id, file=media ) await event.delete()
async def filter_incoming_handler(handler): """ Checks if the incoming message contains handler of a filter """ try: if not (await handler.get_sender()).bot: try: from userbot.modules.sql_helper.filter_sql import get_filters except AttributeError: await handler.edit("`Running on Non-SQL mode!`") return name = handler.raw_text filters = get_filters(handler.chat_id) if not filters: return for trigger in filters: pattern = r"( |^|[^\w])" + \ escape(trigger.keyword) + r"( |$|[^\w])" pro = fullmatch(pattern, name, flags=IGNORECASE) if pro: if trigger.snip_type == TYPE_PHOTO: media = types.InputPhoto( int(trigger.media_id), int(trigger.media_access_hash), trigger.media_file_reference) elif trigger.snip_type == TYPE_DOCUMENT: media = types.InputDocument( int(trigger.media_id), int(trigger.media_access_hash), trigger.media_file_reference) else: media = None await handler.reply(trigger.reply, file=media) except AttributeError: pass
async def incom_note(getnt): """ Notes logic. """ try: if not (await getnt.get_sender()).bot: try: from userbot.modules.sql_helper.notes_sql import get_notes except AttributeError: return notename = getnt.text[1:] notes = get_notes(getnt.chat_id) for note in notes: if notename == note.keyword: if note.snip_type == TYPE_PHOTO: media = types.InputPhoto(int(note.media_id), int(note.media_access_hash), note.media_file_reference) elif note.snip_type == TYPE_DOCUMENT: media = types.InputDocument( int(note.media_id), int(note.media_access_hash), note.media_file_reference) else: media = None message_id = getnt.message.id if getnt.reply_to_msg_id: message_id = getnt.reply_to_msg_id await getnt.client.send_message(getnt.chat_id, note.reply, reply_to=message_id, file=media) except AttributeError: pass
async def _(event): cws = get_current_welcome_settings(event.chat_id) if cws: # logger.info(event.stringify()) """user_added=False, user_joined=True, user_left=False, user_kicked=False,""" if event.user_joined or event.user_added: if cws.should_clean_welcome: try: await borg.delete_messages( # pylint:disable=E0602 event.chat_id, cws.previous_welcome) except Exception as e: # pylint:disable=C0103,W0703 logger.warn(str(e)) # pylint:disable=E0602 a_user = await event.get_user() current_saved_welcome_message = cws.custom_welcome_message mention = "[{}](tg://user?id={})".format(a_user.first_name, a_user.id) file_media = None if cws.message_type == TYPE_PHOTO: file_media = types.InputPhoto(int(cws.media_id), int(cws.media_access_hash), cws.media_file_reference) elif cws.message_type == TYPE_DOCUMENT: file_media = types.InputDocument(int(cws.media_id), int(cws.media_access_hash), cws.media_file_reference) else: file_media = None # current_message = await event.reply( current_saved_welcome_message.format(mention=mention), file=file_media) update_previous_welcome(event.chat_id, current_message.id)
async def on_snip(event): """ Snips logic. """ try: from userbot.modules.sql_helper.snips_sql import get_snip except AttributeError: return name = event.text[1:] snip = get_snip(name) if snip: if snip.snip_type == TYPE_PHOTO: media = types.InputPhoto(int(snip.media_id), int(snip.media_access_hash), snip.media_file_reference) elif snip.snip_type == TYPE_DOCUMENT: media = types.InputDocument(int(snip.media_id), int(snip.media_access_hash), snip.media_file_reference) else: media = None message_id_to_reply = event.message.reply_to_msg_id if not message_id_to_reply: message_id_to_reply = None await event.client.send_message(event.chat_id, snip.reply, reply_to=message_id_to_reply, file=media) await event.delete()
async def on_snip(event): global last_triggered_filters name = event.raw_text if event.chat_id in last_triggered_filters: if name in last_triggered_filters[event.chat_id]: return False snips = get_all_filters(event.chat_id) if snips: for snip in snips: pattern = r"( |^|[^\w])" + re.escape(snip.keyword) + r"( |$|[^\w])" if re.search(pattern, name, flags=re.IGNORECASE): if snip.snip_type == TYPE_PHOTO: media = types.InputPhoto( int(snip.media_id), int(snip.media_access_hash), snip.media_file_reference, ) elif snip.snip_type == TYPE_DOCUMENT: media = types.InputDocument( int(snip.media_id), int(snip.media_access_hash), snip.media_file_reference, ) else: media = None event.message.id if event.reply_to_msg_id: event.reply_to_msg_id await event.reply(snip.reply, file=media) if event.chat_id not in last_triggered_filters: last_triggered_filters[event.chat_id] = [] last_triggered_filters[event.chat_id].append(name) await asyncio.sleep(DELETE_TIMEOUT) last_triggered_filters[event.chat_id].remove(name)
async def unsavegif(event, spammer): try: await event.client( functions.messages.SaveGifRequest( id=types.InputDocument( id=spammer.media.document.id, access_hash=spammer.media.document.access_hash, file_reference=spammer.media.document.file_reference, ), unsave=True, )) except Exception as e: LOGS.info(f"{e}")
async def on_snip(event): await event.delete() name = event.pattern_match.group(1) if name not in snips: return snip = snips[name] if snip['type'] == TYPE_PHOTO: media = types.InputPhoto(snip['id'], snip['hash'], file_reference=b'') elif snip['type'] == TYPE_DOCUMENT: media = types.InputDocument(snip['id'], snip['hash'], file_reference=b'') else: media = None await borg.send_message(await event.get_input_chat(), snip['text'], file=media, reply_to=event.message.reply_to_msg_id)
async def on_snip(event): name = event.pattern_match.group(1) if name not in snips: await on_snip_save(event) else: snip = snips[name] if snip['type'] == TYPE_PHOTO: media = types.InputPhoto(snip['id'], snip['hash'], snip['fr']) elif snip['type'] == TYPE_DOCUMENT: media = types.InputDocument(snip['id'], snip['hash'], snip['fr']) else: media = None message_id = event.message.id if event.reply_to_msg_id: message_id = event.reply_to_msg_id await borg.send_message(event.chat_id, snip['text'], reply_to=message_id, file=media) await event.delete()
async def on_snip(event): name = event.pattern_match.group(1) if name not in snips: await on_snip_save(event) else: snip = snips[name] if snip["type"] == TYPE_PHOTO: media = types.InputPhoto(snip["id"], snip["hash"]) elif snip["type"] == TYPE_DOCUMENT: media = types.InputDocument(snip["id"], snip["hash"]) else: media = None await borg.send_message( await event.get_input_chat(), snip["text"], file=media, reply_to=event.message.reply_to_msg_id, ) await event.delete()
async def on_snip(event): global last_triggered_filters name = event.raw_text if event.chat_id in last_triggered_filters: if name in last_triggered_filters[event.chat_id]: return False snips = get_all_filters(event.chat_id) if snips: for snip in snips: pattern = r"( |^|[^\w])" + re.escape(snip.keyword) + r"( |$|[^\w])" if re.search(pattern, name, flags=re.IGNORECASE): if snip.snip_type == TYPE_PHOTO: media = types.InputPhoto( int(snip.media_id), int(snip.media_access_hash), snip.media_file_reference, ) elif snip.snip_type == TYPE_DOCUMENT: media = types.InputDocument( int(snip.media_id), int(snip.media_access_hash), snip.media_file_reference, ) else: media = None event.message.id if event.reply_to_msg_id: event.reply_to_msg_id filter = "" options = "" butto = None if "|" in snip.reply: filter, options = snip.reply.split("|") else: filter = str(snip.reply) try: filter = filter.strip() button = options.strip() if "•" in button: mbutton = button.split("•") lbutton = [] for i in mbutton: params = re.findall(r"\'(.*?)\'", i) or re.findall( r"\"(.*?)\"", i) lbutton.append(params) longbutton = [] for c in lbutton: butto = [Button.url(*c)] longbutton.append(butto) else: params = re.findall(r"\'(.*?)\'", button) or re.findall( r"\"(.*?)\"", button) butto = [Button.url(*params)] except BaseException: filter = filter.strip() butto = None try: await event.reply(filter, buttons=longbutton, file=media) except: await event.reply(filter, buttons=butto, file=media) if event.chat_id not in last_triggered_filters: last_triggered_filters[event.chat_id] = [] last_triggered_filters[event.chat_id].append(name) await asyncio.sleep(DELETE_TIMEOUT) last_triggered_filters[event.chat_id].remove(name)
async def filter(event): name = event.raw_text if name.startswith("/stop") or name.startswith("/filter"): return if name.startswith("/clear") or name.startswith("/save"): return snips = get_all_filters(event.chat_id) if snips: for snip in snips: pattern = r"( |^|[^\w])" + re.escape(snip.keyword) + r"( |$|[^\w])" if re.search(pattern, name, flags=re.IGNORECASE): if snip.snip_type == TYPE_PHOTO: media = types.InputPhoto( int(snip.media_id), int(snip.media_access_hash), snip.media_file_reference, ) elif snip.snip_type == TYPE_DOCUMENT: media = types.InputDocument( int(snip.media_id), int(snip.media_access_hash), snip.media_file_reference, ) else: media = None event.message.id if event.reply_to_msg_id: event.reply_to_msg_id filter = "" options = "" butto = None if "|" in snip.reply: filter, options = snip.reply.split("|") else: filter = str(snip.reply) try: filter = filter.strip() button = options.strip() if "•" in button: mbutton = button.split("•") lbutton = [] for i in mbutton: params = re.findall(r"\'(.*?)\'", i) or re.findall( r"\"(.*?)\"", i) lbutton.append(params) longbutton = [] for c in lbutton: butto = [Button.url(*c)] longbutton.append(butto) else: params = re.findall(r"\'(.*?)\'", button) or re.findall( r"\"(.*?)\"", button) butto = [Button.url(*params)] except BaseException: filter = filter.strip() butto = None try: await event.reply(filter, buttons=longbutton, file=media) except: await event.reply(filter, buttons=butto, file=media)