Browse Source

Merge branch 'bug-has-mask-6.2' into dev_1.0.7

zhangwei 2 years ago
parent
commit
970645ec5d
1 changed files with 42 additions and 11 deletions
  1. 42 11
      src/logic/content/ParseCard.js

+ 42 - 11
src/logic/content/ParseCard.js

@@ -27,18 +27,49 @@ class ParseCard {
         }
         return de_net_card
     }
+    // 兼容mask
+    compatibleMask(article) {
+        let has_denet = false
+        try {
+            let arr_span = article.querySelectorAll('span') || []
+            let arr_shadow = []
+            arr_span.forEach((item) => {
+                if (item.shadowRoot) {
+                    arr_shadow.push(item.shadowRoot)
+                }
+            })
+            let item
+            for (let i in arr_shadow) {
+                item = arr_shadow[i].childNodes
+                if (item) {
+                    for (let j in item) {
+                        if (item[j].innerText && item[j].innerText.includes('#DeNet')) {
+                            has_denet = true
+                            break
+                        }
+                    }
+                }
+            }
+        } catch (error) {
+        }
+        // 是否有#DeNet
+        return has_denet
+    }
     parseAllDeNetCard() {
         let de_net_card = []
-        let arr_article = document.querySelectorAll('article') || []
-        let _txt
-        for (let i in arr_article) {
-            _txt = arr_article[i].innerText || ''
-            if (_txt.includes('#DeNet') && !this.isHasIframeByArticle(arr_article[i])) {
-                de_net_card.push({
-                    time: new Date().getTime(),
-                    dom: arr_article[i]
-                })
+        try {
+            let arr_article = document.querySelectorAll('article') || []
+            let _txt
+            for (let i in arr_article) {
+                _txt = arr_article[i].innerText || ''
+                if (_txt.includes('#DeNet') || this.compatibleMask(arr_article[i]) && !this.isHasIframeByArticle(arr_article[i])) {
+                    de_net_card.push({
+                        time: new Date().getTime(),
+                        dom: arr_article[i]
+                    })
+                }
             }
+        } catch (error) {
         }
         return de_net_card
     }
@@ -78,7 +109,7 @@ class ParseCard {
                     let urlArr = new URL(faceJumpUrl);
                     let searchArr = new URLSearchParams(urlArr.search);
                     let deUrlParams = searchArr.get('deUrlParams') || '{}';
-                        deUrlParams = JSON.parse(deUrlParams);
+                    deUrlParams = JSON.parse(deUrlParams);
                     if (!tweet_Id) {
                         tweet_Id = deUrlParams.tweetId;
                     }
@@ -94,7 +125,7 @@ class ParseCard {
                     let urlArr = new URL(a_arr[i].href);
                     let searchArr = new URLSearchParams(urlArr.search);
                     let deUrlParams = searchArr.get('deUrlParams') || '{}';
-                        deUrlParams = JSON.parse(deUrlParams);
+                    deUrlParams = JSON.parse(deUrlParams);
                     if (!tweet_Id) {
                         tweet_Id = deUrlParams.tweetId;
                     }