lunarflu HF Staff commited on
Commit
7ec05b6
·
verified ·
1 Parent(s): 533935c

revert; trying diffs again

Browse files
Files changed (1) hide show
  1. app.py +12 -22
app.py CHANGED
@@ -17,7 +17,6 @@ from pytz import timezone # for times
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
@@ -61,22 +60,10 @@ def extract_tenor_gif_url(content):
61
  return None
62
 
63
 
64
- #testing
65
- def escape_markdown(text: str) -> str:
66
- # Escape asterisks, underscores, backticks, and pipes
67
- return re.sub(r"([*_`|])", r"\\\1", text)
68
-
69
- def highlight_diff(before: str, after: str) -> tuple[str, str]:
70
- before_escaped = escape_markdown(before)
71
- after_escaped = escape_markdown(after)
72
-
73
- matcher = SequenceMatcher(None, before_escaped, after_escaped)
74
- for tag, i1, i2, j1, j2 in matcher.get_opcodes():
75
- if tag != "equal":
76
- before_highlighted = before_escaped[:i1] + "**" + before_escaped[i1:i2] + "**" + before_escaped[i2:]
77
- after_highlighted = after_escaped[:j1] + "**" + after_escaped[j1:j2] + "**" + after_escaped[j2:]
78
- return before_highlighted, after_highlighted
79
- return before_escaped, after_escaped
80
 
81
 
82
 
@@ -235,15 +222,17 @@ async def on_message_edit(before, after):
235
  return
236
 
237
  if before.content != after.content:
 
 
 
238
  embed = Embed(color=Color.orange())
239
  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)
240
  embed.title = "Message Edited"
241
  #embed.description = f"**Before:** {before.content or '*(empty message)*'}\n**After:** {after.content or '*(empty message)*'}"
 
 
242
 
243
- # testing
244
- highlighted_before, highlighted_after = highlight_diff(before.content or "", after.content or "")
245
- embed.description = f"**Before:** {highlighted_before or '*(empty message)*'}\n**After:** {highlighted_after or '*(empty message)*'}"
246
-
247
  embed.add_field(name="Author Username", value=before.author.name, inline=True)
248
  embed.add_field(name="Channel", value=before.channel.mention, inline=True)
249
  #embed.add_field(name="Message Created On", value=before.created_at.strftime("%Y-%m-%d %H:%M:%S UTC"), inline=True)
@@ -256,6 +245,7 @@ async def on_message_edit(before, after):
256
  #embed.set_footer(text=f"{datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S UTC')}")
257
  embed.set_footer(text=f"{convert_to_timezone(datetime.utcnow(), zurich_tz)}")
258
  await bot.log_channel.send(embed=embed)
 
259
 
260
  except Exception as e:
261
  print(f"on_message_edit Error: {e}")
@@ -643,4 +633,4 @@ with gr.Blocks() as demo:
643
  r"""
644
  # discord bot
645
  """)
646
- demo.launch()
 
17
  import asyncio # check if used
18
  import logging
19
  import urllib.parse
 
20
 
21
 
22
  from discord.ui import Button, View
 
60
  return None
61
 
62
 
63
+ def generate_diff(before, after):
64
+ # Only show changed lines
65
+ diff_lines = list(ndiff([before], [after]))
66
+ return "```diff\n" + "\n".join(diff_lines) + "\n```"
 
 
 
 
 
 
 
 
 
 
 
 
67
 
68
 
69
 
 
222
  return
223
 
224
  if before.content != after.content:
225
+ diff_text = generate_diff(before.content or "", after.content or "")
226
+ diff_msg = await bot.log_channel.send(diff_text) # Step 3: this shows colors
227
+
228
  embed = Embed(color=Color.orange())
229
  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)
230
  embed.title = "Message Edited"
231
  #embed.description = f"**Before:** {before.content or '*(empty message)*'}\n**After:** {after.content or '*(empty message)*'}"
232
+ embed.description = "See diff below:"
233
+ embed.add_field(name="Diff Reference", value=f"[Jump to diff]({diff_msg.jump_url})", inline=False)
234
 
235
+
 
 
 
236
  embed.add_field(name="Author Username", value=before.author.name, inline=True)
237
  embed.add_field(name="Channel", value=before.channel.mention, inline=True)
238
  #embed.add_field(name="Message Created On", value=before.created_at.strftime("%Y-%m-%d %H:%M:%S UTC"), inline=True)
 
245
  #embed.set_footer(text=f"{datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S UTC')}")
246
  embed.set_footer(text=f"{convert_to_timezone(datetime.utcnow(), zurich_tz)}")
247
  await bot.log_channel.send(embed=embed)
248
+
249
 
250
  except Exception as e:
251
  print(f"on_message_edit Error: {e}")
 
633
  r"""
634
  # discord bot
635
  """)
636
+ demo.launch()