Browse Source

Merge branch 'dev_1.1.7' of https://git.yishihui.com/DeNet/de-net into dev_1.1.7

zhangwei 2 years ago
parent
commit
6ec47f7540

+ 2 - 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',
@@ -105,6 +105,7 @@ export const pageSource = {
     newFansRewardPage: "new-fans-reward-page",
     inviteFriendsPage: "invite-friends-page",
     openTreasurePage: "open-treasure-page",
+    beenInvitedPage: "been-invited-page",
 
     // 待开红包页
     pending_page: 'pending-page',

+ 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 }) {

+ 4 - 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 = '', objectType = '' } = 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,8 +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 || {} }, () => { })
-    }).catch(function (response) {
+        chrome.runtime.sendMessage({ actionType: "CONTENT_API_GET_TWEET_USER_INFO_RES", data: response.data.data || {}, tweetId, objectType }, () => { })
+    }).catch(function (err) {
+      chrome.runtime.sendMessage({ actionType: "CONTENT_API_GET_TWEET_USER_INFO_RES", data: {}, tweetId, objectType }, () => { })
     });
 }
 

+ 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();
 }
 

+ 1 - 1
src/view/iframe/publish/tool-box/child/preview.vue

@@ -251,7 +251,7 @@ const submitPublish = () => {
 
     Report.reportLog({
         pageSource: Report.pageSource.previewPage,
-        businessType: Report.businessType.pageView,
+        businessType: Report.businessType.buttonClick,
         objectType: Report.objectType.confirmButton
     }, {
       'type': Report.bizType.ToolBox,

+ 1 - 1
src/view/iframe/red-packet/luck-draw.vue

@@ -2007,7 +2007,7 @@ function onRuntimeMsg() {
                 let { user } = req.data || {};
                 if (user && user.result && user.result.legacy) {
                     let legacy = user.result.legacy;
-                    reportParams.twitterFans = legacy.followers_count;
+                    reportParams.twitterFans = legacy ? legacy.followers_count : 0;
 
                     if (!discordTaskDetail) {
                         if (reportParams.hasReport) return;

+ 1 - 1
src/view/iframe/red-packet/red-packet.vue

@@ -1802,7 +1802,7 @@ function onRuntimeMsg() {
         let { user } = req.data || {};
         if (user && user.result && user.result.legacy) {
           let legacy = user.result.legacy;
-          reportParams.twitterFans = legacy.followers_count;
+          reportParams.twitterFans = legacy ? legacy.followers_count : 0;
 
           if (!discordTaskDetail) {
             if (reportParams.hasReport) return;

+ 10 - 5
src/view/iframe/tool-box/buy-nft.vue

@@ -1,9 +1,5 @@
 <template>
-    <div
-        class="nft-layer"
-        v-show-log="{
-            pageSource: Report.pageSource.buy_posteditor_nft_dialog,
-        }">
+    <div class="nft-layer">
         <div class="title">
             <img @click="close" :src=" require('@/assets/svg/icon-close.svg') " />
             <span class="text">Unlock by Ruomeng NFT</span>
@@ -22,6 +18,8 @@
                 v-click-log="{
                     pageSource: Report.pageSource.buy_posteditor_nft_dialog,
                     objectType: Report.objectType.buy_button,
+                    nftProjectId: nftAuthINfo.certNftProjectId || '',
+                    postId: postId,
                 }">
                 <span>Buy NFT to Participate</span>
             </div>
@@ -94,6 +92,13 @@ onBeforeMount(() => {
         if ( code === 0 ) {
             btnStatus.value = true;
             nftAuthINfo.value = data;
+            // report
+            Report.reportLog({
+                businessType: Report.businessType.pageView,
+                pageSource: Report.pageSource.buy_posteditor_nft_dialog,
+                nftProjectId: data.certNftProjectId || '',
+                postId: postId.value || '',
+            })
         }
     })
 })

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

@@ -1,5 +1,5 @@
 <template>
-    <div class="content">
+    <div class="content" v-show-log="state.log_invite_list_show">
         <div class="error" v-if="state.invited_list.length == 0">
             Invite people to hunt treasure with you!
         </div>
@@ -45,6 +45,16 @@ state.log_invite_btn_click = {
     postId: state.postId
 }
 
+state.log_invite_list_show = {
+    businessType: Report.businessType.pageView,
+    pageSource: Report.pageSource.beenInvitedPage,
+    redPacketType: Report.redPacketType.treasure,
+    shareLinkId: state.invite_code || state.postId,
+    myShareLinkId: state.detail.inviteCopyUrl,
+    currentInvitedNum: state.detail.inviteCount,
+    postId: state.postId
+}
+
 onMounted(() => {
     list()
 })

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

@@ -55,8 +55,9 @@ 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, sendChromeTabMessage } from '@/uilts/chromeExtension.js'
 import { reSetBindRepost } from '@/http/help.js'
+
 let state = inject('state')
 
 state.log_show = {
@@ -116,9 +117,37 @@ 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,
+                            objectType: Report.objectType.repostSuccess
+                        }
+                      })
+                    }
+                })
             }
             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 && req.objectType == Report.objectType.repostSuccess) {
+                  Report.reportLog({
+                      objectType: Report.objectType.repostSuccess,
+                      twitterFans: twitterFans,
+                      redPacketType: Report.redPacketType.treasure,
+                      postId: state.postId
+                  });
+                };
+            break;
     }
 })
 

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

@@ -13,10 +13,10 @@ 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 Report from "@/log-center/log"
 
 let state = reactive({
     page: '',
@@ -44,7 +44,8 @@ onMounted(() => {
     state.postId = params.post_Id || ''
     state.tweetId = params.tweet_Id || ''
     state.invite_code = params.invite_code || ''
-    state.init()
+    state.init();
+    onRuntimeMsg();
 })
 
 state.checkIsLogin = () => {
@@ -117,6 +118,15 @@ const handleCommon = (res, callback) => {
         reSetBindTwtterId({
             postId: state.postId || '',
             tweetId: state.tweetId || ''
+        }, () => {
+          sendChromeTabMessage({
+            actionType: "IFRAME_API_GET_TWEET_USER_INFO_REQ",
+            data: {
+                screen_name: state.detail.postUserInfo.nickName,
+                tweetId: state.tweetId,
+                objectType: Report.objectType.tweetPostBinded
+            }
+          })
         })
     }
     callback && callback()
@@ -226,6 +236,30 @@ const handleStatus = () => {
         state.btn_loading = false
     }
 }
+
+function onRuntimeMsg() {
+    chrome.runtime.onMessage.addListener((req, sender, sendResponse) => {
+        switch (req.actionType) {
+            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 && req.objectType == Report.objectType.tweetPostBinded) {
+                  Report.reportLog({
+                    objectType: Report.objectType.tweetPostBinded,
+                    twitterFans: twitterFans,
+                    redPacketType: Report.redPacketType.treasure,
+                    postId: state.postId
+                  });
+                }
+                break;
+        }
+        sendResponse && sendResponse();
+    })
+}
 </script>
 <style lang="scss" >
 html,
@@ -233,4 +267,4 @@ body {
     margin: 0;
     padding: 0;
 }
-</style>
+</style>