From: APTX Date: Sun, 17 Jun 2012 14:41:08 +0000 (+0200) Subject: Add rules to automate renaming of files when new data is available X-Git-Url: https://gitweb.tyo.aptx.org/?a=commitdiff_plain;h=bfa3efe918414ddc466587cc9c97542d8b658e1b;p=localmylist.git Add rules to automate renaming of files when new data is available --- diff --git a/localmylist/share/schema/schema.sql b/localmylist/share/schema/schema.sql index f0c8a62..f7d1c14 100644 --- a/localmylist/share/schema/schema.sql +++ b/localmylist/share/schema/schema.sql @@ -198,6 +198,33 @@ CREATE VIEW rename_data AS JOIN file_location fl ON fl.fid = f.fid WHERE fl.renamed IS NULL AND fl.failed_rename = false; +CREATE RULE new_anime_rule AS ON INSERT TO anime DO NOTIFY rename_data_changed; +CREATE RULE new_episode_rule AS ON INSERT TO episode DO NOTIFY rename_data_changed; +CREATE RULE new_file_rule AS ON INSERT TO file DO NOTIFY rename_data_changed; + +CREATE RULE update_anime_rule AS + ON UPDATE TO anime + WHERE old.aid = new.aid + AND (old.title_english <> new.title_english OR old.title_romaji <> new.title_romaji OR old.title_kanji <> new.title_kanji OR old.description <> new.description OR old.year <> new.year OR old.start_date <> new.start_date OR old.end_date <> new.end_date OR old.type::text <> new.type::text OR old.rating <> new.rating OR old.votes <> new.votes OR old.temp_rating <> new.temp_rating OR old.temp_votes <> new.temp_votes) + DO UPDATE file_location fl SET renamed = NULL + FROM file f + WHERE f.fid = fl.fid AND f.aid = old.aid; + +CREATE RULE update_episode_rule AS + ON UPDATE TO episode + WHERE old.eid = new.eid + AND (old.aid <> new.aid OR old.epno <> new.epno OR old.title_english <> new.title_english OR old.title_romaji <> new.title_romaji OR old.title_kanji <> new.title_kanji OR old.length <> new.length OR old.airdate <> new.airdate OR old.state <> new.state OR old.special <> new.special OR old.recap <> new.recap OR old.opening <> new.opening OR old.ending <> new.ending OR old.rating <> new.rating OR old.votes <> new.votes) + DO UPDATE file_location fl SET renamed = NULL + FROM file f + WHERE f.fid = fl.fid AND f.eid = old.eid; + +CREATE OR REPLACE RULE update_file_rule AS + ON UPDATE TO file + WHERE old.fid = new.fid + AND (old.eid <> new.eid OR old.aid <> new.aid OR old.gid <> new.gid OR old.ed2k <> new.ed2k OR old.size <> new.size OR old.length <> new.length OR old.extension::text <> new.extension::text OR old.group_name <> new.group_name OR old.group_name_short <> new.group_name_short OR old.crc <> new.crc OR old.release_date <> new.release_date OR old.version <> new.version OR old.censored <> new.censored OR old.type::text <> new.type::text OR old.quality_id <> new.quality_id OR old.quality::text <> new.quality::text OR old.resolution::text <> new.resolution::text OR old.video_codec::text <> new.video_codec::text OR old.audio_codec::text <> new.audio_codec::text OR old.audio_language::text <> new.audio_language::text OR old.subtitle_language::text <> new.subtitle_language::text OR old.aspect_ratio::text <> new.aspect_ratio::text) + DO UPDATE file_location fl SET renamed = NULL + WHERE fl.fid = old.fid; + CREATE RULE config_updated_rule AS ON UPDATE TO config DO NOTIFY config_changed; CREATE RULE file_episode_rel_ignore_duplicate AS ON INSERT TO file_episode_rel WHERE (EXISTS (SELECT 1 FROM file_episode_rel WHERE ((file_episode_rel.fid = new.fid) AND (file_episode_rel.eid = new.eid)))) DO INSTEAD NOTHING; @@ -214,4 +241,4 @@ CREATE RULE pending_request_ignore_duplicate AS ON INSERT TO pending_request WHE CREATE RULE unknown_file_ignore_duplicate AS ON INSERT TO unknown_file WHERE (EXISTS (SELECT 1 FROM unknown_file WHERE ((unknown_file.ed2k = new.ed2k) AND (unknown_file.size = new.size)))) DO INSTEAD NOTHING; COMMENT ON RULE unknown_file_ignore_duplicate ON unknown_file IS 'Adding the same file more than once can happen'; -CREATE RULE new_pending_mylist_update_rule AS ON INSERT TO pending_mylist_update DO NOTIFY new_pending_mylist_update; \ No newline at end of file +CREATE RULE new_pending_mylist_update_rule AS ON INSERT TO pending_mylist_update DO NOTIFY new_pending_mylist_update;