filter self-interactions: add Mastodon + ActivityPub to isSelf()
This commit is contained in:
@@ -134,25 +134,27 @@ function postInteractions(targetUrl) {
|
|||||||
const seen = new Set();
|
const seen = new Set();
|
||||||
const merged = [];
|
const merged = [];
|
||||||
|
|
||||||
// Skip self-interactions from own Bluesky account
|
const isSelf = (item) => {
|
||||||
const isSelfBsky = (item) => {
|
const u = ((item['wm-source'] || item.url) || '').toLowerCase();
|
||||||
const u = (item.url || '').toLowerCase();
|
|
||||||
const a = ((item.author && item.author.url) || '').toLowerCase();
|
const a = ((item.author && item.author.url) || '').toLowerCase();
|
||||||
return u.includes('did:plc:g4utqyolpyb5zpwwodmm3hht') ||
|
return u.includes('did:plc:g4utqyolpyb5zpwwodmm3hht') ||
|
||||||
u.includes('bsky.app/profile/svemagie.bsky.social') ||
|
u.includes('bsky.app/profile/svemagie.bsky.social') ||
|
||||||
a.includes('did:plc:g4utqyolpyb5zpwwodmm3hht') ||
|
a.includes('did:plc:g4utqyolpyb5zpwwodmm3hht') ||
|
||||||
a.includes('bsky.app/profile/svemagie.bsky.social');
|
a.includes('bsky.app/profile/svemagie.bsky.social') ||
|
||||||
|
a.includes('indieweb.social/svemagie') ||
|
||||||
|
a.includes('indieweb.social/@svemagie') ||
|
||||||
|
a.includes('svemagie.net/activitypub/users/svemagie');
|
||||||
};
|
};
|
||||||
|
|
||||||
for (const item of convItems) {
|
for (const item of convItems) {
|
||||||
if (isSelfBsky(item)) continue;
|
if (isSelf(item)) continue;
|
||||||
const key = item['wm-id'] || item.url;
|
const key = item['wm-id'] || item.url;
|
||||||
if (key && !seen.has(key)) { seen.add(key); merged.push(item); }
|
if (key && !seen.has(key)) { seen.add(key); merged.push(item); }
|
||||||
}
|
}
|
||||||
|
|
||||||
const convUrls = new Set(convItems.map(c => c.url).filter(Boolean));
|
const convUrls = new Set(convItems.map(c => c.url).filter(Boolean));
|
||||||
for (const item of wmItems) {
|
for (const item of wmItems) {
|
||||||
if (isSelfBsky(item)) continue;
|
if (isSelf(item)) continue;
|
||||||
const key = item['wm-id'];
|
const key = item['wm-id'];
|
||||||
if (seen.has(key) || (item.url && convUrls.has(item.url))) continue;
|
if (seen.has(key) || (item.url && convUrls.has(item.url))) continue;
|
||||||
seen.add(key);
|
seen.add(key);
|
||||||
|
|||||||
+6
-3
@@ -481,7 +481,7 @@ function interactionsApp() {
|
|||||||
this.notConfigured = false;
|
this.notConfigured = false;
|
||||||
|
|
||||||
const merged = this.mergeAndDeduplicate(allWm, allConv)
|
const merged = this.mergeAndDeduplicate(allWm, allConv)
|
||||||
.filter(wm => !wm.is_owner && !this.isSelfBsky(wm));
|
.filter(wm => !wm.is_owner && !this.isSelf(wm));
|
||||||
|
|
||||||
merged.sort((a, b) => {
|
merged.sort((a, b) => {
|
||||||
const dateA = new Date(a.published || a['wm-received'] || 0);
|
const dateA = new Date(a.published || a['wm-received'] || 0);
|
||||||
@@ -499,13 +499,16 @@ function interactionsApp() {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
isSelfBsky(wm) {
|
isSelf(wm) {
|
||||||
const u = (wm['wm-source'] || '').toLowerCase();
|
const u = (wm['wm-source'] || '').toLowerCase();
|
||||||
const a = (wm.author?.url || '').toLowerCase();
|
const a = (wm.author?.url || '').toLowerCase();
|
||||||
return u.includes('bsky.app/profile/svemagie.bsky.social') ||
|
return u.includes('bsky.app/profile/svemagie.bsky.social') ||
|
||||||
u.includes('did:plc:g4utqyolpyb5zpwwodmm3hht') ||
|
u.includes('did:plc:g4utqyolpyb5zpwwodmm3hht') ||
|
||||||
a.includes('bsky.app/profile/svemagie.bsky.social') ||
|
a.includes('bsky.app/profile/svemagie.bsky.social') ||
|
||||||
a.includes('did:plc:g4utqyolpyb5zpwwodmm3hht');
|
a.includes('did:plc:g4utqyolpyb5zpwwodmm3hht') ||
|
||||||
|
a.includes('indieweb.social/svemagie') ||
|
||||||
|
a.includes('indieweb.social/@svemagie') ||
|
||||||
|
a.includes('svemagie.net/activitypub/users/svemagie');
|
||||||
},
|
},
|
||||||
|
|
||||||
detectPlatform(item) {
|
detectPlatform(item) {
|
||||||
|
|||||||
Reference in New Issue
Block a user