diff options
author | Yorhel <git@yorhel.nl> | 2009-07-19 14:19:23 +0200 |
---|---|---|
committer | Yorhel <git@yorhel.nl> | 2009-07-19 14:19:23 +0200 |
commit | f5e5f2ce1fd955793420fd62d663d54983e7facc (patch) | |
tree | 3f03d439810a1fed7073a939c029a7e4a14aacec | |
parent | 678a78d71534441d5471ed24aa8b471ba08c6664 (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.pm | 4 | ||||
-rw-r--r-- | lib/VNDB/Handler/VNEdit.pm | 1 | ||||
-rw-r--r-- | util/dump.sql | 12 | ||||
-rw-r--r-- | util/updates/update_2.6.sql | 14 |
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(); + + |