-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbookmarklets.json
executable file
·14 lines (14 loc) · 13 KB
/
bookmarklets.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
"exemple": {
"script": "javascript: (() => {if(window.location.hostname=='www.ecoledirecte.com'){alert(\"Bookmarklet exécuté avec succès.\")}else if(confirm(\"Allez sur Ecoledirecte\")){document.location.href=\"https://www.ecoledirecte.com\"}})();",
"title": "Exemple de bookmarklet"
},
"moycalc": {
"script": "javascript: (() => {function noteTableAnalysis(e){function a(e){return parseFloat(e.toFixed(2)).toString().replace(\".\",\",\")}function n(){let n=document.getElementById(\"encart-notes\");n&&\"true\"!=n.dataset.averageCalculator&&(n.dataset.averageCalculator=!0,function(n){if(!n.querySelector(\"table\"))return;gradeTable=n.querySelector(\"table\"),gradeTable.classList.add(\"newTable\");try{n.querySelector(\"p\").innerHTML=\"<b>Moyennes calculées par l'extension : \"+chrome.runtime.getManifest().name+\"</b>\"}catch{}if(e.generalAverageDisplay){try{OldAverageLine=document.querySelector(\"table\").querySelector(\"tr > td.moyennegenerale-valeur\").parentNode,OldAverageLine.parentNode.removeChild(OldAverageLine)}catch{}try{oldAverageDiv=document.getElementById(\"averageDiv\").parentNode,oldAverageDiv.parentNode.removeChild(oldAverageDiv)}catch{}gradeTableFooterRow=gradeTable.createTFoot().insertRow(0),gradeTableFooterRow.classList.add(\"ng-star-inserted\"),averageDiv=gradeTableFooterRow.insertCell(0),averageDiv.colSpan=gradeTable.tHead.rows[0].cells.length,averageDiv.classList.add(\"moyennegenerale-valeur\",\"averageDisplay\"),averageDiv.id=\"averageDiv\",averageDiv.innerText=\"Erreur\"}function r(){[...gradeTable.tHead.rows[0].cells].forEach(((e,a)=>{e.classList.contains(\"discipline\")&&(tableConfiguration.discipline[0]=a,null==tableConfiguration.discipline[1]&&(tableConfiguration.discipline[1]=!0)),e.classList.contains(\"coef\")&&(tableConfiguration.coef[0]=a,null==tableConfiguration.coef[1]&&(tableConfiguration.coef[1]=!0)),e.classList.contains(\"relevemoyenne\")&&(tableConfiguration.relevemoyenne[0]=a,null==tableConfiguration.relevemoyenne[1]&&(tableConfiguration.relevemoyenne[1]=!0)),e.classList.contains(\"notes\")&&(tableConfiguration.notes[0]=a,null==tableConfiguration.notes[1]&&(tableConfiguration.notes[1]=!0))}))}TotalGradesAndCoef=[],AllGradeAndAverage=[],tableConfiguration={discipline:[!1,void 0],coef:[!1,void 0],relevemoyenne:[!1,void 0],notes:[!1,void 0]},r(),null==tableConfiguration.coef[1]&&e.AveragesPerSubjectDisplay&&(coefTitleRow=gradeTable.tHead.rows[0].insertCell(tableConfiguration.discipline[0]+1),coefTitleRow.outerHTML='<th class=\"coef ng-star-inserted\">Coef.</th>',e.generalAverageDisplay&&(averageDiv.colSpan+=1),tableConfiguration.coef[1]=!1,r());null==tableConfiguration.relevemoyenne[1]&&e.AveragesPerSubjectDisplay&&(relevemoyenneTitleRow=gradeTable.tHead.rows[0].insertCell(tableConfiguration.coef[0]+1),relevemoyenneTitleRow.outerHTML='<th class=\"relevemoyenne ng-star-inserted\">Moyennes</th>',e.generalAverageDisplay&&(averageDiv.colSpan+=1),tableConfiguration.relevemoyenne[1]=!1,r());for(item in tableConfiguration)tableConfiguration[item][0]||(tableConfiguration[item]=!1);if(!tableConfiguration.notes[0])return void(e.generalAverageDisplay&&(averageDiv.innerText=\"Colonne des notes introuvables\"));const t=e=>e.reduce(((e,[a,n])=>e+a*n),0)/e.reduce(((e,[a,n])=>e+n),0);for(line of gradeTable.tBodies[0].rows)if(null==line.querySelector(\"td.moyennegenerale-valeur\")&&(0==tableConfiguration.coef[1]&&e.AveragesPerSubjectDisplay&&(coefTitleCell=line.insertCell(tableConfiguration.coef[0]),coefTitleCell.innerHTML='<span class=\"ng-star-inserted\">1</span>',coefTitleCell.classList.add(\"coef\",\"ng-star-inserted\")),0==tableConfiguration.relevemoyenne[1]&&e.AveragesPerSubjectDisplay&&(relevemoyenneTitleCell=line.insertCell(tableConfiguration.relevemoyenne[0]),relevemoyenneTitleCell.classList.add(\"relevemoyenne\",\"ng-star-inserted\")),lineProperties={Length:line.cells[tableConfiguration.notes[0]].childNodes.length>1,IsMaster:line.classList.contains(\"master\"),IsSecondary:line.classList.contains(\"secondary\"),IsSecondaryButNotlast:line.classList.contains(\"secondarynotlast\")},lineProperties.Length||lineProperties.IsMaster||lineProperties.IsSecondary))if(tableConfiguration.relevemoyenne&&(averageColumn=tableConfiguration.relevemoyenne[0])?((averageSpan=line.cells[averageColumn].querySelector(\"span\"))||(averageSpan=document.createElement(\"span\"),averageSpan.classList.add(\"ng-star-inserted\"),line.cells[averageColumn].appendChild(averageSpan)),e.debug&&averageSpan.setAttribute(\"style\",\"border: solid darkblue;\"),averageSpan.innerText=\"\"):averageSpan=!1,tableConfiguration.relevemoyenne&&(averageColumn=tableConfiguration.relevemoyenne[0]),tableConfiguration.relevemoyenne&&!(averageSpan=line.cells[averageColumn].querySelector(\"span\"))&&(averageSpan=document.createElement(\"span\"),averageSpan.classList.add(\"ng-star-inserted\"),line.cells[averageColumn].appendChild(averageSpan)),tableConfiguration.relevemoyenne&&(e.debug&&averageSpan.setAttribute(\"style\",\"border: solid darkblue;\"),averageSpan.innerText=\"\"),LineCoef=1,tableConfiguration.coef&&(coefColumn=tableConfiguration.coef[0])&&(coefSpan=line.cells[coefColumn].querySelector(\"span\"))&&(e.debug&&coefSpan.setAttribute(\"style\",\"border: solid orange;\"),LineCoef=parseFloat(coefSpan.innerText)),lineProperties.IsMaster)masterLineAverageSpan=averageSpan,masterLineCoef=LineCoef,masterLineGradesAndCoef=[];else{for(notes of(LineAllGradeAndAverage={notes:[],average:!1,averageSpan:averageSpan,coef:LineCoef,secondary:lineProperties.IsSecondary,master:lineProperties.IsMaster},LineGradesAndCoef=[],line.cells[tableConfiguration.notes[0]].querySelectorAll(\"button > span:nth-of-type(1).valeur\"))){try{if(note=parseFloat(notes.childNodes[0].nodeValue.replace(\",\",\".\")),isNaN(note))throw new Exception}catch{e.debug&¬es.setAttribute(\"style\",\"border: dashed red;\");continue}if(null!=notes.querySelector(\".quotien\")){try{if(quotient=parseFloat(notes.querySelector(\".quotien\").childNodes[0].nodeValue.replace(\"/\",\"\")),isNaN(quotient))throw new Exception}catch{continue}note*=20/quotient}if(coef=1,null!=notes.querySelector(\".coef\"))try{if(coef=parseFloat(notes.querySelector(\".coef \").childNodes[0].nodeValue.replace(\"(\",\"\").replace(\")\",\"\")),isNaN(coef))throw new Exception}catch{continue}e.debug&¬es.setAttribute(\"style\",\"border: solid green;\"),LineGradesAndCoef.push([note,coef]),LineAllGradeAndAverage.notes.push([note,coef,notes])}LineGradesAndCoef.length>0?(LineAverage=t(LineGradesAndCoef),LineAllGradeAndAverage.average=LineAverage,AllGradeAndAverage.push(LineAllGradeAndAverage),tableConfiguration.relevemoyenne[0]&&(e.debug&&!lineProperties.IsSecondary&&averageSpan.setAttribute(\"style\",\"border: solid blue;\"),e.debug&&lineProperties.IsSecondary&&averageSpan.setAttribute(\"style\",\"border: solid red;\"),averageSpan&&(averageSpan.innerText=a(LineAverage))),lineProperties.IsSecondary&&(masterLineGradesAndCoef.push([LineAverage,LineCoef]),lineProperties.IsSecondaryButNotlast||(masterLineAverage=t(masterLineGradesAndCoef),TotalGradesAndCoef.push([masterLineAverage,masterLineCoef]),masterLineAverageSpan&&(masterLineAverageSpan.innerText=a(masterLineAverage),AllGradeAndAverage.push({average:masterLineAverage,averageSpan:masterLineAverageSpan,coef:masterLineCoef,secondary:!1,master:!0})))),!lineProperties.IsSecondary&&lineProperties.Length&&TotalGradesAndCoef.push([LineAverage,LineCoef])):!lineProperties.IsSecondaryButNotlast&&lineProperties.IsSecondary&&(masterLineAverage=t(masterLineGradesAndCoef),TotalGradesAndCoef.push([masterLineAverage,masterLineCoef]),masterLineAverageSpan&&(masterLineAverageSpan.innerText=a(masterLineAverage),AllGradeAndAverage.push({average:masterLineAverage,averageSpan:masterLineAverageSpan,coef:masterLineCoef,secondary:!1,master:!0})))}if(FinalAverage=t(TotalGradesAndCoef),isNaN(FinalAverage))return void(e.generalAverageDisplay&&averageDiv&&(averageDiv.innerText=\"Notes Introuvables\"));e.generalAverageDisplay&&averageDiv&&(averageDiv.innerText=\"MOYENNE GENERALE : \"+a(FinalAverage));for(line of(AllGradeAndAverage_SommeCoef=AllGradeAndAverage.reduce(((e,a)=>a.secondary?e:e+a.coef),0),AllGradeAndAverage))line.secondary||(LineInfluence=line.coef*(line.average-FinalAverage)/(AllGradeAndAverage_SommeCoef-line.coef))}(n))}new MutationObserver(n).observe(document.body,{childList:!0,subtree:!0}),n()}options={generalAverageDisplay:!0,AveragesPerSubjectDisplay:!0,debug:!1},css=document.createElement(\"style\"),css.innerHTML=\"table.newTable{--table-radius:12px;--light-primary-color:#c71a53;border-collapse:collapse;border-radius:var(--table-radius);border-style:hidden;box-shadow:rgb(100 100 111 / 30%) 3px 3px 20px 0}table.newTable thead th:first-child{border-top-left-radius:var(--table-radius)}table.newTable thead th:last-child{border-top-right-radius:var(--table-radius)}table.newTable td{vertical-align:middle!important;line-height:1.6}table.newTable td.moyennegeneralelibelle{border-left:2px solid #e2e1e1}.averageDisplay{text-align:center;padding:4px 0!important;color:var(--light-primary-color)!important}\",document.head.appendChild(css);try{noteTableAnalysis(options)}catch{}})();",
"title": "Calculateur de moyenne"
},
"Autologin": {
"script": "javascript: (() => {function popup(t=!1){const n=window.open(URL.createObjectURL(new Blob([configPage],{type:\"text/html\"})),\"\",\"resizable=no,width=600,height=400\");n.addEventListener(\"load\",()=>{var o;n.document.title=\"CustomDirecte Bookmarklet\",t?(n.document.getElementById(\"openTab\").hidden=!0,n.document.getElementById(\"optionsTab\").hidden=!1,o=n.document.querySelector(\"form\"),t.forEach(e=>{var t=document.createElement(\"input\");t.type=e.type,t.id=e.id,t.placeholder=e.placeholder,o.prepend(t)}),o.addEventListener(\"submit\",e=>{e.preventDefault(),newPopupOptions={},t.forEach(e=>{newPopupOptions[e.id]=n.document.getElementById(e.id).value?n.document.getElementById(e.id).value:e.default}),localStorage.setItem(configId,JSON.stringify(newPopupOptions)),n.close()})):(n.document.getElementById(\"open\").onclick=()=>{n.close(),document.location.href=\"https://www.ecoledirecte.com/\"},n.document.getElementById(\"openNew\").onclick=()=>{n.close(),window.open(\"https://www.ecoledirecte.com/\",\"_blank\")},n.document.getElementById(\"openNo\").onclick=()=>{n.close()})})}if(config=void 0,configId=\"Autologin\",configPage='<head><meta charset=\"UTF-8\"><meta name=\"viewport\" content=\"width=device-width,initial-scale=1\"><title>Document</title><style>@import url(https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap);body{background-color:#c8194a;display:flex}body>div{background-color:#faeaec;border-radius:20px;margin:auto;padding:20px;width:calc(100% - 100px);max-width:800}button,div>div>div,input{display:block;background-color:#000;border-radius:10px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;margin-top:18px;padding:10px;text-align:center;text-transform:uppercase;transition:background-color .4s;width:100%;border:0}div>div>div{width:calc(100% - 20px)}input{background-color:#fff;border:solid 2px #000;color:#000}h1{font-size:30px;font-weight:700;margin-bottom:8px}button:active,div>div>div:hover{background-color:#c8194a}*{font-family:Poppins,sans-serif;font-size:18px;font-weight:400;line-height:1.4;margin:0}</style></head><body><div><h1>CustomDirecte Bookmarklet</h1><div id=\"openTab\"><p>Ce bookmarklet est conçu pour être exécuté exclusivement sur le site EcoleDirecte. Ouvrez EcoleDirecte puis réessayez !</p><div id=\"open\">Ouvre EcoleDirecte dans la fenêtre actuelle</div><div id=\"openNew\">Ouvre EcoleDirecte dans un nouvel onglet</div><div id=\"openNo\">Ne pas ouvrir et ne pas exécuter</div></div><div id=\"optionsTab\" hidden><p>Pour utiliser ce bookmarklet, une configuration préalable est nécessaire.</p><form><button type=\"submit\">Validez la saisie</button></form></div></div></body>',configOptions=[{id:\"password\",type:\"password\",placeholder:\"Mot de passe\",default:\"\"},{id:\"username\",type:\"text\",placeholder:\"Identifiant\",default:\"\"}],\"www.ecoledirecte.com\"!=window.location.host)throw popup(),\"\";if(!localStorage.getItem(configId))throw popup(configOptions),\"\";if(!localStorage.getItem(configId))throw popup(configOptions),\"\";if(sessionStorage.getItem(configId)&&Date.now()-sessionStorage.getItem(configId)<500)throw popup(configOptions),\"\";if(sessionStorage.setItem(configId,Date.now()),config=JSON.parse(localStorage.getItem(configId)),!document.getElementById(\"username\")||!document.getElementById(\"password\"))throw\"Allez sur une page de connexion afin d'utilisez ce bookmark !\";let usernameValue=config.username,passwordValue=config.password,username=document.getElementById(\"username\"),password=document.getElementById(\"password\");if(username.value=usernameValue,password.value=passwordValue,!document.querySelector(\"form\"))throw\"\";const inputEvent=new Event(\"input\"),submitEvent=new Event(\"submit\");username.dispatchEvent(inputEvent),password.dispatchEvent(inputEvent);let form=document.querySelector(\"form\");form.dispatchEvent(submitEvent);})()",
"title": "Connexion Automatique"
}
}