lunarflu HF Staff commited on
Commit
13f854b
·
verified ·
1 Parent(s): e83ae57

testing colored diffs in message edits (like github!)

Browse files
Files changed (1) hide show
  1. app.py +19 -1
app.py CHANGED
@@ -17,6 +17,7 @@ from pytz import timezone # for times
17
  import asyncio # check if used
18
  import logging
19
  import urllib.parse
 
20
 
21
 
22
  from discord.ui import Button, View
@@ -61,6 +62,18 @@ def extract_tenor_gif_url(content):
61
 
62
 
63
 
 
 
 
 
 
 
 
 
 
 
 
 
64
  @bot.event
65
  async def on_message(message):
66
  try:
@@ -219,7 +232,12 @@ async def on_message_edit(before, after):
219
  embed = Embed(color=Color.orange())
220
  embed.set_author(name=f"{before.author} ID: {before.author.id}", icon_url=before.author.avatar.url if before.author.avatar else bot.user.avatar.url)
221
  embed.title = "Message Edited"
222
- embed.description = f"**Before:** {before.content or '*(empty message)*'}\n**After:** {after.content or '*(empty message)*'}"
 
 
 
 
 
223
  embed.add_field(name="Author Username", value=before.author.name, inline=True)
224
  embed.add_field(name="Channel", value=before.channel.mention, inline=True)
225
  #embed.add_field(name="Message Created On", value=before.created_at.strftime("%Y-%m-%d %H:%M:%S UTC"), inline=True)
 
17
  import asyncio # check if used
18
  import logging
19
  import urllib.parse
20
+ from difflib import SequenceMatcher
21
 
22
 
23
  from discord.ui import Button, View
 
62
 
63
 
64
 
65
+ def highlight_diff(before: str, after: str) -> tuple[str, str]:
66
+ matcher = SequenceMatcher(None, before, after)
67
+ for tag, i1, i2, j1, j2 in matcher.get_opcodes():
68
+ if tag != "equal":
69
+ # Bold the changed segments
70
+ before_highlighted = before[:i1] + "**" + before[i1:i2] + "**" + before[i2:]
71
+ after_highlighted = after[:j1] + "**" + after[j1:j2] + "**" + after[j2:]
72
+ return before_highlighted, after_highlighted
73
+ return before, after
74
+
75
+
76
+
77
  @bot.event
78
  async def on_message(message):
79
  try:
 
232
  embed = Embed(color=Color.orange())
233
  embed.set_author(name=f"{before.author} ID: {before.author.id}", icon_url=before.author.avatar.url if before.author.avatar else bot.user.avatar.url)
234
  embed.title = "Message Edited"
235
+ #embed.description = f"**Before:** {before.content or '*(empty message)*'}\n**After:** {after.content or '*(empty message)*'}"
236
+
237
+ # testing
238
+ highlighted_before, highlighted_after = highlight_diff(before.content or "", after.content or "")
239
+ embed.description = f"**Before:** {highlighted_before or '*(empty message)*'}\n**After:** {highlighted_after or '*(empty message)*'}"
240
+
241
  embed.add_field(name="Author Username", value=before.author.name, inline=True)
242
  embed.add_field(name="Channel", value=before.channel.mention, inline=True)
243
  #embed.add_field(name="Message Created On", value=before.created_at.strftime("%Y-%m-%d %H:%M:%S UTC"), inline=True)