summary refs log tree commit diff
path: root/0001-fox.patch
blob: ffda811e85cd32922f0bc37b97fc7d0107e60357 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
From 3ae6cca154ced7cbfe74abb03d5a633461bc5c63 Mon Sep 17 00:00:00 2001
From: MathMan05 <mathmanrm@gmail.com>
Date: Sun, 21 Sep 2025 19:14:11 -0500
Subject: [PATCH] fox

---
 src/d2m/converters/pins-to-list.js | 47 +++++++++++++++++-------------
 1 file changed, 27 insertions(+), 20 deletions(-)

diff --git a/src/d2m/converters/pins-to-list.js b/src/d2m/converters/pins-to-list.js
index 3e890ea..a4b7fe7 100644
--- a/src/d2m/converters/pins-to-list.js
+++ b/src/d2m/converters/pins-to-list.js
@@ -1,31 +1,38 @@
 // @ts-check
 
-const {select} = require("../../passthrough")
+const { select } = require("../../passthrough");
 
 /**
- * @param {import("discord-api-types/v10").RESTGetAPIChannelPinsResult} pins
+ * @param {import("discord-api-types/v10").RESTGetAPIChannelMessagesPinsResult} pins
  * @param {{"m.room.pinned_events/"?: {pinned?: string[]}}} kstate
  */
 function pinsToList(pins, kstate) {
-	let alreadyPinned = kstate["m.room.pinned_events/"]?.pinned || []
+  let alreadyPinned = kstate["m.room.pinned_events/"]?.pinned || [];
 
-	// If any of the already pinned messages are bridged messages then remove them from the already pinned list.
-	//   * If a bridged message is still pinned then it'll be added back in the next step.
-	//   * If a bridged message was unpinned from Discord-side then it'll be unpinned from our side due to this step.
-	//   * Matrix-only unbridged messages that are pinned will remain pinned.
-	alreadyPinned = alreadyPinned.filter(event_id => {
-		const messageID = select("event_message", "message_id", {event_id}).pluck().get()
-		return !messageID || pins.find(m => m.id === messageID) // if it is bridged then remove it from the filter
-	})
+  // If any of the already pinned messages are bridged messages then remove them from the already pinned list.
+  //   * If a bridged message is still pinned then it'll be added back in the next step.
+  //   * If a bridged message was unpinned from Discord-side then it'll be unpinned from our side due to this step.
+  //   * Matrix-only unbridged messages that are pinned will remain pinned.
+  alreadyPinned = alreadyPinned.filter((event_id) => {
+    const messageID = select("event_message", "message_id", { event_id })
+      .pluck()
+      .get();
+    return !messageID || pins.items.find((m) => m.message.id === messageID); // if it is bridged then remove it from the filter
+  });
 
-	/** @type {string[]} */
-	const result = []
-	for (const message of pins) {
-		const eventID = select("event_message", "event_id", {message_id: message.id, part: 0}).pluck().get()
-		if (eventID && !alreadyPinned.includes(eventID)) result.push(eventID)
-	}
-	result.reverse()
-	return alreadyPinned.concat(result)
+  /** @type {string[]} */
+  const result = [];
+  for (const { message } of pins.items) {
+    const eventID = select("event_message", "event_id", {
+      message_id: message.id,
+      part: 0,
+    })
+      .pluck()
+      .get();
+    if (eventID && !alreadyPinned.includes(eventID)) result.push(eventID);
+  }
+  result.reverse();
+  return alreadyPinned.concat(result);
 }
 
-module.exports.pinsToList = pinsToList
+module.exports.pinsToList = pinsToList;
-- 
2.51.0

ssageID = select("event_message", "message_id", { event_id })
+      .pluck()
+      .get();
+    return !messageID || pins.items.find((m) => m.message.id === messageID); // if it is bridged then remove it from the filter
+  });
 
-	/** @type {string[]} */
-	const result = []
-	for (const message of pins) {
-		const eventID = select("event_message", "event_id", {message_id: message.id, part: 0}).pluck().get()
-		if (eventID && !alreadyPinned.includes(eventID)) result.push(eventID)
-	}
-	result.reverse()
-	return alreadyPinned.concat(result)
+  /** @type {string[]} */
+  const result = [];
+  for (const { message } of pins.items) {
+    const eventID = select("event_message", "event_id", {
+      message_id: message.id,
+      part: 0,
+    })
+      .pluck()
+      .get();
+    if (eventID && !alreadyPinned.includes(eventID)) result.push(eventID);
+  }
+  result.reverse();
+  return alreadyPinned.concat