zhangwei 2 éve
szülő
commit
47af429a9a

+ 2 - 2
src/logic/content/ParseCard.js

@@ -2,7 +2,7 @@ import { iframeHost } from '@/http/configAPI'
 import { getChromeStorage, setChromeStorage } from '@/uilts/chromeExtension.js'
 import ToolBox from '@/view/content/tool-box/index.vue'
 import { createApp } from 'vue'
-import { getStorage, setStorage } from '@/uilts/help'
+import { getStorage, setStorage, guid } from '@/uilts/help'
 import { chromeExtensionUrl } from '@/uilts/chromeExtension'
 // 解析卡片类
 // 1.dom匹配
@@ -346,7 +346,7 @@ class ParseCard {
     createTreasureIframe(params = { page_type, tweet_Id, post_Id, invite_code }) {
         let _iframe = document.createElement('iframe')
         _iframe.id = params.post_Id
-        _iframe.src = chromeExtensionUrl + ('iframe/treasure-hunt.html') + `?params=${JSON.stringify(params)}`;
+        _iframe.src = chromeExtensionUrl + ('iframe/treasure-hunt.html') + `?params=${JSON.stringify(params)}&iframeId=${guid()}`;
         _iframe.style.cssText = 'border:medium none; width:375px; min-height:500px; border: 1px solid #DCDCDC; border-radius: 20px;'
         return _iframe
     }

+ 5 - 20
src/logic/content/twitter.js

@@ -1401,7 +1401,7 @@ export function getTweetAuthorByDom(params) {
         }
     }
 }
-export function doTaskTwitterAPI({ task_data, task_type, tasks }) {
+export function doTaskTwitterAPI({ task_data, task_type, tasks, iframeId }) {
     switch (task_type) {
         case 'like':
             TwitterLikeAPI(task_data.tweet_Id)
@@ -1436,7 +1436,7 @@ export function doTaskTwitterAPI({ task_data, task_type, tasks }) {
                     // 推文发推
                     case '10':
                         // 发推
-                        TwitterApiCreateTweet({ text: task_data.tweet_text, tweet_Id: task_data.tweet_Id })
+                        TwitterApiCreateTweet({ text: task_data.tweet_text, tweet_Id: task_data.tweet_Id, iframeId })
                         break
                 }
 
@@ -1547,7 +1547,7 @@ const TwitterLikeAPI = (tweet_Id) => {
     })
 }
 
-const TwitterApiCreateTweet = ({ text, tweet_Id }) => {
+const TwitterApiCreateTweet = ({ text, tweet_Id, iframeId }) => {
     let data = {
         queryId: "hC1nuE-2d1NX5LYBuuAvtQ",
         features: {
@@ -1593,27 +1593,12 @@ const TwitterApiCreateTweet = ({ text, tweet_Id }) => {
             "x-twitter-client-language": "en"
         },
     }).then(function (response) {
-        console.log('TwitterApiCreateTweet1', response)
-        sendChromeMessage('是', tweet_Id, response)
+        chrome.runtime.sendMessage({ actionType: "DO_TASK", do_type: 'api', tweet_Id, task_type: 'createTweet1', task_data: '', task_done: '是', response, iframeId })
     }).catch(function (err) {
-        console.log('TwitterApiCreateTweet2', err)
-        sendChromeMessage('否', tweet_Id)
+        chrome.runtime.sendMessage({ actionType: "DO_TASK", do_type: 'api', tweet_Id, task_type: 'createTweet1', task_data: '', task_done: '否', iframeId })
     });
 }
 
-const sendChromeMessage = (done, tweet_Id, response) => {
-    try {
-        console.log('sendChromeMessage', done)
-        if (done == '是') {
-            chrome.runtime.sendMessage({ actionType: "DO_TASK", do_type: 'api', tweet_Id, task_type: 'createTweet1', task_data: '', task_done: '是', response })
-        } else {
-            chrome.runtime.sendMessage({ actionType: "DO_TASK", do_type: 'api', tweet_Id, task_type: 'createTweet1', task_data: '', task_done: '否' })
-        }
-    } catch (error) {
-        console.error('catch', error)
-    }
-}
-
 const TwitterApiUserByScreenNameReq = (params) => {
     let { screen_name } = params || {};
     return axios.get(`https://twitter.com/i/api/graphql/mCbpQvZAw6zu_4PvuAUVVQ/UserByScreenName?variables=%7B%22screen_name%22%3A%22${screen_name}%22%2C%22withSafetyModeUserFields%22%3Atrue%2C%22withSuperFollowsUserFields%22%3Atrue%7D`, {

+ 4 - 2
src/view/iframe/treasure-hunt/cover.vue

@@ -118,7 +118,7 @@ const toStart = (req) => {
 chrome.runtime.onMessage.addListener((req, sender, sendResponse) => {
     switch (req.actionType) {
         case 'DO_TASK':
-            if (!req.task_type || state.tweetId != req.tweet_Id) {
+            if (!req.task_type || state.tweetId != req.tweet_Id || state.iframeId != req.iframeId) {
                 return
             }
             console.log('DO_TASK', req)
@@ -205,12 +205,14 @@ chrome.runtime.onMessage.addListener((req, sender, sendResponse) => {
                             },
                             task_type: 'tasks',
                             tasks: state.tasks,
+                            iframeId: state.iframeId
                         })
                         // double like
                         chrome.tabs.sendMessage(tab.id, {
                             actionType: "IFRAME_TWITTER_API_DO_TASK", task_data: {
                                 tweet_Id: state.detail.srcContentId
-                            }, task_type: 'like'
+                            }, task_type: 'like',
+                            iframeId: state.iframeId
                         })
                     })
                 }

+ 3 - 1
src/view/iframe/treasure-hunt/index.vue

@@ -41,13 +41,15 @@ let state = reactive({
         show: false,
     },
     start_task: {},
-    toast: {}
+    toast: {},
+    iframeId: ''
 })
 provide('state', state)
 
 let params = {}
 onMounted(() => {
     params = JSON.parse(getQueryString('params') || '{}')
+    state.iframeId = getQueryString('iframeId') || ''
     state.postId = params.post_Id || ''
     state.tweetId = params.tweet_Id || ''
     state.invite_code = params.invite_code || ''