#!/usr/bin/perl use strict; use lib "../lib"; use Bucky; my $bucky = new Bucky; my $file_list = $bucky->db->select("file", {'thread = 2833 AND id > 16186 LIMIT 20'}); my $file_map = {}; foreach my $f (@$file_list) { $file_map->{ $f->{'filename'} } = $f->{'id'}; } my $base = "/var/www/vhosts/carbonpictures.com/bucky/data/"; opendir(DIR, $base) or die $!; my @dirs = readdir(DIR); closedir(DIR); print scalar @dirs; foreach my $thread_id (@dirs) { my $dir = $base . $thread_id; next unless (-d $dir && $thread_id !~ /^\./); opendir (THREAD, $dir); my @local_files = readdir(THREAD); closedir (THREAD); foreach my $filename (@local_files) { next unless exists($file_map->{$filename}); my $file_id = $file_map->{$filename}; $bucky->db->update('file', { "criteria" => { "id" => $file_id }, "record" => { "thread" => $thread_id } }); } }