presence.ts 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import { Assets } from 'premid'
  2. const presence = new Presence({
  3. clientId: '630847999106482176',
  4. })
  5. const strings = presence.getStrings({
  6. play: 'general.playing',
  7. pause: 'general.paused',
  8. })
  9. presence.on('UpdateData', async () => {
  10. const presenceData: PresenceData = {
  11. largeImageKey: 'https://cdn.rcd.gg/PreMiD/websites/S/Streamable/assets/logo.png',
  12. }
  13. const player = document.querySelector<HTMLVideoElement>('.video-player-tag')
  14. if (player) {
  15. [presenceData.startTimestamp, presenceData.endTimestamp] = presence.getTimestamps(
  16. Math.floor(player.currentTime),
  17. Math.floor(player.duration),
  18. )
  19. presenceData.details = document.querySelector('.metadata #title')?.textContent
  20. presenceData.state = document.querySelector('.metadata #visits')?.textContent
  21. presenceData.smallImageKey = player.paused ? Assets.Pause : Assets.Play
  22. presenceData.smallImageText = player.paused
  23. ? (await strings).pause
  24. : (await strings).play
  25. if (player.paused) {
  26. delete presenceData.startTimestamp
  27. delete presenceData.endTimestamp
  28. }
  29. }
  30. else {
  31. presenceData.details = 'Browsing...'
  32. presenceData.startTimestamp = Date.now()
  33. }
  34. presence.setActivity(presenceData)
  35. })