From 13fabcbd8f1d260b605ef7176f6af02b4b795f35 Mon Sep 17 00:00:00 2001 From: borisneubert <> Date: Sat, 10 Jan 2015 20:19:03 +0000 Subject: [PATCH] 57_Calendar: enable gzipped ical files (forum #31845) git-svn-id: https://svn.fhem.de/fhem/trunk@7509 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/CHANGED | 1 + fhem/FHEM/57_Calendar.pm | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/fhem/CHANGED b/fhem/CHANGED index ddc3d9887..f8b56286f 100644 --- a/fhem/CHANGED +++ b/fhem/CHANGED @@ -1,5 +1,6 @@ # Add changes at the top of the list. Keep it in ASCII, and 80-char wide. # Do not insert empty lines here, update check depends on it. + - feature: 57_Calendar: enable gzipped ical files (forum #31845) - bugfix: 70_Jabber.pm: XMPP DNS SVR record query added - bugfix: 70_PIONEERAVR: fixed "missed to call readingsBeginUpdate first" - feature: fhemweb.js rewrite based on jQuery, single-widget-implementation diff --git a/fhem/FHEM/57_Calendar.pm b/fhem/FHEM/57_Calendar.pm index be7dc638b..9b1e60654 100644 --- a/fhem/FHEM/57_Calendar.pm +++ b/fhem/FHEM/57_Calendar.pm @@ -942,6 +942,17 @@ sub Calendar_GetUpdate($$) { #main::Debug $ical->asString(); my @entries= @{$ical->{entries}}; + 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}}; + } + }; if($#entries<0) { Log3 $hash, 1, "Calendar " . $hash->{NAME} . ": Not an ical file at URL"; $hash->{STATE}= "Not an ical file at URL";