background.js 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  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. injectExtensionPopup,
  19. setPopupConfig,
  20. windwoLoadSetPopupPage,
  21. setActionPopup,
  22. getTwitterNftPostPre,
  23. nftTxtPublish,
  24. getLuckMessage
  25. } from "@/logic/background/twitter";
  26. import Report from "@/log-center/log"
  27. import { PingPong, httpNetWork } from "@/logic/background/help";
  28. import { commonFetch } from '@/http/fetch'
  29. import {
  30. facebookShareSuccess
  31. } from "@/logic/background/facebook";
  32. //加载bg.js 执行
  33. setMessageCount();
  34. // 消息通讯
  35. chrome.runtime.onConnect.addListener(function (port) {
  36. port.onDisconnect.addListener(function () {
  37. onDisconnectHandler(port);
  38. });
  39. });
  40. // 当有可用更新时触发
  41. chrome.runtime.onUpdateAvailable.addListener(() => {
  42. chrome.runtime.reload()
  43. })
  44. chrome.runtime.onInstalled.addListener(onInstalledMethod);
  45. chrome.runtime.onMessage.addListener(onMessageMethod);
  46. // 定时器
  47. chrome.alarms.onAlarm.addListener(function (alarm) {
  48. // console.log("onAlarm-", alarm);
  49. switch (alarm.name) {
  50. case 'denetChromeAlarm':
  51. getMessageInfo();
  52. break
  53. case 'PingPong':
  54. PingPong()
  55. break;
  56. case 'LuckMessage':
  57. getLuckMessage()
  58. break
  59. }
  60. });
  61. chrome.action.onClicked.addListener(function (tab) {
  62. injectExtensionPopup(tab);
  63. });
  64. chrome.tabs.onActivated.addListener(function (activeInfo) {
  65. setPopupConfig(activeInfo);
  66. })
  67. function onInstalledMethod() {
  68. onInstalledCreateTab()
  69. onInstalledMid()
  70. onInstalledUserSet()
  71. // pingpang
  72. chrome.alarms.create('PingPong', {
  73. //1分鐘之後開始(該值不能小於1)
  74. delayInMinutes: 2,
  75. //開始後每一分鐘執行一次(該值不能小于1)
  76. periodInMinutes: 4
  77. });
  78. chrome.alarms.create('LuckMessage', {
  79. //1分鐘之後開始(該值不能小於1)
  80. delayInMinutes: 1,
  81. //開始後每一分鐘執行一次(該值不能小于1)
  82. periodInMinutes: 1
  83. });
  84. setTimeout(() => {
  85. // 安装成功埋点
  86. Report.reportLog({
  87. objectType: Report.objectType.chrome_extension_installed
  88. });
  89. }, 5000);
  90. }
  91. function onMessageMethod(req, sender, sendResponse) {
  92. sendResponse('ok')
  93. if (req) {
  94. switch (req.actionType) {
  95. case "POPUP_LOGIN":
  96. twitterPinLoginToken();
  97. break;
  98. case "POPUP_PUBLISH_TWITTER_RED_PACK":
  99. popupRePublish(req);
  100. break;
  101. case 'CONTENT_GET_PINED':
  102. checkPined();
  103. break;
  104. case 'CONTENT_SET_BADGE':
  105. setBadgeInfo(req);
  106. break;
  107. case 'CONTENT_HIDE_BADGE':
  108. hideBadge();
  109. break
  110. case 'CONTENT_SEND_CODE':
  111. twitterPinLoginCode(sender, req.code);
  112. case 'CONTENT_TWITTER_LOGIN':
  113. if (req.data) {
  114. twitterPinLoginToken()
  115. }
  116. break
  117. case 'CONTENT_TWITTER_SHORT_LINK':
  118. req.arr_url.forEach(item => {
  119. if (item) {
  120. twitterShortUrl(sender, item)
  121. }
  122. });
  123. break
  124. case "CONTENT_SEND_DISCORD_AUTH_CODE":
  125. discordLoginCode(req, sender);
  126. break
  127. case 'RED_PACKET_SAVE_DISCORD_AUTH_WINDOW_ID':
  128. saveDiscordAuthWindowId(req);
  129. break;
  130. case 'CONTENT_FACEBOOK_SHARE_SUCCESS':
  131. facebookShareSuccess(req, sender);
  132. break;
  133. case 'CONTENT_PONG':
  134. console.log('CONTENT_PONG')
  135. break
  136. case 'CONTENT_WINDOW_LOADED_SET_POPUP_PAGE':
  137. // windwoLoadSetPopupPage(req, sender);
  138. break;
  139. case 'CONTENT_SET_POPUP_CONFIG':
  140. setActionPopup(req, sender);
  141. break;
  142. case 'CONTENT_GET_TWITTER_NFT_POST_PRE':
  143. getTwitterNftPostPre(req.data, sender)
  144. break
  145. case 'CONTENT_NFT_TXT_PUBLISH':
  146. nftTxtPublish(req.data, sender)
  147. break
  148. case 'CONTENT_HTTP_NET_WORK':
  149. httpNetWork(req.funcName, req.data, sender)
  150. break
  151. case 'HTTP_CONTENT_TO_BACK':
  152. commonFetch(req.data)
  153. .then((response) => {
  154. chrome.tabs.sendMessage(sender.tab.id, { actionType: 'HTTP_BACK_TO_CONTENT', data: response, callback_id: req.callback_id });
  155. })
  156. .catch(() => {
  157. chrome.tabs.sendMessage(sender.tab.id, { actionType: 'HTTP_BACK_TO_CONTENT', data: null, callback_id: req.callback_id });
  158. })
  159. break
  160. }
  161. }
  162. }