|  | @@ -18,7 +18,7 @@ class ParseCard {
 | 
	
		
			
				|  |  |          let _html
 | 
	
		
			
				|  |  |          for (let i in arr_article) {
 | 
	
		
			
				|  |  |              _html = arr_article[i].innerHTML || ''
 | 
	
		
			
				|  |  | -            if (_html.includes('denetme.net') && !this.isHasIframeByArticle(arr_article[i])) {
 | 
	
		
			
				|  |  | +            if (_html.includes('denetme.net') && !this.isHasIframeByFacebook(arr_article[i])) {
 | 
	
		
			
				|  |  |                  de_net_card.push({
 | 
	
		
			
				|  |  |                      time: new Date().getTime(),
 | 
	
		
			
				|  |  |                      dom: arr_article[i]
 | 
	
	
		
			
				|  | @@ -62,6 +62,43 @@ class ParseCard {
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          return { tweet_Id, short_url, dom_card }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | +    parseFaceBookParmas(dom_card) {
 | 
	
		
			
				|  |  | +        let tweet_Id = ''
 | 
	
		
			
				|  |  | +        let short_url = ''
 | 
	
		
			
				|  |  | +        let a_arr = dom_card.querySelectorAll('a[role="link"]') || []
 | 
	
		
			
				|  |  | +        a_arr = Array.from(a_arr).reverse()
 | 
	
		
			
				|  |  | +        for (let i in a_arr) {
 | 
	
		
			
				|  |  | +            // 获取推特id
 | 
	
		
			
				|  |  | +            if (a_arr[i].href.indexOf('facebook.com') > 0) {
 | 
	
		
			
				|  |  | +                let faceUrl = new URL(a_arr[i]);
 | 
	
		
			
				|  |  | +                let faceSearch = new URLSearchParams(faceUrl.search);
 | 
	
		
			
				|  |  | +                let faceJumpUrl = decodeURIComponent(faceSearch.get('u'));
 | 
	
		
			
				|  |  | +                if (faceJumpUrl !== 'null') {
 | 
	
		
			
				|  |  | +                    let urlArr = new URL(faceJumpUrl);
 | 
	
		
			
				|  |  | +                    let searchArr = new URLSearchParams(urlArr.search);
 | 
	
		
			
				|  |  | +                    if (!tweet_Id) {
 | 
	
		
			
				|  |  | +                        tweet_Id = searchArr.get('tweetId')
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                    if (!short_url) {
 | 
	
		
			
				|  |  | +                        short_url = faceJumpUrl
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            } else {
 | 
	
		
			
				|  |  | +                if (a_arr[i].href.indexOf('denetme.net') > 0 && !tweet_Id) {
 | 
	
		
			
				|  |  | +                    let urlArr = new URL(a_arr[i]);
 | 
	
		
			
				|  |  | +                    let searchArr = new URLSearchParams(urlArr.search);
 | 
	
		
			
				|  |  | +                    tweet_Id = searchArr.get('tweetId')
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                if (a_arr[i].href.indexOf('denetme.net') > 0 && !short_url) {
 | 
	
		
			
				|  |  | +                    short_url = a_arr[i].href
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            if (tweet_Id && short_url) {
 | 
	
		
			
				|  |  | +                break
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        return { tweet_Id, short_url, dom_card }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |      hideCard() {
 | 
	
		
			
				|  |  |          if (dom.querySelector('iframe')) {
 | 
	
		
			
				|  |  |              return
 | 
	
	
		
			
				|  | @@ -81,7 +118,7 @@ class ParseCard {
 | 
	
		
			
				|  |  |      parseFacebookCardParmas() {
 | 
	
		
			
				|  |  |          let json_data = []
 | 
	
		
			
				|  |  |          this.parseFaceBookCard().forEach((item) => {
 | 
	
		
			
				|  |  | -            let _obj = this.parseCardParmas(item.dom)
 | 
	
		
			
				|  |  | +            let _obj = this.parseFaceBookParmas(item.dom)
 | 
	
		
			
				|  |  |              if (_obj.tweet_Id && _obj.short_url && _obj.dom_card) {
 | 
	
		
			
				|  |  |                  _obj.time = item.time
 | 
	
		
			
				|  |  |                  json_data.push(_obj)
 | 
	
	
		
			
				|  | @@ -144,11 +181,14 @@ class ParseCard {
 | 
	
		
			
				|  |  |          return _array
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    createIframe(post_Id, tweet_Id) {
 | 
	
		
			
				|  |  | +    createIframe(post_Id, tweet_Id, if_center = false) {
 | 
	
		
			
				|  |  |          let _iframe = document.createElement('iframe')
 | 
	
		
			
				|  |  |          _iframe.id = post_Id
 | 
	
		
			
				|  |  |          _iframe.src = chrome.runtime.getURL('/iframe/red-packet.html') + `?postId=${post_Id}&tweetId=${tweet_Id}`;
 | 
	
		
			
				|  |  | -        _iframe.style.cssText = 'border: medium none; width:375px;min-height:500px;'
 | 
	
		
			
				|  |  | +        _iframe.style.cssText = 'border:medium none; width:375px; min-height:500px;'
 | 
	
		
			
				|  |  | +        if (if_center) {
 | 
	
		
			
				|  |  | +            _iframe.style.cssText = 'border:medium none; width:375px; min-height:500px; display:block; margin:auto;'
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |          return _iframe
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |      isHasIframeByArticle(dom_card) {
 | 
	
	
		
			
				|  | @@ -200,6 +240,15 @@ class ParseCard {
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          return false
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | +    isHasIframeByFacebook(dom_card) {
 | 
	
		
			
				|  |  | +        if (!dom_card || !dom_card.parentElement) {
 | 
	
		
			
				|  |  | +            return
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (dom_card.querySelector('iframe')) {
 | 
	
		
			
				|  |  | +            return true
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        return false
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |      replaceDOMRedPacket({ dom_card, tweet_Id, post_Id, time, short_url }) {
 | 
	
		
			
				|  |  |          if (!dom_card || !dom_card.parentElement) {
 | 
	
		
			
				|  |  |              return
 | 
	
	
		
			
				|  | @@ -234,5 +283,24 @@ class ParseCard {
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | +    replaceFacebookPacket({ dom_card, tweet_Id, short_url }) {
 | 
	
		
			
				|  |  | +        if (!dom_card || !dom_card.parentElement) {
 | 
	
		
			
				|  |  | +            return
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        let dom = dom_card.querySelector('div[id^=jsc_c_][class=l9j0dhe7]')
 | 
	
		
			
				|  |  | +            dom.style = 'min-height:500px'
 | 
	
		
			
				|  |  | +        if (dom) {
 | 
	
		
			
				|  |  | +            for (let i = 0; i < dom.childNodes.length; i++) {
 | 
	
		
			
				|  |  | +                if (dom.children[i].tagName.toLowerCase() != 'iframe') {
 | 
	
		
			
				|  |  | +                    dom.children[i].style.display = 'none'
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            let originUrl = new URL(short_url);
 | 
	
		
			
				|  |  | +            let post_Id = originUrl.pathname.slice(1);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            dom.appendChild(this.createIframe(post_Id, tweet_Id, true))
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  export default new ParseCard()
 |