nieyuge 2 роки тому
батько
коміт
61a4d85cf0
3 змінених файлів з 62 додано та 10 видалено
  1. 26 0
      src/logic/content/ParseCard.js
  2. 32 10
      src/logic/content/twitter.js
  3. 4 0
      src/manifest.json

+ 26 - 0
src/logic/content/ParseCard.js

@@ -11,6 +11,21 @@ import { getChromeStorage, setChromeStorage } from '@/uilts/chromeExtension.js'
 class ParseCard {
     constructor() {
 
+    }
+    parseFaceBookCard() {
+        let de_net_card = []
+        let arr_article = document.querySelectorAll('div[role="article"]') || []
+        let _html
+        for (let i in arr_article) {
+            _html = arr_article[i].innerHTML || ''
+            if (_html.includes('denetme.net') && !this.isHasIframeByArticle(arr_article[i])) {
+                de_net_card.push({
+                    time: new Date().getTime(),
+                    dom: arr_article[i]
+                })
+            }
+        }
+        return de_net_card
     }
     parseAllDeNetCard() {
         let de_net_card = []
@@ -63,6 +78,17 @@ class ParseCard {
         })
         return json_data
     }
+    parseFacebookCardParmas() {
+        let json_data = []
+        this.parseFaceBookCard().forEach((item) => {
+            let _obj = this.parseCardParmas(item.dom)
+            if (_obj.tweet_Id && _obj.short_url && _obj.dom_card) {
+                _obj.time = item.time
+                json_data.push(_obj)
+            }
+        })
+        return json_data
+    }
     // 获取短链接和渲染卡片数据
     async getCardParmas(card_json_data) {
         let sort_link_data = await getChromeStorage('cardData') || []

+ 32 - 10
src/logic/content/twitter.js

@@ -538,9 +538,17 @@ function onChangePageMain(targetNode) {
 // 2.监听卡片是否可见
 // 3.如果可见了 去找
 
-function setIframeRedPacket() {
+function setIframeRedPacket(type = 'twitter') {
     // 获取所有卡片参数
-    let card_json_data = parseCard.parseAllDeNetCardParmas()
+    let card_json_data
+    switch(type) {
+        case 'facebook':
+            card_json_data = parseCard.parseFacebookCardParmas()
+            break;
+        default:
+            card_json_data = parseCard.parseAllDeNetCardParmas()
+            break;
+    }
     // 过滤出可以请求的短链接
     parseCard.getCardParmas(card_json_data).then((res) => {
         for (let i in res.has_post_Id_card_data) {
@@ -588,22 +596,23 @@ const createIframe = ({ url, tweet_Id }, callback) => {
 // 初始化
 export function init() {
     getDiscordAuthCode();
-    if (window.location.href.indexOf('twitter.com') < 0) {
+    let where = window.location.href.indexOf('twitter.com') < 0 && window.location.href.indexOf('facebook.com') < 0;
+    if (where) {
         return
     }
     twitterPinLogin();
     // 渲染dom
-    let targetNode = null
+    
     let timer = setInterval(() => {
-        targetNode = document.querySelector('main')
-        if (targetNode) {
+        let inTwitter = window.location.href.includes('twitter.com');
+        let inTwitterNode = document.querySelector('main');
+        let inFacebook = window.location.href.includes('facebook.com');
+        let inFacebookNode = document.querySelector('div[role="main"]');
+        if (inTwitter && inTwitterNode) {
             clearInterval(timer)
             setInterval(() => {
-                if (window.location.href.includes('twitter.com)')) {
-                    return
-                }
                 if (!main_observer) {
-                    onChangePageMain(targetNode)
+                    onChangePageMain(inTwitterNode)
                     changeQueueNum(1)
                 }
                 if (queue_num <= 0) {
@@ -613,6 +622,19 @@ export function init() {
                 checkHasDeBtn()
                 changeQueueNum(-1)
             }, 1000)
+        } else if (inFacebook && inFacebookNode) {
+            clearInterval(timer)
+            setInterval(() => {
+                if (!main_observer) {
+                    onChangePageMain(inFacebookNode)
+                    changeQueueNum(1)
+                }
+                if (queue_num <= 0) {
+                    return
+                }
+                setIframeRedPacket('facebook')
+                changeQueueNum(-1)
+            }, 1000)
         }
     }, 1000);
     renderDom();

+ 4 - 0
src/manifest.json

@@ -20,6 +20,8 @@
             "matches": [
                 "https://*.twitter.com/*",
                 "https://twitter.com/*",
+                "https://www.facebook.com/*",
+                "https://facebook.com/*",
                 "*://testh5.denetme.net/*",
                 "*://h5.denetme.net/*",
                 "*://preh5.denetme.net/*"
@@ -33,6 +35,8 @@
     "host_permissions": [
         "*://*.twitter.com/*",
         "*://twitter.com/*",
+        "*://*.facebook.com/*",
+        "*://facebook.com/*",
         "*://testh5.denetme.net/*",
         "*://h5.denetme.net/*",
         "*://preh5.denetme.net/*"