CC-2166: Packaging Improvements. Moved the Zend app into airtime_mvc. It is now installed to /var/www/airtime. Storage is now set to /srv/airtime/stor. Utils are now installed to /usr/lib/airtime/utils/. Added install/airtime-dircheck.php as a simple test to see if everything is install/uninstalled correctly.

This commit is contained in:
Paul Baranowski 2011-04-14 18:55:04 -04:00
parent 514777e8d2
commit b11cbd8159
4546 changed files with 138 additions and 51 deletions

View file

@ -0,0 +1 @@
INSERT INTO cc_subjs ("login", "type", "pass") VALUES ('admin', 'A', md5('admin'));

View file

@ -0,0 +1,455 @@
-----------------------------------------------------------------------------
-- cc_access
-----------------------------------------------------------------------------
DROP TABLE "cc_access" CASCADE;
CREATE TABLE "cc_access"
(
"id" serial NOT NULL,
"gunid" CHAR(32),
"token" INT8,
"chsum" CHAR(32) default '' NOT NULL,
"ext" VARCHAR(128) default '' NOT NULL,
"type" VARCHAR(20) default '' NOT NULL,
"parent" INT8,
"owner" INTEGER,
"ts" TIMESTAMP,
PRIMARY KEY ("id")
);
COMMENT ON TABLE "cc_access" IS '';
SET search_path TO public;
CREATE INDEX "cc_access_gunid_idx" ON "cc_access" ("gunid");
CREATE INDEX "cc_access_parent_idx" ON "cc_access" ("parent");
CREATE INDEX "cc_access_token_idx" ON "cc_access" ("token");
-----------------------------------------------------------------------------
-- cc_files
-----------------------------------------------------------------------------
DROP TABLE "cc_files" CASCADE;
CREATE TABLE "cc_files"
(
"id" serial NOT NULL,
"gunid" CHAR(32) NOT NULL,
"name" VARCHAR(255) default '' NOT NULL,
"mime" VARCHAR(255) default '' NOT NULL,
"ftype" VARCHAR(128) default '' NOT NULL,
"filepath" TEXT default '',
"state" VARCHAR(128) default 'empty' NOT NULL,
"currentlyaccessing" INTEGER default 0 NOT NULL,
"editedby" INTEGER,
"mtime" TIMESTAMP(6),
"md5" CHAR(32),
"track_title" VARCHAR(512),
"artist_name" VARCHAR(512),
"bit_rate" VARCHAR(32),
"sample_rate" VARCHAR(32),
"format" VARCHAR(128),
"length" TIME,
"album_title" VARCHAR(512),
"genre" VARCHAR(64),
"comments" TEXT,
"year" VARCHAR(16),
"track_number" INTEGER,
"channels" INTEGER,
"url" VARCHAR(1024),
"bpm" VARCHAR(8),
"rating" VARCHAR(8),
"encoded_by" VARCHAR(255),
"disc_number" VARCHAR(8),
"mood" VARCHAR(64),
"label" VARCHAR(512),
"composer" VARCHAR(512),
"encoder" VARCHAR(64),
"checksum" VARCHAR(256),
"lyrics" TEXT,
"orchestra" VARCHAR(512),
"conductor" VARCHAR(512),
"lyricist" VARCHAR(512),
"original_lyricist" VARCHAR(512),
"radio_station_name" VARCHAR(512),
"info_url" VARCHAR(512),
"artist_url" VARCHAR(512),
"audio_source_url" VARCHAR(512),
"radio_station_url" VARCHAR(512),
"buy_this_url" VARCHAR(512),
"isrc_number" VARCHAR(512),
"catalog_number" VARCHAR(512),
"original_artist" VARCHAR(512),
"copyright" VARCHAR(512),
"report_datetime" VARCHAR(32),
"report_location" VARCHAR(512),
"report_organization" VARCHAR(512),
"subject" VARCHAR(512),
"contributor" VARCHAR(512),
"language" VARCHAR(512),
PRIMARY KEY ("id"),
CONSTRAINT "cc_files_gunid_idx" UNIQUE ("gunid")
);
COMMENT ON TABLE "cc_files" IS '';
SET search_path TO public;
CREATE INDEX "cc_files_md5_idx" ON "cc_files" ("md5");
CREATE INDEX "cc_files_name_idx" ON "cc_files" ("name");
-----------------------------------------------------------------------------
-- cc_perms
-----------------------------------------------------------------------------
DROP TABLE "cc_perms" CASCADE;
CREATE TABLE "cc_perms"
(
"permid" INTEGER NOT NULL,
"subj" INTEGER,
"action" VARCHAR(20),
"obj" INTEGER,
"type" CHAR(1),
PRIMARY KEY ("permid"),
CONSTRAINT "cc_perms_all_idx" UNIQUE ("subj","action","obj"),
CONSTRAINT "cc_perms_permid_idx" UNIQUE ("permid")
);
COMMENT ON TABLE "cc_perms" IS '';
SET search_path TO public;
CREATE INDEX "cc_perms_subj_obj_idx" ON "cc_perms" ("subj","obj");
-----------------------------------------------------------------------------
-- cc_show
-----------------------------------------------------------------------------
DROP TABLE "cc_show" CASCADE;
CREATE TABLE "cc_show"
(
"id" serial NOT NULL,
"name" VARCHAR(255) default '' NOT NULL,
"url" VARCHAR(255) default '',
"genre" VARCHAR(255) default '',
"description" VARCHAR(512),
"color" VARCHAR(6),
"background_color" VARCHAR(6),
PRIMARY KEY ("id")
);
COMMENT ON TABLE "cc_show" IS '';
SET search_path TO public;
-----------------------------------------------------------------------------
-- cc_show_instances
-----------------------------------------------------------------------------
DROP TABLE "cc_show_instances" CASCADE;
CREATE TABLE "cc_show_instances"
(
"id" serial NOT NULL,
"starts" TIMESTAMP NOT NULL,
"ends" TIMESTAMP NOT NULL,
"show_id" INTEGER NOT NULL,
"record" INT2 default 0,
"rebroadcast" INT2 default 0,
"instance_id" INTEGER,
"file_id" INTEGER,
"soundcloud_id" INTEGER,
"time_filled" TIME,
PRIMARY KEY ("id")
);
COMMENT ON TABLE "cc_show_instances" IS '';
SET search_path TO public;
-----------------------------------------------------------------------------
-- cc_show_days
-----------------------------------------------------------------------------
DROP TABLE "cc_show_days" CASCADE;
CREATE TABLE "cc_show_days"
(
"id" serial NOT NULL,
"first_show" DATE NOT NULL,
"last_show" DATE,
"start_time" TIME NOT NULL,
"duration" VARCHAR(255) NOT NULL,
"day" INT2,
"repeat_type" INT2 NOT NULL,
"next_pop_date" DATE,
"show_id" INTEGER NOT NULL,
"record" INT2 default 0,
PRIMARY KEY ("id")
);
COMMENT ON TABLE "cc_show_days" IS '';
SET search_path TO public;
-----------------------------------------------------------------------------
-- cc_show_rebroadcast
-----------------------------------------------------------------------------
DROP TABLE "cc_show_rebroadcast" CASCADE;
CREATE TABLE "cc_show_rebroadcast"
(
"id" serial NOT NULL,
"day_offset" VARCHAR(255) NOT NULL,
"start_time" TIME NOT NULL,
"show_id" INTEGER NOT NULL,
PRIMARY KEY ("id")
);
COMMENT ON TABLE "cc_show_rebroadcast" IS '';
SET search_path TO public;
-----------------------------------------------------------------------------
-- cc_show_hosts
-----------------------------------------------------------------------------
DROP TABLE "cc_show_hosts" CASCADE;
CREATE TABLE "cc_show_hosts"
(
"id" serial NOT NULL,
"show_id" INTEGER NOT NULL,
"subjs_id" INTEGER NOT NULL,
PRIMARY KEY ("id")
);
COMMENT ON TABLE "cc_show_hosts" IS '';
SET search_path TO public;
-----------------------------------------------------------------------------
-- cc_playlist
-----------------------------------------------------------------------------
DROP TABLE "cc_playlist" CASCADE;
CREATE TABLE "cc_playlist"
(
"id" serial NOT NULL,
"name" VARCHAR(255) default '' NOT NULL,
"state" VARCHAR(128) default 'empty' NOT NULL,
"currentlyaccessing" INTEGER default 0 NOT NULL,
"editedby" INTEGER,
"mtime" TIMESTAMP(6),
"creator" VARCHAR(32),
"description" VARCHAR(512),
PRIMARY KEY ("id")
);
COMMENT ON TABLE "cc_playlist" IS '';
SET search_path TO public;
-----------------------------------------------------------------------------
-- cc_playlistcontents
-----------------------------------------------------------------------------
DROP TABLE "cc_playlistcontents" CASCADE;
CREATE TABLE "cc_playlistcontents"
(
"id" serial NOT NULL,
"playlist_id" INTEGER,
"file_id" INTEGER,
"position" INTEGER,
"cliplength" TIME default '00:00:00',
"cuein" TIME default '00:00:00',
"cueout" TIME default '00:00:00',
"fadein" TIME default '00:00:00',
"fadeout" TIME default '00:00:00',
PRIMARY KEY ("id")
);
COMMENT ON TABLE "cc_playlistcontents" IS '';
SET search_path TO public;
-----------------------------------------------------------------------------
-- cc_pref
-----------------------------------------------------------------------------
DROP TABLE "cc_pref" CASCADE;
CREATE TABLE "cc_pref"
(
"id" serial NOT NULL,
"subjid" INTEGER,
"keystr" VARCHAR(255),
"valstr" TEXT,
PRIMARY KEY ("id"),
CONSTRAINT "cc_pref_id_idx" UNIQUE ("id"),
CONSTRAINT "cc_pref_subj_key_idx" UNIQUE ("subjid","keystr")
);
COMMENT ON TABLE "cc_pref" IS '';
SET search_path TO public;
CREATE INDEX "cc_pref_subjid_idx" ON "cc_pref" ("subjid");
-----------------------------------------------------------------------------
-- cc_schedule
-----------------------------------------------------------------------------
DROP TABLE "cc_schedule" CASCADE;
CREATE TABLE "cc_schedule"
(
"id" serial NOT NULL,
"playlist_id" INTEGER,
"starts" TIMESTAMP NOT NULL,
"ends" TIMESTAMP NOT NULL,
"group_id" INTEGER,
"file_id" INTEGER,
"clip_length" TIME default '00:00:00',
"fade_in" TIME default '00:00:00',
"fade_out" TIME default '00:00:00',
"cue_in" TIME default '00:00:00',
"cue_out" TIME default '00:00:00',
"schedule_group_played" BOOLEAN default 'f',
"media_item_played" BOOLEAN default 'f',
"instance_id" INTEGER NOT NULL,
PRIMARY KEY ("id")
);
COMMENT ON TABLE "cc_schedule" IS '';
SET search_path TO public;
-----------------------------------------------------------------------------
-- cc_sess
-----------------------------------------------------------------------------
DROP TABLE "cc_sess" CASCADE;
CREATE TABLE "cc_sess"
(
"sessid" CHAR(32) NOT NULL,
"userid" INTEGER,
"login" VARCHAR(255),
"ts" TIMESTAMP,
PRIMARY KEY ("sessid")
);
COMMENT ON TABLE "cc_sess" IS '';
SET search_path TO public;
CREATE INDEX "cc_sess_login_idx" ON "cc_sess" ("login");
CREATE INDEX "cc_sess_userid_idx" ON "cc_sess" ("userid");
-----------------------------------------------------------------------------
-- cc_smemb
-----------------------------------------------------------------------------
DROP TABLE "cc_smemb" CASCADE;
CREATE TABLE "cc_smemb"
(
"id" INTEGER NOT NULL,
"uid" INTEGER default 0 NOT NULL,
"gid" INTEGER default 0 NOT NULL,
"level" INTEGER default 0 NOT NULL,
"mid" INTEGER,
PRIMARY KEY ("id"),
CONSTRAINT "cc_smemb_id_idx" UNIQUE ("id")
);
COMMENT ON TABLE "cc_smemb" IS '';
SET search_path TO public;
-----------------------------------------------------------------------------
-- cc_subjs
-----------------------------------------------------------------------------
DROP TABLE "cc_subjs" CASCADE;
CREATE TABLE "cc_subjs"
(
"id" serial NOT NULL,
"login" VARCHAR(255) default '' NOT NULL,
"pass" VARCHAR(255) default '' NOT NULL,
"type" CHAR(1) default 'U' NOT NULL,
"first_name" VARCHAR(255) default '' NOT NULL,
"last_name" VARCHAR(255) default '' NOT NULL,
"lastlogin" TIMESTAMP,
"lastfail" TIMESTAMP,
"skype_contact" VARCHAR(255),
"jabber_contact" VARCHAR(255),
"email" VARCHAR(255),
PRIMARY KEY ("id"),
CONSTRAINT "cc_subjs_id_idx" UNIQUE ("id"),
CONSTRAINT "cc_subjs_login_idx" UNIQUE ("login")
);
COMMENT ON TABLE "cc_subjs" IS '';
SET search_path TO public;
ALTER TABLE "cc_access" ADD CONSTRAINT "cc_access_owner_fkey" FOREIGN KEY ("owner") REFERENCES "cc_subjs" ("id");
ALTER TABLE "cc_files" ADD CONSTRAINT "cc_files_editedby_fkey" FOREIGN KEY ("editedby") REFERENCES "cc_subjs" ("id");
ALTER TABLE "cc_perms" ADD CONSTRAINT "cc_perms_subj_fkey" FOREIGN KEY ("subj") REFERENCES "cc_subjs" ("id") ON DELETE CASCADE;
ALTER TABLE "cc_show_instances" ADD CONSTRAINT "cc_show_fkey" FOREIGN KEY ("show_id") REFERENCES "cc_show" ("id") ON DELETE CASCADE;
ALTER TABLE "cc_show_instances" ADD CONSTRAINT "cc_original_show_instance_fkey" FOREIGN KEY ("instance_id") REFERENCES "cc_show_instances" ("id") ON DELETE CASCADE;
ALTER TABLE "cc_show_instances" ADD CONSTRAINT "cc_recorded_file_fkey" FOREIGN KEY ("file_id") REFERENCES "cc_files" ("id") ON DELETE CASCADE;
ALTER TABLE "cc_show_days" ADD CONSTRAINT "cc_show_fkey" FOREIGN KEY ("show_id") REFERENCES "cc_show" ("id") ON DELETE CASCADE;
ALTER TABLE "cc_show_rebroadcast" ADD CONSTRAINT "cc_show_fkey" FOREIGN KEY ("show_id") REFERENCES "cc_show" ("id") ON DELETE CASCADE;
ALTER TABLE "cc_show_hosts" ADD CONSTRAINT "cc_perm_show_fkey" FOREIGN KEY ("show_id") REFERENCES "cc_show" ("id") ON DELETE CASCADE;
ALTER TABLE "cc_show_hosts" ADD CONSTRAINT "cc_perm_host_fkey" FOREIGN KEY ("subjs_id") REFERENCES "cc_subjs" ("id") ON DELETE CASCADE;
ALTER TABLE "cc_playlist" ADD CONSTRAINT "cc_playlist_editedby_fkey" FOREIGN KEY ("editedby") REFERENCES "cc_subjs" ("id");
ALTER TABLE "cc_playlistcontents" ADD CONSTRAINT "cc_playlistcontents_file_id_fkey" FOREIGN KEY ("file_id") REFERENCES "cc_files" ("id") ON DELETE CASCADE;
ALTER TABLE "cc_playlistcontents" ADD CONSTRAINT "cc_playlistcontents_playlist_id_fkey" FOREIGN KEY ("playlist_id") REFERENCES "cc_playlist" ("id") ON DELETE CASCADE;
ALTER TABLE "cc_pref" ADD CONSTRAINT "cc_pref_subjid_fkey" FOREIGN KEY ("subjid") REFERENCES "cc_subjs" ("id") ON DELETE CASCADE;
ALTER TABLE "cc_schedule" ADD CONSTRAINT "cc_show_inst_fkey" FOREIGN KEY ("instance_id") REFERENCES "cc_show_instances" ("id") ON DELETE CASCADE;
ALTER TABLE "cc_sess" ADD CONSTRAINT "cc_sess_userid_fkey" FOREIGN KEY ("userid") REFERENCES "cc_subjs" ("id") ON DELETE CASCADE;

View file

@ -0,0 +1,7 @@
DROP SEQUENCE schedule_group_id_seq CASCADE;
CREATE SEQUENCE schedule_group_id_seq;
DROP SEQUENCE show_group_id_seq CASCADE;
CREATE SEQUENCE show_group_id_seq;

View file

@ -0,0 +1,6 @@
# Sqlfile -> Database map
schema.sql=airtime
sequences.sql=campcaster
views.sql=campcaster
triggers.sql=campcaster
defaultdata.sql=campcaster

View file

@ -0,0 +1,24 @@
----------------------------------------------------------------------------------
--calculate_position()
----------------------------------------------------------------------------------
DROP FUNCTION calculate_position() CASCADE;
CREATE FUNCTION calculate_position() RETURNS trigger AS
'
BEGIN
IF(TG_OP=''INSERT'') THEN
UPDATE cc_playlistcontents SET position = (position + 1)
WHERE (playlist_id = new.playlist_id AND position >= new.position AND id != new.id);
END IF;
IF(TG_OP=''DELETE'') THEN
UPDATE cc_playlistcontents SET position = (position - 1)
WHERE (playlist_id = old.playlist_id AND position > old.position);
END IF;
RETURN NULL;
END;
'
LANGUAGE 'plpgsql';
CREATE TRIGGER calculate_position AFTER INSERT OR DELETE ON cc_playlistcontents
FOR EACH ROW EXECUTE PROCEDURE calculate_position();

View file

@ -0,0 +1,11 @@
-------------------------------------------------------
---cc_playlisttimes
-------------------------------------------------------
CREATE VIEW cc_playlisttimes AS
SELECT pl.id, COALESCE(t.length, '00:00:00'::time without time zone) AS length
FROM cc_playlist pl
LEFT JOIN ( SELECT cc_playlistcontents.playlist_id AS id,
sum(cc_playlistcontents.cliplength::interval)::time without time zone AS length
FROM cc_playlistcontents
GROUP BY cc_playlistcontents.playlist_id) t ON pl.id = t.id;