Calendar iiens.net to Google
Page datant de 2017, iiens.net ne propose plus le calendrier des cours/salles réservées. Le nouveau iiens.net ne fonctionnera pas de la même manière.
Code « machine à écrire »
iiens.net sur Google
Attention, cela ne s'applique qu'aux événements publiques 🙂
Voilà un petit script pour rajouter les éléments iiens.net sur votre google calendar
Le script dans l'état ne met que les éléments de la vie associative (mais il se configure aisément)
— Tails 2017/10/09 17:24
TODO
Actuellement il faut lancer brusquement le script manuellement pour avoir une mise à jour. Voir comment l'execution peut se faire automatiquement est à prévoir
Code
var now =new Date();
var mycal = CalendarApp.getCalendarById("hlg8igq79s8h34ka583ij2d128@group.calendar.google.com")
evtype = ["V"] // ['V', 'DS', 'C', 'TP', 'TD']
year = [0] // [0,1,2,3] // année en cours
// type are 'V' 'DS' 'C' 'TP' 'TD' for asso, controle, cours, tp, td
function addEvents(jsonSearch,evtype){
for( var i = 0; i < jsonSearch.length; i++){
var eventsg = jsonSearch[i].eventgroups
for(var m in eventsg) {
events = eval("eventsg."+m+".events")
for(var n in events) {
event = eval("events."+n)
if( event.shorttype == evtype ){
var day = event.begin
var real_start = event.real_start * 15
var duration = event.duration * 15
var title = event.title
var location = event.location
var author = event.teacher
var start = new Date(new Date(day).getTime() + real_start*60000)
var end = new Date(start.getTime() +duration*60000);
mycal.createEvent((""+title+"\n"+location+"\n"+author), start, end)
}
}
}
}
}
function strEvent(event){
return event.getTitle()+event.getStartTime()
}
function removeDuplicateEvent(){
var ev = []
var events = mycal.getEvents(new Date("2015-01-01"), new Date("2022-01-01"))
for( var i in events){
event = events[i]
var s = strEvent(event)
for( var j in ev ){
if( ev[j] == s ) {
Logger.log(s)
try{event.deleteEvent()}
catch(err){Logger.log(s)}
}
}
ev.push(s)
}
}
function updateCal() {
for ( var i in year ) {
var y = year[i]
for( var nweek = 0 ; nweek < 12 ; nweek++ ){
var url = "https://www.iiens.net/etudiants/edt.php?year="+y+"&ts="+parseInt((now.getTime()+604800000*nweek)/1000)+"&format=json";
var jsonData = UrlFetchApp.fetch(url);
var jsonString = jsonData.getContentText();
var jsonSearch = JSON.parse(jsonString);
for (var j in evtype){
ev = evtype[j]
addEvents(jsonSearch,ev)
}
}
}
removeDuplicateEvent()
}