Androz2091 / pronote-bot-discord

Un bot Discord pour envoyer les nouveaux devoirs dans un serveur Discord 📚
29 stars 18 forks source link

Timetable cache #2

Closed TapsHTS closed 3 years ago

TapsHTS commented 3 years ago

J'essaye de faire un système quand les profs son absent:

    const timetable = await session.timetable()
    const proAway = timetable.filter((away) => (away.isAway));
        proAway.forEach((edt) => sendDiscordNotificationAbs(edt));

    // Mise à jour du cache pour l'emploie du temps
        writeCache({
            ...cache,
            timetable
        })

const sendDiscordNotificationAbs = (edt) => {
    (async () => {
    const taps = await client.users.fetch("321213174454026240").catch(e => { console.log(e)});
    const d = new Date(edt.from);

    const abs = `Il y a un professeur absent: ${edt.teacher} à ${d.getUTCHours() + ':' + d.getUTCMinutes() +'\n'}`

    taps.send(abs)
    fetch(`https://smsapi.free-mobile.fr/sendmsg?user=&pass=&msg=${encodeURIComponent(abs)}`)

    })
};

Sa écrit dans le cache, mais sa envoie pas de message ?

TapsHTS commented 3 years ago

J'ai essayé sa:

    const timetable = await session.timetable()
    const proAway = timetable.filter((edt) => (cache.homeworks.some((cacheTable) => cacheTable.isAway === edt.isAway)));
    if (proAway.length > 0 && proAway.length <= 3) {
        proAway.forEach((edt) => sendDiscordNotificationAbs(edt));
    }

    // Mise à jour du cache pour l'emploie du temps
        writeCache({
            ...cache,
            timetable
        })

    // Déconnexion de Pronote
    session.logout();

};

/**
 * Envoi un notification en cas d'absence sur Discord et SMS
 * @param {pronote.PronoteTimetable} edt La matière de la note
 */

const sendDiscordNotificationAbs = (edt) => {
    (async () => {
    const taps = await client.users.fetch("321213174454026240").catch(e => { console.log(e)});
    const ewan = await client.users.fetch("716379190332752014").catch(e => { console.log(e)});
    const d = new Date(edt.from);

    const abs = `Il y a un professeur absent: ${edt.teacher} le ${d.getUTCDate}/${d.getUTCMonth}/${d.getUTCFullYear} à ${d.getUTCHours()} : ${d.getUTCMinutes()}\n`

    taps.send(abs)
    // ewan.send(abs)
    fetch(`https://smsapi.free-mobile.fr/sendmsg?user=pass=&msg=${encodeURIComponent(abs)}`)

    })
};
TapsHTS commented 3 years ago

Bon en tous cas sa écrit dans le cache donc bon

Androz2091 commented 3 years ago

Salut, je regarde ça dès que possible, je pense que je l'ajouterai définitivement au bot dans les prochains jours

Androz2091 commented 3 years ago

ça vient peut-être des arguments passés à session.timetable()

TapsHTS commented 3 years ago

C'est bien comme sa qu'il faut récupérer l'edt ?

Androz2091 commented 3 years ago

Oui. Les cours annulés sont dispo en v1.2.0, n'hésite pas à me mp sur discord si tu as des questions