mirror of
				https://github.com/NohamR/TransmissionBot.git
				synced 2025-10-31 22:29:31 +00:00 
			
		
		
		
	feature
* in DM, added reaction to toggle output display and then reprint the message
This commit is contained in:
		
							parent
							
								
									83d70c9d87
								
							
						
					
					
						commit
						1aa9a1d3be
					
				
							
								
								
									
										67
									
								
								bot.py
									
									
									
									
									
								
							
							
						
						
									
										67
									
								
								bot.py
									
									
									
									
									
								
							| @ -1417,14 +1417,17 @@ async def summary(message, content="", repeat_msg_key=None, msg=None): | |||||||
| 			stateEmojiFilterStartNum = 4 # the first emoji in stateEmoji that corresponds to a list filter | 			stateEmojiFilterStartNum = 4 # the first emoji in stateEmoji that corresponds to a list filter | ||||||
| 			ignoreEmoji = ('✅') | 			ignoreEmoji = ('✅') | ||||||
| 		 | 		 | ||||||
|  | 		formatEmoji = '💻' if IsCompactOutput(message) else '📱' | ||||||
|  | 		 | ||||||
| 		if repeat_msg_key or msg: | 		if repeat_msg_key or msg: | ||||||
| 			if isDM(message): | 			if isDM(message): | ||||||
| 				if repeat_msg_key: | 				if repeat_msg_key: | ||||||
| 					stateEmoji = ('📜','🖨','❎','↕️') + torStateEmoji | 					stateEmoji = ('📜',formatEmoji,'🖨','❎','↕️') + torStateEmoji | ||||||
| 					summaryData[0].timestamp = datetime.datetime.now(tz=pytz.timezone('America/Denver')) | 					summaryData[0].timestamp = datetime.datetime.now(tz=pytz.timezone('America/Denver')) | ||||||
| 				else: | 				else: | ||||||
| 					stateEmoji = ('📜','🖨','🔄','↕️') + torStateEmoji | 					stateEmoji = ('📜',formatEmoji,'🖨','🔄','↕️') + torStateEmoji | ||||||
| 				msg = await message.channel.send(embed=summaryData[0]) | 				msg = await message.channel.send(embed=summaryData[0]) | ||||||
|  | 				stateEmojiFilterStartNum += 1 | ||||||
| 			else: | 			else: | ||||||
| 				if msg: | 				if msg: | ||||||
| 					stateEmoji = ('📜','🖨','🔄','↕️') + torStateEmoji | 					stateEmoji = ('📜','🖨','🔄','↕️') + torStateEmoji | ||||||
| @ -1445,7 +1448,11 @@ async def summary(message, content="", repeat_msg_key=None, msg=None): | |||||||
| 					else: | 					else: | ||||||
| 						await msg.edit(embed=summaryData[0]) | 						await msg.edit(embed=summaryData[0]) | ||||||
| 		else: | 		else: | ||||||
| 			stateEmoji = ('📜','🖨','🔄','↕️') + torStateEmoji | 			if isDM(message): | ||||||
|  | 				stateEmoji = ('📜',formatEmoji,'🖨','🔄','↕️') + torStateEmoji | ||||||
|  | 				stateEmojiFilterStartNum += 1 | ||||||
|  | 			else: | ||||||
|  | 				stateEmoji = ('📜','🖨','🔄','↕️') + torStateEmoji | ||||||
| 			msg = await message.channel.send(embed=summaryData[0]) | 			msg = await message.channel.send(embed=summaryData[0]) | ||||||
| 	 | 	 | ||||||
| 		# to get actual list of reactions, need to re-fetch the message from the server | 		# to get actual list of reactions, need to re-fetch the message from the server | ||||||
| @ -1491,6 +1498,10 @@ async def summary(message, content="", repeat_msg_key=None, msg=None): | |||||||
| 								await message_clear_reactions(msg, message) | 								await message_clear_reactions(msg, message) | ||||||
| 							await legend(message) | 							await legend(message) | ||||||
| 							return | 							return | ||||||
|  | 						elif str(r.emoji) == formatEmoji: | ||||||
|  | 							await toggle_compact_out(message=message) | ||||||
|  | 							asyncio.create_task(summary(message=message, content=content, msg=msg)) | ||||||
|  | 							return | ||||||
| 						elif str(r.emoji) == '❎': | 						elif str(r.emoji) == '❎': | ||||||
| 							await message_clear_reactions(msg, message) | 							await message_clear_reactions(msg, message) | ||||||
| 							REPEAT_MSGS[repeat_msg_key]['do_repeat'] = False | 							REPEAT_MSGS[repeat_msg_key]['do_repeat'] = False | ||||||
| @ -1534,6 +1545,10 @@ async def summary(message, content="", repeat_msg_key=None, msg=None): | |||||||
| 					await message_clear_reactions(msg, message) | 					await message_clear_reactions(msg, message) | ||||||
| 				await legend(message) | 				await legend(message) | ||||||
| 				return | 				return | ||||||
|  | 			elif str(reaction.emoji) == formatEmoji: | ||||||
|  | 				await toggle_compact_out(message=message) | ||||||
|  | 				asyncio.create_task(summary(message=message, content=content, msg=msg)) | ||||||
|  | 				return | ||||||
| 			elif str(reaction.emoji) == '❎': | 			elif str(reaction.emoji) == '❎': | ||||||
| 				await message_clear_reactions(msg, message) | 				await message_clear_reactions(msg, message) | ||||||
| 				REPEAT_MSGS[repeat_msg_key]['do_repeat'] = False | 				REPEAT_MSGS[repeat_msg_key]['do_repeat'] = False | ||||||
| @ -1831,13 +1846,15 @@ async def list_transfers(message, content="", repeat_msg_key=None, msgs=None): | |||||||
| 		 | 		 | ||||||
| 			embeds[-1].set_footer(text="📜 Legend, 🧾 Summarize, 🧰 Modify, 🖨 Reprint{}".format('\nUpdating every {}—❎ to stop'.format(humantime(REPEAT_MSGS[repeat_msg_key]['freq'],compact_output=False)) if repeat_msg_key else ', 🔄 Auto-update')) | 			embeds[-1].set_footer(text="📜 Legend, 🧾 Summarize, 🧰 Modify, 🖨 Reprint{}".format('\nUpdating every {}—❎ to stop'.format(humantime(REPEAT_MSGS[repeat_msg_key]['freq'],compact_output=False)) if repeat_msg_key else ', 🔄 Auto-update')) | ||||||
| 			 | 			 | ||||||
|  | 			formatEmoji = '💻' if IsCompactOutput(message) else '📱' | ||||||
|  | 			 | ||||||
| 			if repeat_msg_key or msgs: | 			if repeat_msg_key or msgs: | ||||||
| 				if isDM(message): | 				if isDM(message): | ||||||
| 					if repeat_msg_key: | 					if repeat_msg_key: | ||||||
| 						rxnEmoji = ['📜','🧾','🧰','🖨','❎','🔔','🔕'] | 						rxnEmoji = ['📜','🧾','🧰',formatEmoji,'🖨','❎','🔔','🔕'] | ||||||
| 						embeds[-1].timestamp = datetime.datetime.now(tz=pytz.timezone('America/Denver')) | 						embeds[-1].timestamp = datetime.datetime.now(tz=pytz.timezone('America/Denver')) | ||||||
| 					else: | 					else: | ||||||
| 						rxnEmoji = ['📜','🧾','🧰','🖨','🔄','🔔','🔕'] | 						rxnEmoji = ['📜','🧾','🧰',formatEmoji,'🖨','🔄','🔔','🔕'] | ||||||
| 					msgs = [await message.channel.send(embed=e) for e in embeds] | 					msgs = [await message.channel.send(embed=e) for e in embeds] | ||||||
| 				else: | 				else: | ||||||
| 					if msgs: | 					if msgs: | ||||||
| @ -1882,10 +1899,10 @@ async def list_transfers(message, content="", repeat_msg_key=None, msgs=None): | |||||||
| 						REPEAT_MSGS[repeat_msg_key]['msgs'] = msgs | 						REPEAT_MSGS[repeat_msg_key]['msgs'] = msgs | ||||||
| 			else: | 			else: | ||||||
| 				msgs = [await message.channel.send(embed=e) for e in embeds] | 				msgs = [await message.channel.send(embed=e) for e in embeds] | ||||||
| 				# if isDM(message): | 				if isDM(message): | ||||||
| 				# 	rxnEmoji = ['📜','🧾','🧰','🖨','🔔','🔕'] | 					rxnEmoji = ['📜','🧾','🧰',formatEmoji,'🖨','🔄','🔔','🔕'] | ||||||
| 				# else: | 				else: | ||||||
| 				rxnEmoji = ['📜','🧾','🧰','🖨','🔄','🔔','🔕'] | 					rxnEmoji = ['📜','🧾','🧰','🖨','🔄','🔔','🔕'] | ||||||
| 	 | 	 | ||||||
| 		msg = msgs[-1] | 		msg = msgs[-1] | ||||||
| 		 | 		 | ||||||
| @ -1929,6 +1946,10 @@ async def list_transfers(message, content="", repeat_msg_key=None, msgs=None): | |||||||
| 									await message_clear_reactions(msg, message) | 									await message_clear_reactions(msg, message) | ||||||
| 								asyncio.create_task(modify(message=message, content=','.join([str(t.id) for t in torrents]))) | 								asyncio.create_task(modify(message=message, content=','.join([str(t.id) for t in torrents]))) | ||||||
| 							return | 							return | ||||||
|  | 						elif str(reaction.emoji) == formatEmoji: | ||||||
|  | 							await toggle_compact_out(message=message) | ||||||
|  | 							return await list_transfers(message=message, content=content, msgs=msgs) | ||||||
|  | 							return | ||||||
| 						elif str(reaction.emoji) == '🖨': | 						elif str(reaction.emoji) == '🖨': | ||||||
| 							await message_clear_reactions(msg, message, reactions=['🖨']) | 							await message_clear_reactions(msg, message, reactions=['🖨']) | ||||||
| 							if repeat_msg_key: | 							if repeat_msg_key: | ||||||
| @ -2002,6 +2023,10 @@ async def list_transfers(message, content="", repeat_msg_key=None, msgs=None): | |||||||
| 						await message_clear_reactions(msg, message) | 						await message_clear_reactions(msg, message) | ||||||
| 					asyncio.create_task(modify(message=message, content=','.join([str(t.id) for t in torrents]))) | 					asyncio.create_task(modify(message=message, content=','.join([str(t.id) for t in torrents]))) | ||||||
| 				return | 				return | ||||||
|  | 			elif str(reaction.emoji) == formatEmoji: | ||||||
|  | 				await toggle_compact_out(message=message) | ||||||
|  | 				return await list_transfers(message=message, content=content, msgs=msgs) | ||||||
|  | 				return | ||||||
| 			elif str(reaction.emoji) == '🖨': | 			elif str(reaction.emoji) == '🖨': | ||||||
| 				await message_clear_reactions(msg, message, reactions=['🖨']) | 				await message_clear_reactions(msg, message, reactions=['🖨']) | ||||||
| 				if repeat_msg_key: | 				if repeat_msg_key: | ||||||
| @ -2050,6 +2075,10 @@ async def list_transfers(message, content="", repeat_msg_key=None, msgs=None): | |||||||
| 							if str(r.emoji) == '🖨': | 							if str(r.emoji) == '🖨': | ||||||
| 								REPEAT_MSGS[repeat_msg_key]['reprint'] = True | 								REPEAT_MSGS[repeat_msg_key]['reprint'] = True | ||||||
| 								await message_clear_reactions(msg, message, reactions=['🖨']) | 								await message_clear_reactions(msg, message, reactions=['🖨']) | ||||||
|  | 							elif str(r.emoji) == formatEmoji: | ||||||
|  | 								await toggle_compact_out(message=message) | ||||||
|  | 								return await list_transfers(message=message, content=content, msgs=msgs) | ||||||
|  | 								return | ||||||
| 							elif str(r.emoji) == '🧰': | 							elif str(r.emoji) == '🧰': | ||||||
| 								if len(torrents) > 0: | 								if len(torrents) > 0: | ||||||
| 									if not isDM(message) and CONFIG['delete_command_messages']: | 									if not isDM(message) and CONFIG['delete_command_messages']: | ||||||
| @ -2123,8 +2152,12 @@ async def modify(message, content=""): | |||||||
| 	 | 	 | ||||||
| 		if not allOnly and len(torrents) == 0: | 		if not allOnly and len(torrents) == 0: | ||||||
| 			return | 			return | ||||||
| 	 | 			 | ||||||
|  | 		formatEmoji = '💻' if IsCompactOutput(message) else '📱' | ||||||
|  | 
 | ||||||
| 		opEmoji += ['🚫','📜'] | 		opEmoji += ['🚫','📜'] | ||||||
|  | 		if isDM(message): | ||||||
|  | 			opEmoji += [formatEmoji] | ||||||
| 	 | 	 | ||||||
| 		msg = msgs[-1] | 		msg = msgs[-1] | ||||||
| 	 | 	 | ||||||
| @ -2136,9 +2169,13 @@ async def modify(message, content=""): | |||||||
| 			if reaction.count > 1: | 			if reaction.count > 1: | ||||||
| 				async for user in reaction.users(): | 				async for user in reaction.users(): | ||||||
| 					if user.id == message.author.id: | 					if user.id == message.author.id: | ||||||
| 						if str(reaction.emoji) == opEmoji[-1]: | 						if str(reaction.emoji) == '📜': | ||||||
| 							await message_clear_reactions(msg, message) | 							await message_clear_reactions(msg, message) | ||||||
| 							await legend(message) | 							await legend(message) | ||||||
|  | 						elif str(reaction.emoji) == formatEmoji: | ||||||
|  | 							await toggle_compact_out(message=message) | ||||||
|  | 							return await modify(message=message, content=content) | ||||||
|  | 							return | ||||||
| 						elif str(reaction.emoji) == '🚫': | 						elif str(reaction.emoji) == '🚫': | ||||||
| 							await message_clear_reactions(msg, message) | 							await message_clear_reactions(msg, message) | ||||||
| 							await message.channel.send("❌ Cancelled!") | 							await message.channel.send("❌ Cancelled!") | ||||||
| @ -2273,14 +2310,18 @@ async def modify(message, content=""): | |||||||
| 			return user == message.author and reaction.message.id == msg.id and str(reaction.emoji) in opEmoji | 			return user == message.author and reaction.message.id == msg.id and str(reaction.emoji) in opEmoji | ||||||
| 	 | 	 | ||||||
| 		try: | 		try: | ||||||
| 			reaction, user = await client.wait_for('reaction_add', timeout=CONFIG['reaction_wait_timeout'], check=check) | 			reaction, user = await client.wait_for('reaction_add', timeout=60, check=check) | ||||||
| 		except asyncio.TimeoutError: | 		except asyncio.TimeoutError: | ||||||
| 			await message_clear_reactions(msg, message) | 			await message_clear_reactions(msg, message) | ||||||
| 			return | 			return | ||||||
| 		else: | 		else: | ||||||
| 			if str(reaction.emoji) == opEmoji[-1]: | 			if str(reaction.emoji) == '📜': | ||||||
| 				await message_clear_reactions(msg, message) | 				await message_clear_reactions(msg, message) | ||||||
| 				await legend(message) | 				await legend(message) | ||||||
|  | 			elif str(reaction.emoji) == formatEmoji: | ||||||
|  | 				await toggle_compact_out(message=message) | ||||||
|  | 				return await modify(message=message, content=content) | ||||||
|  | 				return | ||||||
| 			elif str(reaction.emoji) == '🚫': | 			elif str(reaction.emoji) == '🚫': | ||||||
| 				await message_clear_reactions(msg, message) | 				await message_clear_reactions(msg, message) | ||||||
| 				await message.channel.send("❌ Cancelled!") | 				await message.channel.send("❌ Cancelled!") | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Tim Wilson
						Tim Wilson