فهرست منبع

[edit][短链接识别错误问题]

zhangwei 2 سال پیش
والد
کامیت
871d1c32d4
2فایلهای تغییر یافته به همراه13 افزوده شده و 6 حذف شده
  1. 12 6
      src/logic/content/ParseCard.js
  2. 1 0
      src/logic/content/twitter.js

+ 12 - 6
src/logic/content/ParseCard.js

@@ -6,10 +6,12 @@ class ParseCard {
     }
     parseAllDeNetCard() {
         let de_net_card = []
-        let a_arr = document.querySelectorAll('a') || []
-        for (let i in a_arr) {
-            if (a_arr[i].innerText == '#DeNet') {
-                de_net_card.push(a_arr[i].closest('article'))
+        let arr_article = document.querySelectorAll('article') || []
+        let _txt
+        for(let i in  arr_article){
+            _txt = arr_article[i].innerText || ''
+            if(_txt.includes('#DeNet')){
+                de_net_card.push((arr_article[i]))
             }
         }
         return de_net_card
@@ -18,11 +20,12 @@ class ParseCard {
         let tweet_Id = ''
         let short_url = ''
         let a_arr = dom_card.querySelectorAll('a') || []
-
+        a_arr = Array.from(a_arr).reverse()
         for (let i in a_arr) {
             // 获取推特id
             if (a_arr[i].href && a_arr[i].href.indexOf('/status/') > 0 && !tweet_Id) {
                 tweet_Id = a_arr[i].href.split('/status/')[1] || ''
+                tweet_Id = tweet_Id.split('/')[0]
             }
             if (a_arr[i].href && a_arr[i].href.includes('https://t.co') && !short_url) {
                 short_url = a_arr[i].href
@@ -41,7 +44,10 @@ class ParseCard {
     parseAllDeNetCardParmas() {
         let json_data = []
         this.parseAllDeNetCard().forEach((item) => {
-            json_data.push(this.parseCardParmas(item))
+            let _obj = this.parseCardParmas(item)
+            if(_obj.tweet_Id && _obj.short_url && _obj.dom_card){
+                json_data.push(_obj)
+            }
         })
         return json_data
     }

+ 1 - 0
src/logic/content/twitter.js

@@ -532,6 +532,7 @@ function setIframeRedPacket(port) {
     let card_json_data = parseCard.parseAllDeNetCardParmas()
     // 过滤出可以请求的短链接
     parseCard.getCardParmas(card_json_data).then((res) => {
+        // debugger
         for (let i in res.has_post_Id_card_data) {
             parseCard.replaceDOMRedPacket(res.has_post_Id_card_data[i])
         }