presence.ts 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. import { Assets } from 'premid'
  2. const presence = new Presence({
  3. clientId: '628341182581440531',
  4. })
  5. const strings = presence.getStrings({
  6. play: 'general.playing',
  7. pause: 'general.paused',
  8. })
  9. presence.on('UpdateData', async () => {
  10. const category = document.querySelector(
  11. '#widget_serie_contents_3 > section > div > div > div.category-main-content-right > header > h1 > strong',
  12. ) as HTMLElement
  13. if (
  14. document.location.pathname === '/'
  15. || !document.location.pathname
  16. || (category && category.textContent !== '')
  17. ) {
  18. presence.setActivity({
  19. largeImageKey: 'https://cdn.rcd.gg/PreMiD/websites/P/puhutv/assets/logo.png',
  20. startTimestamp: Math.floor(Date.now() / 1000),
  21. details: 'Geziniyor...',
  22. state: category && category.textContent ? category.textContent : 'Ana Sayfa',
  23. })
  24. }
  25. else {
  26. const video = document.querySelector<HTMLVideoElement>(
  27. '#dyg_player_dogusPlayer_html5_api',
  28. )
  29. if (video) {
  30. const title = document.querySelector(
  31. '#widget_video_detail_3 > section.hero.hero--video-detay.hero--subpages > header > div > div.video-detay-header-content > h1 > a',
  32. )
  33. const episode = title
  34. && document.querySelector(
  35. '#widget_video_detail_3 > section.hero.hero--video-detay.hero--subpages > header > div > div.video-detay-header-content > h1',
  36. )
  37. ? document
  38. .querySelector(
  39. '#widget_video_detail_3 > section.hero.hero--video-detay.hero--subpages > header > div > div.video-detay-header-content > h1',
  40. )
  41. ?.textContent
  42. ?.replace(`${title.outerHTML} `, '')
  43. : null
  44. const timestamps = presence.getTimestamps(
  45. Math.floor(video.currentTime),
  46. Math.floor(video.duration),
  47. )
  48. if (!title || title.textContent === '')
  49. return
  50. const presenceData: PresenceData = {
  51. largeImageKey: 'https://cdn.rcd.gg/PreMiD/websites/P/puhutv/assets/logo.png',
  52. details: title.textContent,
  53. state: episode !== ''
  54. ? episode
  55. : `${
  56. document.querySelector(
  57. '#widget_serie_detail_tab_5 > section > div > div > div > div.kunye-content-left > div:nth-child(3)',
  58. )
  59. ? document
  60. .querySelector<HTMLElement>(
  61. '#widget_serie_detail_tab_5 > section > div > div > div > div.kunye-content-left > div:nth-child(3)',
  62. )
  63. ?.textContent
  64. ?.replace(/\n/g, ': ')
  65. : null
  66. }`,
  67. smallImageKey: video.paused ? Assets.Pause : Assets.Play,
  68. smallImageText: video.paused
  69. ? (await strings).pause
  70. : (await strings).play,
  71. }
  72. if (!Number.isNaN(timestamps[0]) && !Number.isNaN(timestamps[1]))
  73. [presenceData.startTimestamp, presenceData.endTimestamp] = timestamps
  74. if (video.paused) {
  75. delete presenceData.startTimestamp
  76. delete presenceData.endTimestamp
  77. }
  78. presence.setActivity(presenceData)
  79. }
  80. }
  81. })