Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/python
- # -*- coding: utf-8 -*-
- import os
- import mechanize
- from bs4 import BeautifulSoup
- ### Globals
- base = './base/' # Where the data will be stored
- estts = [] # List of establishments
- br = mechanize.Browser()
- ### Classes
- class Group(object):
- def __init__(self, name='', folder=''):
- self.name = name
- self.folder = folder
- class Department(object):
- def __init__(self, name='', folder=''):
- self.name = name
- self.folder = folder
- self.groups = []
- # Fetch the department's groups from the server
- def fetch(self):
- # Creates the department
- def create(self, file):
- # Update the listing file and create the folder
- if not os.path.exists(self.folder):
- os.mkdir(self.folder)
- file.write(self.name + ';' + self.folder + '\n')
- # Create the groups
- os.chdir(self.folder)
- for group in self.groups:
- group.create()
- os.chdir('..')
- class Establishment(object):
- def __init__(self, name='', folder=''):
- self.name = name
- self.folder = folder
- self.depts = []
- # Creates the establishment
- def create(self, file):
- # Update the listing file and create the folder
- if not os.path.exists(self.folder):
- os.mkdir(self.folder)
- file.write(self.name + ';' + self.folder + '\n')
- # Create the departments
- os.chdir(self.folder)
- depts_file = open('depts', 'w')
- for dept in self.depts:
- dept.create(depts_file)
- depts_file.close()
- os.chdir('..')
- # Add a department
- def add(self, dept):
- self.depts.append(dept)
- ### Functions
- def login(dpt):
- r = br.open('http://www.formadep.fr/' + dpt.name)
- r = br.open('http://www.formadep.fr/extretud/exte_edtgroupe.aspx')
- return r
- ### Actual script
- # Fill estts with the data we know, the rest will be fetched from the server.
- estts.append(Establishment('IUT La Rochelle', '17000'))
- estts[0].add(Department('Génie Bio', 'gblr'))
- estts[0].add(Department('Génie Civil', 'gclr'))
- estts[0].add(Department('Informatique', 'infolarochelle'))
- estts[0].add(Department('Réseaux et Télécom', 'rtlr'))
- estts[0].add(Department('Tech de Co', 'tclr'))
- estts.append(Establishment('IUT Créteil', '94000'))
- estts[1].add(Department('Génie Bio', 'gbcreteil'))
- estts[1].add(Department('Réseaux et Télécom', 'rtcreteil'))
- estts[1].add(Department('Tech de Co', 'tccreteil'))
- estts[1].add(Department('Mesures Physiques', 'mpcreteil'))
- estts[1].add(Department('GEii', 'geiicreteil'))
- estts[1].add(Department('Chimie', 'chimiecreteil'))
- estts.append(Establishment('IUT Saint-Brieuc', '22000'))
- estts[2].depts.append(Department('Tech de Co', 'tcstbrieuc'))
- # Change dir to base
- os.chdir(base)
- # Create the establishments
- estts_file = open('estts', 'w')
- for estt in estts:
- estt.create(estts_file)
- estts_file.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement