| 
														
															@@ -1,5 +1,5 @@ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import { getChromeStorage, setChromeStorage } from '@/uilts/chromeExtension.js' 
														 | 
														
														 | 
														
															 import { getChromeStorage, setChromeStorage } from '@/uilts/chromeExtension.js' 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-import { throttle, getQueryString } from '@/uilts/help' 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+import { throttle, getQueryString, getCookie } from '@/uilts/help' 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import { discordAuthRedirectUri } from '@/http/configAPI' 
														 | 
														
														 | 
														
															 import { discordAuthRedirectUri } from '@/http/configAPI' 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import { reportSrcPublishEvent } from '@/http/publishApi' 
														 | 
														
														 | 
														
															 import { reportSrcPublishEvent } from '@/http/publishApi' 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import Report from "@/log-center/log" 
														 | 
														
														 | 
														
															 import Report from "@/log-center/log" 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -75,7 +75,7 @@ export function hideIframeHandler() { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 export function showTwitterPublishDialogHandler(publishRes) { 
														 | 
														
														 | 
														
															 export function showTwitterPublishDialogHandler(publishRes) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     let bigBtn = document.querySelector('a[data-testid="SideNav_NewTweet_Button"]'); 
														 | 
														
														 | 
														
															     let bigBtn = document.querySelector('a[data-testid="SideNav_NewTweet_Button"]'); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    if(bigBtn) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    if (bigBtn) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         bigBtn.click(); 
														 | 
														
														 | 
														
															         bigBtn.click(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } else { 
														 | 
														
														 | 
														
															     } else { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         let smallBtn = document.querySelector('a[href="/compose/tweet"]') 
														 | 
														
														 | 
														
															         let smallBtn = document.querySelector('a[href="/compose/tweet"]') 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -179,8 +179,8 @@ function _publishTweetEvent(params, cb) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 function checkIsShowReSend(dom, params) { 
														 | 
														
														 | 
														
															 function checkIsShowReSend(dom, params) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     let str = dom.querySelector('div[data-contents="true"]').innerHTML; 
														 | 
														
														 | 
														
															     let str = dom.querySelector('div[data-contents="true"]').innerHTML; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    if(str.indexOf('#DeNet') < 0 || str.indexOf(params.postId) < 0) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        noticeBindTweet({postId: params.postId, taskLuckdropId: ''}); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    if (str.indexOf('#DeNet') < 0 || str.indexOf(params.postId) < 0) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        noticeBindTweet({ postId: params.postId, taskLuckdropId: '' }); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -296,11 +296,11 @@ function _addIframe() { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-function addPublishTipsIframe({srcContent}) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+function addPublishTipsIframe({ srcContent }) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     setTimeout(() => { 
														 | 
														
														 | 
														
															     setTimeout(() => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         let dialog = document.querySelector('div[role="dialog"]').querySelector('div[role="dialog"]') 
														 | 
														
														 | 
														
															         let dialog = document.querySelector('div[role="dialog"]').querySelector('div[role="dialog"]') 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        if(dialog) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        if (dialog) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             let right = dialog.offsetLeft - 15 - 266, top = window.innerHeight * 0.05 + dialog.offsetHeight - 60 - 160; 
														 | 
														
														 | 
														
															             let right = dialog.offsetLeft - 15 - 266, top = window.innerHeight * 0.05 + dialog.offsetHeight - 60 - 160; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															             let iframe = document.createElement('iframe'); 
														 | 
														
														 | 
														
															             let iframe = document.createElement('iframe'); 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -308,7 +308,7 @@ function addPublishTipsIframe({srcContent}) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             iframe.src = chrome.runtime.getURL('/iframe/publish-tips.html'); 
														 | 
														
														 | 
														
															             iframe.src = chrome.runtime.getURL('/iframe/publish-tips.html'); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             iframe.style.cssText = `border: medium none; width:266px;min-height:178px;position: fixed; right: ${right}px; top: ${top}px;` 
														 | 
														
														 | 
														
															             iframe.style.cssText = `border: medium none; width:266px;min-height:178px;position: fixed; right: ${right}px; top: ${top}px;` 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             let iframeContent = document.getElementById('de-publish-tips'); 
														 | 
														
														 | 
														
															             let iframeContent = document.getElementById('de-publish-tips'); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            if(!iframeContent) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            if (!iframeContent) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 dialog.appendChild(iframe) 
														 | 
														
														 | 
														
															                 dialog.appendChild(iframe) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             } 
														 | 
														
														 | 
														
															             } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         } 
														 | 
														
														 | 
														
															         } 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -321,14 +321,14 @@ export function noticeBindTweet(params) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     iframe.src = chrome.runtime.getURL('/iframe/bind-tweet.html') + `?params=${JSON.stringify(params)}`; 
														 | 
														
														 | 
														
															     iframe.src = chrome.runtime.getURL('/iframe/bind-tweet.html') + `?params=${JSON.stringify(params)}`; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     iframe.style.cssText = `border: medium none; width:400px;min-height:313px;position: fixed; right: 16px; top: 16px;` 
														 | 
														
														 | 
														
															     iframe.style.cssText = `border: medium none; width:400px;min-height:313px;position: fixed; right: 16px; top: 16px;` 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     let iframeContent = document.getElementById('de-notice-bind-tweet'); 
														 | 
														
														 | 
														
															     let iframeContent = document.getElementById('de-notice-bind-tweet'); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    if(!iframeContent) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    if (!iframeContent) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         document.querySelector('body').appendChild(iframe) 
														 | 
														
														 | 
														
															         document.querySelector('body').appendChild(iframe) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 export function hideNoticeBindTweet() { 
														 | 
														
														 | 
														
															 export function hideNoticeBindTweet() { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     let iframeContent = document.getElementById('de-notice-bind-tweet'); 
														 | 
														
														 | 
														
															     let iframeContent = document.getElementById('de-notice-bind-tweet'); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    if(iframeContent) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    if (iframeContent) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         document.querySelector('body').removeChild(iframeContent) 
														 | 
														
														 | 
														
															         document.querySelector('body').removeChild(iframeContent) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -599,7 +599,7 @@ function onChangePageMain(targetNode) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 function setIframeRedPacket(type = 'twitter') { 
														 | 
														
														 | 
														
															 function setIframeRedPacket(type = 'twitter') { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     // 获取所有卡片参数 
														 | 
														
														 | 
														
															     // 获取所有卡片参数 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     let card_json_data 
														 | 
														
														 | 
														
															     let card_json_data 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    switch(type) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    switch (type) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         case 'facebook': 
														 | 
														
														 | 
														
															         case 'facebook': 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             card_json_data = parseCard.parseFacebookCardParmas() 
														 | 
														
														 | 
														
															             card_json_data = parseCard.parseFacebookCardParmas() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             for (let i in card_json_data) { 
														 | 
														
														 | 
														
															             for (let i in card_json_data) { 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -663,7 +663,7 @@ export function init() { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     twitterPinLogin(); 
														 | 
														
														 | 
														
															     twitterPinLogin(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     // 渲染dom 
														 | 
														
														 | 
														
															     // 渲染dom 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-     
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     let timer = setInterval(() => { 
														 | 
														
														 | 
														
															     let timer = setInterval(() => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         let inTwitter = window.location.href.includes('twitter.com'); 
														 | 
														
														 | 
														
															         let inTwitter = window.location.href.includes('twitter.com'); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         let inTwitterNode = document.querySelector('main'); 
														 | 
														
														 | 
														
															         let inTwitterNode = document.querySelector('main'); 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -721,13 +721,13 @@ export function init() { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 export function facebookReplyTweet(params) { 
														 | 
														
														 | 
														
															 export function facebookReplyTweet(params) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    if(window.location.origin.indexOf('twitter.com')) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    if (window.location.origin.indexOf('twitter.com')) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         const urlParams = new URLSearchParams(window.location.search); 
														 | 
														
														 | 
														
															         const urlParams = new URLSearchParams(window.location.search); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         const actionType = urlParams.get('actionType'); 
														 | 
														
														 | 
														
															         const actionType = urlParams.get('actionType'); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         let deReplyParams = urlParams.get('deReplyParams') || '{}'; 
														 | 
														
														 | 
														
															         let deReplyParams = urlParams.get('deReplyParams') || '{}'; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         deReplyParams = JSON.parse(deReplyParams); 
														 | 
														
														 | 
														
															         deReplyParams = JSON.parse(deReplyParams); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         if (actionType == 'denetFacebookToTwitterReply') { 
														 | 
														
														 | 
														
															         if (actionType == 'denetFacebookToTwitterReply') { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            if(params.postId == deReplyParams.postId) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            if (params.postId == deReplyParams.postId) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 let iframe = document.getElementById(params.postId); 
														 | 
														
														 | 
														
															                 let iframe = document.getElementById(params.postId); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 iframe.contentWindow.postMessage({ actionType: 'CONTENT_RED_PACKET_FACEBOOK_REPLY', data: deReplyParams }, '*'); 
														 | 
														
														 | 
														
															                 iframe.contentWindow.postMessage({ actionType: 'CONTENT_RED_PACKET_FACEBOOK_REPLY', data: deReplyParams }, '*'); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             } 
														 | 
														
														 | 
														
															             } 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -737,33 +737,33 @@ export function facebookReplyTweet(params) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 export function replyHandle(params) { 
														 | 
														
														 | 
														
															 export function replyHandle(params) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     let iframe = window.parent.document.getElementById(params.postId); 
														 | 
														
														 | 
														
															     let iframe = window.parent.document.getElementById(params.postId); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    let replyBtn = iframe.parentNode.parentNode.querySelector('div[data-testid="reply"]') ||  
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    iframe.parentNode.parentNode.parentNode.querySelector('div[data-testid="reply"]'); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    if(replyBtn) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    let replyBtn = iframe.parentNode.parentNode.querySelector('div[data-testid="reply"]') || 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        iframe.parentNode.parentNode.parentNode.querySelector('div[data-testid="reply"]'); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    if (replyBtn) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         replyBtn.click(); 
														 | 
														
														 | 
														
															         replyBtn.click(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															     setTimeout(() => { 
														 | 
														
														 | 
														
															     setTimeout(() => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         let dialog = document.querySelector('div[role="dialog"]'); 
														 | 
														
														 | 
														
															         let dialog = document.querySelector('div[role="dialog"]'); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        if(dialog) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        if (dialog) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             let replyBtn = dialog.querySelector('div[data-testid="toolBar"]').querySelector('div[data-testid="tweetButton"]'); 
														 | 
														
														 | 
														
															             let replyBtn = dialog.querySelector('div[data-testid="toolBar"]').querySelector('div[data-testid="tweetButton"]'); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            replyBtn.addEventListener('click', function() { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            replyBtn.addEventListener('click', function () { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 let eleList = dialog.querySelector('div[contenteditable="true"]').querySelectorAll('span[data-text="true"]'); 
														 | 
														
														 | 
														
															                 let eleList = dialog.querySelector('div[contenteditable="true"]').querySelectorAll('span[data-text="true"]'); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                if(eleList && eleList.length) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                if (eleList && eleList.length) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     let atList = []; 
														 | 
														
														 | 
														
															                     let atList = []; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    for(let i = 0; i < eleList.length; i++) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    for (let i = 0; i < eleList.length; i++) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         let item = eleList[i]; 
														 | 
														
														 | 
														
															                         let item = eleList[i]; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         // 是否有中文 
														 | 
														
														 | 
														
															                         // 是否有中文 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        let reg = /[\u4E00-\u9FA5]|[\uFE30-\uFFA0]/g;   
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        let reg = /[\u4E00-\u9FA5]|[\uFE30-\uFFA0]/g; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        if(item && item.innerText.startsWith('@') && !reg.test(item.innerText)) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        if (item && item.innerText.startsWith('@') && !reg.test(item.innerText)) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                             atList.push({ 
														 | 
														
														 | 
														
															                             atList.push({ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                                 text: item.innerText 
														 | 
														
														 | 
														
															                                 text: item.innerText 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                             }) 
														 | 
														
														 | 
														
															                             }) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         } 
														 | 
														
														 | 
														
															                         } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     } 
														 | 
														
														 | 
														
															                     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    if(atList.length >= 3) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    if (atList.length >= 3) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         fetchAddFinishEvent({ 
														 | 
														
														 | 
														
															                         fetchAddFinishEvent({ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                             eventType: params.type, 
														 | 
														
														 | 
														
															                             eventType: params.type, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                             luckdropId: params.taskLuckdropId 
														 | 
														
														 | 
														
															                             luckdropId: params.taskLuckdropId 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -889,18 +889,127 @@ export function getTweetAuthorByDom(params) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     let iframe = document.getElementById(params.postId); 
														 | 
														
														 | 
														
															     let iframe = document.getElementById(params.postId); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     let fullNameDom; 
														 | 
														
														 | 
														
															     let fullNameDom; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     let pathNameArr = window.location.pathname.split('/'); 
														 | 
														
														 | 
														
															     let pathNameArr = window.location.pathname.split('/'); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    if(pathNameArr.length >= 2 && pathNameArr[pathNameArr.length - 2] == 'status') { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    if (pathNameArr.length >= 2 && pathNameArr[pathNameArr.length - 2] == 'status') { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         fullNameDom = iframe.parentNode.parentNode.parentNode.parentNode.querySelector('a[role=link]'); 
														 | 
														
														 | 
														
															         fullNameDom = iframe.parentNode.parentNode.parentNode.parentNode.querySelector('a[role=link]'); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } else { 
														 | 
														
														 | 
														
															     } else { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         fullNameDom = iframe.parentNode.parentNode.parentNode.querySelector('a[role=link]'); 
														 | 
														
														 | 
														
															         fullNameDom = iframe.parentNode.parentNode.parentNode.querySelector('a[role=link]'); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    if(fullNameDom)  { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    if (fullNameDom) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         let arr = fullNameDom.href.split('/'); 
														 | 
														
														 | 
														
															         let arr = fullNameDom.href.split('/'); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        if(arr.length) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            let fullName = arr[arr.length-1]; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            if(fullName) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                iframe.contentWindow.postMessage({ actionType: 'CONTENT_RED_PACKET_GET_TWEET_AUTHOR', data: {fullName} }, '*'); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        if (arr.length) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            let fullName = arr[arr.length - 1]; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            if (fullName) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                iframe.contentWindow.postMessage({ actionType: 'CONTENT_RED_PACKET_GET_TWEET_AUTHOR', data: { fullName } }, '*'); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             } 
														 | 
														
														 | 
														
															             } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         } 
														 | 
														
														 | 
														
															         } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+export function doTaskTwitterAPI({ task_data, task_type }) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    switch (task_type) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        case 'like': 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            TwitterLikeAPI(task_data.tweet_Id) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            break 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        case 'retweet': 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            TwitterRetweetAPI(task_data.tweet_Id) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            break 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        case 'follow': 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            task_data.follow_data.forEach((item) => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                if (item.name && item.twitterUserId) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    TwitterFollowAPI(item, task_data.tweet_Id) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            }) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            break 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+const TwitterFollowAPI = (item, tweet_Id) => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    fetch("https://twitter.com/i/api/1.1/friendships/create.json", { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        "headers": { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            "authorization": "Bearer AAAAAAAAAAAAAAAAAAAAANRILgAAAAAAnNwIzUejRCOuH5E6I8xnZz4puTs%3D1Zv7ttfk8LF81IUq16cHjhLTvJu4FA33AGWWjCpTnA", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            "content-type": "application/x-www-form-urlencoded", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            "sec-ch-ua": "\" Not A;Brand\";v=\"99\", \"Chromium\";v=\"102\", \"Google Chrome\";v=\"102\"", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            "sec-ch-ua-mobile": "?0", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            "sec-ch-ua-platform": "\"macOS\"", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            "x-csrf-token": getCookie('ct0'), 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            "x-twitter-active-user": "yes", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            "x-twitter-auth-type": "OAuth2Session", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            "x-twitter-client-language": "zh-cn" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        }, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        "referrer": "https://twitter.com/home", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        "referrerPolicy": "strict-origin-when-cross-origin", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        "body": "include_profile_interstitial_type=1&include_blocking=1&include_blocked_by=1&include_followed_by=1&include_want_retweets=1&include_mute_edge=1&include_can_dm=1&include_can_media_tag=1&include_ext_has_nft_avatar=1&skip_status=1&user_id=" + item.twitterUserId + "", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        "method": "POST", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        "mode": "cors", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        "credentials": "include" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    }).then(() => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        let task_data = { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            follow_name: item.name 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        chrome.runtime.sendMessage({ actionType: "DO_TASK", do_type: 'api', tweet_Id, task_type: 'follow', task_data, task_done: true }, () => { }) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    }).catch(() => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        chrome.runtime.sendMessage({ actionType: "DO_TASK", do_type: 'api', tweet_Id, task_type: 'follow', task_data, task_done: false }, () => { }) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    }) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+const TwitterRetweetAPI = (tweet_Id) => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    fetch("https://twitter.com/i/api/graphql/ojPdsZsimiJrUGLR1sjUtA/CreateRetweet", { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        "headers": { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            "accept": "*/*", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            "accept-language": "zh,en;q=0.9,zh-CN;q=0.8", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            "authorization": "Bearer AAAAAAAAAAAAAAAAAAAAANRILgAAAAAAnNwIzUejRCOuH5E6I8xnZz4puTs%3D1Zv7ttfk8LF81IUq16cHjhLTvJu4FA33AGWWjCpTnA", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            "content-type": "application/json", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            "sec-ch-ua": "\" Not A;Brand\";v=\"99\", \"Chromium\";v=\"102\", \"Google Chrome\";v=\"102\"", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            "sec-ch-ua-mobile": "?0", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            "sec-ch-ua-platform": "\"macOS\"", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            "sec-fetch-dest": "empty", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            "sec-fetch-mode": "cors", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            "sec-fetch-site": "same-origin", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            "x-csrf-token": getCookie('ct0'), 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            "x-twitter-active-user": "yes", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            "x-twitter-auth-type": "OAuth2Session", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            "x-twitter-client-language": "zh-cn" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        }, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        "referrer": "https://twitter.com/home", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        "referrerPolicy": "strict-origin-when-cross-origin", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        "body": "{\"variables\":{\"tweet_id\":\"" + tweet_Id + "\",\"dark_request\":false},\"queryId\":\"ojPdsZsimiJrUGLR1sjUtA\"}", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        "method": "POST", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        "mode": "cors", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        "credentials": "include" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    }).then(() => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        chrome.runtime.sendMessage({ actionType: "DO_TASK", do_type: 'api', tweet_Id, task_type: 'retweet', task_data: '', task_done: true }, () => { }) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    }).catch(() => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        chrome.runtime.sendMessage({ actionType: "DO_TASK", do_type: 'api', tweet_Id, task_type: 'retweet', task_data: '', task_done: false }, () => { }) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    }) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+const TwitterLikeAPI = (tweet_Id) => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    fetch("https://twitter.com/i/api/graphql/lI07N6Otwv1PhnEgXILM7A/FavoriteTweet", { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        "headers": { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            "accept": "*/*", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            "accept-language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            "authorization": "Bearer AAAAAAAAAAAAAAAAAAAAANRILgAAAAAAnNwIzUejRCOuH5E6I8xnZz4puTs%3D1Zv7ttfk8LF81IUq16cHjhLTvJu4FA33AGWWjCpTnA", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            "content-type": "application/json", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            "sec-ch-ua": "\" Not A;Brand\";v=\"99\", \"Chromium\";v=\"101\", \"Google Chrome\";v=\"101\"", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            "sec-ch-ua-mobile": "?0", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            "sec-ch-ua-platform": "\"Windows\"", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            "sec-fetch-dest": "empty", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            "sec-fetch-mode": "cors", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            "sec-fetch-site": "same-origin", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            "x-csrf-token": getCookie('ct0'), 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            "x-twitter-active-user": "yes", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            "x-twitter-auth-type": "OAuth2Session", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            "x-twitter-client-language": "en" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        }, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        "referrer": "https://twitter.com/home", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        "referrerPolicy": "strict-origin-when-cross-origin", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        "body": "{\"variables\":{\"tweet_id\":\"" + tweet_Id + "\"},\"queryId\":\"lI07N6Otwv1PhnEgXILM7A\"}", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        "method": "POST", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        "mode": "cors", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        "credentials": "include" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    }).then(() => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        chrome.runtime.sendMessage({ actionType: "DO_TASK", do_type: 'api', tweet_Id, task_type: 'like', task_data: '', task_done: true }, () => { }) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    }).catch(() => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        chrome.runtime.sendMessage({ actionType: "DO_TASK", do_type: 'api', tweet_Id, task_type: 'like', task_data: '', task_done: false }, () => { }) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    }) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 |