1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
const http = require('../http');
const URLS = {
'ac-besancon': 'cas.eclat-bfc.fr',
'ac-bordeaux': 'mon.lyceeconnecte.fr',
'ac-bordeaux2': 'ent2d.ac-bordeaux.fr',
'ac-caen': 'fip.itslearning.com',
'ac-clermont': 'cas.ent.auvergnerhonealpes.fr',
'ac-dijon': 'cas.eclat-bfc.fr',
'ac-grenoble': 'cas.ent.auvergnerhonealpes.fr',
'ac-lille': 'cas.savoirsnumeriques62.fr',
'ac-lille2': 'teleservices.ac-lille.fr',
'ac-limoges': 'mon.lyceeconnecte.fr',
'ac-lyon': 'cas.ent.auvergnerhonealpes.fr',
'ac-montpellier': 'cas.mon-ent-occitanie.fr',
'ac-nancy-metz': 'cas.monbureaunumerique.fr',
'ac-nantes': 'cas3.e-lyco.fr',
'ac-orleans-tours': 'ent.netocentre.fr',
'ac-poitiers': 'mon.lyceeconnecte.fr',
'ac-reims': 'cas.monbureaunumerique.fr',
'ac-rouen': 'nero.l-educdenormandie.fr',
'ac-strasbourg': 'cas.monbureaunumerique.fr',
'ac-toulouse': 'cas.mon-ent-occitanie.fr',
'ac-valdoise': 'cas.moncollege.valdoise.fr',
'agora06': 'cas.agora06.fr',
'arsene76': 'cas.arsene76.fr',
'atrium-sud': 'www.atrium-sud.fr',
'cybercolleges42': 'cas.cybercolleges42.fr',
'eure-normandie': 'cas.ent27.fr',
'haute-garonne': 'cas.ecollege.haute-garonne.fr',
'hdf': 'enthdf.fr',
'iledefrance': 'ent.iledefrance.fr',
'moncollege-essonne': 'www.moncollege-ent.essonne.fr',
'laclasse': 'www.laclasse.com',
'ljr-munich': 'cas.kosmoseducation.com',
'lyceeconnecte': 'mon.lyceeconnecte.fr',
'parisclassenumerique': 'ent.parisclassenumerique.fr',
'portail-famille': 'seshat.ac-orleans-tours.fr:8443',
'seine-et-marne': 'ent77.seine-et-marne.fr',
'somme': 'college.entsomme.fr',
'toutatice': 'www.toutatice.fr',
'monbureaunumerique-educonnect': 'cas.monbureaunumerique.fr'
};
async function find(url)
{
if (!url.endsWith('/')) {
url += '/';
}
let location = await http({ url: url + 'eleve.html', followRedirects: 'get' });
if (location.includes('<head>')) {
return 'none';
}
if (location.startsWith('http://') || location.startsWith('https://')) {
location = location.substring(location.indexOf('/') + 2);
}
const host = location.substring(0, location.indexOf('/'));
const result = [];
for (const [name, casHost] of Object.entries(URLS)) {
if (host === casHost) {
result.push(name);
}
}
if (result.length === 0) {
return null;
}
if (result.length === 1) {
return result[0];
}
return result;
}
module.exports = find;
|