]> cat aescling's git repositories - mastodon.git/commitdiff
Completely hide toots matched by “irreversible” filters even if they got to the clien...
authorThibG <thib@sitedethib.com>
Tue, 18 Jun 2019 16:23:08 +0000 (18:23 +0200)
committerEugen Rochko <eugen@zeonfederated.com>
Tue, 18 Jun 2019 16:23:08 +0000 (18:23 +0200)
Fixes #11090

app/javascript/mastodon/actions/notifications.js
app/javascript/mastodon/selectors/index.js

index b0861fc6bf88eb013f48ded18f8bbc12ef6d8681..88788eec9f2d0a3a327db522011462dfca82039f 100644 (file)
@@ -48,9 +48,14 @@ export function updateNotifications(notification, intlMessages, intlLocale) {
     let filtered = false;
 
     if (notification.type === 'mention') {
+      const dropRegex   = regexFromFilters(filters.filter(filter => filter.get('irreversible')));
       const regex       = regexFromFilters(filters);
       const searchIndex = notification.status.spoiler_text + '\n' + unescapeHTML(notification.status.content);
 
+      if (dropRegex && dropRegex.test(searchIndex)) {
+        return;
+      }
+
       filtered = regex && regex.test(searchIndex);
     }
 
index 70f08a8eb5e0dd610cbc54bb69a07d781b216872..ff6c7fdfb3fabefa317d0e51fa994d0751102ae6 100644 (file)
@@ -84,8 +84,13 @@ export const makeGetStatus = () => {
         statusReblog = null;
       }
 
-      const regex    = (accountReblog || accountBase).get('id') !== me && regexFromFilters(filters);
-      const filtered = regex && regex.test(statusBase.get('reblog') ? statusReblog.get('search_index') : statusBase.get('search_index'));
+      const dropRegex = (accountReblog || accountBase).get('id') !== me && regexFromFilters(filters.filter(filter => filter.get('irreversible')));
+      if (dropRegex && dropRegex.test(statusBase.get('reblog') ? statusReblog.get('search_index') : statusBase.get('search_index'))) {
+        return null;
+      }
+
+      const regex     = (accountReblog || accountBase).get('id') !== me && regexFromFilters(filters);
+      const filtered  = regex && regex.test(statusBase.get('reblog') ? statusReblog.get('search_index') : statusBase.get('search_index'));
 
       return statusBase.withMutations(map => {
         map.set('reblog', statusReblog);