diff options
Diffstat (limited to 'bucky2/bin')
| -rw-r--r-- | bucky2/bin/.gitignore | 2 | ||||
| -rw-r--r-- | bucky2/bin/fix-files | 45 |
2 files changed, 47 insertions, 0 deletions
diff --git a/bucky2/bin/.gitignore b/bucky2/bin/.gitignore new file mode 100644 index 0000000..121012a --- /dev/null +++ b/bucky2/bin/.gitignore @@ -0,0 +1,2 @@ +gross.db + diff --git a/bucky2/bin/fix-files b/bucky2/bin/fix-files new file mode 100644 index 0000000..3ef693a --- /dev/null +++ b/bucky2/bin/fix-files @@ -0,0 +1,45 @@ +#!/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 + } + }); + } +} + + |
