소스 검색

[edit][绑定repost和jira]

zhangwei 2 년 전
부모
커밋
2335f2b2d1

+ 4 - 6
src/http/help.js

@@ -7,9 +7,8 @@ export const reSetBindTwtterId = ({
     postId = '',
     tweetId = ''
 }, callback) => {
-    getChromeStorage('userInfo', (_userInfo = {}) => {
-        // if (_userInfo && _userInfo.uid == _params.uid) {
-        if (_userInfo.uid) {
+    getChromeStorage('userInfo', (_userInfo) => {
+        if (_userInfo && _userInfo.uid) {
             srcPublishSuccess({
                 params: {
                     postId,
@@ -27,9 +26,8 @@ export const reSetBindTwtterId = ({
 
 // 重新绑定推文id
 export const reSetBindRepost = (params, callback) => {
-    getChromeStorage('userInfo', (_userInfo = {}) => {
-        // if (_userInfo && _userInfo.uid == _params.uid) {
-        if (_userInfo.uid) {
+    getChromeStorage('userInfo', (_userInfo) => {
+        if (_userInfo && _userInfo.uid) {
             bindRepost({
                 params
             }).then((res) => {

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

@@ -650,8 +650,8 @@ function addSliderNavDeBtn() {
     try {
         let isSmall = false;
         let tweetBtn = document.querySelector('a[data-testid="SideNav_NewTweet_Button"]');
-        if(tweetBtn && tweetBtn.querySelector('svg')) {
-          isSmall = true;
+        if (tweetBtn && tweetBtn.querySelector('svg')) {
+            isSmall = true;
         }
         if (!isSmall) {
             let bigDom = document.querySelector('a[href="/compose/tweet"]').parentNode.parentNode;
@@ -701,8 +701,8 @@ function onWindowResize() {
 
             let isSamllBtn = false;
             let tweetBtn = document.querySelector('a[data-testid="SideNav_NewTweet_Button"]');
-            if(tweetBtn && tweetBtn.querySelector('svg')) {
-              isSamllBtn = true;
+            if (tweetBtn && tweetBtn.querySelector('svg')) {
+                isSamllBtn = true;
             }
 
             if (isSamllBtn) {
@@ -1002,7 +1002,7 @@ export function init() {
         // 预加载全屏 toobbox
         toolBox.initFull()
     }
-    
+
 
 
     getChromeStorage("popupShowPublishDialog", (res) => {
@@ -1536,7 +1536,7 @@ const TwitterApiCreateTweet = ({ text, tweet_Id }) => {
             "x-twitter-client-language": "en"
         },
     }).then(function (response) {
-        chrome.runtime.sendMessage({ actionType: "DO_TASK", do_type: 'api', tweet_Id, task_type: 'createTweet', task_data: '', task_done: true })
+        chrome.runtime.sendMessage({ actionType: "DO_TASK", do_type: 'api', tweet_Id, task_type: 'createTweet', task_data: '', task_done: true, response })
     }).catch(function (err) {
         chrome.runtime.sendMessage({ actionType: "DO_TASK", do_type: 'api', tweet_Id, task_type: 'createTweet', task_data: '', task_done: false })
     });

+ 1 - 1
src/uilts/chromeExtension.js

@@ -46,7 +46,7 @@ export function getChromeStorage(key = '', callback) {
                     } else {
                         resolve(null)
                     }
-                });
+                })
             })
         }
 

+ 4 - 2
src/view/iframe/treasure-hunt/components/btn.vue

@@ -15,7 +15,7 @@
 import { inject, defineProps, defineEmits, ref } from 'vue'
 let refreshRotate = ref(false);
 let state = inject('state')
-defineProps({
+let props = defineProps({
     txt: {
         type: String,
         default: ''
@@ -47,7 +47,9 @@ defineProps({
 const emit = defineEmits(['on-click'])
 
 const clickBtn = () => {
-    emit('on-click')
+    if (!props.disabled) {
+        emit('on-click')
+    }
 }
 
 const refresh = () => {

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

@@ -26,22 +26,27 @@ let ClipboardJS = require('clipboard');
 let state = inject('state')
 
 onMounted(() => {
-    chrome.management.get('ophjlpahpchlmihnnnihgmmeilfjmjjc', (res) => {
-        let linePluginInstalled = 0
-        if (res) {
-            linePluginInstalled = 1
-        }
-        inviteChannel({
-            params: {
-                linePluginInstalled,
-                postId: state.postId
-            }
-        }).then((res) => {
-            if (res.code == 0) {
-                state.share_list = res.data
+    try {
+        chrome.management.get('ophjlpahpchlmihnnnihgmmeilfjmjjc', (res) => {
+            let linePluginInstalled = 0
+            if (res) {
+                linePluginInstalled = 1
             }
+            inviteChannel({
+                params: {
+                    linePluginInstalled,
+                    postId: state.postId
+                }
+            }).then((res) => {
+                if (res.code == 0) {
+                    state.share_list = res.data
+                }
+            })
         })
-    })
+    } catch (error) {
+        console.error(error)
+    }
+
 })
 
 const clickBtn = () => {
@@ -95,9 +100,10 @@ const clickCopy = () => {
     .txt {
         font-style: normal;
         font-weight: 500;
-        font-size: 14px;
+        font-size: 13px;
         line-height: 18px;
         /* or 129% */
+        margin-bottom: 18.5px;
 
         letter-spacing: 0.3px;
 

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

@@ -64,7 +64,11 @@ state.inviteList = () => {
     }).then((res) => {
         if (res.code == 0) {
             if (res.data.length > 0) {
-                state.invited_list = state.invited_list.concat(res.data)
+                res.data.forEach(item => {
+                    if (state.invited_list.filter((item) => { return item.userinfo.uid == item.userinfo.uid }).length) {
+                        state.invited_list.push(item)
+                    }
+                })
                 list_end = false
             } else {
                 list_end = true

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

@@ -8,9 +8,9 @@
     </div>
 </template>
 <script setup>
-import { defineProps, watch, reactive } from "vue";
+import { defineProps } from "vue";
 
-let props = defineProps({
+defineProps({
     txt: {
         type: String,
         default: ''
@@ -26,7 +26,7 @@ let props = defineProps({
     show: {
         type: Boolean,
         default: false
-    },
+    }
 })
 
 

+ 44 - 29
src/view/iframe/treasure-hunt/cover.vue

@@ -8,11 +8,12 @@
         </div>
         <!-- 邀请人 -->
         <template v-else>
-            <div class="invite" v-if="state.detail.inviteUserInfo">
+            <div class="invite"
+                v-if="state.detail.inviteUserInfo && state.detail.inviteUserInfo.nickName != state.detail.postUserInfo.nickName">
                 <img :src="state.detail.inviteUserInfo.avatarUrl" alt="" />
-                <span>{{ state.detail.inviteUserInfo.nickName }}</span>
+                <span>{{ state.detail.inviteUserInfo.nickName }} invites you</span>
             </div>
-            <div class="in" v-else></div>
+            <div class="in-invite" v-else></div>
             <div class="treasure">
                 <component-zoom width="335" fontSize="34" style="margin:0 auto;">
                     <span>Treasure</span>
@@ -26,12 +27,11 @@
                     <span>{{ toLast(state.detail.upGainAmountValue, 3) }}</span>
                 </component-zoom>
             </div>
-            <div class="coin">
+            <div class="coin" v-if="state.detail.currencySymbol != 'USD'">
                 <img :src="state.detail.currencyIconPath" alt="" />
-                <span> {{ state.detail.currencySymbol }}
-                    <template v-if="state.detail.currencySymbol != 'USD'">equivalent (Crypto)</template>
-                </span>
+                <span> {{ state.detail.currencySymbol }} </span>
             </div>
+            <div class="coin" v-else></div>
         </template>
 
         <div class="box">
@@ -56,8 +56,8 @@ 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 { reSetBindRepost } from '@/http/help.js'
 let state = inject('state')
-state.btn_loading = false
 
 state.log_show = {
     pageSource: Report.pageSource.pending_page,
@@ -82,6 +82,33 @@ chrome.storage.onChanged.addListener(changes => {
     }
 })
 
+const toStart = (req) => {
+    treasureStart({
+        params: {
+            postId: state.postId || '',
+            inviteCode: state.invite_code || ''
+        }
+    }).then((res) => {
+        if (res.code == 0) {
+            state.page = '开奖页'
+            state.start_task = res.data
+            state.btn_loading = false
+            if (req.response) {
+                let repost_tweetId = req.response.data.data.create_tweet.tweet_results.result.rest_id
+                reSetBindRepost({
+                    inviteCode: res.data.inviteCode,
+                    tweetId: repost_tweetId
+                })
+            }
+        } else {
+            state.init()
+        }
+
+    }).catch((error) => {
+        console.error(error)
+    })
+}
+
 chrome.runtime.onMessage.addListener((req, sender, sendResponse) => {
     switch (req.actionType) {
         case 'DO_TASK':
@@ -96,23 +123,7 @@ chrome.runtime.onMessage.addListener((req, sender, sendResponse) => {
                     state.toast.show = false
                 }, 2000)
             } else if (req.task_type == 'createTweet' && req.task_done) {
-                treasureStart({
-                    params: {
-                        postId: state.postId || '',
-                        inviteCode: state.invite_code || ''
-                    }
-                }).then((res) => {
-                    if (res.code == 0) {
-                        state.page = '开奖页'
-                        state.start_task = res.data
-                        state.btn_loading = false
-                    } else {
-                        state.init(() => {
-                            state.inviteInit()
-                            state.inviteList()
-                        })
-                    }
-                })
+                toStart(req)
             }
             break
     }
@@ -181,10 +192,7 @@ const startBtn = () => {
                 });
             })
         } else {
-            state.init(() => {
-                state.inviteInit()
-                state.inviteList()
-            })
+            state.init()
         }
     })
 }
@@ -230,6 +238,12 @@ const startBtn = () => {
         height: 58px;
     }
 
+    .in-invite {
+        height: 28px;
+        margin-top: 20px;
+        margin-bottom: 10px;
+    }
+
     .invite {
         background: rgba(255, 255, 255, 0.1);
         height: 28px;
@@ -310,6 +324,7 @@ const startBtn = () => {
     }
 
     .coin {
+        height: 17px;
         display: flex;
         align-items: center;
         justify-content: center;

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

@@ -20,6 +20,7 @@ import OpenBox from '@/view/iframe/treasure-hunt/components/open-box.vue'
 let state = reactive({
     page: '',
     detail: {},
+    btn_loading: false,
     open_box: {
         show: false,
         data: {}
@@ -54,6 +55,7 @@ state.init = (callback) => {
             }
         }).then((res) => {
             if (res.code == 0) {
+
                 handleCommon(res, callback)
                 // 绑定repostSrcContentId
                 if (!res.data.repostSrcContentId) {
@@ -131,6 +133,7 @@ state.treasureOpen = () => {
                 state.inviteList()
             })
         } else {
+            state.btn_loading = false
             switch (String(res.code)) {
                 case '2037':
                     state.dialog.show = true
@@ -200,6 +203,7 @@ const handleStatus = () => {
         state.page = '封面页'
         state.cover_status = '奖励已被领光'
         state.open_btn.txt = 'Look for more treasures'
+        state.btn_loading = false
     }
 }
 </script>

+ 10 - 15
src/view/iframe/treasure-hunt/invite.vue

@@ -50,8 +50,6 @@ let state = inject('state')
 // ---- 走马灯
 state.success_message_list = []
 
-
-
 // ---- box 区域
 let silver_close_box = require('@/assets/img/icon-silver-close-box.png')
 let silver_open_box = require('@/assets/img/icon-silver-open-box.png')
@@ -62,21 +60,11 @@ let gold_close_box = require('@/assets/img/icon-gold-close-box.png')
 // ---- tab区域 ----
 state.tab_index = 0
 state.tabs = [{
-    txt: 'invite friends'
+    txt: 'Invite Friends'
 }, {
-    txt: 'invited'
+    txt: 'Invited'
 }]
 
-
-watch(state, () => {
-    if (content_success_message && content_success_message.value) {
-        let dom = content_success_message.value
-        let width = dom.clientWidth
-        let s = parseInt(width / 80)
-        dom.style.animationDuration = s + 's'
-    }
-})
-
 state.boxs = []
 
 let line_full = ref(null)
@@ -123,13 +111,19 @@ state.inviteInit = () => {
         params: {
             postId: state.postId,
             pageNum: 1,
-            pageSize: 10,
+            pageSize: 100,
         }
     }).then((res) => {
         if (res.code == 0) {
             state.success_message_list = res.data
             state.success_message_list = state.success_message_list.concat(state.success_message_list)
             state.success_message_list = state.success_message_list.concat(state.success_message_list)
+
+            if (content_success_message && content_success_message.value) {
+                let dom = content_success_message.value
+                let s = state.success_message_list.length * 4
+                dom.style.animationDuration = s + 's'
+            }
         }
     })
     btnStatus()
@@ -297,6 +291,7 @@ const mouseLeave = () => {
             width: fit-content;
             display: flex;
             animation: rolling 18s linear infinite;
+            animation-duration: 10s;
 
             .success-message {
                 cursor: default;