twitter.js 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. import { getStorage, setStorage, getVisitorId, setCookie, getCookie, guid } from '@/uilts/help'
  2. import { getChromeStorage, setChromeStorage } from '@/uilts/chromeExtension.js'
  3. // 根据提示dom 跳转到推文详情页面
  4. export const jumpTwitterDetailByAlert = () => {
  5. let num = 10
  6. let timer = setInterval(() => {
  7. if (num <= 0) {
  8. clearInterval(timer)
  9. return
  10. }
  11. let alert = document.querySelector('div[role=alert]')
  12. if (alert) {
  13. let a = alert.querySelector('a')
  14. if (a) {
  15. clearInterval(timer)
  16. a.click()
  17. }
  18. }
  19. num--
  20. }, 500)
  21. }
  22. export const showEditTweet = (callback) => {
  23. let bigBtn = document.querySelector('a[data-testid="SideNav_NewTweet_Button"]');
  24. if (bigBtn) {
  25. bigBtn.click();
  26. } else {
  27. let smallBtn = document.querySelector('a[href="/compose/tweet"]')
  28. smallBtn && smallBtn.click();
  29. }
  30. let num = 10
  31. let timer = setInterval(() => {
  32. if (num <= 0) {
  33. clearInterval(timer)
  34. return
  35. }
  36. let inputEle = document.querySelector('div[contenteditable="true"]');
  37. if (inputEle) {
  38. clearInterval(timer)
  39. callback && callback()
  40. }
  41. num--
  42. }, 500);
  43. }
  44. export const setDeviceInfo = async () => {
  45. const deviceStorageParams = {
  46. name: 'de_net_device_id_1'
  47. }
  48. const deviceCookieParams = {
  49. url: 'https://twitter.com/',
  50. name: 'de_net_device_id_2'
  51. }
  52. let deviceInfo = {
  53. deviceId1: '',
  54. deviceId2: ''
  55. }
  56. let storageDeviceInfo = getStorage(deviceStorageParams.name);
  57. if (!storageDeviceInfo) {
  58. let res = await getVisitorId();
  59. let id = res && res.visitorId || '';
  60. setStorage(deviceStorageParams.name, id);
  61. deviceInfo.deviceId1 = id;
  62. } else {
  63. deviceInfo.deviceId1 = storageDeviceInfo;
  64. }
  65. let cookieDeviceInfo = getCookie(deviceCookieParams.name);
  66. if (!cookieDeviceInfo) {
  67. let rid = guid();
  68. setCookie(deviceCookieParams.name, rid, 600);
  69. deviceInfo.deviceId2 = rid;
  70. } else {
  71. deviceInfo.deviceId2 = cookieDeviceInfo;
  72. }
  73. setChromeStorage({ 'deviceInfo': JSON.stringify(deviceInfo) });
  74. }