From 36b9b162417249ffdea6c8ea8ea1344f354a3b2c Mon Sep 17 00:00:00 2001 From: AlperShal Date: Thu, 25 Jun 2026 14:00:30 +0300 Subject: [PATCH 1/2] feat(Platform Engineering University): add presence --- .../metadata.json | 28 +++++++++++++ .../presence.ts | 40 +++++++++++++++++++ 2 files changed, 68 insertions(+) create mode 100644 websites/P/Platform Engineering University/metadata.json create mode 100644 websites/P/Platform Engineering University/presence.ts diff --git a/websites/P/Platform Engineering University/metadata.json b/websites/P/Platform Engineering University/metadata.json new file mode 100644 index 000000000000..6a1bb82ad567 --- /dev/null +++ b/websites/P/Platform Engineering University/metadata.json @@ -0,0 +1,28 @@ +{ + "$schema": "https://schemas.premid.app/metadata/1.17", + "apiVersion": 1, + "author": { + "id": "263735224221827072", + "name": "AlperShal" + }, + "service": "Platform Engineering University", + "description": { + "en": "The home for platform engineering learning and certifications." + }, + "url": "university.platformengineering.org", + "regExp": "^https?[:][/][/]university[.]platformengineering[.]org[/]", + "version": "1.0.0", + "logo": "https://i.imgur.com/iNgO4NQ.png", + "thumbnail": "https://i.imgur.com/c6wvuf2.png", + "color": "#000000", + "category": "videos", + "tags": [ + "education", + "course", + "learning", + "engineering", + "tutorial", + "devops", + "platform" + ] +} diff --git a/websites/P/Platform Engineering University/presence.ts b/websites/P/Platform Engineering University/presence.ts new file mode 100644 index 000000000000..8bc5a0327c9e --- /dev/null +++ b/websites/P/Platform Engineering University/presence.ts @@ -0,0 +1,40 @@ +import { Assets } from 'premid' + +const presence = new Presence({ + clientId: '1519641524185337916', +}) + +enum ActivityAssets { + Logo = 'https://i.imgur.com/iNgO4NQ.png', +} + + +const browsingTimestamp = Math.floor(Date.now() / 1000) + +presence.on('UpdateData', async () => { + const presenceData: PresenceData = { + largeImageKey: ActivityAssets.Logo, + startTimestamp: browsingTimestamp + } + + // Information needed to determine what user is doing + const { pathname } = document.location + + if (document.querySelector('div.lesson-page')) { + presenceData.details = `Studying: ${document.querySelector('h1.course-title')?.textContent.trim()}` + presenceData.state = `Lesson: ${document.querySelector('div.lesson-top > h2')?.innerHTML}` + presenceData.buttons = [{ label: 'Learn Yourself', url: document.location.href }] + + + if (document.querySelector('div.jw-icon-playback')?.ariaLabel == "Play") { + presenceData.smallImageKey = Assets.Play + } else if (document.querySelector('div.jw-icon-playback')?.ariaLabel == "Pause") { + presenceData.smallImageKey = Assets.Pause + } + } + else { + presenceData.details = "Browsing..." + } + + presence.setActivity(presenceData) +}) \ No newline at end of file From 9295fa8267ca35bd6b723109f0520b4b4149c0a7 Mon Sep 17 00:00:00 2001 From: AlperShal Date: Thu, 25 Jun 2026 14:35:02 +0300 Subject: [PATCH 2/2] fix(Platform Engineering University): resolve eslint issues --- .../Platform Engineering University/presence.ts | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/websites/P/Platform Engineering University/presence.ts b/websites/P/Platform Engineering University/presence.ts index 8bc5a0327c9e..b1f7b7d8e501 100644 --- a/websites/P/Platform Engineering University/presence.ts +++ b/websites/P/Platform Engineering University/presence.ts @@ -8,33 +8,29 @@ enum ActivityAssets { Logo = 'https://i.imgur.com/iNgO4NQ.png', } - const browsingTimestamp = Math.floor(Date.now() / 1000) presence.on('UpdateData', async () => { const presenceData: PresenceData = { largeImageKey: ActivityAssets.Logo, - startTimestamp: browsingTimestamp + startTimestamp: browsingTimestamp, } - // Information needed to determine what user is doing - const { pathname } = document.location - if (document.querySelector('div.lesson-page')) { presenceData.details = `Studying: ${document.querySelector('h1.course-title')?.textContent.trim()}` presenceData.state = `Lesson: ${document.querySelector('div.lesson-top > h2')?.innerHTML}` presenceData.buttons = [{ label: 'Learn Yourself', url: document.location.href }] - - if (document.querySelector('div.jw-icon-playback')?.ariaLabel == "Play") { + if (document.querySelector('div.jw-icon-playback')?.ariaLabel === 'Play') { presenceData.smallImageKey = Assets.Play - } else if (document.querySelector('div.jw-icon-playback')?.ariaLabel == "Pause") { + } + else if (document.querySelector('div.jw-icon-playback')?.ariaLabel === 'Pause') { presenceData.smallImageKey = Assets.Pause } } else { - presenceData.details = "Browsing..." + presenceData.details = 'Browsing...' } presence.setActivity(presenceData) -}) \ No newline at end of file +})