Kaynağa Gözat

[edit] msg center

wenliming 2 yıl önce
ebeveyn
işleme
ccc98d1cf0

+ 25 - 3
src/denet/content/doTask.js

@@ -85,10 +85,32 @@ const doTask = {
                 }
             })
         })
-    }
+    },
+    doTreasureTasks({tasks = [], tweetId, tweetText}, overTime) {
+      return new Promise((res, rej) => {
+          messageCenter.send({
+              info: {
+                  actionType: MESSAGE_ENUM.IFRAME_DO_TASK_DO_TREASURE_TASKS,
+                  iframeId
+              },
+              data: {
+                  tweetId,
+                  tasks,
+                  tweetText
+              },
+              overTime,
+              callback: (data) => {
+                  res(data);
+              },
+              failback: (e) => {
+                  rej(e)
+              }
+          })
+      })
+    },
 }
 
 export default doTask
 
-// iframe > dom id 
-// iframe > createTweet  dom id 
+// iframe > dom id
+// iframe > createTweet  dom id

+ 21 - 1
src/denet/content/getData.js

@@ -23,7 +23,27 @@ const getData = {
           }
       })
     })
-  }
+  },
+  getUserListInfoByName({userList}, overTime) {
+    return new Promise((res, rej) => {
+      messageCenter.send({
+          info: {
+              actionType: MESSAGE_ENUM.IFRAME_GET_TWITTER_USER_LIST_INFO,
+              iframeId
+          },
+          data: {
+            userList: userList
+          },
+          overTime,
+          callback: (data) => {
+              res(data);
+          },
+          failback: (e) => {
+              rej(e)
+          }
+      })
+    })
+  },
 }
 
 export default getData

+ 8 - 51
src/entry/content.js

@@ -18,7 +18,6 @@ import {
     hideNoticeBindTweet,
     getTweetAuthorByDom,
     facebookReplyTweet,
-    doTaskTwitterAPI,
     onTweetReplyClick,
     showNFTSale,
     showBuyNFT,
@@ -36,12 +35,9 @@ import {
     setGroupInfo,
     refreshTabGroup,
     groupTipsSelectGroupTab,
-    TwitterApiUserByScreenName,
     showPublishDialog,
-    getTweetUserFollowStatus,
     sendContentByTwitterID,
-    getExtensionStorgeDataForIframe,
-    doTaskIframeTwitterAPI
+    getExtensionStorgeDataForIframe
 } from "@/logic/content/twitter.js";
 import denet from '@/denet'
 import { httpBackToContentCallBack } from '@/uilts/chromeExtension.js'
@@ -107,12 +103,6 @@ const oldOnMessageMethod = (res) => {
         case "IFRAME_RED_PACKET_ON_TWEET_REPLY_CLICK":
             onTweetReplyClick(res.data.data || {});
             break;
-        // case 'IFRAME_TWITTER_API_DO_TASK':
-        //     doTaskTwitterAPI(res.data)
-        //     break
-        // case "IFRAME_DO_TASK":
-        //     findTweetByIdDoTask(res.data.task_data, res.data.task_type)
-        //     break
         case 'IFREME_TAB_GROUP_SET_IFRAME_HEIGHT':
             setTabGroupIframeStyle(res.data.data);
             break
@@ -125,22 +115,6 @@ const oldOnMessageMethod = (res) => {
         case 'IFRAME_GET_EXTENSION_STORGE_DATA':
             getExtensionStorgeDataForIframe(res.data.data);
             break;
-
-        case 'IFRAME_API_GET_TWEET_USER_FOLLOW_STATUS':
-            getTweetUserFollowStatus(res.data);
-            break;
-        case 'IFRAME_TWITTER_API_DO_TASK':
-            doTaskIframeTwitterAPI(res.data);
-            break;
-        case 'IFRAME_API_GET_TWEET_USER_INFO_START':
-            let data = JSON.parse(res.data.data);
-
-            TwitterApiUserByScreenName({
-                iframeId: res.data.iframeId,
-                ...data
-            })
-            break;
-
         case 'GET_CONTENT_BY_TWITTER_ID':
             sendContentByTwitterID(res.data)
             break
@@ -151,7 +125,7 @@ const newOnMessageMethod = (res) => {
     let { info = {}, data = {} } = res.data
     switch (info.actionType) {
         case 'IFRAME_DO_TASK_CREATE_TWEET':
-            doTask.TwitterApiCreateTweet({ info, data })
+            doTask.TwitterCreateTweetAPI({ info, data })
             break
         case 'IFRAME_DO_TASK_LIKE':
             doTask.TwitterLikeAPI({ info, data })
@@ -165,6 +139,12 @@ const newOnMessageMethod = (res) => {
         case 'IFRAME_GET_TWITTER_USER_INFO':
             getData.TwitterApiGetUserInfoByName({ info, data })
             break
+        case 'IFRAME_GET_TWITTER_USER_LIST_INFO':
+            getData.TwitterApiGetUserListInfoByName({ info, data })
+            break
+        case 'IFRAME_DO_TASK_DO_TREASURE_TASKS':
+            doTask.doTreasureTasks({ info, data })
+            break;
     }
 }
 
@@ -191,9 +171,6 @@ const oldRuntimeOnMessageMethod = (req, sender, sendResponse) => {
         case 'BACK_TWITTER_SHORT_URL':
             changeQueueNum(1)
             break
-        case 'IFRAME_TWITTER_API_DO_TASK':
-            doTaskTwitterAPI(req)
-            break
         case 'IFRAME_NFT_SHOW_SALE':
             showNFTSale()
             break
@@ -258,13 +235,8 @@ const oldRuntimeOnMessageMethod = (req, sender, sendResponse) => {
             setJoinedGroupIframeStyle(req.data)
             break
         case 'BACK_NFT_PUBLISH_DONE':
-
             refreshTabGroup()
             break
-        case 'IFRAME_API_GET_TWEET_USER_INFO_REQ':
-
-            TwitterApiUserByScreenName(req.data)
-            break;
         // 回掉参数
         case 'HTTP_BACK_TO_CONTENT':
             httpBackToContentCallBack(req)
@@ -283,15 +255,9 @@ const oldRuntimeOnMessageMethod = (req, sender, sendResponse) => {
         case 'Hide_ToolBox_By_Nft':
             toolBox.hideBuyNft(req)
             break;
-        case 'IFRAME_API_GET_TWEET_USER_FOLLOW_STATUS':
-            getTweetUserFollowStatus(req);
-            break;
         case 'GET_CONTENT_BY_TWITTER_ID':
             sendContentByTwitterID(req.data.tweet_Id)
             break
-        case 'TEST':
-            console.log('TEST')
-            break
     }
 }
 
@@ -308,12 +274,3 @@ chrome.runtime.onMessage.addListener((req, sender, sendResponse) => {
     sendResponse && sendResponse('ok');
 
 })
-
-// --- test ---
-// async function funcTest() {
-//     let res = await denet.chrome.content.test({ tweetId: 22 })
-//     console.log('test sendmessage', res)
-// }
-// setTimeout(() => {
-//     funcTest()
-// }, 3000);

+ 160 - 65
src/logic/content/help/doTask.js

@@ -1,63 +1,75 @@
 import messageCenter from '@/uilts/messageCenter/content';
 import { getCookie, isMobileTwitter } from '@/uilts/help'
+import { TaskType } from '@/types';
 import axios from 'axios';
 
-const TwitterApiCreateTweet = ({ info, data }) => {
-    let params = {
-        queryId: "hC1nuE-2d1NX5LYBuuAvtQ",
-        features: {
-            "dont_mention_me_view_api_enabled": true,
-            "interactive_text_enabled": true,
-            "responsive_web_uc_gql_enabled": false,
-            "vibe_api_enabled": true,
-            "responsive_web_edit_tweet_api_enabled": false,
-            "standardized_nudges_misinfo": true,
-            "responsive_web_enhance_cards_enabled": false
+/**
+ * 发推
+ * @param {*} params
+ * @returns
+ */
+const TwitterApiCreateTweet = (params) => {
+  let {txt} = params;
+  let data = {
+    queryId: "hC1nuE-2d1NX5LYBuuAvtQ",
+    features: {
+        "dont_mention_me_view_api_enabled": true,
+        "interactive_text_enabled": true,
+        "responsive_web_uc_gql_enabled": false,
+        "vibe_api_enabled": true,
+        "responsive_web_edit_tweet_api_enabled": false,
+        "standardized_nudges_misinfo": true,
+        "responsive_web_enhance_cards_enabled": false
+    },
+    variables: {
+        "tweet_text": txt,
+        "media": {
+            "media_entities": [],
+            "possibly_sensitive": false
         },
-        variables: {
-            "tweet_text": data.txt,
-            "media": {
-                "media_entities": [],
-                "possibly_sensitive": false
-            },
-            "withDownvotePerspective": true,
-            "withReactionsMetadata": false,
-            "withReactionsPerspective": false,
-            "withSuperFollowsTweetFields": true,
-            "withSuperFollowsUserFields": true,
-            "semantic_annotation_ids": [],
-            "dark_request": false
-        }
-    };
-    let url = isMobileTwitter() ? "https://mobile.twitter.com/i/api/graphql/K9It0MijE2UOlX-8wLyPYA/CreateTweet" : "https://twitter.com/i/api/graphql/hC1nuE-2d1NX5LYBuuAvtQ/CreateTweet"
-    axios.post(url,
-        params, {
-        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"
-        },
-    }).then(function (response) {
-        messageCenter.send({ info, data: response })
+        "withDownvotePerspective": true,
+        "withReactionsMetadata": false,
+        "withReactionsPerspective": false,
+        "withSuperFollowsTweetFields": true,
+        "withSuperFollowsUserFields": true,
+        "semantic_annotation_ids": [],
+        "dark_request": false
+    }
+  };
+  let url = isMobileTwitter() ? "https://mobile.twitter.com/i/api/graphql/K9It0MijE2UOlX-8wLyPYA/CreateTweet" : "https://twitter.com/i/api/graphql/hC1nuE-2d1NX5LYBuuAvtQ/CreateTweet"
+  return axios.post(url,
+      data, {
+      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"
+      },
+  })
+}
+
+const TwitterCreateTweetAPI = ({ info, data }) => {
+    TwitterApiCreateTweet({txt: data.txt}).then(function (response) {
+        messageCenter.send({ info, data: response.data })
     }).catch(function (err) {
-        messageCenter.send({ info, data: err })
+        messageCenter.send({ info, data: {} })
     });
 }
 
-const TwitterLikeAPI = ({ info, data }) => {
-    let url = isMobileTwitter() ? "https://mobile.twitter.com/i/api/graphql/lI07N6Otwv1PhnEgXILM7A/FavoriteTweet" : "https://twitter.com/i/api/graphql/lI07N6Otwv1PhnEgXILM7A/FavoriteTweet"
-    fetch(url, {
+const TwitterApiLike = (params) => {
+  let {tweetId} = params;
+  let url = isMobileTwitter() ? "https://mobile.twitter.com/i/api/graphql/lI07N6Otwv1PhnEgXILM7A/FavoriteTweet" : "https://twitter.com/i/api/graphql/lI07N6Otwv1PhnEgXILM7A/FavoriteTweet"
+  return fetch(url, {
         "headers": {
             "accept": "*/*",
             "accept-language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7",
@@ -76,11 +88,15 @@ const TwitterLikeAPI = ({ info, data }) => {
         },
         "referrer": "https://twitter.com/home",
         "referrerPolicy": "strict-origin-when-cross-origin",
-        "body": "{\"variables\":{\"tweet_id\":\"" + data.tweetId + "\"},\"queryId\":\"lI07N6Otwv1PhnEgXILM7A\"}",
+        "body": "{\"variables\":{\"tweet_id\":\"" + tweetId + "\"},\"queryId\":\"lI07N6Otwv1PhnEgXILM7A\"}",
         "method": "POST",
         "mode": "cors",
         "credentials": "include"
-    }).then(() => {
+    })
+}
+
+const TwitterLikeAPI = ({ info, data }) => {
+    TwitterApiLike({tweetId: data.tweetId}).then(() => {
         // 返回信息
         messageCenter.send({ info, data: { task_done: true } })
     }).catch(() => {
@@ -88,9 +104,10 @@ const TwitterLikeAPI = ({ info, data }) => {
     })
 }
 
-const TwitterFollowAPI = ({ info, data }) => {
-    let url = isMobileTwitter() ? "https://mobile.twitter.com/i/api/1.1/friendships/create.json" : "https://twitter.com/i/api/1.1/friendships/create.json"
-    fetch(url, {
+const TwitterApiFollowUser = (params) => {
+  let {twitterUserId} = params;
+  let url = isMobileTwitter() ? "https://mobile.twitter.com/i/api/1.1/friendships/create.json" : "https://twitter.com/i/api/1.1/friendships/create.json"
+  return  fetch(url, {
         "headers": {
             "authorization": "Bearer AAAAAAAAAAAAAAAAAAAAANRILgAAAAAAnNwIzUejRCOuH5E6I8xnZz4puTs%3D1Zv7ttfk8LF81IUq16cHjhLTvJu4FA33AGWWjCpTnA",
             "content-type": "application/x-www-form-urlencoded",
@@ -104,20 +121,25 @@ const TwitterFollowAPI = ({ info, data }) => {
         },
         "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=" + data.twitterUserId + "",
+        "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=" + twitterUserId + "",
         "method": "POST",
         "mode": "cors",
         "credentials": "include"
-    }).then(() => {
+    })
+}
+
+const TwitterFollowAPI = ({ info, data }) => {
+    TwitterApiFollowUser({twitterUserId: data.twitterUserId}).then(() => {
         messageCenter.send({ info, data: { task_done: true, follow_name: data.follow_name } })
     }).catch(() => {
         messageCenter.send({ info, data: { task_done: false, follow_name: data.follow_name } })
     })
 }
 
-const TwitterRetweetAPI = ({ info, data }) => {
-    let url = isMobileTwitter() ? "https://mobile.twitter.com/i/api/graphql/ojPdsZsimiJrUGLR1sjUtA/CreateRetweet" : "https://twitter.com/i/api/graphql/ojPdsZsimiJrUGLR1sjUtA/CreateRetweet"
-    fetch(url, {
+const TwitterApiRetweet = (params) => {
+  let {tweetId} = params;
+  let url = isMobileTwitter() ? "https://mobile.twitter.com/i/api/graphql/ojPdsZsimiJrUGLR1sjUtA/CreateRetweet" : "https://twitter.com/i/api/graphql/ojPdsZsimiJrUGLR1sjUtA/CreateRetweet"
+  return  fetch(url, {
         "headers": {
             "accept": "*/*",
             "accept-language": "zh,en;q=0.9,zh-CN;q=0.8",
@@ -136,20 +158,93 @@ const TwitterRetweetAPI = ({ info, data }) => {
         },
         "referrer": "https://twitter.com/home",
         "referrerPolicy": "strict-origin-when-cross-origin",
-        "body": "{\"variables\":{\"tweet_id\":\"" + data.tweetId + "\",\"dark_request\":false},\"queryId\":\"ojPdsZsimiJrUGLR1sjUtA\"}",
+        "body": "{\"variables\":{\"tweet_id\":\"" + tweetId + "\",\"dark_request\":false},\"queryId\":\"ojPdsZsimiJrUGLR1sjUtA\"}",
         "method": "POST",
         "mode": "cors",
         "credentials": "include"
-    }).then(() => {
+    })
+}
+
+const TwitterRetweetAPI = ({ info, data }) => {
+    TwitterApiRetweet({tweetId: data.tweetId}).then(() => {
         messageCenter.send({ info, data: { task_done: true } })
     }).catch(() => {
         messageCenter.send({ info, data: { task_done: false } })
     })
 }
 
+/**
+ * 订阅 notifation
+ * @param {*} params
+ * @returns
+ */
+const TwitterApiFriendshipsUpdate = (params) => {
+  let { id = '', device = true, name = '' } = params;
+  if (!id) {
+      return;
+  }
+  let url = isMobileTwitter() ? 'https://mobile.twitter.com/i/api/1.1/friendships/update.json' : "https://twitter.com/i/api/1.1/friendships/update.json";
+  return fetch(url, {
+      "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": "en",
+          "referer": `https://twitter.com/${name}`
+      },
+      "referrer": `https://twitter.com/${name}`,
+      "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&cursor=-1&id=${id}&device=true`,
+      "method": "POST",
+      "mode": "cors",
+      "credentials": "include"
+  })
+}
+
+/**
+ * 一键三连 夺宝任务
+ * @param {*} param0
+ */
+const doTreasureTasks = ({info, data}) => {
+    let {tasks = [], tweetId, tweetText} = data;
+    tasks.forEach((item) => {
+      switch (String(item.type)) {
+          // 关注指定用户
+          case TaskType.twitterFollow:
+              item.relatedUsers.forEach((item) => {
+                if (item.name && item.twitterUserId) {
+                  TwitterApiFollowUser({twitterUserId: item.twitterUserId}).then(res => {
+                    TwitterApiFriendshipsUpdate({id: item.twitterUserId});
+                  })
+                }
+              })
+              break
+          // 点赞
+          case TaskType.twitterLikeTweet:
+              TwitterApiLike({tweetId})
+              break
+          // 推文发推
+          case TaskType.twitterRePost:
+              // 发推
+              TwitterApiCreateTweet({txt: tweetText}).then(response => {
+                messageCenter.send({ info, data: {data:response.data, task_done: true} })
+              }).catch(err => {
+                messageCenter.send({ info, data: {data: {}, task_done: false} })
+              })
+              break
+      }
+  })
+}
+
 export default {
-    TwitterApiCreateTweet,
+    TwitterCreateTweetAPI,
     TwitterLikeAPI,
     TwitterRetweetAPI,
-    TwitterFollowAPI
+    TwitterFollowAPI,
+    doTreasureTasks
 }

+ 51 - 20
src/logic/content/help/getData.js

@@ -2,32 +2,63 @@ import messageCenter from '@/uilts/messageCenter/content';
 import { getCookie, isMobileTwitter } from '@/uilts/help'
 import axios from 'axios';
 
+const TwitterGetUserInfoByName = (params) => {
+  let {screen_name} = params;
+  let url = isMobileTwitter() ? `https://mobile.twitter.com/i/api/graphql/gr8Lk09afdgWo7NvzP89iQ/UserByScreenName?variables=%7B%22screen_name%22%3A%22${screen_name}%22%2C%22withSafetyModeUserFields%22%3Atrue%2C%22withSuperFollowsUserFields%22%3Atrue%7D` : `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`
+
+  return axios.get(url, {
+    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"
+    }
+  })
+}
+
 const TwitterApiGetUserInfoByName = ({info, data}) => {
-  let url = isMobileTwitter() ? `https://mobile.twitter.com/i/api/graphql/gr8Lk09afdgWo7NvzP89iQ/UserByScreenName?variables=%7B%22screen_name%22%3A%22${data.screen_name}%22%2C%22withSafetyModeUserFields%22%3Atrue%2C%22withSuperFollowsUserFields%22%3Atrue%7D` : `https://twitter.com/i/api/graphql/mCbpQvZAw6zu_4PvuAUVVQ/UserByScreenName?variables=%7B%22screen_name%22%3A%22${data.screen_name}%22%2C%22withSafetyModeUserFields%22%3Atrue%2C%22withSuperFollowsUserFields%22%3Atrue%7D`
-  axios.get(url, {
-      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"
-      }
-  }).then(res => {
+  TwitterGetUserInfoByName({screen_name: data.screen_name}).then(res => {
     messageCenter.send({ info, data: res.data.data, })
   }).catch(err => {
     messageCenter.send({ info, data: {err} })
   })
 }
 
+const TwitterApiGetUserListInfoByName = ({info, data}) => {
+    let promiseList = [];
+    let {userList} = data;
+    for (let i = 0; i < userList.length; i++) {
+        promiseList[i] = TwitterGetUserInfoByName({ screen_name: userList[i]['name'] });
+    }
+
+    Promise.allSettled(promiseList).then((res) => {
+        let list = [];
+        if (res && res.length) {
+            let resList = res.filter(item => item.status == 'fulfilled');
+            for (let i = 0; i < resList.length; i++) {
+                let item = resList[i];
+                if (item && item.value && item.value.data && item.value.data.data) {
+                    list.push(item.value.data.data)
+                }
+            }
+        }
+        messageCenter.send({info, data: { list: list }});
+    }).catch(err => {
+        messageCenter.send({info, data: { list: [] }})
+    })
+}
+
 export default {
-  TwitterApiGetUserInfoByName
+  TwitterApiGetUserInfoByName,
+  TwitterApiGetUserListInfoByName
 }

+ 2 - 410
src/logic/content/twitter.js

@@ -1,5 +1,5 @@
 import { getChromeStorage, setChromeStorage, chromeExtensionUrl } from '@/uilts/chromeExtension.js'
-import { throttle, getQueryString, getCookie, nextTick, getQueryStringByUrl, getStorage, setStorage, getInnerIframeURL, isMobileTwitter } from '@/uilts/help'
+import { throttle, getQueryString, getCookie, nextTick, getQueryStringByUrl, getStorage, setStorage, getInnerIframeURL } from '@/uilts/help'
 import { discordAuthRedirectUri, iframeHost } from '@/http/configAPI'
 import { reportSrcPublishEvent } from '@/http/publishApi'
 
@@ -1084,49 +1084,6 @@ export function init() {
     });
 }
 
-export const getTweetUserFollowStatus = (params) => {
-    let { tweetId, userList, iframeGUId, type } = JSON.parse(params.data);
-    let promiseList = [];
-    for (let i = 0; i < userList.length; i++) {
-        promiseList[i] = TwitterApiUserByScreenNameReq({ screen_name: userList[i]['name'] });
-    }
-
-    Promise.allSettled(promiseList).then((res) => {
-        let list = [];
-        if (res && res.length) {
-            let resList = res.filter(item => item.status == 'fulfilled');
-            for (let i = 0; i < resList.length; i++) {
-                let item = resList[i];
-                if (item && item.value && item.value.data && item.value.data.data) {
-                    list.push(item.value.data.data)
-                }
-            }
-        }
-        messageCenter.send({
-            info: {
-                iframeId: params.iframeId,
-                actionType: 'CONTENT_GET_TWEET_USER_FOLLOW_STATUS_RES'
-            },
-            data: {
-                list, tweetId, type, iframeId: params.iframeId, iframeGUId
-            }
-        })
-
-        // chrome.runtime.sendMessage({ actionType: 'CONTENT_GET_TWEET_USER_FOLLOW_STATUS_RES', data: list, tweetId, type: params.type, iframeId: params.iframeId }, () => { })
-    }).catch(err => {
-        messageCenter.send({
-            info: {
-                iframeId: params.iframeId,
-                actionType: 'CONTENT_GET_TWEET_USER_FOLLOW_STATUS_RES'
-            },
-            data: {
-                list: [], tweetId, type, iframeId: params.iframeId, iframeGUId
-            }
-        })
-        // chrome.runtime.sendMessage({ actionType: 'CONTENT_GET_TWEET_USER_FOLLOW_STATUS_RES', data: [], tweetId, type: params.type, iframeId: params.iframeId }, () => { })
-    })
-}
-
 function onPageVisbile() {
     document.addEventListener('visibilitychange', function () {
         let isHidden = document.hidden;
@@ -1464,79 +1421,7 @@ export function getTweetAuthorByDom(params) {
                 iframe.contentWindow.postMessage({ actionType: 'CONTENT_RED_PACKET_GET_TWEET_AUTHOR', data: { fullName } }, '*');
             }
         }
-    }
-}
-export function doTaskTwitterAPI({ task_data, task_type, tasks, iframeId }) {
-    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
-        case 'tasks':
-            tasks.forEach((item) => {
-                //
-                switch (String(item.type)) {
-                    // 关注指定用户
-                    case '1':
-                        item.relatedUsers.forEach((item) => {
-                            if (item.name && item.twitterUserId) {
-                                TwitterFollowAPI(item, task_data.tweet_Id);
-                            }
-                        })
-                        break
-                    // 点赞
-                    case '2':
-                        TwitterLikeAPI(task_data.tweet_Id)
-                        break
-
-                    // 推文发推
-                    case '10':
-                        // 发推
-                        TwitterApiCreateTweet({ text: task_data.tweet_text, tweet_Id: task_data.tweet_Id, iframeId })
-                        break
-                }
-
-            })
-            break
-    }
-}
-
-export function doTaskIframeTwitterAPI(params) {
-    let { tweet_Id, tweet_text, task_type, tasks, iframeGUId } = JSON.parse(params.data);
-    if (task_type == 'tasks') {
-        tasks.forEach((item) => {
-            switch (String(item.type)) {
-                // 关注指定用户
-                case '1':
-                    item.relatedUsers.forEach((item) => {
-                        if (item.name && item.twitterUserId) {
-                            TwitterFollowAPI(item, tweet_Id);
-                        }
-                    })
-                    break
-                // 点赞
-                case '2':
-                    TwitterLikeAPI(tweet_Id)
-                    break
-                // 推文发推
-                case '10':
-                    // 发推
-                    TwitterApiCreateTweet({ text: tweet_text, tweet_Id, iframeId: params.iframeId, iframeGUId, iframeMsg: true })
-                    break
-            }
-        })
-    } else if (task_type == 'like') {
-        TwitterLikeAPI(tweet_Id)
-    }
+  }
 }
 
 export function showJoinDialog(data) {
@@ -1546,292 +1431,6 @@ export function showJoinDialog(data) {
     iframe.src = chromeExtensionUrl + (`iframe/buy-nft.html#/group?params=${JSON.stringify(data)}&time=${new Date().getTime()}`)
 }
 
-const TwitterFriendshipsUpdate = (params) => {
-    let { id = '', device = true, name } = params || {};
-    let data = {
-        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,
-        cursor: -1,
-        id,
-        device
-    }
-    if (!id) {
-        return;
-    }
-    let url = isMobileTwitter() ? 'https://mobile.twitter.com/i/api/1.1/friendships/update.json' : "https://twitter.com/i/api/1.1/friendships/update.json";
-    return fetch(url, {
-        "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": "en",
-            "referer": `https://twitter.com/${name}`
-        },
-        "referrer": `https://twitter.com/${name}`,
-        "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&cursor=-1&id=${id}&device=true`,
-        "method": "POST",
-        "mode": "cors",
-        "credentials": "include"
-    })
-}
-
-const TwitterFollowAPI = (item, tweet_Id) => {
-    let url = isMobileTwitter() ? "https://mobile.twitter.com/i/api/1.1/friendships/create.json" : "https://twitter.com/i/api/1.1/friendships/create.json"
-    fetch(url, {
-        "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
-        }
-        TwitterFriendshipsUpdate({ id: item.twitterUserId, name: item.name })
-
-        chrome.runtime.sendMessage({ actionType: "DO_TASK", do_type: 'api', tweet_Id, task_type: 'follow', task_data, task_done: true }, () => { })
-    }).catch(() => {
-        console.log('DO_TASK3')
-        chrome.runtime.sendMessage({ actionType: "DO_TASK", do_type: 'api', tweet_Id, task_type: 'follow', task_data, task_done: false }, () => { })
-    })
-}
-
-
-const TwitterRetweetAPI = (tweet_Id) => {
-    let url = isMobileTwitter() ? "https://mobile.twitter.com/i/api/graphql/ojPdsZsimiJrUGLR1sjUtA/CreateRetweet" : "https://twitter.com/i/api/graphql/ojPdsZsimiJrUGLR1sjUtA/CreateRetweet"
-    fetch(url, {
-        "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(() => {
-        console.log('DO0_TASK4')
-        chrome.runtime.sendMessage({ actionType: "DO_TASK", do_type: 'api', tweet_Id, task_type: 'retweet', task_data: '', task_done: false }, () => { })
-    })
-}
-
-const TwitterLikeAPI = (tweet_Id) => {
-    let url = isMobileTwitter() ? "https://mobile.twitter.com/i/api/graphql/lI07N6Otwv1PhnEgXILM7A/FavoriteTweet" : "https://twitter.com/i/api/graphql/lI07N6Otwv1PhnEgXILM7A/FavoriteTweet"
-    fetch(url, {
-        "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(() => {
-        console.log('DO_TASK5')
-        chrome.runtime.sendMessage({ actionType: "DO_TASK", do_type: 'api', tweet_Id, task_type: 'like', task_data: '', task_done: false }, () => { })
-    })
-}
-
-const TwitterApiCreateTweet = ({ text, tweet_Id, iframeId,
-    iframeGUId, iframeMsg }) => {
-    let data = {
-        queryId: "hC1nuE-2d1NX5LYBuuAvtQ",
-        features: {
-            "dont_mention_me_view_api_enabled": true,
-            "interactive_text_enabled": true,
-            "responsive_web_uc_gql_enabled": false,
-            "vibe_api_enabled": true,
-            "responsive_web_edit_tweet_api_enabled": false,
-            "standardized_nudges_misinfo": true,
-            "responsive_web_enhance_cards_enabled": false,
-            "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": false,
-            "responsive_web_text_conversations_enabled": false
-        },
-        variables: {
-            "tweet_text": text,
-            "media": {
-                "media_entities": [],
-                "possibly_sensitive": false
-            },
-            "withDownvotePerspective": true,
-            "withReactionsMetadata": false,
-            "withReactionsPerspective": false,
-            "withSuperFollowsTweetFields": true,
-            "withSuperFollowsUserFields": true,
-            "semantic_annotation_ids": [],
-            "dark_request": false
-        }
-    };
-    let url = isMobileTwitter() ? "https://mobile.twitter.com/i/api/graphql/K9It0MijE2UOlX-8wLyPYA/CreateTweet" : "https://twitter.com/i/api/graphql/hC1nuE-2d1NX5LYBuuAvtQ/CreateTweet"
-    axios.post(url,
-        data, {
-        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"
-        },
-    }).then(function (response) {
-        console.log(response)
-        let data = response.data;
-        if (iframeMsg) {
-            messageCenter.send({
-                info: {
-                    iframeId,
-                    actionType: 'CONTENT_CREATE_TWEET_FINISH'
-                },
-                data: {
-                    tweet_Id, iframeId, iframeGUId, response: data, done: true
-                }
-            })
-        } else {
-            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('err --1', err)
-        if (iframeMsg) {
-            messageCenter.send({
-                info: {
-                    iframeId,
-                    actionType: 'CONTENT_CREATE_TWEET_FINISH'
-                },
-                data: {
-                    tweet_Id, iframeId, iframeGUId, done: false
-                }
-            })
-        } else {
-            chrome.runtime.sendMessage({ actionType: "DO_TASK", do_type: 'api', tweet_Id, task_type: 'createTweet1', task_data: '', task_done: '否', iframeId })
-        }
-    });
-}
-
-const TwitterApiUserByScreenNameReq = (params) => {
-    let { screen_name } = params || {};
-    let url = isMobileTwitter() ? `https://mobile.twitter.com/i/api/graphql/gr8Lk09afdgWo7NvzP89iQ/UserByScreenName?variables=%7B%22screen_name%22%3A%22${screen_name}%22%2C%22withSafetyModeUserFields%22%3Atrue%2C%22withSuperFollowsUserFields%22%3Atrue%7D` : `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`
-    return axios.get(url, {
-        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"
-        },
-    })
-}
-
-
-export const TwitterApiUserByScreenName = (params, cb) => {
-    let { screen_name, tweetId = '', objectType = '', iframeId = '', iframeMsg = false, iframeGUId } = params;
-
-    TwitterApiUserByScreenNameReq({ screen_name }).then(function (response) {
-        if (iframeMsg) {
-            messageCenter.send({
-                info: {
-                    iframeId,
-                    actionType: 'CONTENT_API_GET_TWEET_USER_INFO_END'
-                },
-                data: {
-                    iframeGUId, response: response.data.data || {}, objectType
-                }
-            })
-        } else {
-            chrome.runtime.sendMessage({ actionType: "CONTENT_API_GET_TWEET_USER_INFO_RES", data: response.data.data || {}, tweetId, objectType, iframeId }, () => { })
-        }
-
-    }).catch(function (err) {
-        if (iframeMsg) {
-            messageCenter.send({
-                info: {
-                    iframeId,
-                    actionType: 'CONTENT_API_GET_TWEET_USER_INFO_END'
-                },
-                data: {
-                    iframeGUId, response: {}, objectType
-
-                }
-            })
-        } else {
-            chrome.runtime.sendMessage({ actionType: "CONTENT_API_GET_TWEET_USER_INFO_RES", data: {}, tweetId, objectType, iframeId }, () => { })
-        }
-    });
-}
-
 let click_old_time = new Date().getTime()
 export const showTwitterPost = (data) => {
     let click_new_time = new Date().getTime()
@@ -2897,11 +2496,4 @@ export const sendContentByTwitterID = (params) => {
           tweet_Id, txt, iframeGUId
       }
     })
-    // 发送
-    // chrome.runtime.sendMessage({
-    //     actionType: "CONTENT_GET_TWEET_TXT", data: {
-    //         tweet_Id,
-    //         txt
-    //     }
-    // })
 }

+ 3 - 2
src/uilts/messageCenter/iframe/messageEnum.js

@@ -11,6 +11,7 @@ const SEND_MESSAGE_ENUM = {
     IFRAME_DO_TASK_LIKE: 'IFRAME_DO_TASK_LIKE',
     IFRAME_DO_TASK_FOLLOWS: 'IFRAME_DO_TASK_FOLLOWS',
     IFRAME_DO_TASK_RETWEET: 'IFRAME_DO_TASK_RETWEET',
+    IFRAME_DO_TASK_DO_TREASURE_TASKS: 'IFRAME_DO_TASK_DO_TREASURE_TASKS',
 
     // ---- 获取推文内容 ----
     IFRAME_DOM_GET_TWEET_TEXT: 'IFRAME_DOM_GET_TWEET_TEXT',
@@ -18,7 +19,7 @@ const SEND_MESSAGE_ENUM = {
     // ---- 获取twitter用户信息 ----
     IFRAME_GET_TWITTER_USER_INFO: 'IFRAME_GET_TWITTER_USER_INFO',
 
-
+    IFRAME_GET_TWITTER_USER_LIST_INFO: 'IFRAME_GET_TWITTER_USER_LIST_INFO'
 }
 
 /** 接收父窗口的事件定义 */
@@ -31,4 +32,4 @@ const RECEIVE_MESSAGE_ENUM = {
     CONTENT_SYS_THEME_CHANGE: 'CONTENT_SYS_THEME_CHANGE'
 }
 
-export default { ...SEND_MESSAGE_ENUM, ...RECEIVE_MESSAGE_ENUM }
+export default { ...SEND_MESSAGE_ENUM, ...RECEIVE_MESSAGE_ENUM }

+ 42 - 140
src/view/iframe/treasure-hunt/cover.vue

@@ -54,6 +54,7 @@ import { getChromeCookie, removeChromeCookie, getChromeStorage, sendCurrentTabMe
 import { reSetBindRepost } from '@/http/help.js'
 import { guid } from '@/uilts/help.js'
 import { TaskType } from '@/types';
+import denet from '@/denet'
 
 let state = inject('state')
 let global_userInfo
@@ -149,26 +150,6 @@ chrome.runtime.onMessage.addListener((req, sender, sendResponse) => {
                 })
             }
             break
-        case 'CONTENT_API_GET_TWEET_USER_INFO_RES':
-            if (state.iframeId != req.iframeId) {
-                return;
-            }
-            let twitterFans = 0;
-            let { user } = req.data || {};
-            if (user && user.result && user.result.legacy) {
-                let legacy = user.result.legacy;
-                twitterFans = legacy ? legacy.followers_count : 0;
-            }
-            if (state.tweetId == req.tweetId && req.objectType == Report.objectType.repostSuccess) {
-                Report.reportLog({
-                    objectType: Report.objectType.repostSuccess,
-                    twitterFans: twitterFans,
-                    redPacketType: Report.redPacketType.treasure,
-                    postId: state.postId,
-                    shareLinkId: state.invite_code,
-                });
-            };
-            break;
         case 'CONTENT_GET_TWEET_USER_FOLLOW_STATUS_RES':
             if (state.tweetId == req.tweetId && state.iframeId == req.iframeId) {
 
@@ -194,30 +175,6 @@ chrome.runtime.onMessage.addListener((req, sender, sendResponse) => {
                     }, log_pre_repost.params))
 
                 } else {
-                    state.usersFollowStatusList = getFollowStatus(req.data);
-                    // 上报埋点
-                    logPreRepost()
-                    // 做任务
-
-                    // 一键三连
-                    sendCurrentTabMessage({
-                        actionType: "IFRAME_TWITTER_API_DO_TASK",
-                        task_data: {
-                            tweet_Id: state.tweetId,
-                            tweet_text: state.rePostTweetContent
-                        },
-                        task_type: 'tasks',
-                        tasks: state.tasks,
-                        iframeId: state.iframeId
-                    })
-
-                    // double like
-                    sendCurrentTabMessage({
-                        actionType: "IFRAME_TWITTER_API_DO_TASK", task_data: {
-                            tweet_Id: state.detail.srcContentId
-                        }, task_type: 'like',
-                        iframeId: state.iframeId
-                    })
                 }
             }
             break;
@@ -353,6 +310,7 @@ async function clickBtn() {
         if (res && res.inviteCode) {
             state.invite_code = res.inviteCode
             state.invite_channel = res.channel ? window.atob(res.channel) : '';
+            console.log( state.invite_channel, 'state.invite_channel')
         }
         startBtn()
     })
@@ -380,106 +338,51 @@ const startBtn = () => {
     })
 }
 
-const getUsersFollowStatus = () => {
+const getUsersFollowStatus = async () => {
     let userList = state.follows;
 
     if (userList && userList.length) {
-        window.parent.postMessage({
-            actionType: "IFRAME_API_GET_TWEET_USER_FOLLOW_STATUS",
-            data: JSON.stringify({
-                userList: userList,
-                tweetId: state.tweetId,
-                iframeGUId: state.iframeId
-            }),
-            iframeId: state.iframeId
-        }, "*");
-    }
-}
-
-const onWindowMessage = () => {
-    window.onmessage = (res) => {
-        console.log('onWindowMessage', res);
-        let { info, data } = res.data
-        if (res && res.data && info) {
-            let msgData = data;
-            if (msgData.iframeGUId == state.iframeId) {
-                switch (info.actionType) {
-                    case "CONTENT_API_GET_TWEET_USER_INFO_END":
-                        let twitterFans = 0;
-                        let { user } = msgData.response || {};
-                        if (user && user.result && user.result.legacy) {
-                            let legacy = user.result.legacy;
-                            twitterFans = legacy ? legacy.followers_count : 0;
-                        }
-                        if (msgData.objectType == Report.objectType.repostSuccess) {
-                            Report.reportLog({
-                                objectType: Report.objectType.repostSuccess,
-                                twitterFans: twitterFans,
-                                redPacketType: Report.redPacketType.treasure,
-                                postId: state.postId,
-                                shareLinkId: state.invite_code,
-                            });
-                        };
-                        break;
-                    case "CONTENT_CREATE_TWEET_FINISH":
-                        if (!msgData.done) {
-                            state.toast.txt = 'Seems something went wrong, please try again'
-                            state.toast.show = true
-                            state.toast.has_icon = false
-                            setTimeout(() => {
-                                state.toast.show = false
-                            }, 2000)
-                        } else {
-                            toStart(msgData);
-                            getChromeStorage('userInfo', (_userInfo) => {
-                                if (_userInfo) {
-                                    window.parent.postMessage({
-                                        actionType: "IFRAME_API_GET_TWEET_USER_INFO_START",
-                                        data: JSON.stringify({
-                                            screen_name: _userInfo.nickName,
-                                            tweetId: state.tweetId,
-                                            objectType: Report.objectType.repostSuccess,
-                                            iframeGUId: state.iframeId,
-                                            iframeMsg: true
-                                        }),
-                                        iframeId: state.iframeId
-                                    }, "*");
-                                }
-                            })
-                        }
-
-                        break;
-                    case "CONTENT_GET_TWEET_USER_FOLLOW_STATUS_RES":
-                        state.usersFollowStatusList = getFollowStatus(msgData.list);
-                        // 上报埋点
-                        // 做任务
-                        // 一键三连
-                        let taskList = tasksDataHandler();
-                        window.parent.postMessage({
-                            actionType: "IFRAME_TWITTER_API_DO_TASK",
-                            data: JSON.stringify({
-                                tweet_Id: state.tweetId,
-                                tweet_text: state.rePostTweetContent,
-                                task_type: 'tasks',
-                                tasks: taskList,
-                                iframeGUId: state.iframeId
-                            }),
-                            iframeId: state.iframeId
-                        }, "*");
-
-                        // double like
-                        window.parent.postMessage({
-                            actionType: "IFRAME_TWITTER_API_DO_TASK",
-                            data: JSON.stringify({
-                                tweet_Id: state.detail.srcContentId,
-                                task_type: 'like',
-                                iframeGUId: state.iframeId
-                            }),
-                            iframeId: state.iframeId
-                        }, "*");
-                        break;
+        let userListInfoRes = await denet.content.getData.getUserListInfoByName({userList});
+        if(userListInfoRes) {
+          state.usersFollowStatusList = getFollowStatus(userListInfoRes.list);
+          let taskList = tasksDataHandler();
+
+          // double like
+          denet.content.doTask.like({ tweetId: state.detail.srcContentId });
+
+          let doTaskRes = await denet.content.doTask.doTreasureTasks({
+            tweetId: state.tweetId, tasks: taskList, tweetText: state.rePostTweetContent
+          });
+
+          if(doTaskRes) {
+            if(doTaskRes.task_done) {
+              toStart(doTaskRes.data);
+              getChromeStorage('userInfo', async (_userInfo) => {
+                if (_userInfo) {
+                  let {user = {}} = await denet.content.getData.getUserInfoByName({ screen_name: _userInfo.nickName });
+                  let twitterFans = 0;
+                  if (user && user.result && user.result.legacy) {
+                    let legacy = user.result.legacy;
+                    twitterFans = legacy ? legacy.followers_count : 0;
+                  }
+                  Report.reportLog({
+                    objectType: Report.objectType.repostSuccess,
+                    twitterFans: twitterFans,
+                    redPacketType: Report.redPacketType.treasure,
+                    postId: state.postId,
+                    shareLinkId: state.invite_code,
+                  });
                 }
+              })
+            } else {
+              state.toast.txt = 'Seems something went wrong, please try again'
+              state.toast.show = true
+              state.toast.has_icon = false
+              setTimeout(() => {
+                  state.toast.show = false
+              }, 2000)
             }
+          }
         }
     }
 }
@@ -496,7 +399,6 @@ const tasksDataHandler = () => {
 }
 
 onMounted(() => {
-    onWindowMessage()
     // 埋点
     Report.reportLog({
         pageSource: Report.pageSource.pending_page,

+ 15 - 45
src/view/iframe/treasure-hunt/index.vue

@@ -66,16 +66,6 @@ onMounted(() => {
     // onRuntimeMsg();
     onWindowMessage();
 })
-// denet
-// chrome
-
-async function doLike() {
-    let task = await denet.content.doTask.like({ tweetId: '1564877034756534272' })
-    console.log('task', task)
-    if (tgas) {
-
-    }
-}
 
 const onWindowMessage = () => {
     window.onmessage = (res) => {
@@ -94,22 +84,6 @@ const onWindowMessage = () => {
                             })
                         }
                         break;
-                    case "CONTENT_API_GET_TWEET_USER_INFO_END":
-                        let twitterFans = 0;
-                        let { user } = msgData.response || {};
-                        if (user && user.result && user.result.legacy) {
-                            let legacy = user.result.legacy;
-                            twitterFans = legacy ? legacy.followers_count : 0;
-                        }
-                        if (msgData.objectType == Report.objectType.tweetPostBinded) {
-                            Report.reportLog({
-                                objectType: Report.objectType.tweetPostBinded,
-                                twitterFans: twitterFans,
-                                redPacketType: Report.redPacketType.treasure,
-                                postId: state.postId
-                            });
-                        }
-                        break;
                 }
             }
         }
@@ -174,12 +148,6 @@ state.init = (callback) => {
                         }),
                         iframeId: state.iframeId
                     }, "*");
-                    // sendCurrentTabMessage({
-                    //     actionType: "GET_CONTENT_BY_TWITTER_ID",
-                    //     data: {
-                    //         tweet_Id: state.tweetId
-                    //     }
-                    // })
                 }
             }
         })
@@ -232,19 +200,21 @@ const handleCommon = (res, callback) => {
         reSetBindTwtterId({
             postId: state.postId || '',
             tweetId: state.tweetId || ''
-        }, () => {
-            window.parent.postMessage({
-                actionType: "IFRAME_API_GET_TWEET_USER_INFO_START",
-                data: JSON.stringify({
-                    screen_name: state.detail.postUserInfo.nickName,
-                    tweetId: state.tweetId,
-                    objectType: Report.objectType.tweetPostBinded,
-                    iframeGUId: state.iframeId,
-                    iframeMsg: true
-                }),
-                iframeId: state.iframeId
-            }, "*");
-            state.init()
+        }, async () => {
+          let {user = {}} = await denet.content.getData.getUserInfoByName({ screen_name: state.detail.postUserInfo.nickName });
+
+          let twitterFans = 0;
+          if (user && user.result && user.result.legacy) {
+            let legacy = user.result.legacy;
+            twitterFans = legacy ? legacy.followers_count : 0;
+          }
+          Report.reportLog({
+            objectType: Report.objectType.tweetPostBinded,
+            twitterFans: twitterFans,
+            redPacketType: Report.redPacketType.treasure,
+            postId: state.postId
+          });
+          state.init()
         })
     }
     handleStatus(callback)