|
| 1 | +import { Assets } from 'premid' |
| 2 | + |
| 3 | +const presence = new Presence({ |
| 4 | + clientId: '1460511327771426848', |
| 5 | +}) |
| 6 | + |
| 7 | +presence.on('UpdateData', async () => { |
| 8 | + const presenceData: PresenceData = { |
| 9 | + largeImageKey: 'https://raw.githubusercontent.com/sirschubert/assets/refs/heads/main/assets/communityIcon_p626ghkfd91g1.png', |
| 10 | + } |
| 11 | + |
| 12 | + const { pathname } = document.location |
| 13 | + |
| 14 | + const mangaName = document.querySelector('.title')?.textContent?.trim() || 'Manga' |
| 15 | + const rawString = document.querySelector('.number')?.textContent?.trim() |
| 16 | + const groupName = document.querySelector('.user-name')?.textContent?.trim() |
| 17 | + const chapter = rawString?.split('/')[0]?.replace('Ch. ', '')?.trim() |
| 18 | + |
| 19 | + const getImg = (selector: string) => { |
| 20 | + const el = document.querySelector(selector) |
| 21 | + const src = el?.getAttribute('data-src') || el?.getAttribute('src') |
| 22 | + return src ? new URL(src, document.location.href).href : null |
| 23 | + } |
| 24 | + |
| 25 | + const poster = getImg('.poster div img') || getImg('.poster img') |
| 26 | + const readerPoster = getImg('.d-none img') || getImg('.reader-image img') |
| 27 | + |
| 28 | + if (pathname === '/') { |
| 29 | + presenceData.state = 'Stepping into magical world...' |
| 30 | + } |
| 31 | + else if (pathname === '/home') { |
| 32 | + presenceData.state = 'Browsing homepage...' |
| 33 | + } |
| 34 | + else if (pathname === '/genres') { |
| 35 | + presenceData.details = 'Browsing genres...' |
| 36 | + } |
| 37 | + else if (pathname === '/groups/popular') { |
| 38 | + presenceData.details = 'Browsing popular groups...' |
| 39 | + } |
| 40 | + else if (/\/groups\/\d+/.test(pathname)) { |
| 41 | + presenceData.details = `Watching at '${groupName || 'Unknown'}' group` |
| 42 | + } |
| 43 | + else if (pathname.includes('/browser')) { |
| 44 | + presenceData.details = 'Searching for manga...' |
| 45 | + } |
| 46 | + |
| 47 | + if (pathname.includes('/title')) { |
| 48 | + if (!rawString) { |
| 49 | + presenceData.details = `Watching "${mangaName}" mainpage` |
| 50 | + presenceData.largeImageKey = poster || presenceData.largeImageKey |
| 51 | + } |
| 52 | + else { |
| 53 | + presenceData.details = mangaName |
| 54 | + presenceData.state = `Chapter: ${chapter || 'Unknown'}` |
| 55 | + presenceData.largeImageKey = readerPoster || poster || presenceData.largeImageKey |
| 56 | + presenceData.smallImageKey = Assets.Reading |
| 57 | + presenceData.smallImageText = `Chapter: ${chapter}` |
| 58 | + } |
| 59 | + } |
| 60 | + |
| 61 | + presence.setActivity(presenceData) |
| 62 | +}) |
0 commit comments