Fix scanner task creator

This commit is contained in:
Ryan Shpeherd
2026-09-26 10:59:52 -04:00
parent a04e6e241b
commit 5e5972c31a
+5 -17
View File
@@ -196,30 +196,18 @@ sub CreateReviewTasks {
# This avoids MariaDB's inconsistent JSON functions in SQL WHERE clauses, # This avoids MariaDB's inconsistent JSON functions in SQL WHERE clauses,
# which behave differently between CLI client and DBI connections. # which behave differently between CLI client and DBI connections.
my $sth = $dbh->prepare(" my $sth = $dbh->prepare("
SELECT id, video_id, results SELECT id, video_id
FROM tasks FROM tasks
WHERE task_type='AISCAN' AND status='COMPLETED' WHERE task_type='AISCAN'
AND status='COMPLETED'
AND JSON_EXTRACT(results, '\$.verdict') = 1
AND (SELECT 1 FROM tasks t2 WHERE t2.video_id = tasks.video_id AND t2.task_type = 'REVIEW' LIMIT 1) IS NULL
"); ");
$sth->execute(); $sth->execute();
while (my $row = $sth->fetchrow_hashref()) { while (my $row = $sth->fetchrow_hashref()) {
my $results = decode_json($row->{results});
next unless $results && ref($results) eq 'HASH';
next unless $results->{verdict} == 1;
next if exists $results->{reviewed};
print "Creating REVIEW task for video_id: $row->{video_id}\n"; print "Creating REVIEW task for video_id: $row->{video_id}\n";
create_task($row->{video_id}, 'REVIEW'); create_task($row->{video_id}, 'REVIEW');
# Re-encode the whole JSON blob in Perl and update it.
# This avoids MariaDB JSON_SET path parsing issues through DBI connections.
$results->{reviewed} = 1;
my $updated = encode_json($results);
my $sth_update = $dbh->prepare(
"UPDATE tasks SET results = ? WHERE id = ?"
);
$sth_update->execute($updated, $row->{id});
$sth_update->finish();
} }
$sth->finish(); $sth->finish();
} }