2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-03-04 05:16:45 +00:00

70_Pushover.pm: keep failed userkeys in INTERNALS

git-svn-id: https://svn.fhem.de/fhem/trunk@9960 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
jpawlowski 2015-11-22 00:01:46 +00:00
parent 3436ee3c3d
commit fa860759ba

View File

@ -447,28 +447,41 @@ sub Pushover_ReceiveCommand($$$) {
if ( ReadingsVal($name,"tokenState","") ne "valid" );
}
if (!defined($values->{USER_KEY})) {
if ( ref($return) eq "HASH" && defined($return->{user}) ) {
$state = "unauthorized";
readingsBulkUpdate( $hash, "userState", $return->{user} )
if ( ReadingsVal($name,"userState","") ne $return->{user} );
} elsif ( ref($return) ne "HASH" && $return =~ m/"user":"invalid"/ ) {
$state = "unauthorized";
readingsBulkUpdate( $hash, "userState", "invalid" )
if ( ReadingsVal($name,"userState","") ne "invalid" );
} else {
readingsBulkUpdate( $hash, "userState", "valid" )
if ( ReadingsVal($name,"userState","") ne "valid" );
}
if ( ref($return) eq "HASH" && defined($return->{user}) ) {
$state = "unauthorized" if ( !defined($values->{USER_KEY}) );
readingsBulkUpdate( $hash, "userState", $return->{user} )
if ( ReadingsVal($name,"userState","") ne $return->{user} && !defined($values->{USER_KEY}) );
$hash->{helper}{FAILED_USERKEYS}{ $values->{USER_KEY} } = "USERKEY ".$values->{USER_KEY}." ".$return->{user}." - ".$values{result}
if (defined($values->{USER_KEY}));
} elsif ( ref($return) ne "HASH" && $return =~ m/"user":"invalid"/ ) {
$state = "unauthorized" if ( !defined($values->{USER_KEY}) );
readingsBulkUpdate( $hash, "userState", "invalid" )
if ( ReadingsVal($name,"userState","") ne "invalid" && !defined($values->{USER_KEY}) );
$hash->{helper}{FAILED_USERKEYS}{ $values->{USER_KEY} } = "USERKEY ".$values->{USER_KEY}." invalid - ".$values{result}
if (defined($values->{USER_KEY}));
} else {
readingsBulkUpdate( $hash, "userState", "valid" )
if ( ReadingsVal($name,"userState","") ne "valid" && !defined($values->{USER_KEY}) );
delete $hash->{helper}{FAILED_USERKEYS}{ $values->{USER_KEY} }
if (!defined($values->{USER_KEY}) && defined($hash->{helper}{FAILED_USERKEYS}{ $values->{USER_KEY} }) );
}
} else {
$state = "limited" if($apiRemaining < 1);
readingsBulkUpdate( $hash, "tokenState", "valid" )
if ( ReadingsVal($name,"tokenState","") ne "valid" );
if ( ReadingsVal($name,"tokenState","") ne "valid" && !defined($values->{USER_KEY}) );
readingsBulkUpdate( $hash, "userState", "valid" )
if ( ReadingsVal($name,"userState","") ne "valid" );
if ( ReadingsVal($name,"userState","") ne "valid" && !defined($values->{USER_KEY}) );
}
# messages.json
@ -729,10 +742,13 @@ sub Pushover_SetMessage {
$values{action} = $1;
}
# check if we got a user or group key as device and use it as user-key instead of USER_KEY
# check if we got a user or group key as device and use it as user-key instead of hash->USER_KEY
if ( $values{device} =~ /^([A-Za-z0-9]{30})(:([A-Za-z0-9_-]+))?$/s ) {
$values{USER_KEY} = $1;
$values{device} = $3;
return $hash->{helper}{FAILED_USERKEYS}{ $values{USER_KEY} }
if (defined($hash->{helper}{FAILED_USERKEYS}{ $values{USER_KEY} }) );
}
#Check if all mandatory arguments are filled