50_SSChatBot: contrib 1.0.0

git-svn-id: https://svn.fhem.de/fhem/trunk@20688 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
DS_Starter
2019-12-08 13:56:02 +00:00
parent 06cddca175
commit bd38ac8996

View File

@@ -269,8 +269,7 @@ sub SSChatBot_Set($@) {
my $prop1 = $a[3]; my $prop1 = $a[3];
my $prop2 = $a[4]; my $prop2 = $a[4];
my $prop3 = $a[5]; my $prop3 = $a[5];
my $success; my ($success,$ret,$setlist);
my $setlist;
return if(IsDisabled($name)); return if(IsDisabled($name));
@@ -286,6 +285,7 @@ sub SSChatBot_Set($@) {
"botToken ". "botToken ".
"listSendqueue:noArg ". "listSendqueue:noArg ".
($idxlist?"purgeSendqueue:-all-,-permError-,$idxlist ":"purgeSendqueue:-all-,-permError- "). ($idxlist?"purgeSendqueue:-all-,-permError-,$idxlist ":"purgeSendqueue:-all-,-permError- ").
"restartSendqueue:noArg ".
"sendItem:textField-long " "sendItem:textField-long "
; ;
} }
@@ -304,7 +304,6 @@ sub SSChatBot_Set($@) {
} elsif ($opt eq "listSendqueue") { } elsif ($opt eq "listSendqueue") {
my $sub = sub ($) { my $sub = sub ($) {
my ($idx) = @_; my ($idx) = @_;
my $ret;
foreach my $key (reverse sort keys %{$data{SSChatBot}{$name}{sendqueue}{entries}{$idx}}) { foreach my $key (reverse sort keys %{$data{SSChatBot}{$name}{sendqueue}{entries}{$idx}}) {
$ret .= ", " if($ret); $ret .= ", " if($ret);
$ret .= $key."=>".$data{SSChatBot}{$name}{sendqueue}{entries}{$idx}{$key}; $ret .= $key."=>".$data{SSChatBot}{$name}{sendqueue}{entries}{$idx}{$key};
@@ -382,6 +381,14 @@ sub SSChatBot_Set($@) {
SSChatBot_getapisites($name); SSChatBot_getapisites($name);
} elsif ($opt eq "restartSendqueue") {
$ret = SSChatBot_getapisites($name);
if($ret) {
return $ret;
} else {
return "The SendQueue has been restarted.";
}
} else { } else {
return "$setlist"; return "$setlist";
} }
@@ -712,7 +719,7 @@ sub SSChatBot_checkretry ($$) {
$rs = 60; $rs = 60;
} elsif ($rc < 7) { } elsif ($rc < 7) {
$rs = 1800; $rs = 1800;
} elsif ($rc < 9) { } elsif ($rc < 30) {
$rs = 3600; $rs = 3600;
} else { } else {
$rs = 86400; $rs = 86400;
@@ -742,7 +749,7 @@ sub SSChatBot_getapisites($) {
my $inprot = $hash->{INPROT}; my $inprot = $hash->{INPROT};
my $apiinfo = $hash->{HELPER}{APIINFO}; # Info-Seite für alle API's, einzige statische Seite ! my $apiinfo = $hash->{HELPER}{APIINFO}; # Info-Seite für alle API's, einzige statische Seite !
my $chatexternal = $hash->{HELPER}{CHATEXTERNAL}; my $chatexternal = $hash->{HELPER}{CHATEXTERNAL};
my ($url,$param,$idxset); my ($url,$param,$idxset,$ret);
# API-Pfade und MaxVersions ermitteln # API-Pfade und MaxVersions ermitteln
Log3($name, 4, "$name - ####################################################"); Log3($name, 4, "$name - ####################################################");
@@ -750,8 +757,9 @@ sub SSChatBot_getapisites($) {
Log3($name, 4, "$name - ####################################################"); Log3($name, 4, "$name - ####################################################");
if(!keys %{$data{SSChatBot}{$name}{sendqueue}{entries}}) { if(!keys %{$data{SSChatBot}{$name}{sendqueue}{entries}}) {
Log3($name, 4, "$name - SendQueue is empty. Nothing to do ..."); $ret = "Sendqueue is empty. Nothing to do ...";
return; Log3($name, 4, "$name - $ret");
return $ret;
} }
# den nächsten Eintrag aus "SendQueue" selektieren und ausführen wenn nicht forbidSend gesetzt ist # den nächsten Eintrag aus "SendQueue" selektieren und ausführen wenn nicht forbidSend gesetzt ist
@@ -765,16 +773,12 @@ sub SSChatBot_getapisites($) {
} }
if(!$idxset) { if(!$idxset) {
Log3($name, 4, "$name - Only entries with \"forbidSend\" are in Sendqueue. Escaping ..."); $ret = "Only entries with \"forbidSend\" are in Sendqueue. Escaping ...";
return; Log3($name, 4, "$name - $ret");
return $ret;
} }
# $hash->{OPIDX} = (sort{$a<=>$b} keys %{$data{SSChatBot}{$name}{sendqueue}{entries}})[0]; if ($hash->{HELPER}{APIPARSET}) { # API-Hashwerte sind bereits gesetzt -> Abruf überspringen
# $hash->{OPMODE} = $data{SSChatBot}{$name}{sendqueue}{entries}{$hash->{OPIDX}}{opmode};
if ($hash->{HELPER}{APIPARSET}) {
# API-Hashwerte sind bereits gesetzt -> Abruf überspringen
Log3($name, 4, "$name - API hashvalues already set - ignore get apisites"); Log3($name, 4, "$name - API hashvalues already set - ignore get apisites");
return SSChatBot_chatop($name); return SSChatBot_chatop($name);
} }
@@ -796,6 +800,8 @@ sub SSChatBot_getapisites($) {
callback => \&SSChatBot_getapisites_parse callback => \&SSChatBot_getapisites_parse
}; };
HttpUtils_NonblockingGet ($param); HttpUtils_NonblockingGet ($param);
return;
} }
#################################################################################### ####################################################################################