-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathConnexion.py
41 lines (30 loc) · 1.45 KB
/
Connexion.py
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
import requests # permet de réaliser simplement (plus qu'avec urllib2) des requêtes HTTP
import getpass # permet d'utilier getpass.getpass([prompt[, stream]]) pour demander un mot de passe
import Option
class Connexion:
""" Demande le login et le mot de passe à l'initilisation de la classe et initialise les groupes disponibles
Les mêmes identifiants seront utilisés pour tous les appels à connect()
"""
def __init__(self):
self.login = input("Login : ")
self.mdp = getpass.getpass("Mot de passe : ")
self.correspondance_group_tab = Option.option.loadGroup()
""" Se connecte à l'emploi du temps en ligne et télécharge celui du groupe passé en paramètre """
def connect(self, group):
code_group = self.correspondance_group_tab[group]
request = requests.get(
'https://edt.univ-nantes.fr/sciences/' + code_group + '.ics',
auth=(self.login, self.mdp),
timeout=2)
if not 200 <= request.status_code < 300:
print("Error status while retrieving the ics file for group " + group + ".")
exit(1)
return request
""" Ajoute un nouveau groupe dans la liste des groupes disponibles """
def addAvailableGroup(self, group, code):
if group not in self.correspondance_group_tab:
self.correspondance_group_tab[group] = code
""" Supprime un groupe dans la liste des groupes disponibles """
def removeAvailableGroup(self, group):
if group in self.correspondance_group_tab:
del self.correspondance_group_tab[group]