Procházet zdrojové kódy

[edit][埋点& line 渠道 ]

zhangwei před 2 roky
rodič
revize
d550070d23

+ 8 - 7
src/log-center/logEnum.js

@@ -70,7 +70,7 @@ export const objectType = {
     // background文件安装catch异常
     background_function_catch: 'background-function-catch',
     // background 文件chrome 函数 try
-    background_function_try:'background-function-try',
+    background_function_try: 'background-function-try',
     // create Nft
     create_nfts_button: 'create-nfts-button',
     confirm_transfer_button: 'confirm-transfer-button',
@@ -84,6 +84,7 @@ export const objectType = {
     top_right_button: 'top-right-button',
     fullscreen_button: 'fullscreen-button',
     encrypte_nft_button: 'encrypte-nft-button',
+    preRepost: 'preRepost',
 }
 
 export const pageSource = {
@@ -152,11 +153,11 @@ export const bizType = {
 }
 
 export const getCurrentBizType = (type) => {
-  let obj = {};
-  obj[PlayType.common] = bizType.RedPacket;
-  obj[PlayType.lottery] = bizType.Lottery;
-  obj[PlayType.treasure] = bizType.Treasure;
-  obj[PlayType.postEditor] = bizType.ToolBox;
+    let obj = {};
+    obj[PlayType.common] = bizType.RedPacket;
+    obj[PlayType.lottery] = bizType.Lottery;
+    obj[PlayType.treasure] = bizType.Treasure;
+    obj[PlayType.postEditor] = bizType.ToolBox;
 
-  return obj[type];
+    return obj[type];
 }

+ 16 - 16
src/logic/content/twitter.js

@@ -122,9 +122,9 @@ export function showTwitterPublishDialogHandler(publishRes) {
     _publishTweetEvent(publishRes, bindTwitterArtMethod);
 
     Report.reportLog({
-      businessType: Report.businessType.pageView,
-      objectType: Report.objectType.setPublishContent,
-      postId: publishRes.postId
+        businessType: Report.businessType.pageView,
+        objectType: Report.objectType.setPublishContent,
+        postId: publishRes.postId
     }, {
     });
 }
@@ -245,19 +245,19 @@ function _publishTweetEvent(params, cb) {
 }
 
 function bindContentStr(params) {
-  if(params && params.postBizData) {
-    if(typeof params.postBizData == 'string') {
-      let objBizData = JSON.parse(params.postBizData);
-      let inputEle = document.querySelector('div[contenteditable="true"]');
-      if(objBizData.luckdropType == PlayType.treasure && inputEle) {
-        let textContent = inputEle.innerText;
-        reSetBindPostContent({
-          postId: params.postId,
-          postSrcContent: textContent,
-        })
-      }
+    if (params && params.postBizData) {
+        if (typeof params.postBizData == 'string') {
+            let objBizData = JSON.parse(params.postBizData);
+            let inputEle = document.querySelector('div[contenteditable="true"]');
+            if (objBizData.luckdropType == PlayType.treasure && inputEle) {
+                let textContent = inputEle.innerText;
+                reSetBindPostContent({
+                    postId: params.postId,
+                    postSrcContent: textContent,
+                })
+            }
+        }
     }
-  }
 }
 
 function onClosePublishDialogHandle(dom, params) {
@@ -1080,7 +1080,7 @@ export const getTweetUserFollowStatus = (params) => {
             }
         }
 
-        chrome.runtime.sendMessage({ actionType: 'CONTENT_GET_TWEET_USER_FOLLOW_STATUS_RES', data: list, tweetId }, () => { })
+        chrome.runtime.sendMessage({ actionType: 'CONTENT_GET_TWEET_USER_FOLLOW_STATUS_RES', data: list, tweetId, type: params.type }, () => { })
     })
 }
 

+ 115 - 34
src/view/iframe/treasure-hunt/cover.vue

@@ -59,7 +59,7 @@ import { getChromeCookie, removeChromeCookie, getChromeStorage, sendChromeTabMes
 import { reSetBindRepost } from '@/http/help.js'
 
 let state = inject('state')
-
+let global_userInfo
 state.log_show = {
     businessType: Report.businessType.pageView,
     pageSource: Report.pageSource.pending_page,
@@ -153,44 +153,126 @@ chrome.runtime.onMessage.addListener((req, sender, sendResponse) => {
             break;
         case 'CONTENT_GET_TWEET_USER_FOLLOW_STATUS_RES':
             if (state.tweetId == req.tweetId) {
-                let list = [];
-                let userInfoList = req.data;
-                for (let i = 0; i < userInfoList.length; i++) {
-                    let item = userInfoList[i];
-                    if (item.user && item.user.result && item.user.result.legacy) {
-                        let legacy = item.user.result.legacy;
-                        list.push({
-                            name: legacy.screen_name,
-                            followed: legacy.following
-                        })
-                    }
-                }
 
-                state.usersFollowStatusList = list;
-                // 做任务
-                chrome.tabs.getCurrent((tab) => {
-                    // // 一键三连
-                    chrome.tabs.sendMessage(tab.id, {
-                        actionType: "IFRAME_TWITTER_API_DO_TASK",
-                        task_data: {
-                            tweet_Id: state.tweetId,
-                            tweet_text: state.rePostTweetContent
-                        },
-                        task_type: 'tasks',
-                        tasks: state.tasks,
+                if (req.type == 'pre_repost') {
+                    // 发送埋点
+                    console.log('getFollowStatus(req.data)', getFollowStatus(req.data))
+
+                    let list = getFollowStatus(req.data)
+                    log_pre_repost.names.forEach(item => {
+                        list.forEach((item2) => {
+                            if (item.name == item2.name) {
+                                if (item.type == 'invite') {
+                                    log_pre_repost.params.isFatherTwitterFans = item2.followed
+                                }
+                                if (item.type = 'post') {
+                                    log_pre_repost.params.isRootTwitterFans = item2.followed
+                                }
+                            }
+                        })
                     })
-                    // double like
-                    chrome.tabs.sendMessage(tab.id, {
-                        actionType: "IFRAME_TWITTER_API_DO_TASK", task_data: {
-                            tweet_Id: state.detail.srcContentId
-                        }, task_type: 'like'
+
+                    // 上报埋点
+                    Report.reportLog(Object.assign({
+                        objectType: Report.objectType.preRepost,
+                    }, log_pre_repost.params))
+
+                    // 做任务
+                    chrome.tabs.getCurrent((tab) => {
+                        // // 一键三连
+                        chrome.tabs.sendMessage(tab.id, {
+                            actionType: "IFRAME_TWITTER_API_DO_TASK",
+                            task_data: {
+                                tweet_Id: state.tweetId,
+                                tweet_text: state.rePostTweetContent
+                            },
+                            task_type: 'tasks',
+                            tasks: state.tasks,
+                        })
+                        // double like
+                        chrome.tabs.sendMessage(tab.id, {
+                            actionType: "IFRAME_TWITTER_API_DO_TASK", task_data: {
+                                tweet_Id: state.detail.srcContentId
+                            }, task_type: 'like'
+                        })
                     })
-                })
+
+                } else {
+                    state.usersFollowStatusList = getFollowStatus(req.data);
+                    // 上报埋点
+                    logPreRepost()
+                }
             }
             break;
     }
 })
 
+const getFollowStatus = (arr = []) => {
+    let list = [];
+    let userInfoList = arr;
+    for (let i = 0; i < userInfoList.length; i++) {
+        let item = userInfoList[i];
+        if (item.user && item.user.result && item.user.result.legacy) {
+            let legacy = item.user.result.legacy;
+            list.push({
+                name: legacy.screen_name,
+                followed: legacy.following
+            })
+        }
+    }
+    return list
+}
+
+let log_pre_repost = {
+    params: {},
+    names: []
+}
+const logPreRepost = () => {
+    log_pre_repost.params = {}
+    log_pre_repost.names = []
+
+    let params = {}
+    params.postId = state.postId
+    if (state.page_type == '邀请链接') {
+        params.shareLinkId = state.invite_code
+        params.fatherTwitterName = state.detail.inviteUserInfo.nickName
+    } else if (state.page_type == '原始链接') {
+        params.rootTwitterName = state.detail.postUserInfo.nickName
+    }
+
+    let names = []
+    if (state.detail.inviteUserInfo && (state.detail.inviteUserInfo.uid != global_userInfo.uid)) {
+        // isFatherTwitterFans = inviteUserInfo.nickName 的关注关系
+        // 发送事件校验关注关系
+        names.push({
+            type: 'invite',
+            name: state.inviteUserInfo.nickName
+        })
+    }
+
+    if (state.detail.postUserInfo && (state.detail.postUserInfo.uid != global_userInfo.uid)) {
+        // isRootTwitterFans = postUserInfo.nickName 的关注关系
+        // 发送事件校验关注关系
+        names.push({
+            type: 'post',
+            name: state.postUserInfo.nickName
+        })
+    }
+
+    if (names.length > 0) {
+        sendChromeTabMessage({
+            actionType: "IFRAME_API_GET_TWEET_USER_FOLLOW_STATUS",
+            data: {
+                userList: names,
+                tweetId: state.tweetId
+            },
+            type: 'pre_repost'
+        })
+    }
+    log_pre_repost.params = params
+    log_pre_repost.names = names
+}
+
 const toLast = (num, bit) => {
     let str = 1
     for (let i = 0; i < bit; i++) {
@@ -200,10 +282,9 @@ const toLast = (num, bit) => {
     return Math.floor(Number(num) * _num) / _num
 }
 
-
 async function clickBtn() {
-    let _userInfo = await state.checkIsLogin()
-    if (!_userInfo) {
+    let global_userInfo = await state.checkIsLogin()
+    if (!global_userInfo) {
         return
     }
     if (state.cover_status == '奖励已被领光') {

+ 4 - 0
src/view/iframe/treasure-hunt/index.vue

@@ -47,6 +47,7 @@ onMounted(() => {
     state.postId = params.post_Id || ''
     state.tweetId = params.tweet_Id || ''
     state.invite_code = params.invite_code || ''
+    state.page_type = params.page_type || ''
     state.init();
     onRuntimeMsg();
 })
@@ -317,5 +318,8 @@ html,
 body {
     margin: 0;
     padding: 0;
+    width: 100%;
+    height: 100%;
+    overflow: hidden;
 }
 </style>