From 7407113d8b7cb7076e4f3b3eca5b7f3ae34f5434 Mon Sep 17 00:00:00 2001 From: markusbloch <> Date: Fri, 26 Apr 2013 20:54:06 +0000 Subject: [PATCH] new reverse search provider dasschnelle.at for austrian telephone numbers git-svn-id: https://svn.fhem.de/fhem/trunk@3124 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/CHANGED | 2 ++ fhem/FHEM/72_FB_CALLMONITOR.pm | 48 +++++++++++++++++++++++++++++----- 2 files changed, 44 insertions(+), 6 deletions(-) diff --git a/fhem/CHANGED b/fhem/CHANGED index bea798d15..5695e724f 100644 --- a/fhem/CHANGED +++ b/fhem/CHANGED @@ -1,5 +1,7 @@ # Add changes at the top of the list. Keep it in ASCII - SVN + - feature: FB_CALLMONITOR: new reverse search provider dasschnelle.at for + reverse search of austrian telephone numbers - bugfix: event-on-change-reading in combination with event-change-interval - change: HUEDevice: allow color preset buttons in webCmd - feature: SYSSTAT: allow (remote) monitoring raspberry pi on chip temperature diff --git a/fhem/FHEM/72_FB_CALLMONITOR.pm b/fhem/FHEM/72_FB_CALLMONITOR.pm index 4e555d834..22bb8ce13 100755 --- a/fhem/FHEM/72_FB_CALLMONITOR.pm +++ b/fhem/FHEM/72_FB_CALLMONITOR.pm @@ -94,7 +94,7 @@ FB_CALLMONITOR_Initialize($) - $hash->{AttrList}= "do_not_notify:0,1 loglevel:1,2,3,4,5 unique-call-ids:0,1 local-area-code remove-leading-zero:0,1 reverse-search-cache-file reverse-search:all,internal,klicktel.de,dasoertliche.de,search.ch,none reverse-search-cache:0,1 reverse-search-phonebook-file ". + $hash->{AttrList}= "do_not_notify:0,1 loglevel:1,2,3,4,5 unique-call-ids:0,1 local-area-code remove-leading-zero:0,1 reverse-search-cache-file reverse-search:all,internal,klicktel.de,dasoertliche.de,search.ch,dasschnelle.at,none reverse-search-cache:0,1 reverse-search-phonebook-file ". $readingFnAttributes; } @@ -210,7 +210,6 @@ FB_CALLMONITOR_Read($) my $external_number = undef; - @array = split(";", $data); $external_number = $array[3] if(not $array[3] eq "0" and $array[1] eq "RING" and $array[3] ne ""); @@ -361,6 +360,7 @@ my $name = $hash->{NAME}; my $result; my $invert_match = undef; +chomp $number; # Using internal phonebook if available and enabled if(AttrVal($name, "reverse-search", "none") eq "all" or AttrVal($name, "reverse-search", "none") eq "internal" and defined($hash->{helper}{PHONEBOOK})) @@ -475,6 +475,42 @@ if(AttrVal($name, "reverse-search", "none") eq "search.ch") } } +# Austria ONLY!!! Ask dasschnelle.at +if(AttrVal($name, "reverse-search", "none") eq "dasschnelle.at") +{ + Log GetLogLevel($name, 4), "FB_CALLMONITOR: $name using dasschnelle.at for reverse search of $number"; + + $result = GetFileFromURL("http://www.dasschnelle.at/result/index/results?PerPage=5&pageNum=1&what=".$number."&where=&rubrik=0&bezirk=0&orderBy=Standard&mapsearch=false", 5, undef, 1); + if(not defined($result)) + { + if(AttrVal($name, "reverse-search-cache", "0") eq "1") + { + $hash->{helper}{CACHE}{$number} = "timeout"; + undef($result); + return "timeout"; + } + + } + else + { + #Log 2, $result; + if($result =~ /name\s+:\s+"(.+?)",/) + { + + $invert_match = ""; + + while($result =~ /name\s+:\s+"(.+?)",/g) + { + $invert_match = $1 if(length($1) > length($invert_match)); + } + + $invert_match = FB_CALLMONITOR_html2txt($invert_match); + FB_CALLMONITOR_writeToCache($hash, $number, $invert_match) if(AttrVal($name, "reverse-search-cache", "0") eq "1"); + undef($result); + return $invert_match; + } + } +} if(AttrVal($name, "reverse-search-cache", "0") eq "1") { @@ -729,10 +765,10 @@ sub FB_CALLMONITOR_loadCacheFile($)