summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYorhel <git@yorhel.nl>2009-07-19 14:19:23 +0200
committerYorhel <git@yorhel.nl>2009-07-19 14:19:23 +0200
commitf5e5f2ce1fd955793420fd62d663d54983e7facc (patch)
tree3f03d439810a1fed7073a939c029a7e4a14aacec
parent678a78d71534441d5471ed24aa8b471ba08c6664 (diff)
Notify Multi::Image via PostgreSQL for new screenshots
This finished the rewrite of Multi::Image and everything surrounding it.
-rw-r--r--lib/Multi/Image.pm4
-rw-r--r--lib/VNDB/Handler/VNEdit.pm1
-rw-r--r--util/dump.sql12
-rw-r--r--util/updates/update_2.6.sql14
4 files changed, 28 insertions, 3 deletions
diff --git a/lib/Multi/Image.pm b/lib/Multi/Image.pm
index a1e30f37..a9ed4b9e 100644
--- a/lib/Multi/Image.pm
+++ b/lib/Multi/Image.pm
@@ -36,14 +36,14 @@ sub spawn {
sub _start {
$_[KERNEL]->alias_set('image');
$_[KERNEL]->sig(shutdown => 'shutdown');
- $_[KERNEL]->post(pg => listen => coverimage => 'cv_check');
+ $_[KERNEL]->post(pg => listen => coverimage => 'cv_check', screenshot => 'scr_check');
$_[KERNEL]->yield('cv_check');
$_[KERNEL]->yield('scr_check');
}
sub shutdown {
- $_[KERNEL]->post(pg => unlisten => 'coverimage');
+ $_[KERNEL]->post(pg => unlisten => 'coverimage', 'screenshot');
$_[KERNEL]->delay('cv_check');
$_[KERNEL]->delay('scr_check');
}
diff --git a/lib/VNDB/Handler/VNEdit.pm b/lib/VNDB/Handler/VNEdit.pm
index 9fb276a6..959e5342 100644
--- a/lib/VNDB/Handler/VNEdit.pm
+++ b/lib/VNDB/Handler/VNEdit.pm
@@ -369,7 +369,6 @@ sub scrxml {
my $new = sprintf '%s/static/sf/%02d/%d.jpg', $VNDB::ROOT, $id%100, $id;
rename $tmp, $new or die $!;
chmod 0666, $new;
- $self->multiCmd('screenshot');
}
xml;
diff --git a/util/dump.sql b/util/dump.sql
index 003c33ea..c3f6be0d 100644
--- a/util/dump.sql
+++ b/util/dump.sql
@@ -726,6 +726,18 @@ $$ LANGUAGE plpgsql;
CREATE TRIGGER vn_rev_image_notify AFTER INSERT OR UPDATE ON vn_rev FOR EACH ROW EXECUTE PROCEDURE vn_rev_image_notify();
+-- Send a notify when a screenshot needs to be processed
+CREATE OR REPLACE FUNCTION screenshot_process_notify() RETURNS trigger AS $$
+BEGIN
+ IF NEW.processed = FALSE THEN
+ NOTIFY screenshot;
+ END IF;
+ RETURN NULL;
+END;
+$$ LANGUAGE plpgsql;
+
+CREATE TRIGGER screenshot_process_notify AFTER INSERT OR UPDATE ON screenshots FOR EACH ROW EXECUTE PROCEDURE screenshot_process_notify();
+
diff --git a/util/updates/update_2.6.sql b/util/updates/update_2.6.sql
index a2fa5b32..723e7c57 100644
--- a/util/updates/update_2.6.sql
+++ b/util/updates/update_2.6.sql
@@ -83,3 +83,17 @@ $$ LANGUAGE plpgsql;
CREATE TRIGGER vn_rev_image_notify AFTER INSERT OR UPDATE ON vn_rev FOR EACH ROW EXECUTE PROCEDURE vn_rev_image_notify();
+
+-- Send a notify when a screenshot needs to be processed
+CREATE OR REPLACE FUNCTION screenshot_process_notify() RETURNS trigger AS $$
+BEGIN
+ IF NEW.processed = FALSE THEN
+ NOTIFY screenshot;
+ END IF;
+ RETURN NULL;
+END;
+$$ LANGUAGE plpgsql;
+
+CREATE TRIGGER screenshot_process_notify AFTER INSERT OR UPDATE ON screenshots FOR EACH ROW EXECUTE PROCEDURE screenshot_process_notify();
+
+