background.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. var userInfo = null
  2. var username = localStorage.getItem('owoUsername')
  3. var password = localStorage.getItem('owoPassword')
  4. var tempData = null
  5. var openList = {}
  6. if (localStorage.getItem('owoOpenList')) {
  7. openList = JSON.parse(localStorage.getItem('owoOpenList'))
  8. }
  9. function saveUser (username, password) {
  10. localStorage.setItem('owoUsername', username)
  11. localStorage.setItem('owoPassword', password)
  12. }
  13. function saveOpenList () {
  14. localStorage.setItem('owoOpenList', JSON.stringify(openList))
  15. }
  16. if (username && password) {
  17. fetch(`http://going.run/userServer?route=login`, {
  18. method: 'POST',
  19. headers: {
  20. "Content-Type": "application/json"
  21. },
  22. body: JSON.stringify({
  23. type: "assist",
  24. username: username,
  25. password: password
  26. })
  27. }).then((response) => {return response.json();}).then((res) => {
  28. if (res.err === 0) {
  29. alert(res.data)
  30. userInfo = res.data
  31. }
  32. })
  33. }
  34. // 对数据进行处理
  35. function clearData (data) {
  36. let returnData = []
  37. data.forEach(element => {
  38. if (openList[element.id]) {
  39. returnData.push(element)
  40. }
  41. })
  42. return returnData
  43. }
  44. // 监听消息
  45. chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) {
  46. switch (message.name) {
  47. case 'getData':
  48. const nowTime = Date.parse(new Date())
  49. if (tempData && (tempData.time + 1 * 60 * 1000) > nowTime) {
  50. console.log('使用缓存返回!', tempData)
  51. sendResponse(clearData(tempData.data))
  52. } else {
  53. const serverUrl = 'https://going.run/assistAll'
  54. fetch(`${serverUrl}?route=search`, {
  55. method: 'POST',
  56. body: JSON.stringify({
  57. "edition": 2,
  58. "url": message.url
  59. }),
  60. redirect: 'follow'
  61. }).then(data => data.json()).then(dataTemp => {
  62. tempData = {
  63. time: nowTime,
  64. data: dataTemp
  65. }
  66. sendResponse(clearData(dataTemp))
  67. })
  68. }
  69. break;
  70. default:
  71. break;
  72. }
  73. })