57_Calendar - Unterstützung für gzip

Begonnen von Johannes_B, 10 Januar 2015, 12:42:07

Vorheriges Thema - Nächstes Thema

Johannes_B

Hi,

bei mir hat das Kalender Modul in Verbindung mit iCloud nicht funktioniert und bin daher auf die Spurensuche gegangen.
Es scheint so, dass die Daten von iCloud komprimiert ankommen, und damit kommt das Modul nicht klar.
Da man von HttpUtils_BlockingGet leider keinen Header bekommt, kann man den Content-Type nicht direkt überprüfen, deswegen wäre meine Lösung "Try-and-Error".

Sicherlich kann man den Code noch schöner bauen, aber ich wollte jetzt eine pragmatische Lösung:

  if($#entries<0) {
    eval { require Compress::Zlib; };
    if($@) {
      Log3 $hash, 1, "Calendar " . $hash->{NAME} . ": Maybe gzip data, but cannot load Compress::Zlib";
    }
    else {
      $ics = Compress::Zlib::memGunzip($ics);
      $ical->parse(split("\n",$ics));
      @entries= @{$ical->{entries}};
    }
  };


Das Ganze kommt in Zeile 945.

Wäre schön, wenn das (oder was Vergleichbares) ins Repo kommt.


Gruß,

Johannes
FHEM Control - an iOS app - available on the App Store:
https://itunes.apple.com/app/id936674170

Dr. Boris Neubert

Hallo,

bitte hänge einen Patch an.

svn diff 57_Calendar.pm > 57_Calendar.pm.patch

Dann teste ich das nochmal und checke es ein.

Danke
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Johannes_B

Klar, gerne, anbei der Patch. :)


Gruß,

Johannes
FHEM Control - an iOS app - available on the App Store:
https://itunes.apple.com/app/id936674170

Dr. Boris Neubert

Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Johannes_B

FHEM Control - an iOS app - available on the App Store:
https://itunes.apple.com/app/id936674170