104 lines
3.0 KiB
Perl
104 lines
3.0 KiB
Perl
|
|
#!/usr/bin/perl
|
||
|
|
|
||
|
|
BEGIN { use lib '/usr/home/cfg' ; require push_inc ; }
|
||
|
|
|
||
|
|
require cfg ;
|
||
|
|
|
||
|
|
use CGI::Carp qw(fatalsToBrowser);
|
||
|
|
# use Date::Calc qw(:all);
|
||
|
|
# use DBI;
|
||
|
|
|
||
|
|
# https://itvadmin.co.za/cgi-bin/scripts/admin/oneoff/transfer_changes_to_database.pl?1
|
||
|
|
|
||
|
|
#-------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
my @ARGV = split(/\&/, $ENV{'QUERY_STRING'});
|
||
|
|
our $debug = $ARGV[0] ;
|
||
|
|
# our $username = 'rory' ;
|
||
|
|
|
||
|
|
if ($debug) { print "Content-type: text/html\n\n"; }
|
||
|
|
|
||
|
|
$debug = 0 ;
|
||
|
|
|
||
|
|
#------------------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
&today ;
|
||
|
|
|
||
|
|
&db_open_upd ;
|
||
|
|
# &db_open_ro ;
|
||
|
|
our $db_ignore_open_close = 1 ; # do one open and one close instead of repeating it
|
||
|
|
&transfer_data("changes","event_quotes_changes") ; ;
|
||
|
|
&transfer_data("changes_demos","demo_changes") ; ;
|
||
|
|
&transfer_data("changes_analytics","analytics_changes") ; ;
|
||
|
|
&transfer_data("changes_quotes","quotes_changes") ; ;
|
||
|
|
$db_ignore_open_close = 0 ; # do one open and one close instead of repeating it
|
||
|
|
&db_close_conn ;
|
||
|
|
|
||
|
|
|
||
|
|
exit;
|
||
|
|
|
||
|
|
#------------------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
sub transfer_data {
|
||
|
|
|
||
|
|
my ($changes_script,$changes_table) = @_ ;
|
||
|
|
|
||
|
|
my %seen_changes = () ; my $saved_line_max_id = 0 ; my $most_recent_line ; my $cnt_line = 1 ;
|
||
|
|
|
||
|
|
&db_min_ro($changes_table,'*','','','') ;
|
||
|
|
|
||
|
|
foreach (sort {$b <=> $a} keys %{$db{$changes_table}}) {
|
||
|
|
$seen_changes{$db{$changes_table}{$_}{changes}} = 1 ;
|
||
|
|
$saved_line_max_id = $_ if $saved_line_max_id < $_ ;
|
||
|
|
|
||
|
|
if ($cnt_line == 1) {
|
||
|
|
$cnt_line++ ;
|
||
|
|
my @abc = split(/\|/,$db{$changes_table}{$_}{changes}) ;
|
||
|
|
$most_recent_saved_line = $abc[0] ;
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
my $logfile = "/home/libs/data/logs/events/$changes_script.dat";
|
||
|
|
|
||
|
|
open(my $fh, "<", $logfile) or die "Can't open $logfile: $!";
|
||
|
|
|
||
|
|
my @lines = <$fh> ; # Slurp all lines into an array
|
||
|
|
|
||
|
|
# 202520250528164733|2025-05-28 16:47:33|event_quote_id='10427'|user_id=84|changed_from|last_update='2025-05-28 16:45:34',additional_notes='COURT 2 AND 3 Nkululeko 305 Aletia 31 5 COURT 2 Emihle 305 Nkululeko 31 5 COURT 3'
|
||
|
|
# 202520250528164733|2025-05-28 16:47:33|event_quote_id='10427'|user_id=84|changed_from|last_update='2025-05-28 16:45:34',additional_notes='COURT 2 AND 3 Nkululeko 305 Aletia 315 COURT 2 Emihle 305 Nkululeko 315 COURT 3'
|
||
|
|
|
||
|
|
my $line_count = scalar @lines ;
|
||
|
|
# my $line_count = $saved_line_max_id ;
|
||
|
|
$line_count += $saved_line_max_id ;
|
||
|
|
|
||
|
|
my %lines_ = () ;
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
foreach my $line (@lines) {
|
||
|
|
chomp $line ;
|
||
|
|
|
||
|
|
my @abc = split(/\|/,$line) ;
|
||
|
|
$seen_changes{$line} = 1 if $most_recent_saved_line && $abc[0] <= $most_recent_saved_line ;
|
||
|
|
|
||
|
|
$line_count-- if $seen_changes{$line} ;
|
||
|
|
$lines_{$line} = 1 ;
|
||
|
|
}
|
||
|
|
|
||
|
|
foreach my $line (@lines) {
|
||
|
|
chomp $line ;
|
||
|
|
next if $seen_changes{$line} ;
|
||
|
|
print "INSERT INTO $changes_table (id,changes) VALUES ($line_count,\"$line\") ; \n";
|
||
|
|
$line_count-- ;
|
||
|
|
}
|
||
|
|
|
||
|
|
close($fh);
|
||
|
|
|
||
|
|
} #-------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
use db ;
|
||
|
|
use today ;
|
||
|
|
use common ;
|
||
|
|
use common_min ;
|