
Research
Malicious npm Packages Impersonate Flashbots SDKs, Targeting Ethereum Wallet Credentials
Four npm packages disguised as cryptographic tools steal developer credentials and send them to attacker-controlled Telegram infrastructure.
@kamkam1_0/ecoledirecte
Advanced tools
EcoleDirecte is a simple to use module that allows you to interact with EcoleDirecte API.
EcoleDirecte is a simple to use module that allows you to interact with EcoleDirecte API.
npm i @kamkam1_0/ecoledirecte
const EcoleDirecte = require("@kamkam1_0/ecoledirecte")
const Account = new EcoleDirecte.Account("LOGIN ID", "LOGIN PASSWORD")
let session = await Account.login()
let marks = await session.getMarks()
/* Expexted Output
{
notes: [
{
id: 2097437,
devoir: '',
codePeriode: '',
codeMatiere: '',
libelleMatiere: '',
codeSousMatiere: '',
typeDevoir: '',
enLettre: false,
commentaire: '',
uncSujet: '',
uncCorrige: '',
coef: '',
noteSur: '',
valeur: '',
nonSignificatif: false,
date: '2022-09-19',
dateSaisie: '2022-09-26',
valeurisee: false,
moyenneClasse: '',
minClasse: '',
maxClasse: '',
elementsProgramme: []
},...
],
periodes: [
{
idPeriode: 'A001',
codePeriode: 'A001',
periode: '1er Semestre',
annuel: false,
dateDebut: '2022-09-02',
dateFin: '2023-01-20',
examenBlanc: false,
cloture: false,
moyNbreJoursApresConseil: -1,
ensembleMatieres: [Object]
},...
],
trons: [
{ code: 'A001', datas: [Array] },
...
]
}
*/
let mails = await session.getMails()
/* Expexted Output
{
received: [
{
id: 35,
mtype: 'received',
read: true,
idDossier: -1,
idClasseur: 0,
transferred: false,
answered: false,
to_cc_cci: 'cci',
brouillon: false,
subject: '',
content: '',
date: '2022-08-22 12:33:56',
to: [],
files: [ [Object], [Object], [Object] ],
from: {
name: '',
nom: '',
prenom: '',
particule: '',
civilite: '',
role: '',
listeRouge: false,
id: 310,
read: true,
fonctionPersonnel: ''
}
},
...
],
sent: [
{
id: 5799,
mtype: 'send',
read: true,
idDossier: -2,
idClasseur: 0,
transferred: false,
answered: false,
to_cc_cci: '',
brouillon: false,
subject: '',
content: '',
date: '2022-09-12 21:42:30',
to: [Array],
files: [],
from: [Object]
},
...
],
draft: [],
archived: []
}
*/
let mails = await session.searchMails(query)
/* Expexted Output
[
{
id: 5291,
mtype: 'received',
read: true,
idDossier: -1,
idClasseur: 0,
transferred: false,
answered: false,
to_cc_cci: 'to',
brouillon: false,
subject: '',
content: '',
date: '2022-09-12 11:42:00',
to: [],
files: [ [Object], [Object] ],
from: {
name: '',
nom: '',
prenom: '',
particule: '',
civilite: '',
role: '',
listeRouge: false,
id: 471,
read: true,
fonctionPersonnel: ''
}
},
...
]
*/
let periodes = await session.getPeriods()
/* Expexted Output
[
{
idPeriode: 'A001',
codePeriode: 'A001',
periode: '1er Semestre',
annuel: false,
dateDebut: '2022-09-02',
dateFin: '2023-01-20',
examenBlanc: false,
cloture: false,
moyNbreJoursApresConseil: -1,
ensembleMatieres: {
dateCalcul: '2022-12-22 21:04',
moyenneGenerale: '',
moyenneClasse: '',
moyenneMin: '',
moyenneMax: '',
nomPP: '',
appreciationPP: '',
nomCE: '',
decisionDuConseil: '',
disciplines: [Array],
disciplinesSimulation: []
}
},
]
*/
let subjects = await session.getSubjects()
/* Expexted Output
[
{ matiere: '', code: '' },
...
]
*/
let teachers = await session.getTeachers()
/* Expexted Output
{
def:
'👨 NAME (Subject)\n' +
'\n' +
'👨 NAME (Subject)\n' +
'\n' +
'👩 NAME (Subject)\n'
total: [
{
id: 0125,
code: '',
libelle: '',
isPP: true,
matiere: ''
},
...
]
}
*/
let schedule = await session.getSchedule()
/* Expexted Output
*/
Get the buffer of your profil picture
let picture = await session.downloadProfilePicture()
/* Expexted Output
<Buffer>
*/
let staff = await session.getStaff()
/* Expexted Output
'👨 NAME (Subject)\n' +
'\n' +
'👨 NAME (Subject)\n' +
'\n' +
'👩 NAME (Subject)\n'
*/
let homeWork = await session.getHomework()
/* Expexted Output
{
'2023-01-03': [
{
matiere: '',
codeMatiere: '',
aFaire: true,
idDevoir: 15537,
documentsAFaire: false,
donneLe: '2022-12-20',
effectue: false,
interrogation: false,
rendreEnLigne: false
}
],
...
}
*/
You can also get homework for a specific day (including what you have to do)
let homeWork = await session.getHomeworkByDay(day)
/* Expexted Output
[
{
Date: 'Tue, 03 Jan 2023 00:00:00 GMT',
Matiere: '',
Prof: '',
Contenu: '',
Donnele: 'Tue, 20 Dec 2022 00:00:00 GMT',
IDdevoir: 15537,
Documents: []
},
...
]
*/
let cloud = await session.getCloud()
/* Expexted Output
{
type: 'folder',
libelle: '/',
date: '2021-09-17 16:59:00',
taille: 4795209,
quota: 2147483648,
id: '',
isLoaded: true,
children: [
{
type: 'folder',
libelle: 'Pièces Jointes',
date: '2021-09-17 16:59:00',
taille: 4795209,
id: '',
isLoaded: true,
children: [Array]
}
]
}
*/
let documents = await session.getDocuments()
/* Expexted Output
{
factures: [],
notes: [
{
id: 21963,
libelle: 'Relevé Relevé ',
idEleve: ,
date: '2022-12-09',
type: 'Note',
signatureDemandee: false,
signature: {}
}
],
viescolaire: [],
administratifs: [
{
id: 26441,
libelle: "",
idEleve: ,
date: '2022-12-20',
type: 'Doc',
signatureDemandee: false,
signature: {}
},
...
],
inscriptions: [],
listesPiecesAVerser: {
listesPieces: [],
personnes: [],
pieces: [],
televersements: []
}
}
*/
let schoolLife = await session.getSchoolOffice()
/* Expexted Output
{
absencesRetards: [
{
id: 22378,
idEleve: 0,
nomEleve: '',
typeElement: 'Absence',
date: '2022-12-12',
displayDate: '',
libelle: '',
motif: '',
justifie: true,
par: '',
commentaire: '',
typeJustification: '',
justifieEd: false,
aFaire: '',
dateDeroulement: ''
},
...
],
sanctionsEncouragements: [
{
id: 1221,
idEleve: 0,
nomEleve: '',
typeElement: '',
date: '2022-11-21',
displayDate: '',
libelle: '',
motif: '',
justifie: false,
par: '',
commentaire: '',
typeJustification: '',
justifieEd: false,
aFaire: '',
dateDeroulement: ''
},
...
]
}
*/
Mars variable is the marks you get with the .getMarks method.
Periods variable is the periods you get with the .trons in the .getMarks method.
Period variable refers the code of the period. For exemple: A001.
let moyenne = await session.calculateAverage(marks, periods, period)
/* Expexted Output
{
matieres: [
{
matiere: '',
ns: 0,
divi: 0,
moyenne: '0/20',
count_moyenne: 0
},
...
],
trons: [
{ tron: 'Tronc Commun', ns: 0, divi: 0, moyenne: '0/20' },
...
],
general: '0/20'
}
*/
id variable is the id of the file.
Type is a letter/word that indicates the page you want to download your file from:
let document = await session.download(id, type)
/* Expexted Output
<Buffer>
*/
The Parent account works the same as the Student one. The available methods are:
To see information about the cildren linked to the parent account you can use the getChildren method.
You can either provide the name of the child or his index in the array of the property enfants
.
let child = await session.getChildren('John')
/* Expexted Output
Student{
}
*/
The child is a student, therefore you can use all the methods listed above.
FAQs
EcoleDirecte is a simple to use module that allows you to interact with EcoleDirecte API.
The npm package @kamkam1_0/ecoledirecte receives a total of 2 weekly downloads. As such, @kamkam1_0/ecoledirecte popularity was classified as not popular.
We found that @kamkam1_0/ecoledirecte demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Four npm packages disguised as cryptographic tools steal developer credentials and send them to attacker-controlled Telegram infrastructure.
Security News
Ruby maintainers from Bundler and rbenv teams are building rv to bring Python uv's speed and unified tooling approach to Ruby development.
Security News
Following last week’s supply chain attack, Nx published findings on the GitHub Actions exploit and moved npm publishing to Trusted Publishers.