Skip to content

Instantly share code, notes, and snippets.

@liubquanti
Last active January 29, 2026 18:56
Show Gist options
  • Select an option

  • Save liubquanti/21442cf50d03f4eb8cd70aca06a3e1a6 to your computer and use it in GitHub Desktop.

Select an option

Save liubquanti/21442cf50d03f4eb8cd70aca06a3e1a6 to your computer and use it in GitHub Desktop.

🧮 • ODIN – Moyennes

Script pour Tampermonkey capable de calculer la note moyenne pour l'UE et le semestre directement dans le navigateur.

📂 • Code source du script

👆 Cliquez pour déplier
// ==UserScript==
// @name         ODIN – Moyennes
// @namespace    odin.iut.uca.fr
// @version      1.2
// @description  Moyennes calculées mises en évidence en jaune
// @match        https://odin.iut.uca.fr/*
// @grant        none
// ==/UserScript==

(function () {
    'use strict';

    function num(txt) {
        if (!txt) return null;
        txt = txt.replace(',', '.').trim();
        const n = parseFloat(txt);
        return isNaN(n) ? null : n;
    }

    function markCalculated(cell) {
        cell.style.fontWeight = "bold";
        cell.style.color = "#fff3b0";
        cell.title = "Calculé automatiquement";
    }

    const rows = Array.from(document.querySelectorAll("table.releve tr"));

    let semesterSum = 0;
    let semesterCoeff = 0;

    for (let i = 0; i < rows.length; i++) {
        const row = rows[i];

        const bleuCell = row.querySelector("td.bleu");
        if (!bleuCell) continue;

        let blocSum = 0;
        let blocCoeffSum = 0;

        for (let j = i + 1; j < rows.length; j++) {
            const nextRow = rows[j];
            if (nextRow.querySelector("td.bleu")) break;

            const noteCell = nextRow.querySelector("td.vert.text_align_center");
            if (!noteCell) continue;

            const coeffCell = noteCell.previousElementSibling;
            const coeff = num(coeffCell?.textContent);
            const note = num(noteCell.textContent);

            if (coeff !== null && note !== null) {
                blocSum += note * coeff;
                blocCoeffSum += coeff;
            }
        }

        if (blocCoeffSum > 0) {
            const moyenneBleu = blocSum / blocCoeffSum;
            const cells = row.cells;
            const noteTarget = cells[2] ?? cells[cells.length - 4];

            if (noteTarget) {
                noteTarget.textContent = moyenneBleu.toFixed(2);
                markCalculated(noteTarget);
            }

            semesterSum += blocSum;
            semesterCoeff += blocCoeffSum;
        }
    }

    if (semesterCoeff > 0) {
        const semestreMoy = (semesterSum / semesterCoeff).toFixed(2);

        const nameRow = rows.find(r =>
            r.querySelector("td[colspan='5']")
        );

        if (nameRow) {
            const ths = nameRow.querySelectorAll("th");
            if (ths.length > 0) {
                ths[0].textContent = semestreMoy;
                markCalculated(ths[0]);
            }
        }
    }
})();

🤝 • Remerciements

Merci à @eveyraud pour avoir développé le programme Python dont l'algorithme de calcul est utilisé dans ce script.

📥 • Comment l'installer ?

1 • Installez Tampermonkey

Installez l'extension pour votre navigateur

2 • Autoriser les scripts utilisateur

Warning

Ces instructions concernent Chrome, vos étapes peuvent être différentes.

  • Cliquez sur le bouton des extensions (en forme de puzzle) dans le coin supĂ©rieur droit du navigateur.
  • Cliquez sur le bouton «GĂ©rer les extensions».
  • Recherchez Tampermonkey et cliquez sur le bouton «DĂ©tails».
  • Trouvez et activez l'option «Autoriser les scripts utilisateur».

3 • Installez le script

Note

Utilisez la touche Commande Ă  la place de Ctrl si vous utilisez macOS.

  • Cliquez sur le bouton des extensions (en forme de puzzle) dans le coin supĂ©rieur droit du navigateur.
  • Cliquez sur Tampermonkey.
  • Cliquez sur le bouton «CrĂ©er un nouveau script».
  • Copiez le code source du script ci-dessus.
  • Dans l'onglet Éditeur de script, appuyez sur Ctrl+A pour sĂ©lectionner tout le code, puis sur Ctrl+V pour remplacer le code par celui que vous avez copiĂ©.
  • Appuyez sur Ctrl+S pour enregistrer le script.

C'est prĂŞt.

🛠️ • Comment l'utiliser ?

  • AccĂ©dez Ă  ODIN et ouvrez l'onglet des notes, la moyenne sera automatiquement calculĂ©e et affichĂ©e en jaune.

🚫 • Est-il possible de désactiver temporairement le script ?

Warning

Pour que le script s'affiche dans le menu d'accès rapide, vous devez être sur ODIN.

  • Oui. Cliquez sur le bouton des extensions (en forme de puzzle) dans le coin supĂ©rieur droit du navigateur.
  • Cliquez sur Tampermonkey.
  • Dans la liste, vous trouverez le script « ODIN – Moyennes », cliquez dessus pour le dĂ©sactiver.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment