|
@@ -23,11 +23,12 @@
|
|
|
</div>
|
|
|
|
|
|
<div class="list">
|
|
|
- <div class="item" v-for="item, i in state.detail.taskCondition" v-bind:key="i">
|
|
|
- <template v-if="item.type == 1 && item.relatedUsers && item.relatedUsers.length > 0">
|
|
|
+ <template v-for="item, i in state.detail.taskCondition" v-bind:key="i">
|
|
|
+ <div class="item" v-if="item.type == 1 && item.relatedUsers && item.relatedUsers.length > 0">
|
|
|
<div class="item-content">
|
|
|
<div class="item-follow-title">
|
|
|
- <img :src="require('@/assets/svg/icon-follow.svg')" alt />
|
|
|
+ <img :src="require('@/assets/svg/icon-task-twitter.svg')" alt />
|
|
|
+ <!-- <img :src="require('@/assets/svg/icon-follow.svg')" alt /> -->
|
|
|
<div class="item-title">Follow</div>
|
|
|
<img :src="require('@/assets/gif/red-right.gif')" alt class="red-right"
|
|
|
v-show="!state.done.follow && state.done.follow_red" />
|
|
@@ -40,16 +41,17 @@
|
|
|
<span :class="{ finished: item2.finished }">@{{ item2.name }}</span>
|
|
|
<img :src="require('@/assets/svg/icon-true-ed.svg')" alt />
|
|
|
</div>
|
|
|
- <div class="item-follow" v-else @click="clickFollowAll([{ name: item2.name }])">
|
|
|
+ <div class="item-follow" v-else @click="clickFollowAll([item2])">
|
|
|
<span :class="{ finished: item2.finished }">@{{ item2.name }}</span>
|
|
|
<img :src="require('@/assets/svg/icon-add.svg')" alt />
|
|
|
</div>
|
|
|
</template>
|
|
|
</div>
|
|
|
</div>
|
|
|
- </template>
|
|
|
- <template v-if="item.type == 2">
|
|
|
- <img :src="require('@/assets/svg/icon-like.svg')" alt />
|
|
|
+ </div>
|
|
|
+ <div class="item" v-if="item.type == 2">
|
|
|
+ <img :src="require('@/assets/svg/icon-task-twitter.svg')" alt />
|
|
|
+ <!-- <img :src="require('@/assets/svg/icon-like.svg')" alt /> -->
|
|
|
<div class="item-content">
|
|
|
<div class="item-title">Like</div>
|
|
|
</div>
|
|
@@ -57,9 +59,10 @@
|
|
|
v-show="!state.done.like && state.done.like_red" />
|
|
|
<img v-if="state.done.like" :src="require('@/assets/svg/icon-true.svg')" alt />
|
|
|
<div v-else class="btn" @click="clickLikeBtn">Like</div>
|
|
|
- </template>
|
|
|
- <template v-if="item.type == 3">
|
|
|
- <img :src="require('@/assets/svg/icon-retweet.svg')" alt />
|
|
|
+ </div>
|
|
|
+ <div class="item" v-if="item.type == 3">
|
|
|
+ <img :src="require('@/assets/svg/icon-task-twitter.svg')" alt />
|
|
|
+ <!-- <img :src="require('@/assets/svg/icon-retweet.svg')" alt /> -->
|
|
|
<div class="item-content">
|
|
|
<div class="item-title">Retweet</div>
|
|
|
</div>
|
|
@@ -67,8 +70,31 @@
|
|
|
v-show="!state.done.retweet && state.done.retweet_red" />
|
|
|
<img v-if="state.done.retweet" :src="require('@/assets/svg/icon-true.svg')" alt />
|
|
|
<div v-else class="btn" @click="clickRetweetBtn">Retweet</div>
|
|
|
- </template>
|
|
|
- <template v-if="item.type == 7">
|
|
|
+ </div>
|
|
|
+ <!-- Comment、艾特 friends -->
|
|
|
+ <div class="item" v-if="item.type == 9">
|
|
|
+ <img :src="require('@/assets/svg/icon-task-twitter.svg')" alt />
|
|
|
+ <div class="item-content">
|
|
|
+ <div class="item-title">Comment and Tag 3 friends</div>
|
|
|
+ </div>
|
|
|
+ <img :src="require('@/assets/gif/red-right.gif')" alt class="red-right"
|
|
|
+ v-show="!state.done.reply && state.done.reply_red" />
|
|
|
+ <img v-if="state.done.reply" :src="require('@/assets/svg/icon-true.svg')" alt />
|
|
|
+ <div v-else class="btn" @click="clickReply(item)">Comment</div>
|
|
|
+ </div>
|
|
|
+ <!-- repost feacebook -->
|
|
|
+ <div class="item" v-if="item.type == 8">
|
|
|
+ <img :src="require('@/assets/svg/icon-task-facebook.svg')" alt />
|
|
|
+ <div class="item-content">
|
|
|
+ <div class="item-title">Repost to Facebook</div>
|
|
|
+ </div>
|
|
|
+ <img :src="require('@/assets/gif/red-right.gif')" alt class="red-right"
|
|
|
+ v-show="!state.done.repost_facebook && state.done.repost_facebook_red" />
|
|
|
+ <img v-if="state.done.repost_facebook" :src="require('@/assets/svg/icon-true.svg')" alt />
|
|
|
+ <div v-else class="btn" @click="clickRepostFacebook(item)">Repost</div>
|
|
|
+ </div>
|
|
|
+ <!-- join discord -->
|
|
|
+ <div class="item" v-if="item.type == 7">
|
|
|
<img :src="require('@/assets/svg/icon-discord-mini.svg')" alt />
|
|
|
<div class="item-content">
|
|
|
<div class="item-title">Join Discord</div>
|
|
@@ -84,8 +110,8 @@
|
|
|
Join
|
|
|
</div>
|
|
|
</template>
|
|
|
- </template>
|
|
|
- </div>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
</div>
|
|
|
<!-- <div class="people" @click="clickRoad">
|
|
|
<div class="txt">
|
|
@@ -155,8 +181,7 @@
|
|
|
<div class="luck-content">
|
|
|
<div class="luck-title" v-if="item.simpleUserInfoVO.nickName">{{ item.simpleUserInfoVO.nickName }}</div>
|
|
|
<div class="luck-title" v-else>Twitter User</div>
|
|
|
-
|
|
|
- <div class="luck-time">{{ moment(item.receiveTimestamp).format('MM-DD HH:mm:ss') }}</div>
|
|
|
+ <div class="luck-time">{{ moment(item.receiveTimestamp).format('MM-DD HH:mm') }}</div>
|
|
|
</div>
|
|
|
<div class="luck-money">
|
|
|
<img :src="state.detail.currencyIconPath" alt />
|
|
@@ -345,11 +370,12 @@ 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 { getChromeStorage } from '@/uilts/chromeExtension.js'
|
|
|
+import { setChromeStorage, getChromeStorage } from '@/uilts/chromeExtension.js'
|
|
|
import Report from "@/log-center/log"
|
|
|
import { srcPublishSuccess } from '@/http/publishApi'
|
|
|
import { discordAuthUrl, checkGuildJoined } from '@/http/discordApi'
|
|
|
-import { discordAuthRedirectUri } from '@/http/configAPI'
|
|
|
+import { discordAuthRedirectUri, faceShareRedirectUrl } from '@/http/configAPI'
|
|
|
+import { getFrontConfig } from "@/http/account";
|
|
|
import GlobalTip from '@/view/components/global-tip.vue'
|
|
|
|
|
|
var moment = require('moment');
|
|
@@ -358,9 +384,14 @@ let discordAuthorizeRequired = false;
|
|
|
let joinDiscordActionState = 'default'; //authAndJoinIng joinIng reAuth
|
|
|
let joinDiscordIng = ref(false);
|
|
|
|
|
|
+let facebookAppConfig = {
|
|
|
+ facebookAppId: "",
|
|
|
+ faceShareRedirectUrl
|
|
|
+};
|
|
|
+
|
|
|
let state = reactive({
|
|
|
status: '',
|
|
|
- loading_show: false,
|
|
|
+ loading_show: true,
|
|
|
detail: {},
|
|
|
luck_list_end: false,
|
|
|
page_index: 1,
|
|
@@ -374,9 +405,14 @@ let state = reactive({
|
|
|
follow: false,
|
|
|
like: false,
|
|
|
retweet: false,
|
|
|
- join_discord: false
|
|
|
+ join_discord: false,
|
|
|
+ repost_facebook: false,
|
|
|
+ reply: false
|
|
|
}
|
|
|
})
|
|
|
+
|
|
|
+let fullName = '';
|
|
|
+
|
|
|
function clickRetry() {
|
|
|
init()
|
|
|
}
|
|
@@ -388,35 +424,52 @@ async function clickLikeBtn() {
|
|
|
if (!_userInfo) {
|
|
|
return
|
|
|
}
|
|
|
- // window.parent.postMessage({
|
|
|
- // actionType: "IFRAME_DO_TASK", task_data: {
|
|
|
- // tweet_Id: state.tweetId
|
|
|
- // }, task_type: 'like'
|
|
|
- // }, "*");
|
|
|
-
|
|
|
- if (state.detail.finishTaskType && state.detail.finishTaskType == 2) {
|
|
|
- window.open(`https://twitter.com/intent/like?tweet_id=${state.tweetId}`)
|
|
|
- return
|
|
|
+ state.detail.finishTaskTypeV2 = state.detail.finishTaskTypeV2.toString() || ''
|
|
|
+ if (state.window_origin.indexOf('facebook.com') >= 0) {
|
|
|
+ state.detail.finishTaskTypeV2 = '2'
|
|
|
}
|
|
|
- state.loading_show = true
|
|
|
- oneKeyLike({
|
|
|
- params: {
|
|
|
- tweetId: state.srcContentId
|
|
|
- }
|
|
|
- }).then((res) => {
|
|
|
- state.loading_show = false
|
|
|
- if (res.code == 0) {
|
|
|
- if (res.data.result) {
|
|
|
- state.done.like = true
|
|
|
- } else {
|
|
|
- state.done.like = false
|
|
|
- window.open(`https://twitter.com/intent/like?tweet_id=${state.tweetId}`)
|
|
|
- }
|
|
|
- } else {
|
|
|
+ switch (state.detail.finishTaskTypeV2) {
|
|
|
+ case '1':
|
|
|
+ state.loading_show = true
|
|
|
+ oneKeyLike({
|
|
|
+ params: {
|
|
|
+ tweetId: state.srcContentId
|
|
|
+ }
|
|
|
+ }).then((res) => {
|
|
|
+ state.loading_show = false
|
|
|
+ if (res.code == 0) {
|
|
|
+ if (res.data.result) {
|
|
|
+ state.done.like = true
|
|
|
+ } else {
|
|
|
+ state.done.like = false
|
|
|
+ window.open(`https://twitter.com/intent/like?tweet_id=${state.tweetId}`)
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ window.open(`https://twitter.com/intent/like?tweet_id=${state.tweetId}`)
|
|
|
+ state.done.like = false
|
|
|
+ }
|
|
|
+ }).catch(()=>{
|
|
|
+ state.loading_show = false
|
|
|
+ })
|
|
|
+ break
|
|
|
+ case '2':
|
|
|
window.open(`https://twitter.com/intent/like?tweet_id=${state.tweetId}`)
|
|
|
- state.done.like = false
|
|
|
- }
|
|
|
- })
|
|
|
+ break
|
|
|
+ case '3':
|
|
|
+ state.loading_show = true
|
|
|
+ chrome.tabs.getCurrent((tab) => {
|
|
|
+ chrome.tabs.sendMessage(tab.id, {
|
|
|
+ actionType: "IFRAME_TWITTER_API_DO_TASK", task_data: {
|
|
|
+ tweet_Id: state.tweetId
|
|
|
+ }, task_type: 'like'
|
|
|
+ }, (res) => { console.log(res) });
|
|
|
+ })
|
|
|
+ break
|
|
|
+ default:
|
|
|
+ window.open(`https://twitter.com/intent/like?tweet_id=${state.tweetId}`)
|
|
|
+ break
|
|
|
+ }
|
|
|
+
|
|
|
// 埋点
|
|
|
Report.reportLog({
|
|
|
objectType: Report.objectType.like,
|
|
@@ -476,29 +529,53 @@ async function clickRetweetBtn() {
|
|
|
if (!_userInfo) {
|
|
|
return
|
|
|
}
|
|
|
- if (state.detail.finishTaskType && state.detail.finishTaskType == 2) {
|
|
|
- window.open(`https://twitter.com/intent/retweet?tweet_id=${state.tweetId}`)
|
|
|
- return
|
|
|
+
|
|
|
+ state.detail.finishTaskTypeV2 = state.detail.finishTaskTypeV2.toString() || ''
|
|
|
+ if (state.window_origin.indexOf('facebook.com') >= 0) {
|
|
|
+ state.detail.finishTaskTypeV2 = '2'
|
|
|
}
|
|
|
- state.loading_show = true
|
|
|
- oneKeyReTweet({
|
|
|
- params: {
|
|
|
- tweetId: state.srcContentId
|
|
|
- }
|
|
|
- }).then((res) => {
|
|
|
- state.loading_show = false
|
|
|
- if (res.code == 0) {
|
|
|
- if (res.data.result) {
|
|
|
- state.done.retweet = true
|
|
|
- } else {
|
|
|
- window.open(`https://twitter.com/intent/retweet?tweet_id=${state.tweetId}`)
|
|
|
- state.done.retweet = false
|
|
|
- }
|
|
|
- } else {
|
|
|
- window.open(`https://twitter.com/retweet/like?tweet_id=${state.tweetId}`)
|
|
|
- state.done.retweet = false
|
|
|
- }
|
|
|
- })
|
|
|
+ switch (state.detail.finishTaskTypeV2) {
|
|
|
+ case '1':
|
|
|
+ state.loading_show = true
|
|
|
+ oneKeyReTweet({
|
|
|
+ params: {
|
|
|
+ tweetId: state.srcContentId
|
|
|
+ }
|
|
|
+ }).then((res) => {
|
|
|
+ state.loading_show = false
|
|
|
+ if (res.code == 0) {
|
|
|
+ if (res.data.result) {
|
|
|
+ state.done.retweet = true
|
|
|
+ } else {
|
|
|
+ window.open(`https://twitter.com/intent/retweet?tweet_id=${state.tweetId}`)
|
|
|
+ state.done.retweet = false
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ window.open(`https://twitter.com/retweet/like?tweet_id=${state.tweetId}`)
|
|
|
+ state.done.retweet = false
|
|
|
+ }
|
|
|
+ }).catch(()=>{
|
|
|
+ state.loading_show = false
|
|
|
+ })
|
|
|
+ break;
|
|
|
+ case '2':
|
|
|
+ window.open(`https://twitter.com/intent/retweet?tweet_id=${state.tweetId}`)
|
|
|
+ break
|
|
|
+ case '3':
|
|
|
+ state.loading_show = true
|
|
|
+ chrome.tabs.getCurrent((tab) => {
|
|
|
+ chrome.tabs.sendMessage(tab.id, {
|
|
|
+ actionType: "IFRAME_TWITTER_API_DO_TASK", task_data: {
|
|
|
+ tweet_Id: state.tweetId
|
|
|
+ }, task_type: 'retweet'
|
|
|
+ }, (res) => { console.log(res) });
|
|
|
+ })
|
|
|
+ break
|
|
|
+ default:
|
|
|
+ window.open(`https://twitter.com/intent/retweet?tweet_id=${state.tweetId}`)
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
// 埋点
|
|
|
Report.reportLog({
|
|
|
objectType: Report.objectType.retweet,
|
|
@@ -507,6 +584,106 @@ async function clickRetweetBtn() {
|
|
|
});
|
|
|
}
|
|
|
|
|
|
+function onTweetReplyClick(params) {
|
|
|
+ let replyData = {
|
|
|
+ postId: state.postId,
|
|
|
+ type: params.type,
|
|
|
+ taskLuckdropId: state.detail.taskLuckdropId
|
|
|
+ }
|
|
|
+
|
|
|
+ window.parent.postMessage({ actionType: "IFRAME_RED_PACKET_ON_TWEET_REPLY_CLICK", data: replyData }, "*");
|
|
|
+}
|
|
|
+
|
|
|
+async function clickReply(params) {
|
|
|
+ let _userInfo = await checkIsLogin()
|
|
|
+ if (!_userInfo) {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ let replyData = {
|
|
|
+ postId: state.postId,
|
|
|
+ type: params.type,
|
|
|
+ taskLuckdropId: state.detail.taskLuckdropId
|
|
|
+ }
|
|
|
+ if (state.window_origin.indexOf('facebook.com') > -1) {
|
|
|
+ let url = `https://twitter.com/${state.tweet_author}/status/${state.tweetId}?actionType=denetFacebookToTwitterReply&deReplyParams=${JSON.stringify(replyData)}`
|
|
|
+ window.open(url)
|
|
|
+ } else {
|
|
|
+ window.parent.postMessage({ actionType: "IFRAME_RED_PACKET_REPLY_CLICK", data: replyData }, "*");
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * 点击repost facebook
|
|
|
+ */
|
|
|
+async function clickRepostFacebook(params) {
|
|
|
+ let _userInfo = await checkIsLogin()
|
|
|
+ if (!_userInfo) {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ let deUrlParams = {
|
|
|
+ fullName,
|
|
|
+ tweetId: state.tweetId
|
|
|
+ }
|
|
|
+ let href = `${state.postRedirectUrl}?deUrlParams=${JSON.stringify(deUrlParams)}`;
|
|
|
+ console.log(href);
|
|
|
+ let shareUrlparams = {
|
|
|
+ href,
|
|
|
+ type: params.type,
|
|
|
+ taskLuckdropId: state.detail.taskLuckdropId
|
|
|
+ }
|
|
|
+
|
|
|
+ setChromeStorage({
|
|
|
+ shareFacebookData: JSON.stringify({
|
|
|
+ contentStr: state.srcContent
|
|
|
+ })
|
|
|
+ })
|
|
|
+
|
|
|
+ let shareUrl = feacebookShareUrl(shareUrlparams);
|
|
|
+ openShareFacebookWindow({ url: shareUrl });
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * 分享到facebook
|
|
|
+ */
|
|
|
+function openShareFacebookWindow({ url }) {
|
|
|
+ const width = 800;
|
|
|
+ chrome.windows.create({
|
|
|
+ width,
|
|
|
+ type: 'normal',
|
|
|
+ url
|
|
|
+ }, function (window) {
|
|
|
+
|
|
|
+ })
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * 分享fecebook 地址
|
|
|
+ */
|
|
|
+function feacebookShareUrl(params = {}) {
|
|
|
+ let { href = '', type = '', taskLuckdropId } = params;
|
|
|
+ let cbParams = JSON.stringify({
|
|
|
+ type,
|
|
|
+ taskLuckdropId
|
|
|
+ })
|
|
|
+ let shareUrl = `https://www.facebook.com/dialog/share?app_id=${facebookAppConfig.facebookAppId}&display=popup&href=${href}&redirect_uri=${facebookAppConfig.faceShareRedirectUrl}?params=${cbParams}`;
|
|
|
+
|
|
|
+ return shareUrl;
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * 分享成功
|
|
|
+ */
|
|
|
+function facebookShareSuccess(params) {
|
|
|
+ let { taskLuckdropId } = params;
|
|
|
+
|
|
|
+ if (taskLuckdropId == state.detail.taskLuckdropId) {
|
|
|
+ state.done.repost_facebook = true;
|
|
|
+ state.done.repost_facebook_red = false;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
|
|
|
function getValidity() {
|
|
|
let _d1, _d2, _d3, _h, _m, _s
|
|
@@ -540,14 +717,14 @@ function getValidity() {
|
|
|
}
|
|
|
|
|
|
const openFollowTabs = (arr_name) => {
|
|
|
- let array_finish = arr_name.filter((item) => { return !item.finished })
|
|
|
+ let array_finish = arr_name.filter((item) => { return !item.finished })
|
|
|
// let array_finish = state.detail.taskCondition[0].relatedUsers.filter((item) => { return item.finished == false })
|
|
|
let url
|
|
|
if (array_finish.length > 0) {
|
|
|
state.done.follow = false
|
|
|
// 打开标签页的方法
|
|
|
array_finish.forEach((item) => {
|
|
|
- url = `https://twitter.com/intent/follow?screen_name=${item}&tweet_id=${state.tweetId}`
|
|
|
+ url = `https://twitter.com/intent/follow?screen_name=${item.name}&tweet_id=${state.tweetId}`
|
|
|
chrome.tabs.create({ url }, (tab) => {
|
|
|
if (follow_open_tabs.filter((item) => { return item.url == tab.url }).length == 0) {
|
|
|
follow_open_tabs.push(tab)
|
|
@@ -565,32 +742,67 @@ async function clickFollowAll(item, is_all) {
|
|
|
let arr_name = []
|
|
|
for (let i in item) {
|
|
|
if (!item[i].finished) {
|
|
|
- arr_name.push(item[i].name)
|
|
|
+ arr_name.push(item[i])
|
|
|
}
|
|
|
}
|
|
|
- if (state.detail.finishTaskType && state.detail.finishTaskType == 2) {
|
|
|
- openFollowTabs(arr_name)
|
|
|
- return
|
|
|
+ // ----
|
|
|
+ state.detail.finishTaskTypeV2 = state.detail.finishTaskTypeV2.toString() || ''
|
|
|
+ if (state.window_origin.indexOf('facebook.com') >= 0) {
|
|
|
+ state.detail.finishTaskTypeV2 = '2'
|
|
|
}
|
|
|
- state.loading_show = true
|
|
|
- oneKeyFollow({
|
|
|
- params: {
|
|
|
- names: arr_name
|
|
|
- }
|
|
|
- }).then((res) => {
|
|
|
- state.loading_show = false
|
|
|
- if (res.code == 0) {
|
|
|
- res.data.forEach((item1) => {
|
|
|
- state.detail.taskCondition[0].relatedUsers.forEach(item2 => {
|
|
|
- if (item1.name == item2.name && item1.finished) {
|
|
|
- item2.finished = true
|
|
|
- }
|
|
|
- });
|
|
|
+ switch (state.detail.finishTaskTypeV2) {
|
|
|
+ case '1':
|
|
|
+ // openapi
|
|
|
+ state.loading_show = true
|
|
|
+ oneKeyFollow({
|
|
|
+ params: {
|
|
|
+ names: arr_name
|
|
|
+ }
|
|
|
+ }).then((res) => {
|
|
|
+ state.loading_show = false
|
|
|
+ if (res.code == 0) {
|
|
|
+ res.data.forEach((item1) => {
|
|
|
+ state.detail.taskCondition[0].relatedUsers.forEach(item2 => {
|
|
|
+ if (item1.name == item2.name && item1.finished) {
|
|
|
+ item2.finished = true
|
|
|
+ }
|
|
|
+ });
|
|
|
+ })
|
|
|
+ openFollowTabs(arr_name)
|
|
|
+ }
|
|
|
+ }).catch(()=>{
|
|
|
+ state.loading_show = false
|
|
|
})
|
|
|
+ break
|
|
|
+ case '2':
|
|
|
openFollowTabs(arr_name)
|
|
|
- }
|
|
|
- })
|
|
|
+ break
|
|
|
+ case '3':
|
|
|
+ if (arr_name.filter((item) => { return !item.twitterUserId }).length > 0) {
|
|
|
+ openFollowTabs(arr_name)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ let follow_data = []
|
|
|
+ arr_name.forEach((item) => {
|
|
|
+ follow_data.push(item)
|
|
|
+ })
|
|
|
+ state.loading_show = true
|
|
|
+ chrome.tabs.getCurrent((tab) => {
|
|
|
+ chrome.tabs.sendMessage(tab.id, {
|
|
|
+ actionType: "IFRAME_TWITTER_API_DO_TASK",
|
|
|
+ task_data: {
|
|
|
+ tweet_Id: state.tweetId,
|
|
|
+ follow_data: follow_data,
|
|
|
+ },
|
|
|
+ task_type: 'follow'
|
|
|
+ }, (res) => { console.log(res) });
|
|
|
+ })
|
|
|
|
|
|
+ break
|
|
|
+ default:
|
|
|
+ openFollowTabs(arr_name)
|
|
|
+ break
|
|
|
+ }
|
|
|
// -------- 埋点 --------
|
|
|
let _log_obj = {
|
|
|
pageSource: Report.pageSource.task_page,
|
|
@@ -618,17 +830,13 @@ const reSetBindTwtterId = (_params) => {
|
|
|
Report.reportLog({
|
|
|
objectType: Report.objectType.tweetPostBinded
|
|
|
});
|
|
|
- init()
|
|
|
+ init({ from: 'reSetBindTwtterId' })
|
|
|
}
|
|
|
})
|
|
|
}
|
|
|
})
|
|
|
}
|
|
|
|
|
|
-function showLastTwoPlace(n) {
|
|
|
- return n
|
|
|
-}
|
|
|
-
|
|
|
const showCloseEndTimePage = () => {
|
|
|
state.status = 'close'
|
|
|
state.close_status = '红包过期了'
|
|
@@ -647,11 +855,8 @@ const showSuccessPage = () => {
|
|
|
state.status = 'success'
|
|
|
// 埋点
|
|
|
Report.reportLog({
|
|
|
- pageSource: Report.pageSource.task_page,
|
|
|
+ pageSource: Report.pageSource.received_success_page,
|
|
|
businessType: Report.businessType.pageView,
|
|
|
- objectType: Report.objectType.get_giveaway
|
|
|
- }, {
|
|
|
- get_giveaway_result: Report.extParams.success
|
|
|
});
|
|
|
}
|
|
|
const showNotOpenPage = () => {
|
|
@@ -785,9 +990,22 @@ const handleStatusPage = () => {
|
|
|
|
|
|
}
|
|
|
|
|
|
-function init() {
|
|
|
+function setFrontConfig() {
|
|
|
+ getFrontConfig({
|
|
|
+ params: {},
|
|
|
+ }).then((res) => {
|
|
|
+ if (res.code == 0) {
|
|
|
+ facebookAppConfig.facebookAppId = res.data.fbClientId;
|
|
|
+ }
|
|
|
+ });
|
|
|
+};
|
|
|
+
|
|
|
+function init(initParams) {
|
|
|
+ let { type } = initParams || {};
|
|
|
onRuntimeMsg();
|
|
|
onPageVisbile();
|
|
|
+ onWindowMessage();
|
|
|
+ setFrontConfig();
|
|
|
getPostDetail({
|
|
|
params: {
|
|
|
postId: state.postId
|
|
@@ -799,16 +1017,21 @@ function init() {
|
|
|
// 如果金额是0
|
|
|
// 显示没有领到钱
|
|
|
if (res.code == 0) {
|
|
|
+ state.srcContent = res.data.srcContent;
|
|
|
+ state.postRedirectUrl = res.data.postRedirectUrl;
|
|
|
+
|
|
|
// 判断推特id,绑定逻辑
|
|
|
state.srcContentId = res.data.srcContentId
|
|
|
+
|
|
|
if (!state.srcContentId) {
|
|
|
reSetBindTwtterId(res.data)
|
|
|
return
|
|
|
}
|
|
|
state.detail = JSON.parse(res.data.postBizData)
|
|
|
state.detail.taskCondition = state.detail.taskCondition || []
|
|
|
- console.log(state.detail)
|
|
|
-
|
|
|
+ // 不要删除这个console
|
|
|
+ console.log('postBizData',state.detail)
|
|
|
+ checkFacebookReply();
|
|
|
handleStatusPage()
|
|
|
} else {
|
|
|
handleErrorCode(res)
|
|
@@ -842,6 +1065,15 @@ function initTaskDetail() {
|
|
|
state.done.join_discord = res.data[i].finished
|
|
|
discordAuthorizeRequired = res.data[i].discordAuthorizeRequired
|
|
|
break
|
|
|
+ case 8:
|
|
|
+ state.done.repost_facebook = res.data[i].finished;
|
|
|
+ break;
|
|
|
+ case 9:
|
|
|
+ state.done.reply = res.data[i].finished;
|
|
|
+ if (!state.done.reply) {
|
|
|
+ onTweetReplyClick({ type: 9 });
|
|
|
+ }
|
|
|
+ break;
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
@@ -854,6 +1086,7 @@ function initTaskDetail() {
|
|
|
|
|
|
let tab_index = 0
|
|
|
const doTaskReport = (req, sender) => {
|
|
|
+ state.loading_show = false
|
|
|
let follow_name = req.task_data.follow_name || ''
|
|
|
// 1 Twitter follow Twitter ScreenName
|
|
|
// 2 Tweet like
|
|
@@ -863,16 +1096,20 @@ const doTaskReport = (req, sender) => {
|
|
|
case 'retweet':
|
|
|
event_type = 3
|
|
|
state.done.retweet = req.task_done
|
|
|
- chrome.tabs.remove(sender.tab.id)
|
|
|
+ if (!req.task_done && req.do_type == 'api') {
|
|
|
+ window.open(`https://twitter.com/intent/retweet?tweet_id=${state.tweetId}`)
|
|
|
+ }
|
|
|
break;
|
|
|
case 'like':
|
|
|
event_type = 2
|
|
|
state.done.like = req.task_done
|
|
|
- chrome.tabs.remove(sender.tab.id)
|
|
|
+ //
|
|
|
+ if (!req.task_done && req.do_type == 'api') {
|
|
|
+ window.open(`https://twitter.com/intent/like?tweet_id=${state.tweetId}`)
|
|
|
+ }
|
|
|
break
|
|
|
case 'follow':
|
|
|
event_type = 1
|
|
|
- chrome.tabs.remove(sender.tab.id)
|
|
|
// for (let i = 0; i < follow_open_tabs.length; i++) {
|
|
|
// if (follow_open_tabs[i].id == sender.tab.id) {
|
|
|
// follow_open_tabs.splice(i, 1)
|
|
@@ -901,9 +1138,13 @@ const doTaskReport = (req, sender) => {
|
|
|
if (!has_no_finished) {
|
|
|
state.done.follow = true
|
|
|
state.done.follow_red = false
|
|
|
+ openFollowTabs(state.detail.taskCondition[0].relatedUsers)
|
|
|
}
|
|
|
break
|
|
|
}
|
|
|
+ if (req.do_type != 'api') {
|
|
|
+ chrome.tabs.remove(sender.tab.id)
|
|
|
+ }
|
|
|
if (req.task_done) {
|
|
|
addFinishEvent({
|
|
|
params: {
|
|
@@ -919,20 +1160,42 @@ onMounted(() => {
|
|
|
state.process_mode = process.env.NODE_ENV
|
|
|
state.postId = getQueryString('postId')
|
|
|
state.tweetId = getQueryString('tweetId')
|
|
|
+ state.tweet_author = getQueryString('tweet_author');
|
|
|
+ state.window_origin = getQueryString('window_origin');
|
|
|
+
|
|
|
+ getTweetAuthor();
|
|
|
+
|
|
|
init()
|
|
|
// state.loading_show = true
|
|
|
// state.status = 'opened'
|
|
|
// state.close_status = '没有领到钱'
|
|
|
})
|
|
|
|
|
|
+function getTweetAuthor() {
|
|
|
+ if (state.window_origin.indexOf('twitter.com') > -1) {
|
|
|
+ window.parent.postMessage({
|
|
|
+ actionType: "IFRAME_RED_PACKET_GET_TWEET_AUTHOR", data: {
|
|
|
+ postId: state.postId,
|
|
|
+ taskLuckdropId: state.detail.taskLuckdropId
|
|
|
+ }
|
|
|
+ }, "*");
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+function checkFacebookReply() {
|
|
|
+ console.log('checkFacebookReply')
|
|
|
+ if (state.window_origin.indexOf('twitter.com') > -1) {
|
|
|
+ window.parent.postMessage({
|
|
|
+ actionType: "IFRAME_RED_PACKET_CHECK_FACEBOOK_REPLY", data: {
|
|
|
+ postId: state.postId
|
|
|
+ }
|
|
|
+ }, "*");
|
|
|
+ }
|
|
|
+}
|
|
|
|
|
|
// 点击领取
|
|
|
function clickOpenRedPacket() {
|
|
|
- chrome.runtime.sendMessage({
|
|
|
- actionType: 'CONTENT_GET_PINED'
|
|
|
- }, res => {
|
|
|
- console.log(res);
|
|
|
- })
|
|
|
+ callEventPageMethod('CONTENT_GET_PINED', {})
|
|
|
handleRedPacket()
|
|
|
}
|
|
|
|
|
@@ -950,6 +1213,8 @@ function handleRedPacket() {
|
|
|
} else {
|
|
|
handleErrorCode(res)
|
|
|
}
|
|
|
+ }).catch(()=>{
|
|
|
+ state.loading_show = false
|
|
|
})
|
|
|
// 埋点
|
|
|
Report.reportLog({
|
|
@@ -1059,6 +1324,7 @@ function handleFinishRedPacket() {
|
|
|
}
|
|
|
break
|
|
|
case '7':
|
|
|
+ //join discord
|
|
|
discordAuthorizeRequired = _data[i].discordAuthorizeRequired;
|
|
|
if (_data[i].finished) {
|
|
|
state.done.join_discord = true
|
|
@@ -1068,6 +1334,26 @@ function handleFinishRedPacket() {
|
|
|
state.done.join_discord_red = true
|
|
|
}
|
|
|
break
|
|
|
+ case '8':
|
|
|
+ //repost feacebook
|
|
|
+ if (_data[i].finished) {
|
|
|
+ state.done.repost_facebook = true
|
|
|
+ state.done.repost_facebook_red = false
|
|
|
+ } else {
|
|
|
+ state.done.repost_facebook = false;
|
|
|
+ state.done.repost_facebook_red = true
|
|
|
+ }
|
|
|
+ break
|
|
|
+ case '9':
|
|
|
+ //reply
|
|
|
+ if (_data[i].finished) {
|
|
|
+ state.done.reply = true
|
|
|
+ state.done.reply_red = false
|
|
|
+ } else {
|
|
|
+ state.done.reply = false;
|
|
|
+ state.done.reply_red = true
|
|
|
+ }
|
|
|
+ break
|
|
|
}
|
|
|
}
|
|
|
// 埋点
|
|
@@ -1093,6 +1379,8 @@ function handleFinishRedPacket() {
|
|
|
});
|
|
|
handleErrorCode(res)
|
|
|
}
|
|
|
+ }).catch(()=>{
|
|
|
+ state.loading_show = false
|
|
|
})
|
|
|
}
|
|
|
|
|
@@ -1244,6 +1532,24 @@ function handleErrorCode(res) {
|
|
|
// businessType: Report.businessType.pageView
|
|
|
// });
|
|
|
// }
|
|
|
+function onWindowMessage() {
|
|
|
+ window.addEventListener("message", function (event) {
|
|
|
+ if (event.data) {
|
|
|
+ switch (event.data.actionType) {
|
|
|
+ case 'CONTENT_RED_PACKET_REPLY_RASK_FINSH':
|
|
|
+ state.done.reply = true;
|
|
|
+ state.done.reply_red = false;
|
|
|
+ break;
|
|
|
+ case 'CONTENT_RED_PACKET_GET_TWEET_AUTHOR':
|
|
|
+ fullName = event.data.data.fullName
|
|
|
+ break;
|
|
|
+ case 'CONTENT_RED_PACKET_FACEBOOK_REPLY':
|
|
|
+ clickReply(event.data.data)
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+}
|
|
|
|
|
|
function onPageVisbile() {
|
|
|
document.addEventListener('visibilitychange', function () {
|
|
@@ -1262,12 +1568,22 @@ function onRuntimeMsg() {
|
|
|
case 'BACK_DISCORD_LOGIN_SUCCESS':
|
|
|
discordLoginSuccess();
|
|
|
break;
|
|
|
+ case 'BG_FACEBOOK_SHARE_SUCCESS':
|
|
|
+ facebookShareSuccess(req.data);
|
|
|
+ break;
|
|
|
case 'DO_TASK':
|
|
|
if (!req.task_type || state.tweetId != req.tweet_Id) {
|
|
|
return
|
|
|
}
|
|
|
state.loading_show = false
|
|
|
- doTaskReport(req, sender)
|
|
|
+ doTaskReport(req, sender);
|
|
|
+ break;
|
|
|
+ case 'CONTENT_RED_PACKET_REPLY_RASK_FINSH':
|
|
|
+ if(req.data && req.data.postId == state.postId) {
|
|
|
+ state.done.reply = true;
|
|
|
+ state.done.reply_red = false;
|
|
|
+ }
|
|
|
+ break;
|
|
|
}
|
|
|
})
|
|
|
}
|
|
@@ -1656,6 +1972,8 @@ body {
|
|
|
width: 40px;
|
|
|
height: 40px;
|
|
|
margin-right: 9px;
|
|
|
+ border-radius: 50%;
|
|
|
+ border: solid 2px #fff;
|
|
|
}
|
|
|
|
|
|
.big {
|
|
@@ -1692,6 +2010,7 @@ body {
|
|
|
display: flex;
|
|
|
justify-content: space-between;
|
|
|
color: #B0B0B0;
|
|
|
+ font-weight: 500;
|
|
|
border-bottom: 1px solid #F2F2F2;
|
|
|
|
|
|
div:last-child {
|
|
@@ -1717,7 +2036,7 @@ body {
|
|
|
text-align: center;
|
|
|
|
|
|
img {
|
|
|
- margin-top: 90px;
|
|
|
+ margin-top: 70px;
|
|
|
width: 100px;
|
|
|
height: 100px;
|
|
|
}
|
|
@@ -1768,18 +2087,18 @@ body {
|
|
|
flex: auto;
|
|
|
|
|
|
.luck-title {
|
|
|
+ color: #444444;
|
|
|
font-weight: 500;
|
|
|
font-size: 16px;
|
|
|
letter-spacing: 0.3px;
|
|
|
- color: #444444;
|
|
|
+ margin-bottom: 5px;
|
|
|
}
|
|
|
|
|
|
.luck-time {
|
|
|
font-weight: 400;
|
|
|
font-size: 12px;
|
|
|
line-height: 14px;
|
|
|
-
|
|
|
- color: #9b9b9b;
|
|
|
+ color: #B0B0B0;
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -1818,8 +2137,7 @@ body {
|
|
|
.success {
|
|
|
.luck-list-title {
|
|
|
margin-top: 17px;
|
|
|
- margin-bottom: 11px;
|
|
|
- border-bottom: 1px solid #D1D1D1;
|
|
|
+ border-bottom: 1px solid #ECECEC;
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -1866,6 +2184,7 @@ body {
|
|
|
}
|
|
|
|
|
|
.list {
|
|
|
+ overflow-y: auto;
|
|
|
padding: 0 16px 0 16px;
|
|
|
background: #ffffff;
|
|
|
flex: 1;
|
|
@@ -1873,8 +2192,10 @@ body {
|
|
|
.item {
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
- min-height: 50px;
|
|
|
+ // min-height: 50px;
|
|
|
border-bottom: 1px solid #f0f0f0;
|
|
|
+ padding: 12px 0;
|
|
|
+ box-sizing: border-box;
|
|
|
|
|
|
img {
|
|
|
width: 24px;
|
|
@@ -1908,7 +2229,7 @@ body {
|
|
|
flex: 1;
|
|
|
margin-left: 10px;
|
|
|
font-weight: 500;
|
|
|
- font-size: 16px;
|
|
|
+ font-size: 15px;
|
|
|
letter-spacing: 0.3px;
|
|
|
color: #000000;
|
|
|
}
|