From a156d990b94b89c0fd84ad36fbc5721f092fdadf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20H=C3=A4rter?= Date: Fri, 7 Jul 2023 18:44:07 +0200 Subject: [PATCH] Added saving and loading of processed update ids. --- F1DataBot.pm | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/F1DataBot.pm b/F1DataBot.pm index 71adfa8..9604baa 100644 --- a/F1DataBot.pm +++ b/F1DataBot.pm @@ -1,5 +1,5 @@ # Important for switch feature -use v5.34; +use v5.32; use utf8; use strict; @@ -13,6 +13,7 @@ use Encode; # CPAN packages use JSON; use Log::Log4perl; +use YAML; # Package name package F1DataBot; @@ -36,6 +37,9 @@ sub new { Telegram => 'https://api.telegram.org', }; + # load remembered update ids + $Self->{UpdateIDs} = YAML::LoadFile('update_ids.yml'); + return $Self; } @@ -386,11 +390,20 @@ sub fetchMessages { my @Messages = $MessageDataRaw->{result}->@*; $Self->{LogObject} ->info( 'fetchMessages: Messages returned are ' . Dumper( \@Messages ) ); + + MESSAGE: for my $Message (@Messages) { $Self->{LogObject}->info('fetchMessages: Calling processMessage'); - $Self->processMessage( Message => $Message, ); + if ($Self->{UpdateIDs}{$Message->{update_id}}) { + $Self->{LogObject}->info('fetchMessages: Skipping known update_id'); + next MESSAGE; + } + else { + $Self->{UpdateIDs}{$Message->{update_id}} = 1; + $Self->processMessage( Message => $Message, ); + } } - + YAML::DumpFile('update_ids.yml', $Self->{UpdateIDs}); } 1;