presence.ts 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. const presence = new Presence({ clientId: '818822000176791553' })
  2. const assets = {
  3. 'word-logo': 'https://cdn.rcd.gg/PreMiD/websites/O/OneDrive/assets/0.png',
  4. 'excel-logo': 'https://cdn.rcd.gg/PreMiD/websites/O/OneDrive/assets/1.png',
  5. 'powerpoint-logo': 'https://cdn.rcd.gg/PreMiD/websites/O/OneDrive/assets/2.png',
  6. 'onedrive-logo': 'https://cdn.rcd.gg/PreMiD/websites/O/OneDrive/assets/3.png',
  7. 'office-logo': 'https://cdn.rcd.gg/PreMiD/websites/O/OneDrive/assets/4.png',
  8. }
  9. presence.on('UpdateData', async () => {
  10. const title = document.title.split('-')
  11. const [fileName] = title
  12. const fileType = title[1]?.replace('Microsoft', '').replace('Online', '').trim()
  13. const presenceData: PresenceData = {
  14. largeImageKey: 'https://cdn.rcd.gg/PreMiD/websites/O/OneDrive/assets/logo.png',
  15. startTimestamp: Math.round(Date.now() / 1000),
  16. }
  17. if (fileType === 'OneDrive') {
  18. presenceData.details = 'Browsing a directory'
  19. presenceData.state = fileName
  20. }
  21. else if (
  22. fileType === 'Word'
  23. || fileType === 'Excel'
  24. || fileType === 'PowerPoint'
  25. ) {
  26. presenceData.largeImageKey = assets[`${fileType.toLowerCase()}-logo` as keyof typeof assets]
  27. presenceData.smallImageKey = assets['office-logo']
  28. presenceData.smallImageText = 'Microsoft Office Online'
  29. presenceData.details = `Editing ${
  30. fileType.charAt(0) === 'E' ? 'an' : 'a'
  31. } ${fileType} file`
  32. presenceData.state = fileName
  33. }
  34. presence.setActivity(presenceData)
  35. })