20minuten Palscripts
Aus dmd2
Zur Navigation springenZur Suche springenDieses Dokument enthält alle PAL-Scripts, die für iP-radio von 20 Minuten verwendet werden.
Shows[bearbeiten]
Threesome@Four[bearbeiten]
// Don't be a dick. Leave this here.
// Daily Artist-Special w/external triggering by aleggs (aleggs@freesurf.ch)
// originally based on Artist hour script by FesterHead (fester@festerhead.com)
// Version 1.0 05/21/2003
//
// Plays 15 mins of an artist whilst the names of the artists are pulled from external textfiles
// Content Retrieval
const File_Remote1 = 'http://www.corporateradio.ch/20min/monday_3some.txt';
const File_Local1 = 'Y:\10_20minuten\pal-scripts\play_shows\Specialshows\monday_3some.txt';
const File_Remote2 = 'http://www.corporateradio.ch/20min/tuesday_3some.txt';
const File_Local2 = 'Y:\10_20minuten\pal-scripts\play_shows\Specialshows\tuesday_3some.txt';
const File_Remote3 = 'http://www.corporateradio.ch/20min/wednesday_3some.txt';
const File_Local3 = 'Y:\10_20minuten\pal-scripts\play_shows\Specialshows\wednesday_3some.txt';
const File_Remote4 = 'http://www.corporateradio.ch/20min/thursday_3some.txt';
const File_Local4 = 'Y:\10_20minuten\pal-scripts\play_shows\Specialshows\thursday_3some.txt';
const File_Remote5 = 'http://www.corporateradio.ch/20min/friday_3some.txt';
const File_Local5 = 'Y:\10_20minuten\pal-scripts\play_shows\Specialshows\friday_3some.txt';
WebToFile(File_Local1,File_Remote1);
WebToFile(File_Local2,File_Remote2);
WebToFile(File_Local3,File_Remote3);
WebToFile(File_Local4,File_Remote4);
WebToFile(File_Local5,File_Remote5);
//Start show
PAL.LockExecution;
// Declare variables
var theSongChooser : TDataSet;
var duration : Integer;
var theArtist, theShow, ArtistMonday, ArtistTuesday, ArtistWednesday, ArtistThursday, ArtistFriday : String;
const dayMonday = 'Y:\10_20minuten\pal-scripts\play_shows\Specialshows\monday_3some.txt';
if FileExists(dayMonday) then
begin
ArtistMonday := FileToStr(dayMonday);
WriteLn(ArtistMonday);
end
else
WriteLn('Data file does not exist.');
const dayTuesday = 'Y:\10_20minuten\pal-scripts\play_shows\Specialshows\tuesday_3some.txt';
if FileExists(dayTuesday) then
begin
ArtistTuesday := FileToStr(dayTuesday);
WriteLn(ArtistTuesday);
end
else
WriteLn('Data file does not exist.');
const dayWednesday = 'Y:\10_20minuten\pal-scripts\play_shows\Specialshows\wednesday_3some.txt';
if FileExists(dayWednesday) then
begin
ArtistWednesday := FileToStr(dayWednesday);
WriteLn(ArtistWednesday);
end
else
WriteLn('Data file does not exist.');
const dayThursday = 'Y:\10_20minuten\pal-scripts\play_shows\Specialshows\thursday_3some.txt';
if FileExists(dayThursday) then
begin
ArtistThursday := FileToStr(dayThursday);
WriteLn(ArtistThursday);
end
else
WriteLn('Data file does not exist.');
const dayFriday = 'Y:\10_20minuten\pal-scripts\play_shows\Specialshows\friday_3some.txt';
if FileExists(dayFriday) then
begin
ArtistFriday := FileToStr(dayFriday);
WriteLn(ArtistFriday);
end
else
WriteLn('Data file does not exist.');
begin;
if (DayOfWeek(Now) = Monday) then
begin
theArtist := (ArtistMonday);
theShow := 'Threesome @ Four';
end;
if (DayOfWeek(Now) = Tuesday) then
begin
theArtist := (ArtistTuesday);
theShow := 'Threesome @ Four';
end;
if (DayOfWeek(Now) = Wednesday) then
begin
theArtist := (ArtistWednesday);
theShow := 'Threesome @ Four';
end;
if (DayOfWeek(Now) = Thursday) then
begin
theArtist := (ArtistThursday);
theShow := 'Threesome @ Four';
end;
if (DayOfWeek(Now) = Friday) then
begin
theArtist := (ArtistFriday);
theShow := 'Threesome @ Four';
end;
WriteLn('Starting ' + theArtist + ' Threesome @ Four Show ...');
WriteLn('');
theSongChooser := Query('select *' +
' from songlist' +
' where artist = ' + QuotedStr(theArtist) +
' and songtype = ''S''' +
' order by rand() limit 100',[],True);
duration := 0;
theSongChooser.First;
while not theSongChooser.EOF do
begin
if ( (duration + theSongChooser['duration']) < 900000 ) then
begin
WriteLn(theSongChooser['title'] + ' *from* ' + theSongChooser['album']);
Queue.AddFile(theSongChooser['filename'], ipTop);
duration := duration + theSongChooser['duration'];
end;
theSongChooser.Next;
end;
theSongChooser.Free;
// Let's wait for two songs to play... just in case
end;
PAL.WaitForPlayCount(2);
PAL.UnlockExecution;
Playlist-Steuerung[bearbeiten]
Jingles Intrusion[bearbeiten]
var timing_jingles : String;
PAL.Loop := True;
const jingles = 'Y:\10_20minuten\pal-scripts\play_shows\timing_jingles.txt';
if FileExists(jingles) then
begin
timing_jingles := FileToStr(jingles);
WriteLn('Next ID or Jingle is going to be timed in');
WriteLn(timing_jingles);
WriteLn('Songs');
end
else
WriteLn('Data file does not exist. Using standard method');
timing_jingles := '6';
CAT['20minutenradio'].QueueBottom(smLRPA, NoRules);
PAL.WaitForPlayCount(StrToInt(timing_jingles));
Starfrosch Song Intrusion[bearbeiten]
var timing_starfrosch1 : String;
PAL.Loop := True;
const starfrosch1 = 'Y:\10_20minuten\pal-scripts\play_shows\timing_starfrosch.txt';
if FileExists(starfrosch1) then
begin
timing_starfrosch1 := FileToStr(starfrosch1);
WriteLn(timing_starfrosch1);
end
else
WriteLn('Data file does not exist.');
CAT['starfrosch'].QueueBottom(smLRP, EnforceRules);
PAL.WaitForTime(timing_starfrosch1);
Tophits Song Intrusion[bearbeiten]
var timing_tophits1 : String;
PAL.Loop := True;
// download schedule from external file
const tophits1 = 'Y:\10_20minuten\pal-scripts\play_shows\timing_tophits.txt';
if FileExists(tophits1) then
begin
timing_tophits1 := FileToStr(tophits1);
WriteLn('Next Tophit is going to be timed in');
WriteLn(timing_tophits1);
end
else
WriteLn('Data file does not exist.');
CAT['tophits'].QueueBottom(smLRP, NoRules);
PAL.WaitForTime(timing_tophits1);
Album Promo 1[bearbeiten]
var timing_promo1 : String;
PAL.Loop := True;
const promo1 = 'Y:\10_20minuten\pal-scripts\play_shows\Specialshows\timing_promo1.txt';
if FileExists(promo1) then
begin
timing_promo1 := FileToStr(promo1);
WriteLn(timing_promo1);
end
else
WriteLn('Data file does not exist.');
CAT['albumpromo1'].QueueBottom(smLRP, NoRules);
PAL.WaitForTime(timing_promo1);
Album Promo 2[bearbeiten]
var timing_promo2 : String;
PAL.Loop := True;
const promo2 = 'Y:\10_20minuten\pal-scripts\play_shows\Specialshows\timing_promo2.txt';
if FileExists(promo2) then
begin
timing_promo2 := FileToStr(promo2);
WriteLn(timing_promo2);
end
else
WriteLn('Data file does not exist.');
CAT['albumpromo2'].QueueBottom(smLRP, NoRules);
PAL.WaitForTime(timing_promo2);
Album Promo 3[bearbeiten]
var timing_promo3 : String;
PAL.Loop := True;
const promo3 = 'Y:\10_20minuten\pal-scripts\play_shows\Specialshows\timing_promo3.txt';
if FileExists(promo3) then
begin
timing_promo3 := FileToStr(promo3);
WriteLn(timing_promo3);
end
else
WriteLn('Data file does not exist.');
CAT['albumpromo3'].QueueBottom(smLRP, NoRules);
PAL.WaitForTime(timing_promo3);
Andere Steuerelemente[bearbeiten]
Download Timings[bearbeiten]
Was dieses PAL macht: Lädt von externem Server (www.corporateradio.ch/20min/..) Textfiles herunter. Diese enthalten Timinginformationen, die andere Scripts dann für die Steuerung der Rotation weiterverwenden.
// Content Retrieval
PAL.Loop := True;
const File_Remote1 = 'http://www.corporateradio.ch/20min/timing_promo1.txt';
const File_Local1 = 'Y:\10_20minuten\pal-scripts\play_shows\Specialshows\timing_promo1.txt';
const File_Remote2 = 'http://www.corporateradio.ch/20min/timing_promo2.txt';
const File_Local2 = 'Y:\10_20minuten\pal-scripts\play_shows\Specialshows\timing_promo2.txt';
const File_Remote3 = 'http://www.corporateradio.ch/20min/timing_promo3.txt';
const File_Local3 = 'Y:\10_20minuten\pal-scripts\play_shows\Specialshows\timing_promo3.txt';
const File_Remote4 = 'http://www.corporateradio.ch/20min/timing_tophits.txt';
const File_Local4 = 'Y:\10_20minuten\pal-scripts\play_shows\timing_tophits.txt';
const File_Remote5 = 'http://www.corporateradio.ch/20min/timing_starfrosch.txt';
const File_Local5 = 'Y:\10_20minuten\pal-scripts\play_shows\timing_starfrosch.txt';
const File_Remote6 = 'http://www.corporateradio.ch/20min/timing_jingles.txt';
const File_Local6 = 'Y:\10_20minuten\pal-scripts\play_shows\timing_jingles.txt';
WebToFile(File_Local1,File_Remote1);
WebToFile(File_Local2,File_Remote2);
WebToFile(File_Local3,File_Remote3);
WebToFile(File_Local4,File_Remote4);
WebToFile(File_Local5,File_Remote5);
WebToFile(File_Local6,File_Remote6);
// wait for 12 Hours to re-download the schedules from external server
PAL.WaitForTime('+12:00:00');
Downlading Audioannouncements[bearbeiten]
//declare Variables
var announcementfilename, fullURL, RemotePath : String;
//Insert the RemotePath where
RemotePath :='http://www.corporateradio.ch/20min/';
const File_Remote1 = 'http://www.corporateradio.ch/20min/audiofileupload.txt';
const File_Local1 = 'Y:\10_20minuten\pal-scripts\play_shows\audiofileupload.txt';
WebToFile(File_Local1,File_Remote1);
PAL.WaitForTime('+00:00:05');
const audiofileupload = 'Y:\10_20minuten\pal-scripts\play_shows\audiofileupload.txt';
if FileExists(audiofileupload) then
begin
announcementfilename := FileToStr(audiofileupload);
WriteLn(announcementfilename);
WriteLn(audiofileupload);
end
else
WriteLn('Data file does not exist.');
fullURL :=RemotePath+announcementfilename;
const File_Local2 = 'Y:\10_20minuten\pal-scripts\play_shows\announcement.mp3';
WebToFile(File_Local2,fullURL);