======= 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) * [[https://script.google.com/d/1WuLJQQ3A4TO_4mmKEUermEZpEjH3Lub2UgY6cVTu2jUNTODLl3nv0LJ3/|Lien vers le script-google]] * [[https://calendar.google.com/calendar/embed?src=hlg8igq79s8h34ka583ij2d128%40group.calendar.google.com&ctz=Europe/Paris|Lien vers le calendrier des associations]] --- //[[tristan.tchilinguirian@gmail.com|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() }