From 568d6442a0e7750b54945ad7e1eb5285d778405d Mon Sep 17 00:00:00 2001 From: pand6ra <87049696+pand6ra@users.noreply.github.com> Date: Thu, 6 Mar 2025 18:09:33 -0500 Subject: [PATCH 01/10] Update presence.ts Signed-off-by: pand6ra <87049696+pand6ra@users.noreply.github.com> --- websites/K/Khan Academy/presence.ts | 126 ++++++++++------------------ 1 file changed, 44 insertions(+), 82 deletions(-) diff --git a/websites/K/Khan Academy/presence.ts b/websites/K/Khan Academy/presence.ts index e4c0702be4ea..4efdd8f84392 100644 --- a/websites/K/Khan Academy/presence.ts +++ b/websites/K/Khan Academy/presence.ts @@ -1,96 +1,58 @@ -const presence = new Presence({ - clientId: '900882829154598952', -}) -const strings = presence.getStrings({ - homepage: 'general.viewHome', - settings: 'google classroom.settings', - watching: 'general.watching', - reading: 'general.readingAbout', - writing: 'general.writing', - profile: 'general.viewProfile', -}) +const presence = new Presence({ clientId: '900882829154598952' }) +const strings = presence.getStrings({ homepage: 'Homepage', settings: 'Settings' }) enum ActivityAssets { Logo = 'https://cdn.rcd.gg/PreMiD/websites/K/Khan%20Academy/assets/logo.png', Video = 'https://cdn.rcd.gg/PreMiD/websites/K/Khan%20Academy/assets/0.png', Article = 'https://cdn.rcd.gg/PreMiD/websites/K/Khan%20Academy/assets/1.png', - Exercise = 'https://cdn.rcd.gg/PreMiD/websites/K/Khan%20Academy/assets/2.png', + Exercise = 'https://cdn.rcd.gg/PreMiD/websites/K/Khan%20Academy/assets/2.png' } presence.on('UpdateData', async () => { - const presenceData: PresenceData = { - largeImageKey: ActivityAssets.Logo, - details: (await strings).watching, - } - - if (document.location.pathname === '/') { - presenceData.state = `🏠 ${(await strings).homepage}` - } - else if (document.location.pathname.includes('/courses')) { - presenceData.state = '📚 Courses' - } - else if (document.location.pathname.includes('/progress')) { - presenceData.state = '📊 Progress' - } - else if (document.location.pathname.includes('/teachers')) { - presenceData.state = '🎓 Teachers' - } - else if (document.location.pathname.includes('/profile')) { - presenceData.details = (await strings).profile - presenceData.state = `👀 ${ - document.querySelector('._o77ufew')?.textContent - }` - } - else if (document.location.pathname.includes('/settings')) { - presenceData.state = `⚙️ ${(await strings).settings}` - } - else if (document.location.pathname.includes('/search')) { - presenceData.state = `🔍 Searching for '${ - document.location.pathname.split('page_search_query=')[1] - }'` - } - else if (document.location.pathname.includes('/topics')) { - presenceData.state = '🔍 Community' - } - else if (document.location.pathname.includes('/posts')) { - presenceData.state = '🔍 Community Post' - } - else if (document.location.pathname.includes('/requests/new')) { - presenceData.state = '⚠️ Submitting a Request' - } - else if (document.location.hostname.includes('support')) { - presenceData.state = '💡 Support' - } - else if (document.location.pathname.split('/').length < 3) { - presenceData.state = `📖 ${ - document.querySelector('._aemo2b3')?.textContent - }` - } - else { - presenceData.details = document.querySelector( - '._io410w6, span._cmfzobe:nth-child(2) > a:nth-child(2)', - )?.textContent - presenceData.state = `📋 ${document - .querySelector( - '._1eqoe4n8, span._cmfzobe:nth-child(3) > a:nth-child(2), #uid-dialog-0-title > span:nth-child(1)', - ) - ?.textContent - ?.replace(/.*?:\s+/, '')}` + const presenceData: PresenceData = { largeImageKey: ActivityAssets.Logo, details: 'Viewing' } + const path = document.location.pathname + const searchParams = new URLSearchParams(document.location.search) - if (document.location.pathname.match(/\/([vae]|quiz)\//)) { - presenceData.smallImageText = document.querySelector( - '._1l44zfj, [role="dialog"] [data-test-id="modal-title"]', - )?.textContent + if (path === '/') presenceData.state = `🏠 ${(await strings).homepage}` + else if (path.includes('/courses')) presenceData.state = '📚 Courses' + else if (path.includes('/progress')) presenceData.state = '📊 Progress' + else if (path === '/profile/me/teachers') presenceData.state = '🎓 Teachers' + else if (path.includes('/profile')) presenceData.state = '👤 Profile' + else if (path.includes('/settings')) presenceData.state = `⚙️ ${(await strings).settings}` + else if (path.includes('/search')) { + presenceData.details = '🔍 Searching' + presenceData.state = `"${searchParams.get('page_search_query') || 'Unknown Search'}"` + } + else if (path.includes('/topics')) presenceData.state = '🔍 Community' + else if (path.includes('/posts')) presenceData.state = '🔍 Community Post' + else if (path.includes('/requests/new')) presenceData.state = '⚠️ Submitting a Request' + else if (document.location.hostname.includes('support')) presenceData.state = '💡 Support' + else if (path.split('/').length < 3) presenceData.state = `📖 ${document.querySelector('._aemo2b3')?.textContent}` + else if (path.match(/\/([vae]|quiz)\//)) { + const breadcrumbLinks = document.querySelectorAll('a[class="_j9iwqrr"]') + const courseName = breadcrumbLinks[1]?.textContent || 'Unknown Course' + const contentTitle = document.querySelector('h1[data-testid="content-library-content-title"]')?.textContent || 'Unknown Content' - if (document.location.pathname.includes('/v/')) - presenceData.smallImageKey = ActivityAssets.Video - else if (document.location.pathname.includes('/a/')) - presenceData.smallImageKey = ActivityAssets.Article - else presenceData.smallImageKey = ActivityAssets.Exercise + if (path.includes('/v/')) { + presenceData.smallImageKey = ActivityAssets.Video + presenceData.smallImageText = 'Watching a Video' + presenceData.details = courseName + presenceData.state = `📺 ${contentTitle}` + } + else if (path.includes('/a/')) { + presenceData.smallImageKey = ActivityAssets.Article + presenceData.smallImageText = 'Reading an Article' + presenceData.details = courseName + presenceData.state = `📖 ${contentTitle}` + } + else { + presenceData.smallImageKey = ActivityAssets.Exercise + presenceData.smallImageText = 'Taking a Quiz' + presenceData.details = courseName + presenceData.state = `📝 ${contentTitle}` } } + else presenceData.state = `📋 ${document.querySelector('.nav-breadcrumb a:last-child')?.textContent || 'Learning'}` - if (!presenceData.details) - presence.setActivity() - else presence.setActivity(presenceData) + presence.setActivity(presenceData.details ? presenceData : {}) }) From 9f66f776e21bfff329088927b25c292138b4e3a5 Mon Sep 17 00:00:00 2001 From: pand6ra <87049696+pand6ra@users.noreply.github.com> Date: Thu, 6 Mar 2025 18:10:14 -0500 Subject: [PATCH 02/10] Update metadata.json Signed-off-by: pand6ra <87049696+pand6ra@users.noreply.github.com> --- websites/K/Khan Academy/metadata.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/websites/K/Khan Academy/metadata.json b/websites/K/Khan Academy/metadata.json index 9e3c3c278b39..17eb97289193 100644 --- a/websites/K/Khan Academy/metadata.json +++ b/websites/K/Khan Academy/metadata.json @@ -2,8 +2,8 @@ "$schema": "https://schemas.premid.app/metadata/1.13", "apiVersion": 1, "author": { - "name": "lolilover", - "id": "616761152331841550" + "name": "pand6ra", + "id": "468922513410490368" }, "service": "Khan Academy", "description": { @@ -13,7 +13,7 @@ }, "url": "www.khanacademy.org", "regExp": "([a-z]+[.])+khanacademy[.]org[/]", - "version": "1.1.22", + "version": "1.2", "logo": "https://cdn.rcd.gg/PreMiD/websites/K/Khan%20Academy/assets/logo.png", "thumbnail": "https://cdn.rcd.gg/PreMiD/websites/K/Khan%20Academy/assets/thumbnail.png", "color": "#4de682", From cfe649fecfa6e71f256fd47a28f39b54d009a50c Mon Sep 17 00:00:00 2001 From: pand6ra <87049696+pand6ra@users.noreply.github.com> Date: Thu, 6 Mar 2025 18:20:25 -0500 Subject: [PATCH 03/10] feat(Khan Academy): update and fix errors with presence Signed-off-by: pand6ra <87049696+pand6ra@users.noreply.github.com> --- websites/K/Khan Academy/presence.ts | 81 ++++++++++++++--------------- 1 file changed, 40 insertions(+), 41 deletions(-) diff --git a/websites/K/Khan Academy/presence.ts b/websites/K/Khan Academy/presence.ts index 4efdd8f84392..e167a708f7af 100644 --- a/websites/K/Khan Academy/presence.ts +++ b/websites/K/Khan Academy/presence.ts @@ -1,58 +1,57 @@ -const presence = new Presence({ clientId: '900882829154598952' }) -const strings = presence.getStrings({ homepage: 'Homepage', settings: 'Settings' }) +const presence = new Presence({ clientId: '900882829154598952' }); +const strings = presence.getStrings({ homepage: 'Homepage', settings: 'Settings' }); enum ActivityAssets { Logo = 'https://cdn.rcd.gg/PreMiD/websites/K/Khan%20Academy/assets/logo.png', Video = 'https://cdn.rcd.gg/PreMiD/websites/K/Khan%20Academy/assets/0.png', Article = 'https://cdn.rcd.gg/PreMiD/websites/K/Khan%20Academy/assets/1.png', - Exercise = 'https://cdn.rcd.gg/PreMiD/websites/K/Khan%20Academy/assets/2.png' + Exercise = 'https://cdn.rcd.gg/PreMiD/websites/K/Khan%20Academy/assets/2.png', } presence.on('UpdateData', async () => { - const presenceData: PresenceData = { largeImageKey: ActivityAssets.Logo, details: 'Viewing' } - const path = document.location.pathname - const searchParams = new URLSearchParams(document.location.search) + const presenceData: PresenceData = { largeImageKey: ActivityAssets.Logo, details: 'Viewing' }; + const path = document.location.pathname; + const searchParams = new URLSearchParams(document.location.search); - if (path === '/') presenceData.state = `🏠 ${(await strings).homepage}` - else if (path.includes('/courses')) presenceData.state = '📚 Courses' - else if (path.includes('/progress')) presenceData.state = '📊 Progress' - else if (path === '/profile/me/teachers') presenceData.state = '🎓 Teachers' - else if (path.includes('/profile')) presenceData.state = '👤 Profile' - else if (path.includes('/settings')) presenceData.state = `⚙️ ${(await strings).settings}` + if (path === '/') presenceData.state = `🏠 ${(await strings).homepage}`; + else if (path.includes('/courses')) presenceData.state = '📚 Courses'; + else if (path.includes('/progress')) presenceData.state = '📊 Progress'; + else if (path === '/profile/me/teachers') presenceData.state = '🎓 Teachers'; + else if (path.includes('/profile')) presenceData.state = '👤 Profile'; + else if (path.includes('/settings')) presenceData.state = `⚙️ ${(await strings).settings}`; else if (path.includes('/search')) { - presenceData.details = '🔍 Searching' - presenceData.state = `"${searchParams.get('page_search_query') || 'Unknown Search'}"` + presenceData.details = '🔍 Searching'; + presenceData.state = `"${searchParams.get('page_search_query') || 'Unknown Search'}"`; } - else if (path.includes('/topics')) presenceData.state = '🔍 Community' - else if (path.includes('/posts')) presenceData.state = '🔍 Community Post' - else if (path.includes('/requests/new')) presenceData.state = '⚠️ Submitting a Request' - else if (document.location.hostname.includes('support')) presenceData.state = '💡 Support' - else if (path.split('/').length < 3) presenceData.state = `📖 ${document.querySelector('._aemo2b3')?.textContent}` + else if (path.includes('/topics')) presenceData.state = '🔍 Community'; + else if (path.includes('/posts')) presenceData.state = '🔍 Community Post'; + else if (path.includes('/requests/new')) presenceData.state = '⚠️ Submitting a Request'; + else if (document.location.hostname.includes('support')) presenceData.state = '💡 Support'; + else if (path.split('/').length < 3) presenceData.state = `📖 ${document.querySelector('._aemo2b3')?.textContent}`; else if (path.match(/\/([vae]|quiz)\//)) { - const breadcrumbLinks = document.querySelectorAll('a[class="_j9iwqrr"]') - const courseName = breadcrumbLinks[1]?.textContent || 'Unknown Course' - const contentTitle = document.querySelector('h1[data-testid="content-library-content-title"]')?.textContent || 'Unknown Content' + const breadcrumbLinks = document.querySelectorAll('a[class="_j9iwqrr"]'); + const courseName = breadcrumbLinks[1]?.textContent || ' '; + const contentTitle = document.querySelector('h1[data-testid="content-library-content-title"]')?.textContent || ' '; if (path.includes('/v/')) { - presenceData.smallImageKey = ActivityAssets.Video - presenceData.smallImageText = 'Watching a Video' - presenceData.details = courseName - presenceData.state = `📺 ${contentTitle}` - } - else if (path.includes('/a/')) { - presenceData.smallImageKey = ActivityAssets.Article - presenceData.smallImageText = 'Reading an Article' - presenceData.details = courseName - presenceData.state = `📖 ${contentTitle}` - } - else { - presenceData.smallImageKey = ActivityAssets.Exercise - presenceData.smallImageText = 'Taking a Quiz' - presenceData.details = courseName - presenceData.state = `📝 ${contentTitle}` + presenceData.smallImageKey = ActivityAssets.Video; + presenceData.smallImageText = 'Watching a Video'; + presenceData.details = courseName; + presenceData.state = `📺 ${contentTitle}`; + } else if (path.includes('/a/')) { + presenceData.smallImageKey = ActivityAssets.Article; + presenceData.smallImageText = 'Reading an Article'; + presenceData.details = courseName; + presenceData.state = `📖 ${contentTitle}`; + } else { + presenceData.smallImageKey = ActivityAssets.Exercise; + presenceData.smallImageText = 'Taking a Quiz'; + presenceData.details = courseName; + presenceData.state = `📝 ${contentTitle}`; } + } else { + presenceData.state = `📋 ${document.querySelector('.nav-breadcrumb a:last-child')?.textContent || 'Learning'}`; } - else presenceData.state = `📋 ${document.querySelector('.nav-breadcrumb a:last-child')?.textContent || 'Learning'}` - presence.setActivity(presenceData.details ? presenceData : {}) -}) + presence.setActivity(presenceData.details ? presenceData : {}); +}); From f639efe80ee725e8d6b72d37e547d50630c77f6b Mon Sep 17 00:00:00 2001 From: pand6ra <87049696+pand6ra@users.noreply.github.com> Date: Thu, 6 Mar 2025 18:25:31 -0500 Subject: [PATCH 04/10] Update metadata.json Signed-off-by: pand6ra <87049696+pand6ra@users.noreply.github.com> --- websites/K/Khan Academy/metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/websites/K/Khan Academy/metadata.json b/websites/K/Khan Academy/metadata.json index 17eb97289193..999cff556895 100644 --- a/websites/K/Khan Academy/metadata.json +++ b/websites/K/Khan Academy/metadata.json @@ -13,7 +13,7 @@ }, "url": "www.khanacademy.org", "regExp": "([a-z]+[.])+khanacademy[.]org[/]", - "version": "1.2", + "version": "1.2.0", "logo": "https://cdn.rcd.gg/PreMiD/websites/K/Khan%20Academy/assets/logo.png", "thumbnail": "https://cdn.rcd.gg/PreMiD/websites/K/Khan%20Academy/assets/thumbnail.png", "color": "#4de682", From ac67ec5d10a1d7987b4231da299554ec15057404 Mon Sep 17 00:00:00 2001 From: pand6ra <87049696+pand6ra@users.noreply.github.com> Date: Thu, 6 Mar 2025 18:33:10 -0500 Subject: [PATCH 05/10] Update presence.ts Signed-off-by: pand6ra <87049696+pand6ra@users.noreply.github.com> --- websites/K/Khan Academy/presence.ts | 88 ++++++++++++++++------------- 1 file changed, 49 insertions(+), 39 deletions(-) diff --git a/websites/K/Khan Academy/presence.ts b/websites/K/Khan Academy/presence.ts index e167a708f7af..921792d8b2fa 100644 --- a/websites/K/Khan Academy/presence.ts +++ b/websites/K/Khan Academy/presence.ts @@ -1,5 +1,5 @@ -const presence = new Presence({ clientId: '900882829154598952' }); -const strings = presence.getStrings({ homepage: 'Homepage', settings: 'Settings' }); +const presence = new Presence({ clientId: '900882829154598952' }) +const strings = presence.getStrings({ homepage: 'Homepage', settings: 'Settings' }) enum ActivityAssets { Logo = 'https://cdn.rcd.gg/PreMiD/websites/K/Khan%20Academy/assets/logo.png', @@ -9,49 +9,59 @@ enum ActivityAssets { } presence.on('UpdateData', async () => { - const presenceData: PresenceData = { largeImageKey: ActivityAssets.Logo, details: 'Viewing' }; - const path = document.location.pathname; - const searchParams = new URLSearchParams(document.location.search); + const presenceData: PresenceData = { largeImageKey: ActivityAssets.Logo, details: 'Viewing' } + const path = document.location.pathname + const searchParams = new URLSearchParams(document.location.search) - if (path === '/') presenceData.state = `🏠 ${(await strings).homepage}`; - else if (path.includes('/courses')) presenceData.state = '📚 Courses'; - else if (path.includes('/progress')) presenceData.state = '📊 Progress'; - else if (path === '/profile/me/teachers') presenceData.state = '🎓 Teachers'; - else if (path.includes('/profile')) presenceData.state = '👤 Profile'; - else if (path.includes('/settings')) presenceData.state = `⚙️ ${(await strings).settings}`; - else if (path.includes('/search')) { - presenceData.details = '🔍 Searching'; - presenceData.state = `"${searchParams.get('page_search_query') || 'Unknown Search'}"`; - } - else if (path.includes('/topics')) presenceData.state = '🔍 Community'; - else if (path.includes('/posts')) presenceData.state = '🔍 Community Post'; - else if (path.includes('/requests/new')) presenceData.state = '⚠️ Submitting a Request'; - else if (document.location.hostname.includes('support')) presenceData.state = '💡 Support'; - else if (path.split('/').length < 3) presenceData.state = `📖 ${document.querySelector('._aemo2b3')?.textContent}`; - else if (path.match(/\/([vae]|quiz)\//)) { - const breadcrumbLinks = document.querySelectorAll('a[class="_j9iwqrr"]'); - const courseName = breadcrumbLinks[1]?.textContent || ' '; - const contentTitle = document.querySelector('h1[data-testid="content-library-content-title"]')?.textContent || ' '; + if (path === '/') { + presenceData.state = `🏠 ${(await strings).homepage}` + } else if (path.includes('/courses')) { + presenceData.state = '📚 Courses' + } else if (path.includes('/progress')) { + presenceData.state = '📊 Progress' + } else if (path === '/profile/me/teachers') { + presenceData.state = '🎓 Teachers' + } else if (path.includes('/profile')) { + presenceData.state = '👤 Profile' + } else if (path.includes('/settings')) { + presenceData.state = `⚙️ ${(await strings).settings}` + } else if (path.includes('/search')) { + presenceData.details = '🔍 Searching' + presenceData.state = `"${searchParams.get('page_search_query') || 'Unknown Search'}"` + } else if (path.includes('/topics')) { + presenceData.state = '🔍 Community' + } else if (path.includes('/posts')) { + presenceData.state = '🔍 Community Post' + } else if (path.includes('/requests/new')) { + presenceData.state = '⚠️ Submitting a Request' + } else if (document.location.hostname.includes('support')) { + presenceData.state = '💡 Support' + } else if (path.split('/').length < 3) { + presenceData.state = `📖 ${document.querySelector('._aemo2b3')?.textContent}` + } else if (path.match(/\/([vae]|quiz)\//)) { + const breadcrumbLinks = document.querySelectorAll('a[class="_j9iwqrr"]') + const courseName = breadcrumbLinks[1]?.textContent || ' ' + const contentTitle = document.querySelector('h1[data-testid="content-library-content-title"]')?.textContent || ' ' if (path.includes('/v/')) { - presenceData.smallImageKey = ActivityAssets.Video; - presenceData.smallImageText = 'Watching a Video'; - presenceData.details = courseName; - presenceData.state = `📺 ${contentTitle}`; + presenceData.smallImageKey = ActivityAssets.Video + presenceData.smallImageText = 'Watching a Video' + presenceData.details = courseName + presenceData.state = `📺 ${contentTitle}` } else if (path.includes('/a/')) { - presenceData.smallImageKey = ActivityAssets.Article; - presenceData.smallImageText = 'Reading an Article'; - presenceData.details = courseName; - presenceData.state = `📖 ${contentTitle}`; + presenceData.smallImageKey = ActivityAssets.Article + presenceData.smallImageText = 'Reading an Article' + presenceData.details = courseName + presenceData.state = `📖 ${contentTitle}` } else { - presenceData.smallImageKey = ActivityAssets.Exercise; - presenceData.smallImageText = 'Taking a Quiz'; - presenceData.details = courseName; - presenceData.state = `📝 ${contentTitle}`; + presenceData.smallImageKey = ActivityAssets.Exercise + presenceData.smallImageText = 'Taking a Quiz' + presenceData.details = courseName + presenceData.state = `📝 ${contentTitle}` } } else { - presenceData.state = `📋 ${document.querySelector('.nav-breadcrumb a:last-child')?.textContent || 'Learning'}`; + presenceData.state = `📋 ${document.querySelector('.nav-breadcrumb a:last-child')?.textContent || 'Learning'}` } - presence.setActivity(presenceData.details ? presenceData : {}); -}); + presence.setActivity(presenceData.details ? presenceData : {}) +}) From d25e8b418ab9cf07fe93ba29847d84100125925d Mon Sep 17 00:00:00 2001 From: pand6ra <87049696+pand6ra@users.noreply.github.com> Date: Thu, 6 Mar 2025 18:45:12 -0500 Subject: [PATCH 06/10] Update presence.ts Signed-off-by: pand6ra <87049696+pand6ra@users.noreply.github.com> --- websites/K/Khan Academy/presence.ts | 156 +++++++++++++++++----------- 1 file changed, 98 insertions(+), 58 deletions(-) diff --git a/websites/K/Khan Academy/presence.ts b/websites/K/Khan Academy/presence.ts index 921792d8b2fa..2b0cdc20b104 100644 --- a/websites/K/Khan Academy/presence.ts +++ b/websites/K/Khan Academy/presence.ts @@ -1,67 +1,107 @@ -const presence = new Presence({ clientId: '900882829154598952' }) -const strings = presence.getStrings({ homepage: 'Homepage', settings: 'Settings' }) +const presence = new Presence({ clientId: "900882829154598952" }); +const strings = presence.getStrings({ + homepage: "Homepage", + settings: "Settings", +}); enum ActivityAssets { - Logo = 'https://cdn.rcd.gg/PreMiD/websites/K/Khan%20Academy/assets/logo.png', - Video = 'https://cdn.rcd.gg/PreMiD/websites/K/Khan%20Academy/assets/0.png', - Article = 'https://cdn.rcd.gg/PreMiD/websites/K/Khan%20Academy/assets/1.png', - Exercise = 'https://cdn.rcd.gg/PreMiD/websites/K/Khan%20Academy/assets/2.png', + Logo = "https://cdn.rcd.gg/PreMiD/websites/K/Khan%20Academy/assets/logo.png", + Video = "https://cdn.rcd.gg/PreMiD/websites/K/Khan%20Academy/assets/0.png", + Article = "https://cdn.rcd.gg/PreMiD/websites/K/Khan%20Academy/assets/1.png", + Exercise = "https://cdn.rcd.gg/PreMiD/websites/K/Khan%20Academy/assets/2.png", } -presence.on('UpdateData', async () => { - const presenceData: PresenceData = { largeImageKey: ActivityAssets.Logo, details: 'Viewing' } - const path = document.location.pathname - const searchParams = new URLSearchParams(document.location.search) +presence.on("UpdateData", async () => { + const presenceData: PresenceData = { + largeImageKey: ActivityAssets.Logo, + details: "Viewing", + }; + const path = document.location.pathname; + const searchParams = new URLSearchParams(document.location.search); - if (path === '/') { - presenceData.state = `🏠 ${(await strings).homepage}` - } else if (path.includes('/courses')) { - presenceData.state = '📚 Courses' - } else if (path.includes('/progress')) { - presenceData.state = '📊 Progress' - } else if (path === '/profile/me/teachers') { - presenceData.state = '🎓 Teachers' - } else if (path.includes('/profile')) { - presenceData.state = '👤 Profile' - } else if (path.includes('/settings')) { - presenceData.state = `⚙️ ${(await strings).settings}` - } else if (path.includes('/search')) { - presenceData.details = '🔍 Searching' - presenceData.state = `"${searchParams.get('page_search_query') || 'Unknown Search'}"` - } else if (path.includes('/topics')) { - presenceData.state = '🔍 Community' - } else if (path.includes('/posts')) { - presenceData.state = '🔍 Community Post' - } else if (path.includes('/requests/new')) { - presenceData.state = '⚠️ Submitting a Request' - } else if (document.location.hostname.includes('support')) { - presenceData.state = '💡 Support' - } else if (path.split('/').length < 3) { - presenceData.state = `📖 ${document.querySelector('._aemo2b3')?.textContent}` - } else if (path.match(/\/([vae]|quiz)\//)) { - const breadcrumbLinks = document.querySelectorAll('a[class="_j9iwqrr"]') - const courseName = breadcrumbLinks[1]?.textContent || ' ' - const contentTitle = document.querySelector('h1[data-testid="content-library-content-title"]')?.textContent || ' ' + if (path === "/") + { + presenceData.state = `🏠 ${(await strings).homepage}`; + } + else if (path.includes("/courses")) + { + presenceData.state = "📚 Courses"; + } + else if (path.includes("/progress")) + { + presenceData.state = "📊 Progress"; + } + else if (path === "/profile/me/teachers") + { + presenceData.state = "🎓 Teachers"; + } + else if (path.includes("/profile")) + { + presenceData.state = "👤 Profile"; + } + else if (path.includes("/settings")) + { + presenceData.state = `⚙️ ${(await strings).settings}`; + } + else if (path.includes("/search")) + { + presenceData.details = "🔍 Searching"; + presenceData.state = `"${searchParams.get("page_search_query") || "Unknown Search"}"`; + } + else if (path.includes("/topics")) + { + presenceData.state = "🔍 Community"; + } + else if (path.includes("/posts")) + { + presenceData.state = "🔍 Community Post"; + } + else if (path.includes("/requests/new")) + { + presenceData.state = "⚠️ Submitting a Request"; + } + else if (document.location.hostname.includes("support")) + { + presenceData.state = "💡 Support"; + } + else if (path.split("/").length < 3) + { + presenceData.state = `📖 ${document.querySelector("._aemo2b3")?.textContent}`; + } + else if (path.match(/\/([vae]|quiz)\//)) + { + const breadcrumbLinks = document.querySelectorAll('a[class="_j9iwqrr"]'); + const courseName = breadcrumbLinks[1]?.textContent || " "; + const contentTitle = + document.querySelector('h1[data-testid="content-library-content-title"]') + ?.textContent || " "; - if (path.includes('/v/')) { - presenceData.smallImageKey = ActivityAssets.Video - presenceData.smallImageText = 'Watching a Video' - presenceData.details = courseName - presenceData.state = `📺 ${contentTitle}` - } else if (path.includes('/a/')) { - presenceData.smallImageKey = ActivityAssets.Article - presenceData.smallImageText = 'Reading an Article' - presenceData.details = courseName - presenceData.state = `📖 ${contentTitle}` - } else { - presenceData.smallImageKey = ActivityAssets.Exercise - presenceData.smallImageText = 'Taking a Quiz' - presenceData.details = courseName - presenceData.state = `📝 ${contentTitle}` + if (path.includes("/v/")) + { + presenceData.smallImageKey = ActivityAssets.Video; + presenceData.smallImageText = "Watching a Video"; + presenceData.details = courseName; + presenceData.state = `📺 ${contentTitle}`; + } + else if (path.includes("/a/")) + { + presenceData.smallImageKey = ActivityAssets.Article; + presenceData.smallImageText = "Reading an Article"; + presenceData.details = courseName; + presenceData.state = `📖 ${contentTitle}`; + } + else + { + presenceData.smallImageKey = ActivityAssets.Exercise; + presenceData.smallImageText = "Taking a Quiz"; + presenceData.details = courseName; + presenceData.state = `📝 ${contentTitle}`; } - } else { - presenceData.state = `📋 ${document.querySelector('.nav-breadcrumb a:last-child')?.textContent || 'Learning'}` + } + else + { + presenceData.state = `📋 ${document.querySelector(".nav-breadcrumb a:last-child")?.textContent || "Learning"}`; } - presence.setActivity(presenceData.details ? presenceData : {}) -}) + presence.setActivity(presenceData.details ? presenceData : {}); +}); From 66923bc2dc3eace830f324e73faed4fe7e70bf3e Mon Sep 17 00:00:00 2001 From: pand6ra <87049696+pand6ra@users.noreply.github.com> Date: Thu, 6 Mar 2025 18:59:50 -0500 Subject: [PATCH 07/10] Update presence.ts Signed-off-by: pand6ra <87049696+pand6ra@users.noreply.github.com> --- websites/K/Khan Academy/presence.ts | 157 +++++++++++++--------------- 1 file changed, 70 insertions(+), 87 deletions(-) diff --git a/websites/K/Khan Academy/presence.ts b/websites/K/Khan Academy/presence.ts index 2b0cdc20b104..663267987a5e 100644 --- a/websites/K/Khan Academy/presence.ts +++ b/websites/K/Khan Academy/presence.ts @@ -1,107 +1,90 @@ -const presence = new Presence({ clientId: "900882829154598952" }); +const presence = new Presence({ clientId: '900882829154598952' }) const strings = presence.getStrings({ - homepage: "Homepage", - settings: "Settings", -}); + homepage: 'Homepage', + settings: 'Settings', +}) enum ActivityAssets { - Logo = "https://cdn.rcd.gg/PreMiD/websites/K/Khan%20Academy/assets/logo.png", - Video = "https://cdn.rcd.gg/PreMiD/websites/K/Khan%20Academy/assets/0.png", - Article = "https://cdn.rcd.gg/PreMiD/websites/K/Khan%20Academy/assets/1.png", - Exercise = "https://cdn.rcd.gg/PreMiD/websites/K/Khan%20Academy/assets/2.png", + Logo = 'https://cdn.rcd.gg/PreMiD/websites/K/Khan%20Academy/assets/logo.png', + Video = 'https://cdn.rcd.gg/PreMiD/websites/K/Khan%20Academy/assets/0.png', + Article = 'https://cdn.rcd.gg/PreMiD/websites/K/Khan%20Academy/assets/1.png', + Exercise = 'https://cdn.rcd.gg/PreMiD/websites/K/Khan%20Academy/assets/2.png', } -presence.on("UpdateData", async () => { +presence.on('UpdateData', async () => { const presenceData: PresenceData = { largeImageKey: ActivityAssets.Logo, - details: "Viewing", - }; - const path = document.location.pathname; - const searchParams = new URLSearchParams(document.location.search); + details: 'Viewing', + } + const path = document.location.pathname + const searchParams = new URLSearchParams(document.location.search) - if (path === "/") - { + if (path === '/'){ presenceData.state = `🏠 ${(await strings).homepage}`; - } - else if (path.includes("/courses")) - { - presenceData.state = "📚 Courses"; - } - else if (path.includes("/progress")) - { - presenceData.state = "📊 Progress"; - } - else if (path === "/profile/me/teachers") - { - presenceData.state = "🎓 Teachers"; - } - else if (path.includes("/profile")) - { - presenceData.state = "👤 Profile"; - } - else if (path.includes("/settings")) - { + } + else if (path.includes('/courses')){ + presenceData.state = '📚 Courses'; + } + else if (path.includes('/progress')){ + presenceData.state = '📊 Progress'; + } + else if (path === '/profile/me/teachers'){ + presenceData.state = '🎓 Teachers'; + } + else if (path.includes('/profile')){ + presenceData.state = '👤 Profile'; + } + else if (path.includes('/settings')){ presenceData.state = `⚙️ ${(await strings).settings}`; - } - else if (path.includes("/search")) - { - presenceData.details = "🔍 Searching"; - presenceData.state = `"${searchParams.get("page_search_query") || "Unknown Search"}"`; - } - else if (path.includes("/topics")) - { - presenceData.state = "🔍 Community"; - } - else if (path.includes("/posts")) - { - presenceData.state = "🔍 Community Post"; - } - else if (path.includes("/requests/new")) - { - presenceData.state = "⚠️ Submitting a Request"; - } - else if (document.location.hostname.includes("support")) - { - presenceData.state = "💡 Support"; - } - else if (path.split("/").length < 3) - { - presenceData.state = `📖 ${document.querySelector("._aemo2b3")?.textContent}`; - } - else if (path.match(/\/([vae]|quiz)\//)) - { - const breadcrumbLinks = document.querySelectorAll('a[class="_j9iwqrr"]'); - const courseName = breadcrumbLinks[1]?.textContent || " "; + } + else if (path.includes('/search')){ + presenceData.details = '🔍 Searching' + presenceData.state = `'${searchParams.get('page_search_query') || 'Unknown Search'}'`; + } + else if (path.includes('/topics')){ + presenceData.state = '🔍 Community' + } + else if (path.includes('/posts')){ + presenceData.state = '🔍 Community Post' + } + else if (path.includes('/requests/new')){ + presenceData.state = '⚠️ Submitting a Request'; + } + else if (document.location.hostname.includes('support')){ + presenceData.state = '💡 Support' + } + else if (path.split('/').length < 3){ + presenceData.state = `📖 ${document.querySelector('._aemo2b3')?.textContent}` + } + else if (path.match(/\/([vae]|quiz)\//)){ + const breadcrumbLinks = document.querySelectorAll('a[class="_j9iwqrr"]') + const courseName = breadcrumbLinks[1]?.textContent || ' ' const contentTitle = document.querySelector('h1[data-testid="content-library-content-title"]') - ?.textContent || " "; + ?.textContent || ' '; - if (path.includes("/v/")) - { - presenceData.smallImageKey = ActivityAssets.Video; - presenceData.smallImageText = "Watching a Video"; + if (path.includes('/v/')){ + presenceData.smallImageKey = ActivityAssets.Video + presenceData.smallImageText = 'Watching a Video' presenceData.details = courseName; - presenceData.state = `📺 ${contentTitle}`; - } - else if (path.includes("/a/")) - { - presenceData.smallImageKey = ActivityAssets.Article; - presenceData.smallImageText = "Reading an Article"; + presenceData.state = `📺 ${contentTitle}` + } + else if (path.includes('/a/')){ + presenceData.smallImageKey = ActivityAssets.Article + presenceData.smallImageText = 'Reading an Article' presenceData.details = courseName; - presenceData.state = `📖 ${contentTitle}`; - } - else - { + presenceData.state = `📖 ${contentTitle}` + } + else{ presenceData.smallImageKey = ActivityAssets.Exercise; - presenceData.smallImageText = "Taking a Quiz"; + presenceData.smallImageText = 'Taking a Quiz' presenceData.details = courseName; - presenceData.state = `📝 ${contentTitle}`; + presenceData.state = `📝 ${contentTitle}` } - } - else - { - presenceData.state = `📋 ${document.querySelector(".nav-breadcrumb a:last-child")?.textContent || "Learning"}`; + } + else{ + presenceData.state = `📋 ${document.querySelector('.nav-breadcrumb a:last-child')?.textContent || 'Learning'}` } - presence.setActivity(presenceData.details ? presenceData : {}); -}); + presence.setActivity(presenceData.details ? presenceData : {}) +}) From a5dc9569de3a86a0b3a24a6adef0a0e4eb76ee11 Mon Sep 17 00:00:00 2001 From: pand6ra <87049696+pand6ra@users.noreply.github.com> Date: Thu, 6 Mar 2025 19:05:34 -0500 Subject: [PATCH 08/10] Update presence.ts Signed-off-by: pand6ra <87049696+pand6ra@users.noreply.github.com> --- websites/K/Khan Academy/presence.ts | 56 ++++++++++++++--------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/websites/K/Khan Academy/presence.ts b/websites/K/Khan Academy/presence.ts index 663267987a5e..551bd21b3f9a 100644 --- a/websites/K/Khan Academy/presence.ts +++ b/websites/K/Khan Academy/presence.ts @@ -19,66 +19,66 @@ presence.on('UpdateData', async () => { const path = document.location.pathname const searchParams = new URLSearchParams(document.location.search) - if (path === '/'){ - presenceData.state = `🏠 ${(await strings).homepage}`; + if (path === '/') { + presenceData.state = `🏠 ${(await strings).homepage}` } - else if (path.includes('/courses')){ - presenceData.state = '📚 Courses'; + else if (path.includes('/courses')) { + presenceData.state = '📚 Courses' } - else if (path.includes('/progress')){ - presenceData.state = '📊 Progress'; + else if (path.includes('/progress')) { + presenceData.state = '📊 Progress' } - else if (path === '/profile/me/teachers'){ - presenceData.state = '🎓 Teachers'; + else if (path === '/profile/me/teachers') { + presenceData.state = '🎓 Teachers' } - else if (path.includes('/profile')){ - presenceData.state = '👤 Profile'; + else if (path.includes('/profile')) { + presenceData.state = '👤 Profile' } - else if (path.includes('/settings')){ - presenceData.state = `⚙️ ${(await strings).settings}`; + else if (path.includes('/settings')) { + presenceData.state = `⚙️ ${(await strings).settings}` } - else if (path.includes('/search')){ + else if (path.includes('/search')) { presenceData.details = '🔍 Searching' - presenceData.state = `'${searchParams.get('page_search_query') || 'Unknown Search'}'`; + presenceData.state = `'${searchParams.get('page_search_query') || 'Unknown Search'}'` } - else if (path.includes('/topics')){ + else if (path.includes('/topics')) { presenceData.state = '🔍 Community' } - else if (path.includes('/posts')){ + else if (path.includes('/posts')) { presenceData.state = '🔍 Community Post' } - else if (path.includes('/requests/new')){ - presenceData.state = '⚠️ Submitting a Request'; + else if (path.includes('/requests/new')) { + presenceData.state = '⚠️ Submitting a Request' } - else if (document.location.hostname.includes('support')){ + else if (document.location.hostname.includes('support')) { presenceData.state = '💡 Support' } - else if (path.split('/').length < 3){ + else if (path.split('/').length < 3) { presenceData.state = `📖 ${document.querySelector('._aemo2b3')?.textContent}` } - else if (path.match(/\/([vae]|quiz)\//)){ + else if (path.match(/\/([vae]|quiz)\//)) { const breadcrumbLinks = document.querySelectorAll('a[class="_j9iwqrr"]') const courseName = breadcrumbLinks[1]?.textContent || ' ' const contentTitle = document.querySelector('h1[data-testid="content-library-content-title"]') - ?.textContent || ' '; + ?.textContent || ' ' - if (path.includes('/v/')){ + if (path.includes('/v/')) { presenceData.smallImageKey = ActivityAssets.Video presenceData.smallImageText = 'Watching a Video' - presenceData.details = courseName; + presenceData.details = courseName presenceData.state = `📺 ${contentTitle}` } - else if (path.includes('/a/')){ + else if (path.includes('/a/')) { presenceData.smallImageKey = ActivityAssets.Article presenceData.smallImageText = 'Reading an Article' - presenceData.details = courseName; + presenceData.details = courseName presenceData.state = `📖 ${contentTitle}` } else{ - presenceData.smallImageKey = ActivityAssets.Exercise; + presenceData.smallImageKey = ActivityAssets.Exercise presenceData.smallImageText = 'Taking a Quiz' - presenceData.details = courseName; + presenceData.details = courseName presenceData.state = `📝 ${contentTitle}` } } From e15463803d1eae2260de13e0a9e884adcbfa488f Mon Sep 17 00:00:00 2001 From: pand6ra <87049696+pand6ra@users.noreply.github.com> Date: Thu, 6 Mar 2025 19:11:09 -0500 Subject: [PATCH 09/10] Update presence.ts Signed-off-by: pand6ra <87049696+pand6ra@users.noreply.github.com> --- websites/K/Khan Academy/presence.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/websites/K/Khan Academy/presence.ts b/websites/K/Khan Academy/presence.ts index 551bd21b3f9a..764b8be41c0c 100644 --- a/websites/K/Khan Academy/presence.ts +++ b/websites/K/Khan Academy/presence.ts @@ -75,14 +75,14 @@ presence.on('UpdateData', async () => { presenceData.details = courseName presenceData.state = `📖 ${contentTitle}` } - else{ + else { presenceData.smallImageKey = ActivityAssets.Exercise presenceData.smallImageText = 'Taking a Quiz' presenceData.details = courseName presenceData.state = `📝 ${contentTitle}` } } - else{ + else { presenceData.state = `📋 ${document.querySelector('.nav-breadcrumb a:last-child')?.textContent || 'Learning'}` } From c5864f6161ca1ec4d5c63ef3961e499912f69f42 Mon Sep 17 00:00:00 2001 From: pand6ra <87049696+pand6ra@users.noreply.github.com> Date: Thu, 6 Mar 2025 19:21:09 -0500 Subject: [PATCH 10/10] Update metadata.json Signed-off-by: pand6ra <87049696+pand6ra@users.noreply.github.com> --- websites/K/Khan Academy/metadata.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/websites/K/Khan Academy/metadata.json b/websites/K/Khan Academy/metadata.json index 999cff556895..92ce2a581edb 100644 --- a/websites/K/Khan Academy/metadata.json +++ b/websites/K/Khan Academy/metadata.json @@ -2,8 +2,8 @@ "$schema": "https://schemas.premid.app/metadata/1.13", "apiVersion": 1, "author": { - "name": "pand6ra", - "id": "468922513410490368" + "name": "lolilover", + "id": "616761152331841550" }, "service": "Khan Academy", "description": {