Skip to content

a2br/ecoledirecte.js

Repository files navigation

ecoledirecte.js · GitHub npm npm

As of August 8, 2023, this module is no longer maintained: This means that although the module is perfectly functioning, I will not update it to comply to future EcoleDirecte API changes. The module may fail to fetch or send data. I would greatly appreciate PRs for feature requests / bug patches, as I no longer have the time to work on this project. Thank you.

Browse EcoleDirecte's private API with ED.js, an unofficial API client.

ed.js is a Promise-based module, built on TypeScript for a better IntelliSense and type-guarded features.

Examples

Warning: these examples might not work on your machine (depending on whether you're using commonjs or ES6 module)

Get the homework of a day

import { Session } from "ecoledirecte.js";

// Create a new Session.
const session = new Session("identifiant", "motdepasse");

// Bring your session to life!
const account = await session.login().catch(err => {
	console.error("This login did not go well.");
});

// Is it a student account?
if (!account || account.type !== "student") throw new Error("Not a student!");

// Get the homework due for a specific date as a simplified array
const homework = await account.getHomework({ dates: "2021-01-14" });

// Every piece of data from the API is reformatted  (eg: base64 string are
// converted to text/HTML). The raw data remains always available as _raw
console.log(homework[2].contenuDeSeance.content.text);

Introduction to events

Events can be used to do something when something else happens, in real-time. (very specific, as you can tell) For instance, the following will log the method and the url each time ed.js sends a request to the EcoleDirecte servers.

import { events } from "ecoledirecte.js";

events.on("request", ({ method, url }) => console.log(method, url));
// POST https://api.ecoledirecte.com/v3/login.awp
// POST https://api.ecoledirecte.com/v3/eleves/4179/timeline.awp
// ...

Dependencies walkthrough

Dependency Description
node-fetch A light-weight module that brings window.fetch to Node.js
html-to-text Converter that parses HTML and returns text.
ecoledirecte-api-types Module that maps the routes and types related to EcoleDirecte's API. Originally a part of ed.js