|
@@ -415,12 +415,13 @@ import { getQueryString, guid, getBit } from '@/uilts/help.js'
|
|
|
import { message } from 'ant-design-vue';
|
|
|
import FontAmount from '@/view/components/font-amount.vue'
|
|
|
import GetMore from '@/view/iframe/publish/components/get-more.vue'
|
|
|
-import { setChromeStorage, getChromeStorage } from '@/uilts/chromeExtension.js'
|
|
|
+import { setChromeStorage, getChromeStorage, sendChromeTabMessage } from '@/uilts/chromeExtension.js'
|
|
|
import Report from "@/log-center/log"
|
|
|
import { srcPublishSuccess } from '@/http/publishApi'
|
|
|
import { discordAuthUrl, checkGuildJoined } from '@/http/discordApi'
|
|
|
import { discordAuthRedirectUri, faceShareRedirectUrl } from '@/http/configAPI'
|
|
|
import { getFrontConfig } from "@/http/account";
|
|
|
+import { getInviteGuildInfo } from "@/http/discordApi";
|
|
|
import GlobalTip from '@/view/components/global-tip.vue'
|
|
|
var moment = require('moment');
|
|
|
|
|
@@ -433,6 +434,16 @@ let facebookAppConfig = {
|
|
|
faceShareRedirectUrl
|
|
|
};
|
|
|
|
|
|
+let reportParams = {
|
|
|
+ discordFans: '',
|
|
|
+ twitterFans: '',
|
|
|
+ done: {
|
|
|
+ },
|
|
|
+ hasReport: false,
|
|
|
+}
|
|
|
+
|
|
|
+let discordTaskDetail = null;
|
|
|
+
|
|
|
let state = reactive({
|
|
|
status: '',
|
|
|
userId: '',
|
|
@@ -649,6 +660,15 @@ function onTweetReplyClick(params) {
|
|
|
}
|
|
|
|
|
|
window.parent.postMessage({ actionType: "IFRAME_RED_PACKET_ON_TWEET_REPLY_CLICK", data: replyData }, "*");
|
|
|
+
|
|
|
+ Report.reportLog({
|
|
|
+ objectType: Report.objectType.comment_and_tag,
|
|
|
+ pageSource: Report.pageSource.task_page,
|
|
|
+ businessType: Report.businessType.buttonClick,
|
|
|
+ postId: state.postId,
|
|
|
+ srcContentId: state.tweetId,
|
|
|
+ senderId: state.userId,
|
|
|
+ });
|
|
|
}
|
|
|
|
|
|
async function clickReply(params) {
|
|
@@ -699,6 +719,16 @@ async function clickRepostFacebook(params) {
|
|
|
|
|
|
let shareUrl = feacebookShareUrl(shareUrlparams);
|
|
|
openShareFacebookWindow({ url: shareUrl });
|
|
|
+
|
|
|
+ // 埋点
|
|
|
+ Report.reportLog({
|
|
|
+ objectType: Report.objectType.share_facebook,
|
|
|
+ pageSource: Report.pageSource.task_page,
|
|
|
+ businessType: Report.businessType.buttonClick,
|
|
|
+ postId: state.postId,
|
|
|
+ srcContentId: state.tweetId,
|
|
|
+ senderId: state.userId,
|
|
|
+ });
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -879,6 +909,10 @@ async function clickFollowAll(item, is_all) {
|
|
|
|
|
|
// 重新绑定
|
|
|
const reSetBindTwtterId = (_params) => {
|
|
|
+ let postBizData = JSON.parse(_params.postBizData);
|
|
|
+ let {taskCondition} = postBizData;
|
|
|
+ let discordTask = JSON.parse(taskCondition).find(item => item.type == 7);
|
|
|
+
|
|
|
getChromeStorage('userInfo', (_userInfo) => {
|
|
|
if (_userInfo && _userInfo.uid == _params.uid) {
|
|
|
srcPublishSuccess({
|
|
@@ -888,16 +922,66 @@ const reSetBindTwtterId = (_params) => {
|
|
|
}
|
|
|
}).then((res) => {
|
|
|
if (res.code == 0 || res.code == 3003) {
|
|
|
- Report.reportLog({
|
|
|
- objectType: Report.objectType.tweetPostBinded
|
|
|
- });
|
|
|
init({ from: 'reSetBindTwtterId' })
|
|
|
+ reportBindTweetSuccess({discordTask, ..._params});
|
|
|
}
|
|
|
})
|
|
|
}
|
|
|
})
|
|
|
}
|
|
|
|
|
|
+const reportBindTweetSuccess = (params) => {
|
|
|
+ let {discordTask, srcUserId} = params || {};
|
|
|
+ discordTaskDetail = discordTask;
|
|
|
+ sendChromeTabMessage({
|
|
|
+ actionType: "IFRAME_API_GET_TWEET_USER_INFO_REQ",
|
|
|
+ data: {
|
|
|
+ screen_name: srcUserId
|
|
|
+ }
|
|
|
+ })
|
|
|
+
|
|
|
+ if(discordTask) {
|
|
|
+ getDiscordInfo({inviteUrl: JSON.parse(discordTask.bizData).inviteUrl}, (res) => {
|
|
|
+ if(res.inviteCode == res.code) {
|
|
|
+ reportParams.discordFans = res.approximate_member_count;
|
|
|
+
|
|
|
+ if(reportParams.twitterFans !== '' && !reportParams.hasReport) {
|
|
|
+ reportParams.hasReport = true;
|
|
|
+ Report.reportLog({
|
|
|
+ objectType: Report.objectType.tweetPostBinded,
|
|
|
+ twitterFans: reportParams.twitterFans,
|
|
|
+ discordFans: reportParams.discordFans
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+const getDiscordInfo = (params, cb) => {
|
|
|
+ let {inviteUrl} = params;
|
|
|
+ if(!inviteUrl) return;
|
|
|
+
|
|
|
+ let inviteCode = '';
|
|
|
+ let arr = inviteUrl.split('/');
|
|
|
+ if(arr.length > 0) {
|
|
|
+ inviteCode = arr[arr.length - 1];
|
|
|
+ }
|
|
|
+ if(!inviteCode) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ getInviteGuildInfo({
|
|
|
+ inviteCode
|
|
|
+ }).then(res => {
|
|
|
+ cb && cb({
|
|
|
+ ...res,
|
|
|
+ inviteCode
|
|
|
+ })
|
|
|
+ }).catch((err) => {
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
const showCloseEndTimePage = () => {
|
|
|
state.status = 'close'
|
|
|
state.close_status = '已经过期了'
|
|
@@ -925,6 +1009,8 @@ const showSuccessPage = () => {
|
|
|
postId: state.postId,
|
|
|
srcContentId: state.tweetId,
|
|
|
senderId: state.userId,
|
|
|
+ isOldTwitterFans: reportParams.done.follow,
|
|
|
+ isOldDiscordFans: reportParams.done.join_discord
|
|
|
});
|
|
|
}
|
|
|
const showNotOpenPage = () => {
|
|
@@ -939,10 +1025,14 @@ const showNotOpenPage = () => {
|
|
|
}
|
|
|
const showOpenedPage = () => {
|
|
|
state.status = 'opened'
|
|
|
-
|
|
|
- initTaskDetail()
|
|
|
+ initTaskDetail(() => {
|
|
|
+ showOpenedPageReport()
|
|
|
+ })
|
|
|
}
|
|
|
const showOpenedPageReport = () => {
|
|
|
+ reportParams.done.follow = state.done.follow;
|
|
|
+ reportParams.done.join_discord = state.done.join_discord;
|
|
|
+
|
|
|
// 埋点
|
|
|
Report.reportLog({
|
|
|
pageSource: Report.pageSource.task_page,
|
|
@@ -950,6 +1040,8 @@ const showOpenedPageReport = () => {
|
|
|
postId: state.postId,
|
|
|
srcContentId: state.tweetId,
|
|
|
senderId: state.userId,
|
|
|
+ isOldTwitterFans: state.done.follow,
|
|
|
+ isOldDiscordFans: state.done.join_discord
|
|
|
});
|
|
|
}
|
|
|
|
|
@@ -1018,7 +1110,6 @@ const handleStatusPage = () => {
|
|
|
if (state.detail.myReceived.taskFinishStatus == 0) {
|
|
|
// 显示任务未完成页面
|
|
|
showOpenedPage()
|
|
|
- showOpenedPageReport()
|
|
|
if (state.process_mode != 'production') {
|
|
|
getValidity()
|
|
|
}
|
|
@@ -1087,7 +1178,6 @@ function setFrontConfig() {
|
|
|
|
|
|
function init(initParams) {
|
|
|
let { type } = initParams || {};
|
|
|
- onRuntimeMsg();
|
|
|
onPageVisbile();
|
|
|
onWindowMessage();
|
|
|
setFrontConfig();
|
|
@@ -1129,7 +1219,7 @@ function init(initParams) {
|
|
|
})
|
|
|
}
|
|
|
|
|
|
-function initTaskDetail() {
|
|
|
+function initTaskDetail(cb) {
|
|
|
getChromeStorage('userInfo', (_userInfo) => {
|
|
|
if (_userInfo && _userInfo.uid) {
|
|
|
// 任务详情
|
|
@@ -1169,6 +1259,7 @@ function initTaskDetail() {
|
|
|
} else {
|
|
|
handleErrorCode(res)
|
|
|
}
|
|
|
+ cb && cb()
|
|
|
})
|
|
|
}
|
|
|
})
|
|
@@ -1287,6 +1378,7 @@ onMounted(() => {
|
|
|
|
|
|
getTweetAuthor()
|
|
|
init()
|
|
|
+ onRuntimeMsg();
|
|
|
// state.loading_show = true
|
|
|
// state.status = 'success'
|
|
|
// state.status = 'close'
|
|
@@ -1719,6 +1811,32 @@ function onRuntimeMsg() {
|
|
|
state.done.reply_red = false;
|
|
|
}
|
|
|
break;
|
|
|
+ case 'CONTENT_API_GET_TWEET_USER_INFO_RES':
|
|
|
+ let {user} = req.data || {};
|
|
|
+ if(user && user.result && user.result.legacy) {
|
|
|
+ let legacy = user.result.legacy;
|
|
|
+ reportParams.twitterFans = legacy.followers_count;
|
|
|
+
|
|
|
+ if(!discordTaskDetail) {
|
|
|
+ if(reportParams.hasReport) return;
|
|
|
+ reportParams.hasReport = true;
|
|
|
+ Report.reportLog({
|
|
|
+ objectType: Report.objectType.tweetPostBinded,
|
|
|
+ twitterFans: reportParams.twitterFans,
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ if(reportParams.discordFans !== '') {
|
|
|
+ if(reportParams.hasReport) return;
|
|
|
+ reportParams.hasReport = true;
|
|
|
+ Report.reportLog({
|
|
|
+ objectType: Report.objectType.tweetPostBinded,
|
|
|
+ twitterFans: reportParams.twitterFans,
|
|
|
+ discordFans: reportParams.discordFans
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
}
|
|
|
})
|
|
|
}
|
|
@@ -1774,6 +1892,16 @@ async function joinDiscord() {
|
|
|
if (joinDiscordIng.value) {
|
|
|
return;
|
|
|
}
|
|
|
+ // 埋点
|
|
|
+ Report.reportLog({
|
|
|
+ objectType: Report.objectType.join_discord,
|
|
|
+ pageSource: Report.pageSource.task_page,
|
|
|
+ businessType: Report.businessType.buttonClick,
|
|
|
+ postId: state.postId,
|
|
|
+ srcContentId: state.tweetId,
|
|
|
+ senderId: state.userId,
|
|
|
+ });
|
|
|
+
|
|
|
let url = getInviteUrl();
|
|
|
if (url) {
|
|
|
joinDiscordIng.value = true;
|