diff --git a/websites/M/Moodle UTC/metadata.json b/websites/M/Moodle UTC/metadata.json new file mode 100644 index 000000000000..faa18b274f79 --- /dev/null +++ b/websites/M/Moodle UTC/metadata.json @@ -0,0 +1,24 @@ +{ + "$schema": "https://schemas.premid.app/metadata/1.16", + "apiVersion": 1, + "author": { + "id": "357901042895028226", + "name": "revaliiuwu" + }, + "service": "Moodle UTC", + "description": { + "en": "Affiche l'activité sur le Moodle de l'UTC" + }, + "url": "moodle.utc.fr", + "regExp": "moodle\\.utc\\.fr", + "version": "1.0.0", + "logo": "https://i.imgur.com/oMApXis.png", + "thumbnail": "https://i.imgur.com/45X0M1t.jpeg", + "color": "#ffcc00", + "category": "other", + "tags": [ + "utc", + "education" + ] +} + diff --git a/websites/M/Moodle UTC/presence.ts b/websites/M/Moodle UTC/presence.ts new file mode 100644 index 000000000000..55146499f3ba --- /dev/null +++ b/websites/M/Moodle UTC/presence.ts @@ -0,0 +1,32 @@ +import { ActivityType } from 'premid' + +const presence = new Presence({ + clientId: '1459651066508345394' +}) + +const startTimestamp = Math.floor(Date.now() / 1000) + +presence.on('UpdateData', async () => { + const presenceData: PresenceData = { + type: ActivityType.Watching, + largeImageKey: 'https://i.imgur.com/oMApXis.png', + largeImageText: 'Moodle UTC', + startTimestamp + } + + const path = document.location.pathname; + + if (path.includes('/course/view.php')) { + const courseTitle = document.querySelector('h1')?.textContent || 'Un cours'; + presenceData.details = courseTitle; + presenceData.state = 'En train d\'étudier'; + } else if (path === '/' || path.includes('/my/')) { + presenceData.details = 'Sur l\'accueil'; + presenceData.state = 'Choisit son prochain cours'; + } else { + presenceData.details = 'Navigue sur Moodle'; + presenceData.state = 'UTC - Compiègne'; + } + + presence.setActivity(presenceData); +});