Compare commits
No commits in common. "5a5e034ba882131786d4a9488f4da3ff5a624541" and "fe2e22ba17906823efc6d48f4203e49f0cf0a95e" have entirely different histories.
5a5e034ba8
...
fe2e22ba17
3 changed files with 15 additions and 650 deletions
600
all_groups.json
600
all_groups.json
|
@ -1,600 +0,0 @@
|
||||||
{
|
|
||||||
"_0": "This is a file containing all groups slugs from https://cri.epita.fr/api/v2/groups/",
|
|
||||||
"_1": "It was generated using CriApi.get_all_groups()",
|
|
||||||
"groups": [
|
|
||||||
"administratives-site-directors",
|
|
||||||
"administratives",
|
|
||||||
"asso-prologin",
|
|
||||||
"asso-responsable",
|
|
||||||
"auditors",
|
|
||||||
"bocal",
|
|
||||||
"cri-olds",
|
|
||||||
"cri-roots",
|
|
||||||
"cri-service-accounts",
|
|
||||||
"cri-students",
|
|
||||||
"cri",
|
|
||||||
"cyber-cyb1-prs",
|
|
||||||
"cyber-cyb1-s1-prs",
|
|
||||||
"cyber-cyb1-s1",
|
|
||||||
"cyber-cyb1-s2-prs",
|
|
||||||
"cyber-cyb1-s2",
|
|
||||||
"cyber-cyb1",
|
|
||||||
"cyber-cyb2-prs",
|
|
||||||
"cyber-cyb2-s3-prs",
|
|
||||||
"cyber-cyb2-s3",
|
|
||||||
"cyber-cyb2-s4-prs",
|
|
||||||
"cyber-cyb2-s4",
|
|
||||||
"cyber-cyb2",
|
|
||||||
"cyber-cyb3-prs",
|
|
||||||
"cyber-cyb3-s5-prs",
|
|
||||||
"cyber-cyb3-s5",
|
|
||||||
"cyber-cyb3-s6-prs",
|
|
||||||
"cyber-cyb3-s6",
|
|
||||||
"cyber-cyb3",
|
|
||||||
"cyber-scolarite",
|
|
||||||
"cyber",
|
|
||||||
"department-cip",
|
|
||||||
"department-cri-manager",
|
|
||||||
"department-dg",
|
|
||||||
"department-forge-employees",
|
|
||||||
"department-forge-managers",
|
|
||||||
"exp-m1-prs",
|
|
||||||
"exp-m1-s5-prs-representatives",
|
|
||||||
"exp-m1-s5-prs",
|
|
||||||
"exp-m1-s5",
|
|
||||||
"exp-m1-s6-prs-representatives",
|
|
||||||
"exp-m1-s6-prs",
|
|
||||||
"exp-m1-s6",
|
|
||||||
"exp-m1",
|
|
||||||
"exp-m2-prs",
|
|
||||||
"exp-m2-s7-prs-representatives",
|
|
||||||
"exp-m2-s7-prs",
|
|
||||||
"exp-m2-s7",
|
|
||||||
"exp-m2-s8-prs-representatives",
|
|
||||||
"exp-m2-s8-prs",
|
|
||||||
"exp-m2-s8",
|
|
||||||
"exp-m2",
|
|
||||||
"exp-m3-prs",
|
|
||||||
"exp-m3-s10-prs-representatives",
|
|
||||||
"exp-m3-s10-prs",
|
|
||||||
"exp-m3-s10",
|
|
||||||
"exp-m3-s9-prs-representatives",
|
|
||||||
"exp-m3-s9-prs",
|
|
||||||
"exp-m3-s9",
|
|
||||||
"exp-m3",
|
|
||||||
"exp",
|
|
||||||
"forge-ing1",
|
|
||||||
"forge-interns",
|
|
||||||
"forge-prod-devs",
|
|
||||||
"forge-prod",
|
|
||||||
"forge-roots",
|
|
||||||
"forge-staff",
|
|
||||||
"forge-students",
|
|
||||||
"forge",
|
|
||||||
"guests-cats",
|
|
||||||
"guests",
|
|
||||||
"ing-app-i1-s5-prs-representatives",
|
|
||||||
"ing-app-i1-s5-prs",
|
|
||||||
"ing-app-i1-s6-prs-representatives",
|
|
||||||
"ing-app-i1-s6-prs",
|
|
||||||
"ing-app-i2-s7-prs-representatives",
|
|
||||||
"ing-app-i2-s7-prs",
|
|
||||||
"ing-app-i2-s8-prs-representatives",
|
|
||||||
"ing-app-i2-s8-prs",
|
|
||||||
"ing-app-i3-s10-prs-representatives",
|
|
||||||
"ing-app-i3-s10-prs",
|
|
||||||
"ing-app-i3-s9-prs-representatives",
|
|
||||||
"ing-app-i3-s9-prs",
|
|
||||||
"ing-assistants-acu-respos-42sh",
|
|
||||||
"ing-assistants-acu-respos-harmonisation",
|
|
||||||
"ing-assistants-acu-respos-httpd",
|
|
||||||
"ing-assistants-acu-respos-malloc",
|
|
||||||
"ing-assistants-acu-respos-minimake",
|
|
||||||
"ing-assistants-acu-respos-myfind",
|
|
||||||
"ing-assistants-acu-respos-piscine",
|
|
||||||
"ing-assistants-acu-respos-sql",
|
|
||||||
"ing-assistants-acu",
|
|
||||||
"ing-assistants-chefs",
|
|
||||||
"ing-assistants-cpi",
|
|
||||||
"ing-assistants-deadlines",
|
|
||||||
"ing-assistants-devs",
|
|
||||||
"ing-assistants-director-42sh",
|
|
||||||
"ing-assistants-director-asm",
|
|
||||||
"ing-assistants-director-chess",
|
|
||||||
"ing-assistants-director-cpp",
|
|
||||||
"ing-assistants-director-harmonisation-mpc",
|
|
||||||
"ing-assistants-director-harmonisation-prog",
|
|
||||||
"ing-assistants-director-harmonisation",
|
|
||||||
"ing-assistants-director-httpd",
|
|
||||||
"ing-assistants-director-java",
|
|
||||||
"ing-assistants-director-malloc",
|
|
||||||
"ing-assistants-director-minimake",
|
|
||||||
"ing-assistants-director-myfind",
|
|
||||||
"ing-assistants-director-piscine",
|
|
||||||
"ing-assistants-director-prerentree",
|
|
||||||
"ing-assistants-director-spider",
|
|
||||||
"ing-assistants-director-sql",
|
|
||||||
"ing-assistants-director-tiger",
|
|
||||||
"ing-assistants-directors-js",
|
|
||||||
"ing-assistants-gitlab-manager",
|
|
||||||
"ing-assistants-guests",
|
|
||||||
"ing-assistants-intendants",
|
|
||||||
"ing-assistants-moulettes",
|
|
||||||
"ing-assistants-others",
|
|
||||||
"ing-assistants-pypi-admins",
|
|
||||||
"ing-assistants-respos-calins",
|
|
||||||
"ing-assistants-reviews",
|
|
||||||
"ing-assistants-roots",
|
|
||||||
"ing-assistants-toolchain",
|
|
||||||
"ing-assistants-yaka-respos-chess",
|
|
||||||
"ing-assistants-yaka-respos-cpp",
|
|
||||||
"ing-assistants-yaka-respos-java",
|
|
||||||
"ing-assistants-yaka-respos-js",
|
|
||||||
"ing-assistants-yaka-respos-ping",
|
|
||||||
"ing-assistants-yaka-respos-prerentree",
|
|
||||||
"ing-assistants-yaka-respos-spider",
|
|
||||||
"ing-assistants-yaka-respos-tiger",
|
|
||||||
"ing-assistants-yaka-stage",
|
|
||||||
"ing-assistants-yaka",
|
|
||||||
"ing-assistants",
|
|
||||||
"ing-csi",
|
|
||||||
"ing-de",
|
|
||||||
"ing-gistre-chief",
|
|
||||||
"ing-gistre-representatives",
|
|
||||||
"ing-gistre-roots",
|
|
||||||
"ing-gistre",
|
|
||||||
"ing-gitm-representatives",
|
|
||||||
"ing-gitm",
|
|
||||||
"ing-ice-representatives",
|
|
||||||
"ing-ice-roots",
|
|
||||||
"ing-ice",
|
|
||||||
"ing-if-representatives",
|
|
||||||
"ing-if",
|
|
||||||
"ing-image-representatives",
|
|
||||||
"ing-image",
|
|
||||||
"ing-ing1-arcs-s5-prs",
|
|
||||||
"ing-ing1-arcs-s6-prs",
|
|
||||||
"ing-ing1-arcs",
|
|
||||||
"ing-ing1-bing",
|
|
||||||
"ing-ing1-lyn",
|
|
||||||
"ing-ing1-prs",
|
|
||||||
"ing-ing1-riemann",
|
|
||||||
"ing-ing1-rns",
|
|
||||||
"ing-ing1-s5-lyn-representatives",
|
|
||||||
"ing-ing1-s5-lyn",
|
|
||||||
"ing-ing1-s5-prs-a1",
|
|
||||||
"ing-ing1-s5-prs-a2",
|
|
||||||
"ing-ing1-s5-prs-a3",
|
|
||||||
"ing-ing1-s5-prs-a4",
|
|
||||||
"ing-ing1-s5-prs-a5",
|
|
||||||
"ing-ing1-s5-prs-auditors",
|
|
||||||
"ing-ing1-s5-prs-b10",
|
|
||||||
"ing-ing1-s5-prs-b6",
|
|
||||||
"ing-ing1-s5-prs-b7",
|
|
||||||
"ing-ing1-s5-prs-b8",
|
|
||||||
"ing-ing1-s5-prs-b9",
|
|
||||||
"ing-ing1-s5-prs-bing",
|
|
||||||
"ing-ing1-s5-prs-representatives",
|
|
||||||
"ing-ing1-s5-prs-riemann-a1",
|
|
||||||
"ing-ing1-s5-prs-riemann-a2",
|
|
||||||
"ing-ing1-s5-prs-riemann",
|
|
||||||
"ing-ing1-s5-prs-shannon-c1",
|
|
||||||
"ing-ing1-s5-prs-shannon-c2",
|
|
||||||
"ing-ing1-s5-prs-shannon-c3",
|
|
||||||
"ing-ing1-s5-prs-shannon-c4",
|
|
||||||
"ing-ing1-s5-prs-shannon-c5",
|
|
||||||
"ing-ing1-s5-prs-shannon",
|
|
||||||
"ing-ing1-s5-prs-std",
|
|
||||||
"ing-ing1-s5-prs-tanenbaum-d1",
|
|
||||||
"ing-ing1-s5-prs-tanenbaum-d2",
|
|
||||||
"ing-ing1-s5-prs-tanenbaum-d3",
|
|
||||||
"ing-ing1-s5-prs-tanenbaum-d4",
|
|
||||||
"ing-ing1-s5-prs-tanenbaum-d5",
|
|
||||||
"ing-ing1-s5-prs-tanenbaum",
|
|
||||||
"ing-ing1-s5-prs",
|
|
||||||
"ing-ing1-s5-representatives",
|
|
||||||
"ing-ing1-s5-rns-representatives",
|
|
||||||
"ing-ing1-s5-rns",
|
|
||||||
"ing-ing1-s5-std",
|
|
||||||
"ing-ing1-s5-stg-representatives",
|
|
||||||
"ing-ing1-s5-stg",
|
|
||||||
"ing-ing1-s5-tc-hi",
|
|
||||||
"ing-ing1-s5-tc-hm",
|
|
||||||
"ing-ing1-s5-tls-representatives",
|
|
||||||
"ing-ing1-s5-tls",
|
|
||||||
"ing-ing1-s5",
|
|
||||||
"ing-ing1-s6-lyn-l1",
|
|
||||||
"ing-ing1-s6-lyn-l2",
|
|
||||||
"ing-ing1-s6-lyn-l3",
|
|
||||||
"ing-ing1-s6-lyn-representatives",
|
|
||||||
"ing-ing1-s6-lyn",
|
|
||||||
"ing-ing1-s6-prs-a1",
|
|
||||||
"ing-ing1-s6-prs-a2",
|
|
||||||
"ing-ing1-s6-prs-a3",
|
|
||||||
"ing-ing1-s6-prs-a4",
|
|
||||||
"ing-ing1-s6-prs-a5",
|
|
||||||
"ing-ing1-s6-prs-auditors",
|
|
||||||
"ing-ing1-s6-prs-b10",
|
|
||||||
"ing-ing1-s6-prs-b11",
|
|
||||||
"ing-ing1-s6-prs-b6",
|
|
||||||
"ing-ing1-s6-prs-b7",
|
|
||||||
"ing-ing1-s6-prs-b8",
|
|
||||||
"ing-ing1-s6-prs-b9",
|
|
||||||
"ing-ing1-s6-prs-bing",
|
|
||||||
"ing-ing1-s6-prs-representatives",
|
|
||||||
"ing-ing1-s6-prs-riemann-a1",
|
|
||||||
"ing-ing1-s6-prs-riemann-a2",
|
|
||||||
"ing-ing1-s6-prs-riemann",
|
|
||||||
"ing-ing1-s6-prs-shannon-c1",
|
|
||||||
"ing-ing1-s6-prs-shannon-c2",
|
|
||||||
"ing-ing1-s6-prs-shannon-c3",
|
|
||||||
"ing-ing1-s6-prs-shannon-c4",
|
|
||||||
"ing-ing1-s6-prs-shannon-c5",
|
|
||||||
"ing-ing1-s6-prs-shannon",
|
|
||||||
"ing-ing1-s6-prs-std",
|
|
||||||
"ing-ing1-s6-prs-tanenbaum-d1",
|
|
||||||
"ing-ing1-s6-prs-tanenbaum-d2",
|
|
||||||
"ing-ing1-s6-prs-tanenbaum-d3",
|
|
||||||
"ing-ing1-s6-prs-tanenbaum-d4",
|
|
||||||
"ing-ing1-s6-prs-tanenbaum-d5",
|
|
||||||
"ing-ing1-s6-prs-tanenbaum",
|
|
||||||
"ing-ing1-s6-prs",
|
|
||||||
"ing-ing1-s6-representatives",
|
|
||||||
"ing-ing1-s6-rns-representatives",
|
|
||||||
"ing-ing1-s6-rns",
|
|
||||||
"ing-ing1-s6-stg-representatives",
|
|
||||||
"ing-ing1-s6-stg-s1",
|
|
||||||
"ing-ing1-s6-stg-s2",
|
|
||||||
"ing-ing1-s6-stg",
|
|
||||||
"ing-ing1-s6-tls-representatives",
|
|
||||||
"ing-ing1-s6-tls-t1",
|
|
||||||
"ing-ing1-s6-tls-t2",
|
|
||||||
"ing-ing1-s6-tls",
|
|
||||||
"ing-ing1-s6",
|
|
||||||
"ing-ing1-shannon",
|
|
||||||
"ing-ing1-stg",
|
|
||||||
"ing-ing1-tanenbaum",
|
|
||||||
"ing-ing1-tls",
|
|
||||||
"ing-ing1",
|
|
||||||
"ing-ing2-lyn",
|
|
||||||
"ing-ing2-prs",
|
|
||||||
"ing-ing2-s7-prs",
|
|
||||||
"ing-ing2-s7-representatives",
|
|
||||||
"ing-ing2-s7-stg",
|
|
||||||
"ing-ing2-s7",
|
|
||||||
"ing-ing2-s8-lyn-if-representatives",
|
|
||||||
"ing-ing2-s8-lyn-if",
|
|
||||||
"ing-ing2-s8-lyn-rdi",
|
|
||||||
"ing-ing2-s8-lyn-representatives",
|
|
||||||
"ing-ing2-s8-lyn-sciag-representatives",
|
|
||||||
"ing-ing2-s8-lyn-sciag",
|
|
||||||
"ing-ing2-s8-lyn",
|
|
||||||
"ing-ing2-s8-prs-gistre-representatives",
|
|
||||||
"ing-ing2-s8-prs-gistre",
|
|
||||||
"ing-ing2-s8-prs-gitm-representatives",
|
|
||||||
"ing-ing2-s8-prs-gitm",
|
|
||||||
"ing-ing2-s8-prs-ice-representatives",
|
|
||||||
"ing-ing2-s8-prs-ice",
|
|
||||||
"ing-ing2-s8-prs-image-representatives",
|
|
||||||
"ing-ing2-s8-prs-image",
|
|
||||||
"ing-ing2-s8-prs-mti-representatives",
|
|
||||||
"ing-ing2-s8-prs-mti",
|
|
||||||
"ing-ing2-s8-prs-quantum-representatives",
|
|
||||||
"ing-ing2-s8-prs-quantum",
|
|
||||||
"ing-ing2-s8-prs-rdi",
|
|
||||||
"ing-ing2-s8-prs-representatives",
|
|
||||||
"ing-ing2-s8-prs-sante-representatives",
|
|
||||||
"ing-ing2-s8-prs-sante",
|
|
||||||
"ing-ing2-s8-prs-scia-representatives",
|
|
||||||
"ing-ing2-s8-prs-scia",
|
|
||||||
"ing-ing2-s8-prs-sigl-representatives",
|
|
||||||
"ing-ing2-s8-prs-sigl",
|
|
||||||
"ing-ing2-s8-prs-srs-representatives",
|
|
||||||
"ing-ing2-s8-prs-srs",
|
|
||||||
"ing-ing2-s8-prs-startup-representatives",
|
|
||||||
"ing-ing2-s8-prs-startup",
|
|
||||||
"ing-ing2-s8-prs-tcom-representatives",
|
|
||||||
"ing-ing2-s8-prs-tcom",
|
|
||||||
"ing-ing2-s8-prs",
|
|
||||||
"ing-ing2-s8-representatives",
|
|
||||||
"ing-ing2-s8-tls-representatives",
|
|
||||||
"ing-ing2-s8-tls-ssie-representatives",
|
|
||||||
"ing-ing2-s8-tls-ssie",
|
|
||||||
"ing-ing2-s8-tls",
|
|
||||||
"ing-ing2-s8",
|
|
||||||
"ing-ing2-stg",
|
|
||||||
"ing-ing2-tls",
|
|
||||||
"ing-ing2",
|
|
||||||
"ing-ing3-lyn",
|
|
||||||
"ing-ing3-prs",
|
|
||||||
"ing-ing3-s10-prs",
|
|
||||||
"ing-ing3-s10",
|
|
||||||
"ing-ing3-s9-lyn-if-representatives",
|
|
||||||
"ing-ing3-s9-lyn-if",
|
|
||||||
"ing-ing3-s9-lyn-rdi",
|
|
||||||
"ing-ing3-s9-lyn-representatives",
|
|
||||||
"ing-ing3-s9-lyn-sciag-representatives",
|
|
||||||
"ing-ing3-s9-lyn-sciag",
|
|
||||||
"ing-ing3-s9-lyn",
|
|
||||||
"ing-ing3-s9-prs-gistre-representatives",
|
|
||||||
"ing-ing3-s9-prs-gistre",
|
|
||||||
"ing-ing3-s9-prs-gitm-representatives",
|
|
||||||
"ing-ing3-s9-prs-gitm",
|
|
||||||
"ing-ing3-s9-prs-ice-representatives",
|
|
||||||
"ing-ing3-s9-prs-ice",
|
|
||||||
"ing-ing3-s9-prs-image-representatives",
|
|
||||||
"ing-ing3-s9-prs-image",
|
|
||||||
"ing-ing3-s9-prs-mti-representatives",
|
|
||||||
"ing-ing3-s9-prs-mti",
|
|
||||||
"ing-ing3-s9-prs-quantum-representatives",
|
|
||||||
"ing-ing3-s9-prs-quantum",
|
|
||||||
"ing-ing3-s9-prs-rdi",
|
|
||||||
"ing-ing3-s9-prs-representatives",
|
|
||||||
"ing-ing3-s9-prs-sante-representatives",
|
|
||||||
"ing-ing3-s9-prs-sante",
|
|
||||||
"ing-ing3-s9-prs-scia-representatives",
|
|
||||||
"ing-ing3-s9-prs-scia",
|
|
||||||
"ing-ing3-s9-prs-sigl-representatives",
|
|
||||||
"ing-ing3-s9-prs-sigl",
|
|
||||||
"ing-ing3-s9-prs-srs-representatives",
|
|
||||||
"ing-ing3-s9-prs-srs",
|
|
||||||
"ing-ing3-s9-prs-startup-representatives",
|
|
||||||
"ing-ing3-s9-prs-startup",
|
|
||||||
"ing-ing3-s9-prs-tcom-representatives",
|
|
||||||
"ing-ing3-s9-prs-tcom",
|
|
||||||
"ing-ing3-s9-prs",
|
|
||||||
"ing-ing3-s9-representatives",
|
|
||||||
"ing-ing3-s9-tls-representatives",
|
|
||||||
"ing-ing3-s9-tls-ssie-representatives",
|
|
||||||
"ing-ing3-s9-tls-ssie",
|
|
||||||
"ing-ing3-s9-tls",
|
|
||||||
"ing-ing3-s9",
|
|
||||||
"ing-ing3-tls",
|
|
||||||
"ing-ing3",
|
|
||||||
"ing-mti-representatives",
|
|
||||||
"ing-mti-roots",
|
|
||||||
"ing-mti",
|
|
||||||
"ing-quantum-representatives",
|
|
||||||
"ing-quantum",
|
|
||||||
"ing-rdi",
|
|
||||||
"ing-sante-representatives",
|
|
||||||
"ing-sante",
|
|
||||||
"ing-scia-representatives",
|
|
||||||
"ing-scia",
|
|
||||||
"ing-sciag-representatives",
|
|
||||||
"ing-sciag",
|
|
||||||
"ing-scolarite-coaching",
|
|
||||||
"ing-scolarite",
|
|
||||||
"ing-sigl-representatives",
|
|
||||||
"ing-sigl-siops",
|
|
||||||
"ing-sigl",
|
|
||||||
"ing-srs-assistants",
|
|
||||||
"ing-srs-fic-directors",
|
|
||||||
"ing-srs-fic-roots",
|
|
||||||
"ing-srs-representatives",
|
|
||||||
"ing-srs-roots",
|
|
||||||
"ing-srs",
|
|
||||||
"ing-ssie-representatives",
|
|
||||||
"ing-ssie",
|
|
||||||
"ing-startup-representatives",
|
|
||||||
"ing-startup",
|
|
||||||
"ing-tcom-assistants",
|
|
||||||
"ing-tcom-representatives",
|
|
||||||
"ing-tcom-respos-labo",
|
|
||||||
"ing-tcom-roots",
|
|
||||||
"ing-tcom",
|
|
||||||
"ing",
|
|
||||||
"inter-bsc",
|
|
||||||
"inter-exch-f21",
|
|
||||||
"inter-exch-fall",
|
|
||||||
"inter-exch-s21",
|
|
||||||
"inter-exch-s22",
|
|
||||||
"inter-exch-spring",
|
|
||||||
"inter-f18",
|
|
||||||
"inter-f19",
|
|
||||||
"inter-f20",
|
|
||||||
"inter-f21",
|
|
||||||
"inter-fall",
|
|
||||||
"inter-mcs-cs",
|
|
||||||
"inter-mcs-dsa",
|
|
||||||
"inter-mcs-ism",
|
|
||||||
"inter-mcs-se",
|
|
||||||
"inter-mcs",
|
|
||||||
"inter-me",
|
|
||||||
"inter-msc-aims",
|
|
||||||
"inter-msc-ais",
|
|
||||||
"inter-s21",
|
|
||||||
"inter-s22",
|
|
||||||
"inter-spring",
|
|
||||||
"inter-summer",
|
|
||||||
"inter-summer22",
|
|
||||||
"inter",
|
|
||||||
"labo-3ie",
|
|
||||||
"labo-labsi-devs",
|
|
||||||
"labo-labsi-employees",
|
|
||||||
"labo-labsi-interns",
|
|
||||||
"labo-labsi-manager",
|
|
||||||
"labo-labsi-roots",
|
|
||||||
"labo-labsi-students",
|
|
||||||
"labo-labsi",
|
|
||||||
"labo-lrde-automates",
|
|
||||||
"labo-lrde-image-openstack",
|
|
||||||
"labo-lrde-image",
|
|
||||||
"labo-lrde-roots",
|
|
||||||
"labo-lrde",
|
|
||||||
"labo-lre-roots",
|
|
||||||
"labo-lre",
|
|
||||||
"labo-lse-eslr",
|
|
||||||
"labo-lse-roots",
|
|
||||||
"labo-lse-secu",
|
|
||||||
"labo-lse-sys",
|
|
||||||
"labo-lse",
|
|
||||||
"labo-metalab-roots",
|
|
||||||
"labo-seal-permanents",
|
|
||||||
"labo-seal-stagiaires",
|
|
||||||
"labo-seal",
|
|
||||||
"lyn",
|
|
||||||
"ofa-scolarite",
|
|
||||||
"pi-fle",
|
|
||||||
"pi",
|
|
||||||
"prepa-admissions",
|
|
||||||
"prepa-assistants-acdc-lyn",
|
|
||||||
"prepa-assistants-acdc-prs",
|
|
||||||
"prepa-assistants-acdc-rns",
|
|
||||||
"prepa-assistants-acdc-stg",
|
|
||||||
"prepa-assistants-acdc-tls",
|
|
||||||
"prepa-assistants-acdc",
|
|
||||||
"prepa-assistants-asm-lyn",
|
|
||||||
"prepa-assistants-asm-prs",
|
|
||||||
"prepa-assistants-asm-rns",
|
|
||||||
"prepa-assistants-asm-stg",
|
|
||||||
"prepa-assistants-asm-tls",
|
|
||||||
"prepa-assistants-asm",
|
|
||||||
"prepa-spe-api-s3-prs",
|
|
||||||
"prepa-spe-api-s4-prs",
|
|
||||||
"prepa-spe-lyn",
|
|
||||||
"prepa-spe-prs",
|
|
||||||
"prepa-spe-rns",
|
|
||||||
"prepa-spe-s3-lyn-l1",
|
|
||||||
"prepa-spe-s3-lyn-l2",
|
|
||||||
"prepa-spe-s3-lyn-l3",
|
|
||||||
"prepa-spe-s3-lyn",
|
|
||||||
"prepa-spe-s3-prs-a1",
|
|
||||||
"prepa-spe-s3-prs-a2",
|
|
||||||
"prepa-spe-s3-prs-b1",
|
|
||||||
"prepa-spe-s3-prs-b2",
|
|
||||||
"prepa-spe-s3-prs-c1",
|
|
||||||
"prepa-spe-s3-prs-c2",
|
|
||||||
"prepa-spe-s3-prs-d1",
|
|
||||||
"prepa-spe-s3-prs-d2",
|
|
||||||
"prepa-spe-s3-prs-e1",
|
|
||||||
"prepa-spe-s3-prs-pa1",
|
|
||||||
"prepa-spe-s3-prs-pa2",
|
|
||||||
"prepa-spe-s3-prs",
|
|
||||||
"prepa-spe-s3-rns-r1",
|
|
||||||
"prepa-spe-s3-rns-r2",
|
|
||||||
"prepa-spe-s3-rns",
|
|
||||||
"prepa-spe-s3-stg-spe1",
|
|
||||||
"prepa-spe-s3-stg-spe2",
|
|
||||||
"prepa-spe-s3-stg",
|
|
||||||
"prepa-spe-s3-tls-t1",
|
|
||||||
"prepa-spe-s3-tls-t2",
|
|
||||||
"prepa-spe-s3-tls",
|
|
||||||
"prepa-spe-s3",
|
|
||||||
"prepa-spe-s3s-prs-a1",
|
|
||||||
"prepa-spe-s3s-prs-a2",
|
|
||||||
"prepa-spe-s3s-prs",
|
|
||||||
"prepa-spe-s3s",
|
|
||||||
"prepa-spe-s4-inter",
|
|
||||||
"prepa-spe-s4-lyn-a",
|
|
||||||
"prepa-spe-s4-lyn-b",
|
|
||||||
"prepa-spe-s4-lyn-l1",
|
|
||||||
"prepa-spe-s4-lyn-l2",
|
|
||||||
"prepa-spe-s4-lyn-l3",
|
|
||||||
"prepa-spe-s4-lyn",
|
|
||||||
"prepa-spe-s4-prs-a1",
|
|
||||||
"prepa-spe-s4-prs-a2",
|
|
||||||
"prepa-spe-s4-prs-b1",
|
|
||||||
"prepa-spe-s4-prs-b2",
|
|
||||||
"prepa-spe-s4-prs-c1",
|
|
||||||
"prepa-spe-s4-prs-c2",
|
|
||||||
"prepa-spe-s4-prs",
|
|
||||||
"prepa-spe-s4-rns-r1",
|
|
||||||
"prepa-spe-s4-rns-r2",
|
|
||||||
"prepa-spe-s4-rns",
|
|
||||||
"prepa-spe-s4-stg-spe1",
|
|
||||||
"prepa-spe-s4-stg-spe2",
|
|
||||||
"prepa-spe-s4-stg",
|
|
||||||
"prepa-spe-s4-tls-t1",
|
|
||||||
"prepa-spe-s4-tls-t2",
|
|
||||||
"prepa-spe-s4-tls",
|
|
||||||
"prepa-spe-s4",
|
|
||||||
"prepa-spe-stg",
|
|
||||||
"prepa-spe-tls",
|
|
||||||
"prepa-spe",
|
|
||||||
"prepa-sup-lyn",
|
|
||||||
"prepa-sup-prs",
|
|
||||||
"prepa-sup-rns",
|
|
||||||
"prepa-sup-s1-lyn-l1",
|
|
||||||
"prepa-sup-s1-lyn-l2",
|
|
||||||
"prepa-sup-s1-lyn-l3",
|
|
||||||
"prepa-sup-s1-lyn-l4",
|
|
||||||
"prepa-sup-s1-lyn",
|
|
||||||
"prepa-sup-s1-prs-a1",
|
|
||||||
"prepa-sup-s1-prs-a2",
|
|
||||||
"prepa-sup-s1-prs-a3",
|
|
||||||
"prepa-sup-s1-prs-b1",
|
|
||||||
"prepa-sup-s1-prs-b2",
|
|
||||||
"prepa-sup-s1-prs-c1",
|
|
||||||
"prepa-sup-s1-prs-c2",
|
|
||||||
"prepa-sup-s1-prs-d1",
|
|
||||||
"prepa-sup-s1-prs-d2",
|
|
||||||
"prepa-sup-s1-prs-e1",
|
|
||||||
"prepa-sup-s1-prs-e2",
|
|
||||||
"prepa-sup-s1-prs-f1",
|
|
||||||
"prepa-sup-s1-prs-pa1",
|
|
||||||
"prepa-sup-s1-prs-pa2",
|
|
||||||
"prepa-sup-s1-prs",
|
|
||||||
"prepa-sup-s1-rns-r1",
|
|
||||||
"prepa-sup-s1-rns-r2",
|
|
||||||
"prepa-sup-s1-rns",
|
|
||||||
"prepa-sup-s1-stg-st1",
|
|
||||||
"prepa-sup-s1-stg-st2",
|
|
||||||
"prepa-sup-s1-stg",
|
|
||||||
"prepa-sup-s1-tls-t1",
|
|
||||||
"prepa-sup-s1-tls-t2",
|
|
||||||
"prepa-sup-s1-tls-t3",
|
|
||||||
"prepa-sup-s1-tls",
|
|
||||||
"prepa-sup-s1",
|
|
||||||
"prepa-sup-s1s-prs",
|
|
||||||
"prepa-sup-s1s",
|
|
||||||
"prepa-sup-s2-lyn-l1",
|
|
||||||
"prepa-sup-s2-lyn-l2",
|
|
||||||
"prepa-sup-s2-lyn-l3",
|
|
||||||
"prepa-sup-s2-lyn-l4",
|
|
||||||
"prepa-sup-s2-lyn",
|
|
||||||
"prepa-sup-s2-prs-a1",
|
|
||||||
"prepa-sup-s2-prs-a2",
|
|
||||||
"prepa-sup-s2-prs-a3",
|
|
||||||
"prepa-sup-s2-prs-b1",
|
|
||||||
"prepa-sup-s2-prs-b2",
|
|
||||||
"prepa-sup-s2-prs-c1",
|
|
||||||
"prepa-sup-s2-prs-c2",
|
|
||||||
"prepa-sup-s2-prs-d1",
|
|
||||||
"prepa-sup-s2-prs-d2",
|
|
||||||
"prepa-sup-s2-prs-e1",
|
|
||||||
"prepa-sup-s2-prs-e2",
|
|
||||||
"prepa-sup-s2-prs-f1",
|
|
||||||
"prepa-sup-s2-prs",
|
|
||||||
"prepa-sup-s2-rns-r1",
|
|
||||||
"prepa-sup-s2-rns-r2",
|
|
||||||
"prepa-sup-s2-rns-r3",
|
|
||||||
"prepa-sup-s2-rns",
|
|
||||||
"prepa-sup-s2-stg-st1",
|
|
||||||
"prepa-sup-s2-stg-st2",
|
|
||||||
"prepa-sup-s2-stg",
|
|
||||||
"prepa-sup-s2-tls-t1",
|
|
||||||
"prepa-sup-s2-tls-t2",
|
|
||||||
"prepa-sup-s2-tls-t3",
|
|
||||||
"prepa-sup-s2-tls",
|
|
||||||
"prepa-sup-s2",
|
|
||||||
"prepa-sup-s2s-prs-a1",
|
|
||||||
"prepa-sup-s2s-prs-a2",
|
|
||||||
"prepa-sup-s2s-prs",
|
|
||||||
"prepa-sup-s2s",
|
|
||||||
"prepa-sup-stg",
|
|
||||||
"prepa-sup-tls",
|
|
||||||
"prepa-sup",
|
|
||||||
"prepa",
|
|
||||||
"prs",
|
|
||||||
"rns",
|
|
||||||
"service-accounts",
|
|
||||||
"stg",
|
|
||||||
"students",
|
|
||||||
"teachers-permanent",
|
|
||||||
"teachers",
|
|
||||||
"tls",
|
|
||||||
"users",
|
|
||||||
"wheel"
|
|
||||||
]
|
|
||||||
}
|
|
16
src/bot.ts
16
src/bot.ts
|
@ -121,25 +121,21 @@ export class EpitlsBot {
|
||||||
|
|
||||||
function message_command_response_sending_email(email: string) {
|
function message_command_response_sending_email(email: string) {
|
||||||
const embed = new EmbedBuilder()
|
const embed = new EmbedBuilder()
|
||||||
.setTitle("`🟡`| Vérification")
|
.setTitle("`🟡`| Verification")
|
||||||
.setDescription(`
|
.setDescription(`Sending a verification link to your email \`${email}\`.`);
|
||||||
Un lien de vérification a été envoyé par e-mail à \`${email}\`.
|
|
||||||
Le lien expirera dans 5 minutes.
|
|
||||||
**Il pourraît être arrivé dans \`Courrier indésirable\`.**
|
|
||||||
`.trim());
|
|
||||||
return { embeds: [embed] };
|
return { embeds: [embed] };
|
||||||
}
|
}
|
||||||
|
|
||||||
function message_command_response_error(msg: string) {
|
function message_command_response_error(msg: string) {
|
||||||
const embed = new EmbedBuilder()
|
const embed = new EmbedBuilder()
|
||||||
.setTitle("`❌`| Vérification")
|
.setTitle("`❌`| Verification")
|
||||||
.setDescription(`Échec de la vérification :\n\`${msg}\``);
|
.setDescription(`An error occured\n\`${msg}\``);
|
||||||
return { embeds: [embed] };
|
return { embeds: [embed] };
|
||||||
}
|
}
|
||||||
|
|
||||||
function message_command_response_success() {
|
function message_command_response_success() {
|
||||||
const embed = new EmbedBuilder()
|
const embed = new EmbedBuilder()
|
||||||
.setTitle("`✅`| Vérification")
|
.setTitle("`✅`| Verification")
|
||||||
.setDescription("Votre e-mail CRI a bien été associé à ce compte Discord.");
|
.setDescription("Your email was associated with this account.");
|
||||||
return { embeds: [embed] };
|
return { embeds: [embed] };
|
||||||
}
|
}
|
||||||
|
|
49
src/cri.ts
49
src/cri.ts
|
@ -1,14 +1,9 @@
|
||||||
import { z } from "https://deno.land/x/zod@v3.22.4/mod.ts";
|
import { z } from "https://deno.land/x/zod@v3.22.4/mod.ts";
|
||||||
import { log_from } from "./utils.ts";
|
|
||||||
const log = (...args: unknown[]) => log_from(import.meta.url, ...args);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Wraps the CRI API.
|
* Wraps the CRI API.
|
||||||
*/
|
*/
|
||||||
export class CriApi {
|
export class CriApi {
|
||||||
/**
|
|
||||||
* note : a CRI token is actually
|
|
||||||
*/
|
|
||||||
private token;
|
private token;
|
||||||
|
|
||||||
public constructor(token: string) {
|
public constructor(token: string) {
|
||||||
|
@ -19,8 +14,13 @@ export class CriApi {
|
||||||
* Fetches an array of the groups an user has been part of.
|
* Fetches an array of the groups an user has been part of.
|
||||||
*/
|
*/
|
||||||
public async groups_of(login: string) {
|
public async groups_of(login: string) {
|
||||||
log(`Fetching groups of '${login}'.`);
|
const response = await fetch(`https://cri.epita.fr/api/v2/users/${login}/`, {
|
||||||
const response = await fetch_json_auth(`https://cri.epita.fr/api/v2/users/${login}/`, this.token);
|
headers: {
|
||||||
|
accept: "application/json",
|
||||||
|
authorization: "Basic " + this.token,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
const body = await response.json();
|
||||||
const group = z.object({ slug: z.string() });
|
const group = z.object({ slug: z.string() });
|
||||||
const parser = z.object({
|
const parser = z.object({
|
||||||
primary_group: group,
|
primary_group: group,
|
||||||
|
@ -30,7 +30,7 @@ export class CriApi {
|
||||||
})),
|
})),
|
||||||
current_groups: z.array(group),
|
current_groups: z.array(group),
|
||||||
});
|
});
|
||||||
const parsed = parser.parse(response);
|
const parsed = parser.parse(body);
|
||||||
const result = new Set<string>();
|
const result = new Set<string>();
|
||||||
result.add(parsed.primary_group.slug);
|
result.add(parsed.primary_group.slug);
|
||||||
for (const group of parsed.current_groups) result.add(group.slug);
|
for (const group of parsed.current_groups) result.add(group.slug);
|
||||||
|
@ -42,43 +42,12 @@ export class CriApi {
|
||||||
* Tests wether a given login exists within the CRI registry.
|
* Tests wether a given login exists within the CRI registry.
|
||||||
*/
|
*/
|
||||||
public async user_exists(login: string) {
|
public async user_exists(login: string) {
|
||||||
log(`Testing existence of user '${login}'.`);
|
|
||||||
const response = await fetch(`https://cri.epita.fr/api/v2/users/${login}/`, {
|
const response = await fetch(`https://cri.epita.fr/api/v2/users/${login}/`, {
|
||||||
headers: {
|
headers: {
|
||||||
accept: "application/json",
|
accept: "application/json",
|
||||||
authorization: "Basic " + this.token,
|
authorization: "Basic " + this.token,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const found = response.status === 200;
|
return response.status === 200;
|
||||||
return found;
|
|
||||||
}
|
|
||||||
|
|
||||||
public async get_all_groups() {
|
|
||||||
const result = [] as string[];
|
|
||||||
const response_parser = z.object({
|
|
||||||
next: z.string().or(z.null()),
|
|
||||||
results: z.array(z.object({
|
|
||||||
slug: z.string(),
|
|
||||||
})),
|
|
||||||
});
|
|
||||||
let next_url = `https://cri.epita.fr/api/v2/groups/`;
|
|
||||||
while (true) {
|
|
||||||
const response = await fetch_json_auth(next_url, this.token);
|
|
||||||
const parsed = response_parser.parse(response);
|
|
||||||
result.push(...parsed.results.map((g) => g.slug));
|
|
||||||
if (parsed.next === null) break;
|
|
||||||
next_url = parsed.next;
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async function fetch_json_auth(url: string, token: string) {
|
|
||||||
const response = await fetch(url, {
|
|
||||||
headers: {
|
|
||||||
accept: "application/json",
|
|
||||||
authorization: "Basic " + token,
|
|
||||||
},
|
|
||||||
});
|
|
||||||
return await response.json() as unknown;
|
|
||||||
}
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue