zhangwei 2 роки тому
батько
коміт
ffda97e998
3 змінених файлів з 193 додано та 131 видалено
  1. 70 65
      src/http/fetch.js
  2. 60 27
      src/logic/background/help.js
  3. 63 39
      src/logic/background/twitter.js

+ 70 - 65
src/http/fetch.js

@@ -1,72 +1,77 @@
 import { appVersionCode, baseAPIUrl } from '@/http/configAPI.js'
 import { getChromeStorage } from '@/uilts/chromeExtension.js'
 
-export async function commonFetch({ url = '', method = 'POST' , params = {}, baseInfo = {}}) {
-
-    let storage_mid = await getChromeStorage('mid') || ''
-    const { mid } = storage_mid || {}
-    if (!baseInfo.token || !baseInfo.uid) {
-        const { accessToken: token = '', uid = '' } = await getChromeStorage('userInfo') || {}
-        baseInfo.token = token
-        baseInfo.uid = uid
-    }
-    baseInfo.mid = mid
-    baseInfo.appVersionCode = appVersionCode
-    baseInfo.machineCode = mid
-    baseInfo.appType = 1
-    baseInfo.loginUid = baseInfo.uid
-
-    return new Promise(function (resolve, reject) {
-        let _url = baseAPIUrl + url
-        if(url.includes('http')){
-            _url = url
+export async function commonFetch({ url = '', method = 'POST', params = {}, baseInfo = {} }) {
+    try {
+        let storage_mid = await getChromeStorage('mid') || ''
+        const { mid } = storage_mid || {}
+        if (!baseInfo.token || !baseInfo.uid) {
+            const { accessToken: token = '', uid = '' } = await getChromeStorage('userInfo') || {}
+            baseInfo.token = token
+            baseInfo.uid = uid
         }
-        let bodyObj = {
-            "baseInfo": baseInfo,
-            "params": params
-        };
-        fetch(_url, {
-            method: method, // or 'PUT'
-            cache: 'no-cache',
-            headers: {
-                'Content-Type': 'application/json',
-            },
-            body: JSON.stringify(bodyObj),
-        })
-            .then(response => response.json())
-            .then(data => {
-                switch (data.code.toString()) {
-                    // twitter授权失效
-                    case '1003':
-                        chrome.storage.local.remove("userInfo");
-                        chrome.runtime.sendMessage(
-                            { actionType: "POPUP_LOGIN", data: "" },
-                            (response) => {
-                                console.log("res", response);
-                            }
-                        )
-                        break;
-                    // 登陆token失效
-                    case '-107':
-                        chrome.storage.local.remove("userInfo");
-                        chrome.runtime.sendMessage(
-                            { actionType: "POPUP_LOGIN", data: "" },
-                            (response) => {
-                                console.log("res", response);
-                            }
-                        )
-                        break;
-                }
+        baseInfo.mid = mid
+        baseInfo.appVersionCode = appVersionCode
+        baseInfo.machineCode = mid
+        baseInfo.appType = 1
+        baseInfo.loginUid = baseInfo.uid
 
-                resolve(data);
+        return new Promise(function (resolve, reject) {
+            let _url = baseAPIUrl + url
+            if (url.includes('http')) {
+                _url = url
+            }
+            let bodyObj = {
+                "baseInfo": baseInfo,
+                "params": params
+            };
+            fetch(_url, {
+                method: method, // or 'PUT'
+                cache: 'no-cache',
+                headers: {
+                    'Content-Type': 'application/json',
+                },
+                body: JSON.stringify(bodyObj),
             })
-            .catch((error) => {
-                if(!error) {
-                    error = {}
-                }
-                reject({url: _url, 
-                        error: { message: error.message, stack: error.stack }, 
-                        requestParams: bodyObj });
-            });
-    })
+                .then(response => response.json())
+                .then(data => {
+                    switch (data.code.toString()) {
+                        // twitter授权失效
+                        case '1003':
+                            chrome.storage.local.remove("userInfo");
+                            chrome.runtime.sendMessage(
+                                { actionType: "POPUP_LOGIN", data: "" },
+                                (response) => {
+                                    console.log("res", response);
+                                }
+                            )
+                            break;
+                        // 登陆token失效
+                        case '-107':
+                            chrome.storage.local.remove("userInfo");
+                            chrome.runtime.sendMessage(
+                                { actionType: "POPUP_LOGIN", data: "" },
+                                (response) => {
+                                    console.log("res", response);
+                                }
+                            )
+                            break;
+                    }
+
+                    resolve(data);
+                })
+                .catch((error) => {
+                    if (!error) {
+                        error = {}
+                    }
+                    reject({
+                        url: _url,
+                        error: { message: error.message, stack: error.stack },
+                        requestParams: bodyObj
+                    });
+                });
+        })
+    } catch (error) {
+        console.log('error', error)
+    }
 }

+ 60 - 27
src/logic/background/help.js

@@ -1,45 +1,78 @@
 import { commonFetch } from '@/http/fetch'
+import Report from "@/log-center/log"
 
 // 每4分钟调用一次,保持background一直有效
 export function PingPong() {
-    chrome.tabs.query({}, (tabs = []) => {
-        if (tabs.length) {
-            let tab = tabs.filter((item) => { return item.active == true })
-            if (tab.length) {
-                chrome.tabs.sendMessage(tab[0].id, { actionType: 'BACK_PING' }, () => { });
+    try {
+        chrome.tabs.query({}, (tabs = []) => {
+            if (tabs.length) {
+                let tab = tabs.filter((item) => { return item.active == true })
+                if (tab.length) {
+                    chrome.tabs.sendMessage(tab[0].id, { actionType: 'BACK_PING' }, () => { });
+                }
             }
-        }
-    })
+        })
+    } catch (error) {
+        Report.reportLog({
+            objectType: Report.objectType.background_function_catch,
+            funcName: 'PingPong',
+            errMsg: error.message
+        })
+    }
 }
 
 export function httpNetWork(funcName, data, sender) {
-    return commonFetch(data)
-        .then((response) => {
-            chrome.tabs.sendMessage(sender.tab.id, { actionType: 'BACK_HTTP_RESPONSE', data: response, funcName });
-        })
-        .catch(() => {
-            chrome.tabs.sendMessage(sender.tab.id, { actionType: 'BACK_HTTP_RESPONSE', data: null, funcName });
+    try {
+        return commonFetch(data)
+            .then((response) => {
+                chrome.tabs.sendMessage(sender.tab.id, { actionType: 'BACK_HTTP_RESPONSE', data: response, funcName });
+            })
+            .catch(() => {
+                chrome.tabs.sendMessage(sender.tab.id, { actionType: 'BACK_HTTP_RESPONSE', data: null, funcName });
+            })
+    } catch (error) {
+        Report.reportLog({
+            objectType: Report.objectType.background_function_catch,
+            funcName: 'httpNetWork',
+            errMsg: error.message
         })
+    }
 }
 
 // 向content 发送消息
 export const setContentMessage = (obj) => {
-    chrome.tabs.query({}, (tabs = []) => {
-        if (tabs.length) {
-            tabs = tabs.filter((item) => { return item.active && item.selected && item.highlighted }) || []
-            tabs.forEach((item) => {
-                chrome.tabs.sendMessage(item.id, obj);
-            })
-        }
-    })
+    try {
+        chrome.tabs.query({}, (tabs = []) => {
+            if (tabs.length) {
+                tabs = tabs.filter((item) => { return item.active && item.selected && item.highlighted }) || []
+                tabs.forEach((item) => {
+                    chrome.tabs.sendMessage(item.id, obj);
+                })
+            }
+        })
+    } catch (error) {
+        Report.reportLog({
+            objectType: Report.objectType.background_function_catch,
+            funcName: 'setContentMessage',
+            errMsg: error.message
+        })
+    }
 }
 
 export const httpContentToBack = (req, sender) => {
-    commonFetch(req.data)
-        .then((response) => {
-            chrome.tabs.sendMessage(sender.tab.id, { actionType: 'HTTP_BACK_TO_CONTENT', data: response, callback_id: req.callback_id });
-        })
-        .catch(() => {
-            chrome.tabs.sendMessage(sender.tab.id, { actionType: 'HTTP_BACK_TO_CONTENT', data: null, callback_id: req.callback_id });
+    try {
+        commonFetch(req.data)
+            .then((response) => {
+                chrome.tabs.sendMessage(sender.tab.id, { actionType: 'HTTP_BACK_TO_CONTENT', data: response, callback_id: req.callback_id });
+            })
+            .catch(() => {
+                chrome.tabs.sendMessage(sender.tab.id, { actionType: 'HTTP_BACK_TO_CONTENT', data: null, callback_id: req.callback_id });
+            })
+    } catch (error) {
+        Report.reportLog({
+            objectType: Report.objectType.background_function_catch,
+            funcName: 'httpContentToBack',
+            errMsg: error.message
         })
+    }
 }

+ 63 - 39
src/logic/background/twitter.js

@@ -9,16 +9,24 @@ let consumerKey = ''
 let tab_flag = true
 
 const isHasTabByUrl = (url, callback) => {
-    let item
-    chrome.tabs.query({}, (tab) => {
-        for (let i in tab) {
-            if (tab[i].url.indexOf(url) >= 0) {
-                item = tab[i]
-                break
+    try {
+        let item
+        chrome.tabs.query({}, (tab) => {
+            for (let i in tab) {
+                if (tab[i].url.indexOf(url) >= 0) {
+                    item = tab[i]
+                    break
+                }
             }
-        }
-        callback(item)
-    })
+            callback(item)
+        })
+    } catch (error) {
+        Report.reportLog({
+            objectType: Report.objectType.background_function_catch,
+            funcName: 'isHasTabByUrl',
+            errMsg: error.message
+        })
+    }
 }
 
 export function twitterPinLoginToken() {
@@ -209,43 +217,59 @@ export function twitterShortUrl(sender, url) {
 
 // 安装插件后获取mid
 export function onInstalledMid() {
-    getChromeCookie(LANDING_PAGE_MID, (res_arr) => {
-        // 没有cookie
-        if (res_arr && res_arr.length) {
-            setChromeStorage({ mid: JSON.stringify(res_arr[0]) })
-        } else {
-            let _params = {
-                mid: guid()
+    try {
+        getChromeCookie(LANDING_PAGE_MID, (res_arr) => {
+            // 没有cookie
+            if (res_arr && res_arr.length) {
+                setChromeStorage({ mid: JSON.stringify(res_arr[0]) })
+            } else {
+                let _params = {
+                    mid: guid()
+                }
+                setChromeCookie(LANDING_PAGE, { 'mid': _params.mid })
+                setChromeStorage({ mid: JSON.stringify(_params) })
             }
-            setChromeCookie(LANDING_PAGE, { 'mid': _params.mid })
-            setChromeStorage({ mid: JSON.stringify(_params) })
-        }
-    })
+        })
+    } catch (error) {
+        Report.reportLog({
+            objectType: Report.objectType.background_function_catch,
+            funcName: 'onInstalledMid',
+            errMsg: error.message
+        })
+    }
 }
 
 export function onInstalledUserSet() {
-    chrome.action.getUserSettings().then(res => {
-        setChromeStorage({ userSettings: JSON.stringify({ res }) })
-        // 无刷新插入js
-        chrome.tabs.query({}, (tab) => {
-            for (let i in tab) {
-                chrome.scripting.executeScript({
-                    target: { tabId: tab[i].id },
-                    files: ['js/content_help.js']
-                }, () => { })
-                if (tab[i].url.indexOf('twitter.com') >= 0 || tab[i].url.indexOf('facebook.com') >= 0) {
+    try {
+        chrome.action.getUserSettings().then(res => {
+            setChromeStorage({ userSettings: JSON.stringify({ res }) })
+            // 无刷新插入js
+            chrome.tabs.query({}, (tab) => {
+                for (let i in tab) {
                     chrome.scripting.executeScript({
                         target: { tabId: tab[i].id },
-                        files: ['js/content.js'],
-                    }, () => {
-                        setTimeout(() => {
-                            setChromeStorage({ executeScript: JSON.stringify({ executeScript: 1 }) })
-                        }, 2000);
-                    })
+                        files: ['js/content_help.js']
+                    }, () => { })
+                    if (tab[i].url.indexOf('twitter.com') >= 0 || tab[i].url.indexOf('facebook.com') >= 0) {
+                        chrome.scripting.executeScript({
+                            target: { tabId: tab[i].id },
+                            files: ['js/content.js'],
+                        }, () => {
+                            setTimeout(() => {
+                                setChromeStorage({ executeScript: JSON.stringify({ executeScript: 1 }) })
+                            }, 2000);
+                        })
+                    }
                 }
-            }
+            })
         })
-    })
+    } catch (error) {
+        Report.reportLog({
+            objectType: Report.objectType.background_function_catch,
+            funcName: 'onInstalledUserSet',
+            errMsg: error.message
+        })
+    }
 }
 
 /**
@@ -377,7 +401,7 @@ export function onInstalledCreateTab() {
             objectType: Report.objectType.background_function_catch,
             funcName: 'onInstalledCreateTab',
             errMsg: error.message
-        });
+        })
     }
 }