presence.ts 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import { Assets } from 'premid'
  2. const presence = new Presence({
  3. clientId: '754742129221173278',
  4. })
  5. const browsingTimestamp = Math.floor(Date.now() / 1000)
  6. let item
  7. presence.on('UpdateData', async () => {
  8. const presenceData: PresenceData = {
  9. largeImageKey: 'https://cdn.rcd.gg/PreMiD/websites/L/Linus%20Tech%20Tips/assets/logo.png',
  10. startTimestamp: browsingTimestamp,
  11. }
  12. if (document.location.hostname === 'linustechtips.com') {
  13. if (document.location.pathname === '/') {
  14. presenceData.details = 'Browsing'
  15. presenceData.state = 'Categories'
  16. presence.setActivity(presenceData)
  17. }
  18. else if (document.location.pathname.includes('/forum/')) {
  19. item = document.querySelector('h1') as HTMLElement
  20. presenceData.details = 'Browsing Category'
  21. presenceData.state = item.textContent
  22. presenceData.smallImageKey = Assets.Search
  23. presence.setActivity(presenceData)
  24. }
  25. else if (document.location.pathname.includes('/topic/')) {
  26. item = document.querySelector('h1.ipsType_pageTitle') as HTMLElement
  27. presenceData.details = 'Viewing Thread'
  28. presenceData.state = item.textContent
  29. presenceData.smallImageKey = Assets.Reading
  30. presence.setActivity(presenceData)
  31. }
  32. else if (document.location.pathname.includes('/profile/')) {
  33. item = document.querySelector(
  34. 'div.ipsColumns div.ipsColumn_fluid h1',
  35. ) as HTMLElement
  36. presenceData.details = 'Viewing Profile'
  37. presenceData.state = item.textContent
  38. presence.setActivity(presenceData)
  39. }
  40. else {
  41. presence.setActivity()
  42. }
  43. }
  44. })