=== Job #3 'Import absences toutes les 2h' — démarré 2026-05-10T09:29:02 === task_kind=sync classes=["EM-AU 1", "EM-AU 2"] ━━━ Sync Escada ━━━ $ /usr/local/bin/python3 /app/scripts/sync_esacada.py --sync-all EM-AU 1 EM-AU 2 --skip-fiches [11:29:04] SESSION_EXPIRED [11:29:05] [LOGIN] Identifiants configurés — connexion automatique en cours. [11:29:05] [2FA] Secret TOTP configure - code saisi automatiquement quand demande. [11:29:05] [LOGIN] url: https://edusso.apps.vs.ch/auth/realms/ictvs/protocol/openid-connect/auth?client_id=EscadaWeb&respons [11:29:05] [LOGIN] Formulaire Keycloak détecté — saisie automatique des identifiants. [11:29:06] [2FA] Tentative remplissage OTP sur: https://edusso.apps.vs.ch/auth/realms/ictvs/login-actions/authenticate?execution [11:29:06] [2FA] JS fill result: filled [11:29:06] [2FA] OTP saisi via JS — soumission du formulaire. [11:29:06] [2FA] submit result: clicked [11:29:08] LOGIN_OK [11:29:08] TOTAL 2 [11:29:08] PROGRESS 1/2 EM-AU 1 [11:29:08] [LANG] Navigation vers DlgEinstellungen… [11:29:09] [LANG] Valeur actuelle: 'français' [11:29:09] [LANG] Déjà en français [11:29:10] [lrn p=1] 'EM-AU 1' [11:29:10] [lrn] lien trouvé : ViewLernende.aspx?id=fc04fbce-a012-42dd-9cad-67f8894ee59c [11:29:12] [lrn] OK bouton BN présent [11:29:12] [NOTES EM-AU 1] href direct: https://escadaweb.vs.ch/Lehrpersonen/Reports/RptEscada.aspx?id=f4d1a632-37b7-429 [11:29:16] OK NOTES EM-AU 1 [href size=139611] [11:29:18] [BN] +1s attente… [11:29:22] [BN] +5s attente… [11:29:23] [BN] download main page capturé: Bulletin de note.pdf [11:29:23] OK BN EM-AU 1 [main download size=92774] [11:29:25] [scan page=1] recherche 'EM-AU 1'… [11:29:25] [scan page=1] -> TROUVE [11:29:26] [nav abs] url après nav: https://escadaweb.vs.ch/Lehrpersonen/ViewAbsenzenErweitert.aspx?id=da3e0b68-5559 [11:29:26] [abs nav] url: https://escadaweb.vs.ch/Lehrpersonen/ViewAbsenzenErweitert.aspx?id=da3e0b68-5559 [11:29:26] [abs] page url avant clic: https://escadaweb.vs.ch/Lehrpersonen/ViewAbsenzenErweitert.aspx?id=da3e0b68-5559 [11:29:26] [abs] GET direct: https://escadaweb.vs.ch/Lehrpersonen/Reports/RptEscada.aspx?id=ac3993d6-86c2-404 [11:29:28] OK EM-AU 1 [href size=74557] [11:29:28] PROGRESS 2/2 EM-AU 2 [11:29:29] [lrn p=1] 'EM-AU 2' [11:29:29] [lrn] lien trouvé : ViewLernende.aspx?id=a736d575-58b6-40e6-84f4-c5a6aa87cb9b [11:29:31] [lrn] OK bouton BN présent [11:29:31] [NOTES EM-AU 2] href direct: https://escadaweb.vs.ch/Lehrpersonen/Reports/RptEscada.aspx?id=cf3257f8-9c54-410 [11:29:33] OK NOTES EM-AU 2 [href size=117997] [11:29:36] [BN] +1s attente… [11:29:40] [BN] +5s attente… [11:29:42] [BN] download main page capturé: Bulletin de note.pdf [11:29:42] OK BN EM-AU 2 [main download size=125570] [11:29:43] [scan page=1] recherche 'EM-AU 2'… [11:29:43] [scan page=1] -> TROUVE [11:29:44] [nav abs] url après nav: https://escadaweb.vs.ch/Lehrpersonen/ViewAbsenzenErweitert.aspx?id=ef32322a-8bd9 [11:29:44] [abs nav] url: https://escadaweb.vs.ch/Lehrpersonen/ViewAbsenzenErweitert.aspx?id=ef32322a-8bd9 [11:29:44] [abs] page url avant clic: https://escadaweb.vs.ch/Lehrpersonen/ViewAbsenzenErweitert.aspx?id=ef32322a-8bd9 [11:29:44] [abs] GET direct: https://escadaweb.vs.ch/Lehrpersonen/Reports/RptEscada.aspx?id=78c83132-4183-434 [11:29:46] OK EM-AU 2 [href size=72579] [11:29:46] MATU classes cibles: ['MP1-TASV 1A', 'MP1-TASV 1B', 'MP1-TASV 1C', 'MP1-TASV 1D', 'MP1-TASV 1E', 'MP1-TASV 2A', 'MP1-TASV 2B', 'MP1-TASV 2C', 'MP1-TASV 2D', 'MP1-TASV 2E'] [11:29:46] MATU 1/10 MP1-TASV 1A [11:29:47] [lrn p=1] 'MP1-TASV 1A' [11:29:47] [lrn] lien trouvé : ViewLernende.aspx?id=00d5d0a5-a6ee-438f-84a8-b7be7feaf230 [11:29:49] [lrn] OK bouton BN présent [11:29:49] [MATU MP1-TASV 1A] href direct: https://escadaweb.vs.ch/Lehrpersonen/Reports/RptEscada.aspx?id=6aafbfa6-0139-41e [11:29:50] OK MATU MP1-TASV 1A [href size=55167] [11:29:50] MATU 2/10 MP1-TASV 1B [11:29:52] [lrn p=1] 'MP1-TASV 1B' [11:29:52] [lrn] lien trouvé : ViewLernende.aspx?id=7f50128d-d967-4456-b674-0843bb443f87 [11:29:53] [lrn] OK bouton BN présent [11:29:53] [MATU MP1-TASV 1B] href direct: https://escadaweb.vs.ch/Lehrpersonen/Reports/RptEscada.aspx?id=e69bcdcf-c117-440 [11:29:55] OK MATU MP1-TASV 1B [href size=53244] [11:29:55] MATU 3/10 MP1-TASV 1C [11:29:56] [lrn p=1] 'MP1-TASV 1C' [11:29:56] [lrn] tentative B: clic sur 'MP1-TASV 1C' dans la grille [11:29:56] [pagination] -> page 2 [11:29:57] [lrn p=2] 'MP1-TASV 1C' [11:29:57] [lrn] lien trouvé : ViewLernende.aspx?id=b744b1dc-f208-4e53-8f7f-c04845ed1b8f [11:29:58] [lrn] OK bouton BN présent [11:29:58] [MATU MP1-TASV 1C] href direct: https://escadaweb.vs.ch/Lehrpersonen/Reports/RptEscada.aspx?id=757ed578-b54c-497 [11:30:00] OK MATU MP1-TASV 1C [href size=54365] [11:30:00] MATU 4/10 MP1-TASV 1D [11:30:02] [lrn p=1] 'MP1-TASV 1D' [11:30:02] [lrn] lien trouvé : ViewLernende.aspx?id=3aaa7dbf-2719-483c-9cad-b4c0f7324468 [11:30:34] [lrn] OK bouton BN présent [11:30:34] [MATU MP1-TASV 1D] href direct: https://escadaweb.vs.ch/Lehrpersonen/Reports/RptEscada.aspx?id=d6155f65-614c-4db [11:30:35] OK MATU MP1-TASV 1D [href size=55279] [11:30:35] MATU 5/10 MP1-TASV 1E [11:30:37] [lrn p=1] 'MP1-TASV 1E' [11:30:37] [lrn] tentative B: clic sur 'MP1-TASV 1E' dans la grille [11:30:37] [pagination] -> page 2 [11:30:37] [lrn p=2] 'MP1-TASV 1E' [11:30:37] [lrn] lien trouvé : ViewLernende.aspx?id=710080d2-d4d5-48a5-b00a-ccf946ce893d [11:30:39] [lrn] OK bouton BN présent [11:30:39] [MATU MP1-TASV 1E] href direct: https://escadaweb.vs.ch/Lehrpersonen/Reports/RptEscada.aspx?id=24e0cfe7-4e1d-4de [11:30:41] OK MATU MP1-TASV 1E [href size=53597] [11:30:41] MATU 6/10 MP1-TASV 2A [11:30:42] [lrn p=1] 'MP1-TASV 2A' [11:30:42] [lrn] tentative B: clic sur 'MP1-TASV 2A' dans la grille [11:30:42] [pagination] -> page 2 [11:30:43] [lrn p=2] 'MP1-TASV 2A' [11:30:43] [lrn] lien trouvé : ViewLernende.aspx?id=58830220-ee10-453a-a2ab-84c124faf31e [11:30:44] [lrn] OK bouton BN présent [11:30:44] [MATU MP1-TASV 2A] href direct: https://escadaweb.vs.ch/Lehrpersonen/Reports/RptEscada.aspx?id=98d089db-1004-499 [11:30:47] OK MATU MP1-TASV 2A [href size=54517] [11:30:47] MATU 7/10 MP1-TASV 2B [11:30:48] [lrn p=1] 'MP1-TASV 2B' [11:30:48] [lrn] tentative B: clic sur 'MP1-TASV 2B' dans la grille [11:30:48] [pagination] -> page 2 [11:30:49] [lrn p=2] 'MP1-TASV 2B' [11:30:49] [lrn] lien trouvé : ViewLernende.aspx?id=28d96efc-5205-47b5-805e-c33f3342cad4 [11:30:50] [lrn] OK bouton BN présent [11:30:50] [MATU MP1-TASV 2B] href direct: https://escadaweb.vs.ch/Lehrpersonen/Reports/RptEscada.aspx?id=19ebc4ff-0a4c-41f [11:30:52] OK MATU MP1-TASV 2B [href size=55264] [11:30:52] MATU 8/10 MP1-TASV 2C [11:30:54] [lrn p=1] 'MP1-TASV 2C' [11:30:54] [lrn] tentative B: clic sur 'MP1-TASV 2C' dans la grille [11:30:54] [pagination] -> page 2 [11:30:54] [lrn p=2] 'MP1-TASV 2C' [11:30:54] [lrn] lien trouvé : ViewLernende.aspx?id=2f587458-cf5f-45cb-8ae4-bbe6a6f6b396 [11:30:56] [lrn] OK bouton BN présent [11:30:56] [MATU MP1-TASV 2C] href direct: https://escadaweb.vs.ch/Lehrpersonen/Reports/RptEscada.aspx?id=a33e3ccb-58d1-4e1 [11:30:58] OK MATU MP1-TASV 2C [href size=54478] [11:30:58] MATU 9/10 MP1-TASV 2D [11:30:59] [lrn p=1] 'MP1-TASV 2D' [11:30:59] [lrn] tentative B: clic sur 'MP1-TASV 2D' dans la grille [11:30:59] [pagination] -> page 2 [11:31:00] [lrn p=2] 'MP1-TASV 2D' [11:31:00] [lrn] lien trouvé : ViewLernende.aspx?id=0321398e-5d8b-40ac-9459-8720d69452f6 [11:31:02] [lrn] OK bouton BN présent [11:31:02] [MATU MP1-TASV 2D] href direct: https://escadaweb.vs.ch/Lehrpersonen/Reports/RptEscada.aspx?id=9e396013-68f4-43a [11:31:04] OK MATU MP1-TASV 2D [href size=53305] [11:31:04] MATU 10/10 MP1-TASV 2E [11:31:05] [lrn p=1] 'MP1-TASV 2E' [11:31:05] [lrn] tentative B: clic sur 'MP1-TASV 2E' dans la grille [11:31:05] [pagination] -> page 2 [11:31:06] [lrn p=2] 'MP1-TASV 2E' [11:31:06] [lrn] lien trouvé : ViewLernende.aspx?id=1ae0d5ac-6c30-4a19-bd2e-271bf1fb41e1 [11:31:07] [lrn] OK bouton BN présent [11:31:07] [MATU MP1-TASV 2E] href direct: https://escadaweb.vs.ch/Lehrpersonen/Reports/RptEscada.aspx?id=3777eee2-7dcc-442 [11:31:09] OK MATU MP1-TASV 2E [href size=53863] [11:31:09] sync_all_done.json ecrit par subprocess [11:31:09] run_imports lance (pid=242) [11:31:09] ALL_DONE {"abs": ["/app/data/pdfs/esacada_EM-AU_1.pdf", "/app/data/pdfs/esacada_EM-AU_2.pdf"], "bn": ["/app/data/pdfs/bn_EM-AU_1.pdf", "/app/data/pdfs/bn_EM-AU_2.pdf"], "matu": ["/app/data/pdfs/matu_MP1-TASV_1A.pdf", "/app/data/pdfs/matu_MP1-TASV_1B.pdf", "/app/data/pdfs/matu_MP1-TASV_1C.pdf", "/app/data/pdfs/matu_MP1-TASV_1D.pdf", "/app/data/pdfs/matu_MP1-TASV_1E.pdf", "/app/data/pdfs/matu_MP1-TASV_2A.pdf", "/app/data/pdfs/matu_MP1-TASV_2B.pdf", "/app/data/pdfs/matu_MP1-TASV_2C.pdf", "/app/data/pdfs/matu_MP1-TASV_2D.pdf", "/app/data/pdfs/matu_MP1-TASV_2E.pdf"], "notes": ["/app/data/pdfs/notes_EM-AU_1.pdf", "/app/data/pdfs/notes_EM-AU_2.pdf"], "fiches": {}, "errors": []} [exit code = 0]