Bläddra i källkod

[edit] report

wenliming 2 år sedan
förälder
incheckning
b88b98a02e

+ 1 - 1
src/log-center/logEnum.js

@@ -32,7 +32,7 @@ export const objectType = {
     nextButton: "next-button",
     openChestButton: "open-chest-button",
     copyButton: "copy-button",
-
+    repostSuccess: "repostSuccess",
 
     //discord
     getDiscordGuildNoData: 'get-discord-guild-no-data',

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

@@ -269,12 +269,12 @@ class ParseCard {
         }
         return _iframe
     }
-    createNftIframe({ project_Id }) {
+    createNftIframe({ project_Id, tweet_Id }) {
         let project_arr = project_Id.split('/');
         let projectId = project_arr[0]
         let _iframe = document.createElement('iframe')
         _iframe.id = project_Id
-        _iframe.src = chrome.runtime.getURL('/iframe/nft-card.html') + `?projectId=${projectId}&twitterAccount=${project_arr[1]}`;
+        _iframe.src = chrome.runtime.getURL('/iframe/nft-card.html') + `?projectId=${projectId}&tweetId=${tweet_Id}&twitterAccount=${project_arr[1]}`;
         _iframe.style.cssText = 'border:medium none; width:375px; min-height:300px;'
         return _iframe
     }
@@ -521,7 +521,7 @@ class ParseCard {
         dom.style = 'min-height:300px'
         if (dom) {
             let project_Id = post_Id.replace('nft/', '');
-            dom.appendChild(this.createNftIframe({ project_Id }))
+            dom.appendChild(this.createNftIframe({ project_Id, tweet_Id }))
         }
     }
     replaceFacebookPacket({ dom_card, tweet_Id, short_url, tweet_author }) {

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

@@ -1544,7 +1544,7 @@ const TwitterApiCreateTweet = ({ text, tweet_Id }) => {
 
 
 export const TwitterApiUserByScreenName = (params) => {
-    let { screen_name } = params;
+    let { screen_name, tweetId } = params;
     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`, {
         headers: {
             "accept": "*/*",
@@ -1563,9 +1563,9 @@ export const TwitterApiUserByScreenName = (params) => {
             "x-twitter-client-language": "en"
         },
     }).then(function (response) {
-        chrome.runtime.sendMessage({ actionType: "CONTENT_API_GET_TWEET_USER_INFO_RES", data: response.data.data || {} }, () => { })
+        chrome.runtime.sendMessage({ actionType: "CONTENT_API_GET_TWEET_USER_INFO_RES", data: response.data.data || {}, tweetId }, () => { })
     }).catch(function (err) {
-      chrome.runtime.sendMessage({ actionType: "CONTENT_API_GET_TWEET_USER_INFO_RES", data: {} }, () => { })
+      chrome.runtime.sendMessage({ actionType: "CONTENT_API_GET_TWEET_USER_INFO_RES", data: {}, tweetId }, () => { })
     });
 }
 

+ 5 - 1
src/view/iframe/nft/card.vue

@@ -17,6 +17,7 @@
                     pageSource: isShare ? Report.pageSource.nft_post_page : Report.pageSource.nft_sales_window,
                     nftProjectId: nftProjectId,
                     redPacketType: Report.redPacketType.nftSale,
+                    srcContentId: isShare ? tweetId : ''
                 }">
                 <img :src="saleData.windowImagePath" />
             </div>
@@ -35,6 +36,7 @@
                     objectType: Report.objectType.buy_nft_button,
                     nftProjectId: nftProjectId,
                     redPacketType: Report.redPacketType.nftSale,
+                    srcContentId: isShare ? tweetId : ''
                 }">
                 <img class="guide" v-if="isShowGuide" :src=" require('@/assets/img/icon-arrow.png') " />
                 <button>Buy NFT</button>
@@ -54,6 +56,7 @@ const isShare = ref(false);
 const isLoading = ref(true);
 const isShowGuide = ref(false);
 const nftProjectId = ref('');
+let tweetId = ref('');
 
 const getSaleInfo = () => {
     chrome.tabs.getCurrent((tab) => {
@@ -158,12 +161,13 @@ const loginSuccessHandler = async () => {
         chrome.storage.local.remove("buyNFTCardData");
         buy();
     }
-} 
+}
 
 onBeforeMount(() => {
     let urlParams = new URL(window.location.href);
     let searchParmas = new URLSearchParams(urlParams.search);
     let projectId = searchParmas.get('projectId') || '';
+    tweetId.value = searchParmas.get('tweetId') || '';
     if (projectId) {
         isShare.value = true;
         nftProjectId.value = projectId;

+ 9 - 7
src/view/iframe/publish/give-dialog.vue

@@ -2118,6 +2118,15 @@ const getCurrencyByCode = async (params) => {
 }
 
 const selectPublishMode = (params, index) => {
+    if(params.type != selectModeInfo.type) {
+      Report.reportLog({
+        pageSource: Report.pageSource.publisherDialog,
+        businessType: Report.businessType.pageView,
+      }, {
+        type: Report.getCurrentBizType(selectModeInfo.type)
+      });
+    }
+
     selectModeInfo.index = index;
     selectModeInfo.type = params.type;
     baseFormData.type = params.type;
@@ -2130,13 +2139,6 @@ const selectPublishMode = (params, index) => {
         showGeneralLottery.value = true;
     }
 
-    Report.reportLog({
-      pageSource: Report.pageSource.publisherDialog,
-      businessType: Report.businessType.pageView,
-    }, {
-      type: Report.getCurrentBizType(selectModeInfo.type)
-    });
-
     onIptSetErrorTxt();
 }
 

+ 3 - 3
src/view/iframe/treasure-hunt/components/invite-friends.vue

@@ -35,7 +35,7 @@ state.log_invite_btn_show = {
     pageSource: Report.pageSource.inviteFriendsPage,
     objectType: Report.objectType.openChestButton,
     redPacketType: Report.redPacketType.treasure,
-    shareLinkId: state.invite_code || state.postId,
+    shareLinkId: state.invite_code,
     myShareLinkId: state.detail.inviteCopyUrl,
     currentInvitedNum: state.detail.inviteCount,
     postId: state.postId
@@ -46,7 +46,7 @@ state.log_invite_btn_click = {
     pageSource: Report.pageSource.inviteFriendsPage,
     objectType: Report.objectType.openChestButton,
     redPacketType: Report.redPacketType.treasure,
-    shareLinkId: state.invite_code || state.postId,
+    shareLinkId: state.invite_code,
     myShareLinkId: state.detail.inviteCopyUrl,
     currentInvitedNum: state.detail.inviteCount,
     postId: state.postId
@@ -56,7 +56,7 @@ state.log_invite_copy_btn_click = {
     pageSource: Report.pageSource.inviteFriendsPage,
     objectType: Report.objectType.copyButton,
     redPacketType: Report.redPacketType.treasure,
-    shareLinkId: state.invite_code || state.postId,
+    shareLinkId: state.invite_code,
     myShareLinkId: state.detail.inviteCopyUrl,
     currentInvitedNum: state.detail.inviteCount,
     postId: state.postId

+ 1 - 1
src/view/iframe/treasure-hunt/components/invite-list.vue

@@ -39,7 +39,7 @@ state.log_invite_btn_click = {
     pageSource: Report.pageSource.inviteFriendsPage,
     objectType: Report.objectType.openChestButton,
     redPacketType: Report.redPacketType.treasure,
-    shareLinkId: state.invite_code || state.postId,
+    shareLinkId: state.invite_code,
     myShareLinkId: state.detail.inviteCopyUrl,
     currentInvitedNum: state.detail.inviteCount,
     postId: state.postId

+ 2 - 2
src/view/iframe/treasure-hunt/components/open-box.vue

@@ -32,7 +32,7 @@ state.log_open_box_show = {
     businessType: Report.businessType.pageView,
     pageSource: Report.pageSource.openTreasurePage,
     redPacketType: Report.redPacketType.treasure,
-    shareLinkId: state.invite_code || state.postId,
+    shareLinkId: state.invite_code,
     myShareLinkId: state.detail.inviteCopyUrl,
     currentInvitedNum: state.detail.inviteCount,
     postId: state.postId
@@ -44,7 +44,7 @@ state.log_open_box_btn_click = {
     pageSource: Report.pageSource.openTreasurePage,
     objectType: Report.objectType.nextButton,
     redPacketType: Report.redPacketType.treasure,
-    shareLinkId: state.invite_code || state.postId,
+    shareLinkId: state.invite_code,
     myShareLinkId: state.detail.inviteCopyUrl,
     currentInvitedNum: state.detail.inviteCount,
     postId: state.postId

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

@@ -55,7 +55,7 @@ import ComponentZoom from "@/view/components/component-zoom.vue";
 import { pageUrl } from "@/http/configAPI.js"
 import Report from "@/log-center/log"
 import { prepareStart, treasureStart } from '@/http/treasure.js'
-import { getChromeCookie, removeChromeCookie } from '@/uilts/chromeExtension.js'
+import { getChromeCookie, removeChromeCookie, getChromeStorage } from '@/uilts/chromeExtension.js'
 import { reSetBindRepost } from '@/http/help.js'
 let state = inject('state')
 
@@ -63,7 +63,7 @@ state.log_show = {
     businessType: Report.businessType.pageView,
     pageSource: Report.pageSource.pending_page,
     redPacketType: Report.redPacketType.treasure,
-    shareLinkId: state.invite_code || state.postId,
+    shareLinkId: state.invite_code,
     postId: state.postId
 }
 
@@ -116,9 +116,35 @@ chrome.runtime.onMessage.addListener((req, sender, sendResponse) => {
                     state.toast.show = false
                 }, 2000)
             } else if (req.task_type == 'createTweet' && req.task_done) {
-                toStart(req)
+                toStart(req);
+                getChromeStorage('userInfo', (_userInfo) => {
+                    if(_userInfo) {
+                      sendChromeTabMessage({
+                        actionType: "IFRAME_API_GET_TWEET_USER_INFO_REQ",
+                        data: {
+                            screen_name: _userInfo.nickName,
+                            tweetId: state.tweetId,
+                        }
+                      })
+                    }
+                })
             }
             break
+        case 'CONTENT_API_GET_TWEET_USER_INFO_RES':
+                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) return;
+                Report.reportLog({
+                    objectType: Report.objectType.repostSuccess,
+                    twitterFans: twitterFans,
+                    redPacketType: Report.redPacketType.treasure,
+                    postId: state.postId
+                });
+            break;
     }
 })
 
@@ -154,7 +180,7 @@ async function clickBtn() {
         objectType: Report.objectType.open_button,
         pageSource: Report.pageSource.pending_page,
         redPacketType: Report.redPacketType.treasure,
-        shareLinkId: state.invite_code || state.postId,
+        shareLinkId: state.invite_code,
         postId: state.postId
     });
 

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

@@ -13,10 +13,9 @@ import VResult from '@/view/iframe/treasure-hunt/result.vue'
 import { inviteDetail, treasureDetail, treasureOpen } from '@/http/treasure.js'
 import { reSetBindTwtterId, reSetBindRepost } from '@/http/help.js'
 import { getQueryString } from '@/uilts/help'
-import { getChromeStorage } from '@/uilts/chromeExtension.js'
+import { getChromeStorage, sendChromeTabMessage } from '@/uilts/chromeExtension.js'
 import VToast from '@/view/iframe/treasure-hunt/components/toast.vue'
 import OpenBox from '@/view/iframe/treasure-hunt/components/open-box.vue'
-import { sendChromeTabMessage } from '@/uilts/chromeExtension.js'
 import Report from "@/log-center/log"
 
 let state = reactive({
@@ -39,10 +38,6 @@ let state = reactive({
 })
 provide('state', state)
 
-let reportParams = {
-  hasReport: false
-}
-
 let params = {}
 onMounted(() => {
     params = JSON.parse(getQueryString('params') || '{}')
@@ -127,7 +122,8 @@ const handleCommon = (res, callback) => {
           sendChromeTabMessage({
             actionType: "IFRAME_API_GET_TWEET_USER_INFO_REQ",
             data: {
-                screen_name: state.detail.postUserInfo.nickName
+                screen_name: state.detail.postUserInfo.nickName,
+                tweetId: state.tweetId,
             }
           })
         })
@@ -250,8 +246,7 @@ function onRuntimeMsg() {
                     let legacy = user.result.legacy;
                     twitterFans = legacy ? legacy.followers_count : 0;
                 }
-                if (reportParams.hasReport) return;
-                reportParams.hasReport = true;
+                if (state.tweetId != req.tweetId) return;
                 Report.reportLog({
                     objectType: Report.objectType.tweetPostBinded,
                     twitterFans: twitterFans,

+ 1 - 1
src/view/iframe/treasure-hunt/invite.vue

@@ -59,7 +59,7 @@ state.log_invite_show = {
     businessType: Report.businessType.pageView,
     pageSource: Report.pageSource.inviteFriendsPage,
     redPacketType: Report.redPacketType.treasure,
-    shareLinkId: state.invite_code || state.postId,
+    shareLinkId: state.invite_code,
     myShareLinkId: state.detail.inviteCopyUrl,
     currentInvitedNum: state.detail.inviteCount,
     postId: state.postId

+ 2 - 2
src/view/iframe/treasure-hunt/result.vue

@@ -53,7 +53,7 @@ state.log_result_show = {
     businessType: Report.businessType.pageView,
     pageSource: Report.pageSource.newFansRewardPage,
     redPacketType: Report.redPacketType.treasure,
-    shareLinkId: state.invite_code || state.postId,
+    shareLinkId: state.invite_code,
     postId: state.postId,
     extParams: {
         isNewFans: Number(state.start_task.amountValue) > 0 ? true : false
@@ -65,7 +65,7 @@ state.log_result_click = {
     pageSource: Report.pageSource.newFansRewardPage,
     objectType: Report.objectType.nextButton,
     redPacketType: Report.redPacketType.treasure,
-    shareLinkId: state.invite_code || state.postId,
+    shareLinkId: state.invite_code,
     postId: state.postId,
     extParams: {
         isNewFans: Number(state.start_task.amountValue) > 0 ? true : false