assignments.ts
1 import * as pronote from "../src"; 2 import { credentials } from "./_credentials"; 3 4 void async function main () { 5 const handle = pronote.createSessionHandle(); 6 await pronote.loginCredentials(handle, { 7 url: credentials.pronoteURL, 8 kind: pronote.AccountKind.STUDENT, 9 username: credentials.username, 10 password: credentials.password, 11 deviceUUID: credentials.deviceUUID 12 }); 13 14 // Grab all the assignments for week 1 through week 4. 15 const assignments = await pronote.assignmentsFromWeek(handle, 1, 4); 16 17 for (const assignment of assignments) { 18 // Output something... 19 console.log(assignment.subject.name, "to finish before the", assignment.deadline.toLocaleString()); 20 console.log("(description) =>", assignment.description); 21 22 // If there's attachments, output them too ! 23 if (assignment.attachments.length > 0) { 24 assignment.attachments.forEach((attachment) => { 25 console.log("(attachment) =>", attachment.name, ":", attachment.url); 26 }); 27 } 28 29 if (assignment.return) { 30 switch (assignment.return.kind) { 31 case pronote.AssignmentReturnKind.None: 32 console.log("(return) => no return required"); 33 break; 34 case pronote.AssignmentReturnKind.Paper: 35 console.log("(return) => on paper ; should be returned to teacher manually"); 36 break; 37 case pronote.AssignmentReturnKind.FileUpload: 38 console.log("(return) => file upload", assignment.return.uploaded ? `(uploaded: ${assignment.return.uploaded.url})` : "(not uploaded)"); 39 break; 40 case pronote.AssignmentReturnKind.Kiosk: 41 console.log("(return) => kiosk (not implemented)"); 42 break; 43 case pronote.AssignmentReturnKind.AudioRecording: 44 console.log("(return) => audio recording (not implemented)"); 45 break; 46 } 47 } 48 49 if (assignment.resourceID) { 50 const resource = await pronote.resource(handle, assignment.resourceID); 51 console.log("(info) =>", resource); 52 } 53 54 console.log(); // Linebreak. 55 } 56 }();