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($)
  • loglevel
  • do_not_notify
  • readingFnAttributes
  • -
  • reverse-search (all|internal|klicktel.de|dasoertliche.de|search.ch|none)
  • +
  • reverse-search (all|internal|klicktel.de|dasoertliche.de|search.ch|dasschnelle.at|none)
  • Activate the reverse searching of the external number (at dial and call receiving). It is possible to select a specific web service, which should be used for reverse searching. - If the attribute is set to "all", the reverse search will use the internal phonebook (if running FHEM on a FritzBox) or reverse search on all websites (execept search.ch) until a valid answer is found on of them + If the attribute is set to "all", the reverse search will use the internal phonebook (if running FHEM on a FritzBox) or reverse search on all websites (execept search.ch and dasschnelle.at) until a valid answer is found on of them If is set to "none", then no reverse searching will be used.

    Default value is "none".

  • reverse-search-cache
  • If this attribute is activated each reverse-search result is saved in an internal cache @@ -828,12 +864,12 @@ sub FB_CALLMONITOR_loadCacheFile($)
  • loglevel
  • do_not_notify
  • readingFnAttributes
  • -
  • reverse-search (all|internal|klicktel.de|dasoertliche.de|search.ch|none)
  • +
  • reverse-search (all|internal|klicktel.de|dasoertliche.de|search.ch|dasschnelle.at|none)
  • Aktiviert die Rückwärtssuche der externen Rufnummer der Gegenstelle (bei eingehenden/abgehenden Anrufen). Es ist möglich einen bestimmten Suchanbieter zu verwenden, welcher für die Rückwärtssuche verwendet werden soll. Falls FHEM auf einer FritzBox Fon läuft, kann mit dem Wert "internal" ausschließlich das interne Telefonbuch verwendet werden. Wenn dieses Attribut auf dem Wert "all" steht, wird (sofern FHEM auf einer FritzBox Fon läuft) das interne Telefonbuch verwendet, - sowie alle verfügbaren Suchanbieter (ausser search.ch) + sowie alle verfügbaren Suchanbieter (ausser search.ch und dasschnelle.at) für die Rückwärtssuche herangezogen, solange bis irgend ein Anbieter ein valides Ergebniss liefert. Wenn der Wert "none" ist, wird keine Rückwärtssuche durchgeführt.

    Standardwert ist "none" (keine Rückwärtssuche).

  • reverse-search-cache