$ git clone https://www.wlchat.ion.nu/wlchat.git
commit 0980daa8b7a50709f1729745ee622a54e61310c2
Author: Alicia <...>
Date:   Fri Oct 24 20:40:34 2025 +0200

    Fixed handling of pinned messages

diff --git a/wlchat.py b/wlchat.py
index 3928667..590d2e7 100644
--- a/wlchat.py
+++ b/wlchat.py
@@ -177,7 +177,12 @@ def joinchat(domain, browser, browserprofile, nick, conn, ui, uictx, authmethod=
       ui['msg'](uictx, chan, nick, data)
     elif(msg.startswith('BROADCAST ')):
       data=json.loads(msg[10:])
-      ui['broadcast'](uictx, chan, nick, data)
+      if(data.get('data').startswith('MSGPIN ') and ui.get('topic')):
+        ui['topic'](uictx, chan, nick, data['data'][7:])
+      elif(data.get('data').startswith('whom ') and data['data'].endswith(' unpin') and ui.get('topic')):
+        ui['topic'](uictx, chan, nick, '')
+      else:
+        ui['broadcast'](uictx, chan, nick, data)
     elif(msg.startswith('PRIVMSG ')):
       data=json.loads(msg[8:])
       ui['privmsg'](uictx, chan, nick, data)
@@ -219,8 +224,6 @@ def joinchat(domain, browser, browserprofile, nick, conn, ui, uictx, authmethod=
     elif(msg.startswith('UNMUTE ')):
       data=json.loads(msg[7:])
       ui['notice'](uictx, chan, nick, data['nick']+' unmutes '+data['data'])
-    elif(msg.startswith('MSGPIN ') and ui.get('topic')):
-      ui['topic'](uictx, chan, nick, msg[7:])
     else:
       print('Unknown message: '+msg)
   def onclose(x,y,z):