Przeglądaj źródła

Merge branch 'test' into add-empty-red-packet-5.14

# Conflicts:
#	src/view/iframe/red-packet/red-packet.vue
wenliming 2 lat temu
rodzic
commit
24ff6a6254

+ 2 - 0
src/logic/background/fetch/twitter.js

@@ -83,6 +83,7 @@ export async function fetchAllMessageInfo(params = {}) {
     return new Promise(function (resolve, reject) {
         if(!token) {
             resolve({});
+            return;
         }
         let _url = `${baseAPIUrl}/message/getStat`
         fetch(_url, {
@@ -119,6 +120,7 @@ export async function fetchReadTaskAllMsg(params = {}) {
     return new Promise(function (resolve, reject) {
         if(!token) {
             resolve({});
+            return;
         }
         let _url = `${baseAPIUrl}/message/readAllMsgByType`
         fetch(_url, {

+ 23 - 3
src/logic/background/twitter.js

@@ -253,12 +253,32 @@ export async function setMessageCount () {
     const { accessToken: token = '', uid = '' } = await getChromeStorage('userInfo') || {}
     if(token) {
         getMessageInfo();
-        setInterval(() => {
-            getMessageInfo();
-        }, 60000);
+        createAlarm();
     }
 }
 
+function createAlarm() {
+    let alarmInfo = {
+        //1分鐘之後開始(該值不能小於1) 
+        delayInMinutes: 1, 
+        //與上方等同的寫法是 
+        // when : Date.now() + n,
+        //開始後每一分鐘執行一次(該值不能小于1) 
+        periodInMinutes : 1 
+    };
+
+    //每次加載就清空定時器
+    chrome.alarms.clearAll();
+    
+    chrome.alarms.onAlarm.addListener(function(alarm) {
+        console.log("onAlarm-", alarm);
+        getMessageInfo();
+    });
+
+    //創造定時器
+    chrome.alarms.create('denetChromeAlarm',alarmInfo);
+}
+
 export  function getMessageInfo () {
     fetchAllMessageInfo().then(res => {
         if(res.code == 0) {

+ 7 - 4
src/logic/content/twitter.js

@@ -187,7 +187,10 @@ function _addDeNetEditBtn(parent, dom, isClick = false) {
                         businessType: Report.businessType.buttonView,
                         objectType: Report.objectType.buttonSecond
                     });
-                    parent.parentNode.insertBefore(dom, parent.nextElementSibling);
+                    let innerDeIcon = document.getElementById('de-btn1');
+                    if (!innerDeIcon) {
+                        parent.parentNode.insertBefore(dom, parent.nextElementSibling);
+                    }
                 }
             }, 1000)
         }
@@ -297,7 +300,7 @@ function _deNetBtnClick() {
             setTimeout(() => {
                 dom.loadingImg.style.transform = 'rotate(0deg)'
                 dom.deBtn.innerHTML = '<span>DeNet<span>';
-            }, 3000)
+            }, 2000)
 
             chrome.runtime.sendMessage({ actionType: "CONTENT_TWITTER_LOGIN", data: '1' }, (res) => { console.log(res) })
         }
@@ -310,7 +313,7 @@ function _deNetBtnClick() {
  * @private
  */
 let isSetContent = false;
-function _setPublishContent(content) {
+const _setPublishContent = throttle(function (content) {
     if (!isSetContent) {
         isSetContent = true;
         setTimeout(() => {
@@ -320,7 +323,7 @@ function _setPublishContent(content) {
             }, 2000)
         }, 1000);
     }
-}
+}, 800);
 
 /**
  * 创建deNet按钮 添加到页面

+ 2 - 1
src/manifest.json

@@ -53,7 +53,8 @@
         "cookies",
         "activeTab",
         "scripting",
-        "storage"
+        "storage",
+        "alarms"
     ],
     "options_page": "options.html",
     "web_accessible_resources": [

+ 7 - 0
src/view/iframe/red-packet/red-packet.vue

@@ -1953,4 +1953,11 @@ body {
     }
   }
 }
+.none {
+    display: flex;
+    align-item: center;
+    justify-content: center;
+    width: 100%;
+    height: 100%;
+}
 </style>

+ 2 - 1
src/view/popup/popup.vue

@@ -317,9 +317,10 @@ onMounted(() => {
             });
         }
     });
+    setMessageCount();
     setTimeout(() => {
         setMessageCount();
-    }, 2000)
+    }, 1600)
 });
 
 onBeforeUnmount(() => {