summaryrefslogtreecommitdiff
path: root/search/bin/fix-files
diff options
context:
space:
mode:
Diffstat (limited to 'search/bin/fix-files')
-rw-r--r--search/bin/fix-files41
1 files changed, 41 insertions, 0 deletions
diff --git a/search/bin/fix-files b/search/bin/fix-files
new file mode 100644
index 0000000..b56d377
--- /dev/null
+++ b/search/bin/fix-files
@@ -0,0 +1,41 @@
+#!/usr/bin/perl
+use strict;
+use lib "../lib";
+use Bucky;
+
+my $bucky = new Bucky;
+my $file_list = $bucky->db->select("file", {'thread = 2833'});
+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_by_id('file', {
+ "id" => $file_id,
+ "record" => {
+ "thread" => $thread_id
+ }
+ });
+ }
+} \ No newline at end of file