Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
divers:calendar [2023/08/30 15:54] – supprimée - modification externe (Unknown date) 127.0.0.1divers:calendar [2023/08/30 15:54] (Version actuelle) – ↷ Page déplacée de calendar à divers:calendar de-weerd2022
Ligne 1: Ligne 1:
 +======= 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 =====
 +
 +<file js 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()
 +}
 +</file>