20minuten Palscripts

Aus dmd2
Zur Navigation springenZur Suche springen

Dieses 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);