Use proper functions to check state of services in migration

This commit is contained in:
eleksir
2022-12-15 02:03:02 +03:00
parent 43c08e156f
commit 6e084995a7

View File

@@ -109,7 +109,7 @@ sub ListForbidden {
return join "\n", @list; return join "\n", @list;
} }
sub StatusForbidden { sub EnabledForbidden {
my $chatid = shift; my $chatid = shift;
my $ftype = shift; my $ftype = shift;
@@ -190,6 +190,24 @@ sub FortuneStatus ($) {
return $phrase; return $phrase;
} }
sub FortuneEnabled ($) {
my $chatid = shift;
my $cache = CHI->new (
driver => 'BerkeleyDB',
root_dir => $cachedir,
namespace => __PACKAGE__ . '_' . 'fortune',
);
my $state = $cache->get ($chatid);
if (defined $state && $state) {
return 1;
} else {
return 0;
}
}
sub FortuneToggleList () { sub FortuneToggleList () {
my $cache = CHI->new ( my $cache = CHI->new (
driver => 'BerkeleyDB', driver => 'BerkeleyDB',
@@ -561,33 +579,33 @@ sub PluginToggle (@) {
sub MigrateSettingsToNewChatID { sub MigrateSettingsToNewChatID {
my $old_id = shift; my $old_id = shift;
my $new_id = shift; my $new_id = shift;
# TODO: Catch errors, if error==1, than noop
if (FortuneStatus ($old_id)) { if (FortuneEnabled ($old_id)) {
FortuneToggle ($new_id, 1); FortuneToggle ($new_id, 1);
FortuneToggle ($old_id, 0);
} else { } else {
FortuneToggle ($new_id, 0); FortuneToggle ($new_id, 0);
} }
if (ChanMsgStatus ($old_id)) { if (ChanMsgEnabled ($old_id)) {
ChanMsgToggle ($new_id, 1); ChanMsgToggle ($new_id, 1);
} else { } else {
ChanMsgToggle ($new_id, 0); ChanMsgToggle ($new_id, 0);
} }
if (GreetMsgStatus ($old_id)) { if (GreetMsgEnabled ($old_id)) {
GreetMsgToggle ($new_id, 1); GreetMsgToggle ($new_id, 1);
} else { } else {
GreetMsgToggle ($new_id, 0); GreetMsgToggle ($new_id, 0);
} }
if (GoodbyeMsgStatus ($old_id)) { if (GoodbyeMsgEnabled ($old_id)) {
GoodbyeMsgToggle ($new_id, 1); GoodbyeMsgToggle ($new_id, 1);
} else { } else {
GoodbyeMsgToggle ($new_id, 0); GoodbyeMsgToggle ($new_id, 0);
} }
# TODO: forbidden types
foreach my $plugin (@PluginList) { foreach my $plugin (@PluginList) {
if (PluginEnabled ($old_id, $plugin)) { if (PluginEnabled ($old_id, $plugin)) {
PluginToggle ($new_id, $plugin, 1); PluginToggle ($new_id, $plugin, 1);
@@ -597,11 +615,11 @@ sub MigrateSettingsToNewChatID {
} }
foreach my $ftype (@ForbiddenMessageTypes) { foreach my $ftype (@ForbiddenMessageTypes) {
if (StatusForbidden($old_id, $ftype)) { if (EnabledForbidden($old_id, $ftype)) {
AddForbiddenType($new_id, $ftype); AddForbiddenType($new_id, $ftype);
} }
# Looks like we don't need to add forbiddent type for allowed types... right? # Looks like we don't need to add forbidden type for allowed types... right?
} }
return; return;