Outils pour utilisateurs

Outils du site


calendar

Ceci est une ancienne révision du document !


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


Code

updateCal.js
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()
}
calendar.1507563494.txt.gz · Dernière modification: 2017/10/09 17:38 par tchiling2012