Add /del
This commit is contained in:
		
							parent
							
								
									45bf3eace2
								
							
						
					
					
						commit
						7fe6869dfc
					
				
							
								
								
									
										167
									
								
								mod.py
									
									
									
									
									
								
							
							
						
						
									
										167
									
								
								mod.py
									
									
									
									
									
								
							| @ -4,7 +4,7 @@ import json | |||||||
| 
 | 
 | ||||||
| from telebot import types,util | from telebot import types,util | ||||||
| 
 | 
 | ||||||
| global db, users, blocks | global db, users, la | ||||||
| 
 | 
 | ||||||
| ####### CREATE DB IF NOT EXIST | ####### CREATE DB IF NOT EXIST | ||||||
| 
 | 
 | ||||||
| @ -23,13 +23,11 @@ if not os.path.exists('users.json'): | |||||||
|         with open("users.json", "w") as outfile: |         with open("users.json", "w") as outfile: | ||||||
|                 outfile.write(js) |                 outfile.write(js) | ||||||
| 
 | 
 | ||||||
| 
 | if not os.path.exists('la.json'): | ||||||
| if not os.path.exists('blocks.json'): |         la = {} | ||||||
|         blocks = [] |         js = json.dumps(la, indent=2) | ||||||
|         js = json.dumps(blocks, indent=2) |         with open("la.json", "w") as outfile: | ||||||
|         with open("blocks.json", "w") as outfile: |  | ||||||
|                 outfile.write(js) |                 outfile.write(js) | ||||||
| 
 |  | ||||||
| ############WORK WITH DBs########## | ############WORK WITH DBs########## | ||||||
| 
 | 
 | ||||||
| def read_db(): | def read_db(): | ||||||
| @ -53,16 +51,16 @@ def write_users(): | |||||||
|         with open("users.json", "w") as outfile: |         with open("users.json", "w") as outfile: | ||||||
|                 outfile.write(js) |                 outfile.write(js) | ||||||
| 
 | 
 | ||||||
| 
 | # LA - Low Admin. | ||||||
| 
 | # Admin permissions in bot without admin rights. | ||||||
| def read_blocks(): | def read_la(): | ||||||
|         global blocks |         global la | ||||||
|         with open('blocks.json', 'r') as openfile: |         with open('la.json', 'r') as openfile: | ||||||
|                 blocks = json.load(openfile) |                 la = json.load(openfile) | ||||||
| def write_blocks(): | def write_la(): | ||||||
|         global blocks |         global la | ||||||
|         js = json.dumps(blocks, indent=2) |         js = json.dumps(la, indent=2) | ||||||
|         with open("blocks.json", "w") as outfile: |         with open("la.json", "w") as outfile: | ||||||
|                 outfile.write(js) |                 outfile.write(js) | ||||||
| 
 | 
 | ||||||
| ####################FAST HASH################# | ####################FAST HASH################# | ||||||
| @ -92,7 +90,8 @@ def get_admins(message): | |||||||
| 
 | 
 | ||||||
| # Fix for anon admins, all anon (not premium) users == admins | # Fix for anon admins, all anon (not premium) users == admins | ||||||
| def is_anon(message): | def is_anon(message): | ||||||
| 	if message.from_user.username ==  "Channel_Bot" and message.from_user.is_premium == None: | 	if message.from_user.username ==  "Channel_Bot" or message.from_user.username == "GroupAnonymousBot": | ||||||
|  | 		if message.from_user.is_premium == None: | ||||||
| 			return True | 			return True | ||||||
| 	else: | 	else: | ||||||
| 		return False | 		return False | ||||||
| @ -102,6 +101,7 @@ def get_target(message): | |||||||
| 		if len(message.text.split()) > 1 and message.text.split()[1][0] == "@": | 		if len(message.text.split()) > 1 and message.text.split()[1][0] == "@": | ||||||
| 			username = message.text.split()[1][1:] | 			username = message.text.split()[1][1:] | ||||||
| 			global users | 			global users | ||||||
|  | 			read_users() | ||||||
| 			if sha(username) in users: | 			if sha(username) in users: | ||||||
| 				return users[sha(username)] | 				return users[sha(username)] | ||||||
| 			else: | 			else: | ||||||
| @ -128,6 +128,18 @@ def get_name(message): | |||||||
| 	except: | 	except: | ||||||
| 		catch_error(message) | 		catch_error(message) | ||||||
| 
 | 
 | ||||||
|  | def have_rights(message, set_la = False): | ||||||
|  | 	global la ; read_la() | ||||||
|  | 	if message.from_user.id in get_admins(message): | ||||||
|  | 		return True | ||||||
|  | 	elif is_anon(message): | ||||||
|  | 		return True | ||||||
|  | 	elif str(message.chat.id) in la and not set_la: | ||||||
|  | 		if str(message.from_user.username) in la[str(message.chat.id)]: | ||||||
|  | 			return True | ||||||
|  | 	else: | ||||||
|  | 		bot.reply_to(message, "Увы, но у вас нету прав.") | ||||||
|  | 
 | ||||||
| def key_by_value(dictionary, key): | def key_by_value(dictionary, key): | ||||||
| 	for i in dictionary: | 	for i in dictionary: | ||||||
| 		if dictionary[i] == key: | 		if dictionary[i] == key: | ||||||
| @ -182,6 +194,7 @@ def help(message): | |||||||
| /lock ⇁ Блокировка чата (для обычных пользователей) | /lock ⇁ Блокировка чата (для обычных пользователей) | ||||||
| /unlock ⇁ Снятие блокировки чата | /unlock ⇁ Снятие блокировки чата | ||||||
| /chatid ⇁ Айди чата | /chatid ⇁ Айди чата | ||||||
|  | /del ⇁ Удаление сообщения | ||||||
| 
 | 
 | ||||||
| /secret ⇁ Функция для получения ссылки html на пользователя в лс. | /secret ⇁ Функция для получения ссылки html на пользователя в лс. | ||||||
| /html <code> ⇁ Отправка текста сообщения в режиме формата html. | /html <code> ⇁ Отправка текста сообщения в режиме формата html. | ||||||
| @ -192,7 +205,7 @@ def help(message): | |||||||
| @bot.message_handler(commands=['mute']) | @bot.message_handler(commands=['mute']) | ||||||
| def mute(message): | def mute(message): | ||||||
| 	try: | 	try: | ||||||
| 		if message.from_user.id in get_admins(message) or is_anon(message): | 		if have_rights(message): | ||||||
| 			target = get_target(message) | 			target = get_target(message) | ||||||
| 			if target: | 			if target: | ||||||
| 				if len(message.text.split()) == 1: | 				if len(message.text.split()) == 1: | ||||||
| @ -207,8 +220,6 @@ def mute(message): | |||||||
| 					bot.reply_to(message, f"""Пользователь { get_name(message) } был заглушён на {time/60} минут(ы).""", parse_mode='HTML') | 					bot.reply_to(message, f"""Пользователь { get_name(message) } был заглушён на {time/60} минут(ы).""", parse_mode='HTML') | ||||||
| 			else: | 			else: | ||||||
| 				catch_error(message, "no_user") | 				catch_error(message, "no_user") | ||||||
| 		else: |  | ||||||
| 			bot.reply_to(message, "Увы, но у вас нету прав.") |  | ||||||
| 	except: | 	except: | ||||||
| 		catch_error(message) | 		catch_error(message) | ||||||
| 
 | 
 | ||||||
| @ -216,7 +227,7 @@ def mute(message): | |||||||
| @bot.message_handler(commands=['unmute']) | @bot.message_handler(commands=['unmute']) | ||||||
| def unmute(message): | def unmute(message): | ||||||
| 	try: | 	try: | ||||||
| 		if message.from_user.id in get_admins(message) or is_anon(message): | 		if have_rights(message): | ||||||
| 			target = get_target(message) | 			target = get_target(message) | ||||||
| 			if target: | 			if target: | ||||||
| 				bot.restrict_chat_member(message.chat.id, target, can_send_messages=True, can_send_other_messages = True, until_date = message.date) | 				bot.restrict_chat_member(message.chat.id, target, can_send_messages=True, can_send_other_messages = True, until_date = message.date) | ||||||
| @ -233,7 +244,7 @@ def unmute(message): | |||||||
| @bot.message_handler(commands=['kick']) | @bot.message_handler(commands=['kick']) | ||||||
| def kick(message): | def kick(message): | ||||||
| 	try: | 	try: | ||||||
| 		if message.from_user.id in get_admins(message) or is_anon(message): | 		if have_rights(message): | ||||||
| 			target = get_target(message) | 			target = get_target(message) | ||||||
| 			if target: | 			if target: | ||||||
| 				bot.ban_chat_member(message.chat.id, target) | 				bot.ban_chat_member(message.chat.id, target) | ||||||
| @ -252,7 +263,7 @@ def kick(message): | |||||||
| @bot.message_handler(commands=['ban']) | @bot.message_handler(commands=['ban']) | ||||||
| def ban(message): | def ban(message): | ||||||
| 	try: | 	try: | ||||||
| 		if message.from_user.id in get_admins(message) or is_anon(message): | 		if have_rights(message): | ||||||
| 			target = get_target(message) | 			target = get_target(message) | ||||||
| 			if target: | 			if target: | ||||||
| 				bot.ban_chat_member(message.chat.id, target) | 				bot.ban_chat_member(message.chat.id, target) | ||||||
| @ -268,7 +279,7 @@ def ban(message): | |||||||
| @bot.message_handler(commands=['unban']) | @bot.message_handler(commands=['unban']) | ||||||
| def unban(message): | def unban(message): | ||||||
| 	try: | 	try: | ||||||
| 		if message.from_user.id in get_admins(message) or is_anon(message): | 		if have_rights(message): | ||||||
| 			target = get_target(message) | 			target = get_target(message) | ||||||
| 			if target: | 			if target: | ||||||
| 				bot.unban_chat_member(message.chat.id, target) | 				bot.unban_chat_member(message.chat.id, target) | ||||||
| @ -284,7 +295,7 @@ def unban(message): | |||||||
| @bot.message_handler(commands=['setwelcome']) | @bot.message_handler(commands=['setwelcome']) | ||||||
| def setwelcome(message): | def setwelcome(message): | ||||||
| 	try: | 	try: | ||||||
| 		if message.from_user.id in get_admins(message) or is_anon(message): | 		if have_rights(message): | ||||||
| 			global db | 			global db | ||||||
| 			db[str(message.chat.id)] = message.html_text[ message.text.find(" ") + 1 :] | 			db[str(message.chat.id)] = message.html_text[ message.text.find(" ") + 1 :] | ||||||
| 
 | 
 | ||||||
| @ -309,7 +320,7 @@ def welcome(message): | |||||||
| @bot.message_handler(commands=['lock']) | @bot.message_handler(commands=['lock']) | ||||||
| def lock(message): | def lock(message): | ||||||
| 	try: | 	try: | ||||||
| 		if message.from_user.id in get_admins(message) or is_anon(message): | 		if have_rights(message): | ||||||
| 			bot.set_chat_permissions(message.chat.id, telebot.types.ChatPermissions(can_send_messages=False, can_send_other_messages = False, can_send_polls = False)) | 			bot.set_chat_permissions(message.chat.id, telebot.types.ChatPermissions(can_send_messages=False, can_send_other_messages = False, can_send_polls = False)) | ||||||
| 			bot.reply_to(message, "Чат был заблокирован 🔒") | 			bot.reply_to(message, "Чат был заблокирован 🔒") | ||||||
| 		else: | 		else: | ||||||
| @ -320,7 +331,7 @@ def lock(message): | |||||||
| @bot.message_handler(commands=['unlock']) | @bot.message_handler(commands=['unlock']) | ||||||
| def unlock(message): | def unlock(message): | ||||||
| 	try: | 	try: | ||||||
| 		if message.from_user.id in get_admins(message) or is_anon(message): | 		if have_rights(message): | ||||||
| 			bot.set_chat_permissions(message.chat.id, telebot.types.ChatPermissions(can_send_messages=True, can_send_other_messages = True, can_send_polls = True)) | 			bot.set_chat_permissions(message.chat.id, telebot.types.ChatPermissions(can_send_messages=True, can_send_other_messages = True, can_send_polls = True)) | ||||||
| 			bot.reply_to(message, "Чат был разблокирован 🔓") | 			bot.reply_to(message, "Чат был разблокирован 🔓") | ||||||
| 		else: | 		else: | ||||||
| @ -331,7 +342,7 @@ def unlock(message): | |||||||
| @bot.message_handler(commands=['id']) | @bot.message_handler(commands=['id']) | ||||||
| def getid(message): | def getid(message): | ||||||
| 	try: | 	try: | ||||||
| 		if message.from_user.id in get_admins(message) or is_anon(message): | 		if have_rights(message): | ||||||
| 			bot.reply_to(message, "ID: " + telebot.formatting.hcode(str(get_target(message))), parse_mode="HTML" ) | 			bot.reply_to(message, "ID: " + telebot.formatting.hcode(str(get_target(message))), parse_mode="HTML" ) | ||||||
| 		else: | 		else: | ||||||
| 			bot.reply_to(message, "Увы, но у вас нету прав.") | 			bot.reply_to(message, "Увы, но у вас нету прав.") | ||||||
| @ -339,11 +350,22 @@ def getid(message): | |||||||
| 		catch_error(message) | 		catch_error(message) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | @bot.message_handler(commands=['del']) | ||||||
|  | def secret(message): | ||||||
|  | 	try: | ||||||
|  | 		if have_rights(message): | ||||||
|  | 			bot.delete_message(message.chat.id, message.reply_to_message.id) | ||||||
|  | 			bot.delete_message(message.chat.id, message.id) | ||||||
|  | 		else: | ||||||
|  | 			bot.reply_to(message, "Увы, но у вас нету прав.") | ||||||
|  | 	except: | ||||||
|  | 		catch_error(message) | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| @bot.message_handler(commands=['secret']) | @bot.message_handler(commands=['secret']) | ||||||
| def secret(message): | def secret(message): | ||||||
| 	try: | 	try: | ||||||
| 		if message.from_user.id in get_admins(message) or is_anon(message): | 		if have_rights(message): | ||||||
| 			bot.send_message(message.from_user.id, telebot.util.user_link(message.reply_to_message.from_user)) | 			bot.send_message(message.from_user.id, telebot.util.user_link(message.reply_to_message.from_user)) | ||||||
| 			bot.delete_message(message.chat.id, message.id) | 			bot.delete_message(message.chat.id, message.id) | ||||||
| 		else: | 		else: | ||||||
| @ -363,13 +385,90 @@ def html(message): | |||||||
| @bot.message_handler(commands=['chatid']) | @bot.message_handler(commands=['chatid']) | ||||||
| def chatid(message): | def chatid(message): | ||||||
| 	try: | 	try: | ||||||
| 		if message.from_user.id in get_admins(message) or is_anon(message): | 		if have_rights(message): | ||||||
| 			bot.reply_to(message, "Айди чата: " + telebot.formatting.hcode( str(message.chat.id) ), parse_mode='HTML') | 			bot.reply_to(message, "Айди чата: " + telebot.formatting.hcode( str(message.chat.id) ), parse_mode='HTML') | ||||||
| 		else: | 		else: | ||||||
| 			bot.reply_to(message, "Увы, но у вас нету прав.") | 			bot.reply_to(message, "Увы, но у вас нету прав.") | ||||||
| 	except: | 	except: | ||||||
| 		catch_error(message) | 		catch_error(message) | ||||||
| 
 | 
 | ||||||
|  | ############ LOW-ADMIN ############## | ||||||
|  | 
 | ||||||
|  | def have_la(id): | ||||||
|  | 	try: | ||||||
|  | 		global la ; read_la() | ||||||
|  | 		if id in la: | ||||||
|  | 			return True | ||||||
|  | 		else: | ||||||
|  | 			la[id] = [] | ||||||
|  | 			write_la() | ||||||
|  | 			return True | ||||||
|  | 	except: | ||||||
|  | 		catch_error(message) | ||||||
|  | 
 | ||||||
|  | @bot.message_handler(commands=['la-list']) | ||||||
|  | def la_list(message): | ||||||
|  | 	try: | ||||||
|  | 		if have_rights(message, set_la=True): | ||||||
|  | 			global la ; read_la() | ||||||
|  | 			if have_la(str(message.chat.id)): | ||||||
|  | 				s = "Список администраторов в режиме low-admin:\n" | ||||||
|  | 				for i in la[str(message.chat.id)]: | ||||||
|  | 					s = s + '\n@' + i | ||||||
|  | 				bot.reply_to(message, s, parse_mode='HTML') | ||||||
|  | 	except: | ||||||
|  | 		catch_error(message) | ||||||
|  | 
 | ||||||
|  | @bot.message_handler(commands=['la-add']) | ||||||
|  | def la_add(message): | ||||||
|  | 	try: | ||||||
|  | 		if have_rights(message, set_la=True): | ||||||
|  | 			global la ; read_la() | ||||||
|  | 			if have_la(message.chat.id): | ||||||
|  | 				nick = message.text.split()[1][1:] | ||||||
|  | 				la[message.chat.id].append(nick) | ||||||
|  | 				write_la() | ||||||
|  | 				bot.reply_to(message, f"Пользователь @{nick} успешно добавлен в список администраторов.") | ||||||
|  | 	except: | ||||||
|  | 		catch_error(message) | ||||||
|  | 
 | ||||||
|  | @bot.message_handler(commands=['la-del']) | ||||||
|  | def la_del(message, set_la=True): | ||||||
|  | 	try: | ||||||
|  | 		if have_rights(message, set_la=True): | ||||||
|  | 			global la ; read_la() | ||||||
|  | 			if have_la(message.chat.id): | ||||||
|  | 				nick = message.text.split()[1][1:] | ||||||
|  | 
 | ||||||
|  | 				if nick in la[message.chat.id]: | ||||||
|  | 					del la[message.chat.id] | ||||||
|  | 				write_la() | ||||||
|  | 				bot.reply_to(message, f"Пользователь @{nick} был исключён из списка администраторов.") | ||||||
|  | 	except: | ||||||
|  | 		catch_error(message) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | #######################JOIN REQUEST ############# | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | @bot.chat_join_request_handler() | ||||||
|  | def join_request(message: telebot.types.ChatJoinRequest): | ||||||
|  | 	try: | ||||||
|  | 		bot.send_message(message.chat.id, f"""Поступила заявка на вступление от { telebot.util.user_link(message.from_user) }  | ||||||
|  | Принять: { telebot.formatting.hcode(f"/accept {message.from_user.id}") }""", parse_mode="HTML") | ||||||
|  | 	except: | ||||||
|  | 		catch_error(message) | ||||||
|  | 
 | ||||||
|  | @bot.message_handler(commands=['accept']) | ||||||
|  | def accept_request(message): | ||||||
|  | 	try: | ||||||
|  | 		if have_rights(message): | ||||||
|  | 			if len(message.text.split()) == 2: | ||||||
|  | 				bot.approve_chat_join_request(message.chat.id, message.text.split()[1] ) | ||||||
|  | 				bot.reply_to(message, "Заявка принята.") | ||||||
|  | 	except: | ||||||
|  | 		catch_error(message) | ||||||
|  | 
 | ||||||
| ######################SUPPORT######## | ######################SUPPORT######## | ||||||
| 
 | 
 | ||||||
| @bot.message_handler(commands=['support']) | @bot.message_handler(commands=['support']) | ||||||
| @ -422,12 +521,12 @@ def catch_error(message, err_type = None): | |||||||
| 		logging.error(traceback.format_exc()) # Log error | 		logging.error(traceback.format_exc()) # Log error | ||||||
| 		err = log_stream.getvalue() # Error to variable | 		err = log_stream.getvalue() # Error to variable | ||||||
| 
 | 
 | ||||||
| 		bot.reply_to(message, "Critical error (свяжитись через /support ) :\n\n" + telebot.formatting.hcode(err), parse_mode='HTML') | 		bot.send_message(message.chat.id, "Critical error (свяжитись через /support ) :\n\n" + telebot.formatting.hcode(err), parse_mode='HTML') | ||||||
| 
 | 
 | ||||||
| 		log_stream.truncate(0) # Clear | 		log_stream.truncate(0) # Clear | ||||||
| 		log_stream.seek(0) # Clear | 		log_stream.seek(0) # Clear | ||||||
| 	elif err_type == "no_user": | 	elif err_type == "no_user": | ||||||
| 		bot.reply_to(message, "Не указан пользователь.") | 		bot.send_message(message.chat.id, "Не указан пользователь.") | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ##################MAIN THREAD##### | ##################MAIN THREAD##### | ||||||
| @ -440,5 +539,5 @@ while True: | |||||||
| 	except: | 	except: | ||||||
| 		pass | 		pass | ||||||
| ''' | ''' | ||||||
| bot.polling() | bot.polling(allowed_updates=telebot.util.update_types) | ||||||
| ''' | ''' | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user