preload.js 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. const { contextBridge, ipcRenderer } = require('electron');
  2. contextBridge.exposeInMainWorld('electronAPI', {
  3. openWindow: (msg) => ipcRenderer.invoke('openWindow', msg),
  4. closeAllWindow: (msg) => ipcRenderer.send('closeAllWindow', msg),
  5. getData: (msg) => ipcRenderer.send('getData', msg),
  6. postData: (msg) => ipcRenderer.send('postData', msg),
  7. setProxy: (msg) => ipcRenderer.send('setProxy', msg),
  8. addPreLoadCode: (msg) => ipcRenderer.send('addPreLoadCode', msg),
  9. setStoData: (msg) => ipcRenderer.send('setStoData', msg),
  10. getStoData: (msg) => ipcRenderer.send('getStoData', msg),
  11. closeWindow: (msg) => ipcRenderer.send('closeWindow', msg),
  12. changeProxy: (msg) => ipcRenderer.send('changeProxy', msg),
  13. readConfig: (msg) => ipcRenderer.send('readConfig', msg),
  14. saveConfig: (msg) => ipcRenderer.send('saveConfig', msg),
  15. setMaxWindowOpenNum: (msg) => ipcRenderer.send('setMaxWindowOpenNum', msg),
  16. readdir: (msg) => ipcRenderer.send('readdir', msg),
  17. download: (msg) => ipcRenderer.send('download', msg),
  18. broadcast: (msg) => ipcRenderer.send('broadcast-message', msg),
  19. onBroadcast: (callback) => ipcRenderer.on('message-broadcast', (event, data) => callback(data)),
  20. });
  21. // window.open = (url)=>{console.log(url)}
  22. window.lastText = ''
  23. window.lastText2 = ''
  24. setInterval(() => {
  25. // 快手
  26. if (document.querySelectorAll('.virt-list__client .comment-cell')[0]) {
  27. let nowMessage = document.querySelectorAll('.virt-list__client .comment-cell')[document.querySelectorAll('.virt-list__client .comment-cell').length - 1]
  28. let nowText = nowMessage.querySelector('.comment').innerText
  29. if (window.lastText !== nowText) {
  30. window.lastText = nowText
  31. console.log(nowText)
  32. ipcRenderer.send('broadcast-message', nowText)
  33. }
  34. }
  35. // 抖音
  36. const chatroom = document.querySelectorAll('.webcast-chatroom .webcast-chatroom___content-with-emoji-text')
  37. if (chatroom[0]) {
  38. const userNameItem = document.querySelectorAll('.webcast-chatroom .hts-live-text-user')
  39. let nowText = chatroom[chatroom.length - 1].innerText
  40. let nowUser = ''
  41. if (userNameItem[userNameItem.length - 1]) userNameItem[userNameItem.length - 1].innerText
  42. if (window.lastText !== nowText) {
  43. window.lastText = nowText
  44. console.log(nowText)
  45. ipcRenderer.send('broadcast-message', nowUser.replace('@', '') + ':' + nowText)
  46. }
  47. } else if (document.querySelectorAll('.TNg5meqw')[0]) {
  48. let nowMessage = document.querySelectorAll('.TNg5meqw')[document.querySelectorAll('.TNg5meqw').length - 1]
  49. let nowText = nowMessage.innerText
  50. if (window.lastText !== nowText) {
  51. window.lastText = nowText
  52. console.log(nowText)
  53. ipcRenderer.send('broadcast-message', nowText)
  54. }
  55. }
  56. // 抖音提醒
  57. let dyAlertBox = document.querySelectorAll('.webcast-chatroom___list')
  58. if (dyAlertBox[1] && dyAlertBox[1].innerText) {
  59. if (window.lastText2 !== dyAlertBox[1].innerText) {
  60. window.lastText2 = dyAlertBox[1].innerText
  61. ipcRenderer.send('broadcast-message', dyAlertBox[1].innerText)
  62. }
  63. }
  64. // 巨量
  65. if (document.querySelector('#comment-list-wrapper')) {
  66. let timingList = document.querySelectorAll('#comment-list-wrapper>[elementtiming="element-timing"]')
  67. let nowMessage = timingList[timingList.length - 1]
  68. if (!nowMessage.innerText.includes('主播')) {
  69. let nowText = nowMessage.innerText.replace(nowMessage.querySelector('span').innerText, '')
  70. if (window.lastText !== nowText) {
  71. window.lastText = nowText
  72. console.log(nowText)
  73. ipcRenderer.send('broadcast-message', nowText)
  74. }
  75. }
  76. }
  77. }, 1000);