background.js 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. // 此文件不要写具体逻辑,只调用函数
  2. import {
  3. twitterShortUrl,
  4. twitterPinLoginToken,
  5. twitterPinLoginCode,
  6. onInstalledMid,
  7. onInstalledUserSet,
  8. onInstalledCreateTab,
  9. checkPined,
  10. popupRePublish,
  11. setBadgeInfo,
  12. hideBadge,
  13. setMessageCount,
  14. discordLoginCode,
  15. saveDiscordAuthWindowId,
  16. onDisconnectHandler,
  17. getMessageInfo
  18. } from "@/logic/background/twitter";
  19. import { PingPong } from "@/logic/background/help";
  20. import {
  21. facebookShareSuccess
  22. } from "@/logic/background/facebook";
  23. //加载bg.js 执行
  24. setMessageCount();
  25. // 消息通讯
  26. chrome.runtime.onConnect.addListener(function (port) {
  27. port.onDisconnect.addListener(function () {
  28. onDisconnectHandler(port);
  29. });
  30. });
  31. // 当有可用更新时触发
  32. chrome.runtime.onUpdateAvailable.addListener(() => {
  33. chrome.runtime.reload()
  34. })
  35. chrome.runtime.onInstalled.addListener(onInstalledMethod);
  36. chrome.runtime.onMessage.addListener(onMessageMethod);
  37. // 定时器
  38. chrome.alarms.onAlarm.addListener(function (alarm) {
  39. // console.log("onAlarm-", alarm);
  40. switch (alarm.name) {
  41. case 'denetChromeAlarm':
  42. getMessageInfo();
  43. break
  44. case 'PingPong':
  45. PingPong()
  46. break;
  47. }
  48. });
  49. function onInstalledMethod() {
  50. onInstalledCreateTab()
  51. onInstalledMid()
  52. onInstalledUserSet()
  53. // pingpang
  54. chrome.alarms.create('PingPong', {
  55. //1分鐘之後開始(該值不能小於1)
  56. delayInMinutes: 2,
  57. //開始後每一分鐘執行一次(該值不能小于1)
  58. periodInMinutes: 4
  59. });
  60. }
  61. function onMessageMethod(req, sender, sendResponse) {
  62. sendResponse('')
  63. if (req) {
  64. switch (req.actionType) {
  65. case "POPUP_LOGIN":
  66. twitterPinLoginToken();
  67. break;
  68. case "POPUP_PUBLISH_TWITTER_RED_PACK":
  69. popupRePublish(req);
  70. break;
  71. case 'CONTENT_GET_PINED':
  72. checkPined();
  73. break;
  74. case 'CONTENT_SET_BADGE':
  75. setBadgeInfo(req);
  76. break;
  77. case 'CONTENT_HIDE_BADGE':
  78. hideBadge();
  79. break
  80. case 'CONTENT_SEND_CODE':
  81. twitterPinLoginCode(sender, req.code);
  82. case 'CONTENT_TWITTER_LOGIN':
  83. if (req.data) {
  84. twitterPinLoginToken()
  85. }
  86. break
  87. case 'CONTENT_TWITTER_SHORT_LINK':
  88. req.arr_url.forEach(item => {
  89. if (item) {
  90. twitterShortUrl(sender, item)
  91. }
  92. });
  93. break
  94. case "CONTENT_SEND_DISCORD_AUTH_CODE":
  95. discordLoginCode(req, sender);
  96. break
  97. case 'RED_PACKET_SAVE_DISCORD_AUTH_WINDOW_ID':
  98. saveDiscordAuthWindowId(req);
  99. break;
  100. case 'CONTENT_FACEBOOK_SHARE_SUCCESS':
  101. facebookShareSuccess(req, sender);
  102. break;
  103. case 'CONTENT_PONG':
  104. console.log('CONTENT_PONG')
  105. break
  106. }
  107. }
  108. }