| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218 |
- var userInfo = {}
- var tempData = null
- var openList = {}
- // 从 storage 中读取数据
- chrome.storage.local.get(['owoOpenList'], (result) => {
- if (result.owoOpenList) {
- openList = result.owoOpenList
- }
- })
- // 保存到 storage 中
- function saveOpenList() {
- chrome.storage.local.set({ owoOpenList: openList })
- }
- function reloadUser (callBack) {
- chrome.storage.sync.get('userInfo', function(data) {
- // alert(data)
- userInfoTemp = data.userInfo
- if (!userInfoTemp) return
- username = userInfoTemp.username
- password = userInfoTemp.password
- if (username && password) {
- fetch(`http://user.lamp.run/login`, {
- method: 'POST',
- headers: {
- "Content-Type": "application/json"
- },
- body: JSON.stringify({
- type: "assist",
- username: username,
- password: password
- })
- }).then((response) => {return response.json();}).then((res) => {
- if (res.err === 0) {
- userInfo = res.data
- if (callBack) callBack()
- }
- })
- }
- })
-
- }
- reloadUser()
- // 对数据进行处理
- function clearData (data) {
- let returnData = []
- data.forEach(element => {
- if (openList[element.id] || element.type == 'autoRun') {
- returnData.push(element)
- }
- })
- return returnData
- }
- function reGetData (url, callBack) {
- const nowTime = Date.parse(new Date())
- const serverUrl = 'https://assist.lamp.run/assistAll'
- fetch(`${serverUrl}?username=` + (userInfo.username || ''), {
- method: 'POST',
- body: JSON.stringify({
- "edition": 7,
- "url": url
- }),
- redirect: 'follow'
- }).then(data => data.json()).then(dataTemp => {
-
- tempData = {
- time: nowTime,
- data: dataTemp
- }
- if (callBack) callBack(dataTemp)
- })
- }
- // 监听消息
- chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) {
- // console.log(message)
- switch (message.name) {
- case 'getData':
- const nowTime = Date.parse(new Date())
- // 缓存
- if (tempData && (tempData.time + 60 * 60 * 1000) > nowTime) {
- console.log('使用缓存返回!', tempData)
- sendResponse(clearData(tempData.data))
- } else {
- reGetData(message.url, (dataTemp) => {
- sendResponse(clearData(dataTemp))
- })
- }
- break;
- case 'clear':
- tempData = null
- // fetch(`https://assist.lamp.run/blockList`).then(data => data.json()).then(dataTemp => {
- // blockListTemp = dataTemp
- // chrome.storage.sync.set({userInfo: {}})
- // userInfo = {}
- // lanjie(dataTemp)
- // sendResponse()
- // })
- case 'reloadUser':
- setTimeout(() => {
- reloadUser(() => {
- reGetData('')
- })
- }, 100);
- default:
- break;
- }
- return true
- })
- // 拦截文件功能尚未适配
- // var blockListTemp = null
- // if (blockListTemp != null) {
- // lanjie(blockListTemp)
- // } else {
- // fetch(`https://assist.lamp.run/blockList`).then(data => data.json()).then(dataTemp => {
- // blockListTemp = dataTemp
- // lanjie(dataTemp)
- // })
- // }
- // function lanjie (blockList) {
- // // 拦截请求
- // chrome.webRequest.onBeforeRequest.addListener(
- // function(details) {
-
- // for (const key in blockList) {
- // if (details.url.includes(key) || new RegExp(key).test(details.url) || details.url == key) {
- // console.log(`拦截请求:${details.url}`)
- // console.log(`替换请求:${blockList[key]}`)
- // return {
- // redirectUrl: blockList[key]
- // }
- // }
- // }
- // return {
- // cancel: false
- // };
- // },
- // {urls: ["<all_urls>"]},
- // ["blocking"]
- // )
- // }
- chrome.runtime.onMessageExternal.addListener(
- function(request, sender, sendResponse) {
- console.log(request)
- switch (request.name) {
- case 'sendMessage':
- var myHeaders = new Headers();
- myHeaders.append("Content-Type", "application/json");
- var raw = JSON.stringify({
- "first": {
- "value": "插件提示",
- "color": "#173177"
- },
- "keyword1": {
- "value": request.keyword1,
- "color": "#173177"
- },
- "keyword2": {
- "value": request.keyword1,
- "color": "#173177"
- },
- "keyword3": {
- "value": (new Date()).toLocaleString(),
- "color": "#173177"
- },
- "remark": {
- "value": request.remark,
- "color": "#173177"
- }
- });
- var requestOptions = {
- method: 'POST',
- headers: myHeaders,
- body: raw,
- redirect: 'follow'
- };
- fetch(`https://message.lamp.run/workWeixin?type=${request.type}&template=EvpHwEBpG2rkLHYMtIH2ADww9JCQwEaWlTAqyoPF6xQ`, requestOptions)
- .then(response => response.text())
- .then(result => console.log(result))
- .catch(error => console.log('error', error));
- case 'notifications':
- chrome.notifications.create(null, {
- type: 'basic',
- iconUrl: 'img/48.png',
- title: request.title,
- message: request.message
- });
- case 'playMusic':
- let musicUrl = request.url ? request.url : 'https://cunchu.site/work/assist/lingyin.wav'
- new Audio(musicUrl).play()
- default:
- break;
- }
- sendResponse('ok')
- }
- );
- // function logResponse(responseDetails) {
- // console.log(responseDetails);
- // }
- // chrome.webRequest.onCompleted.addListener(
- // logResponse,
- // {urls: ["<all_urls>"]}
- // );
|