Request Jingle

Voor vragen over Playlist Automation Language.
Plaats reactie
SubWoofer

Request Jingle

Ongelezen bericht door SubWoofer »

Hey ik heb hier meschien een handig script voor jullie
dit is een PAL script dat zorgt als jij met samPHPweb een plaat aanvraagt dat die eerst een jingle speelt en dan het plaatje :)

Code: Selecteer alles

{ PAL script to manually handle requests to play within a
  category based rotation logic system }

PAL.Loop := True;

{-->Insert first songs into queue}
CAT['Jingles (All)'].QueueBottom(smLemmingLogic,NoRules);
CAT['Power hit'].QueueBottom(smWeighted,EnforceRules);
CAT['Heavy Rotation'].QueueBottom(smWeighted,EnforceRules);
CAT['Jingles (All)'].QueueBottom(smLemmingLogic,NoRules);

{-->Insert next request + Jingle if request was found}
var AQuery : TDataSet;
var Song   : TSongInfo;

   AQuery := Query('SELECT songlist.*, requestlist.ID as requestID '
     +' FROM songlist,requestlist '
     +' WHERE (requestlist.ETA<:now) AND (requestlist.status=''new'') AND (songlist.ID=requestlist.songID) '
     + 'ORDER BY requestlist.ETA ASC '
     +' LIMIT 1 ',[Now],True);
     
   if not(AQuery.BOF and AQuery.EOF) then
    begin
      {A cool idea would be to insert a jingle here
       that says "The next song is by request" or something simular}
      {For example: Queue.AddFile('c:\.mp3',ipBottom);}
       Queue.AddFile('c:\request.wav',ipBottom);}
      {Copy the needed information from the dataset}
      Song := TSongInfo.Create();
      Song['ID']         := AQuery['ID'];
      Song['filename']  := AQuery['filename'];
      Song['artist']     := AQuery['artist'];
      Song['title']      := AQuery['title'];
      Song['duration']  := AQuery['duration'];
      Song['requestID'] := AQuery['requestID'];
      
      {Add request to queue}
      Queue.Add(Song,ipBottom);
      WriteLn('Request handled: '+Song['artist']+' - '+Song['title']);
      
      {Change status of request}
      ExecSQL('UPDATE requestlist SET status=:status WHERE (songID = :songID) AND ((status=''new'') OR (status=''pending'')) ',['pending',song['ID']]);

      {Insert Jingle after request}
      CAT['Jingles (All)'].QueueBottom(smLRP,NoRules);
    end
   else
     WriteLn('No request found');


{-->Insert final category}
CAT['Rare rotation'].QueueBottom(smWeighted,EnforceRules);

{Wait for songs in queue to play}
while (Queue.Count > 0) do
PAL.WaitForPlayCount(1);
Gebruikersavatar
Kees
Beheerder
Berichten: 3149
Lid geworden op: 28 nov 2005, 22:07
SAM-versie: 4.2.2.*
Database: MySQL
Windows: 11
Locatie: Bergen op Zoom
Contacteer:

Ongelezen bericht door Kees »

Hallo SubWoofer...welkom op het forum.

Ik heb het script al eens eerder gezien en het is zeker een goede aanvulling voor het forum.
Bedankt voor het plaatsen ! :smt023
SubWoofer

Ongelezen bericht door SubWoofer »

Kees schreef:Hallo SubWoofer...welkom op het forum.

Ik heb het script al eens eerder gezien en het is zeker een goede aanvulling voor het forum.
Bedankt voor het plaatsen ! :smt023
Ik Help Heel graag Kees ;)
Gebruikersavatar
Borg
Beheerder
Berichten: 486
Lid geworden op: 25 jun 2006, 16:54
SAM-versie: 2.8.0.
Database: MySQL
Windows: 10
Locatie: Het Westland
Contacteer:

Request jingle

Ongelezen bericht door Borg »

ik heb het nu zo ingesteld dat een aangevraagde plaat queue top komt te staan en dus als eerste gedraaid wordt, daarbij dus maar 1 per ip per uur ander wordt het een zooitje.. zou het script aangepast kunnen worden hiervoor ? Zou erg graag een jingle starten alvorens een request te draaien..


Jos
ʎɐqǝ uo pɹɐoqʎǝʞ ɐ ʎnq ı ǝɯıʇ ʇsɐן ǝɥʇ sı sıɥʇ
SubWoofer

Re: Request jingle

Ongelezen bericht door SubWoofer »

Radio de Glazen Stad schreef:ik heb het nu zo ingesteld dat een aangevraagde plaat queue top komt te staan en dus als eerste gedraaid wordt, daarbij dus maar 1 per ip per uur
Ik heb Het anders staan ik heb dat het onder aan komt te staan als je nou heel veel luisteraars heb dan gooit die hem bovenaan en dan moet die gene die eerder was heel lang wachten en ik zou het zo 1 2 3 niet weten of het aangepast ken worden maar ik kijk wel ff :)

Greetz Esdert
davek

Ongelezen bericht door davek »

is heel mooi dit script aleen het geeft bij mij compiler errors: syntax error
RadiOKaaN

Re: Request Jingle

Ongelezen bericht door RadiOKaaN »

bij mij ook "compiler errors: syntax error" kan ieman na kijken a.u.b. lijk me mooie PAL
RadiOKaaN

Re: Request Jingle

Ongelezen bericht door RadiOKaaN »

dus niemand heeft geen tijd voor :(
waalstad

Re: Request Jingle

Ongelezen bericht door waalstad »

werkt bij ook nog steeds niet
iemand een idee ?

gr berry
Gebruikersavatar
Kees
Beheerder
Berichten: 3149
Lid geworden op: 28 nov 2005, 22:07
SAM-versie: 4.2.2.*
Database: MySQL
Windows: 11
Locatie: Bergen op Zoom
Contacteer:

Re: Request Jingle

Ongelezen bericht door Kees »

Nu niet meer..ik heb het script alleen niet getest of het werkt.

Code: Selecteer alles

{ PAL script to manually handle requests to play within a
  category based rotation logic system }

PAL.Loop := True;

{-->Insert first songs into queue}
CAT['Jingles (All)'].QueueBottom(smLemmingLogic,NoRules);
CAT['Power hit'].QueueBottom(smWeighted,EnforceRules);
CAT['Heavy Rotation'].QueueBottom(smWeighted,EnforceRules);
CAT['Jingles (All)'].QueueBottom(smLemmingLogic,NoRules);

{-->Insert next request + Jingle if request was found}
var AQuery : TDataSet;
var Song   : TSongInfo;

   AQuery := Query('SELECT songlist.*, requestlist.ID as requestID '
     +' FROM songlist,requestlist '
     +' WHERE (requestlist.ETA<:now) AND (requestlist.status=''new'') AND (songlist.ID=requestlist.songID) '
     + 'ORDER BY requestlist.ETA ASC '
     +' LIMIT 1 ',[Now],True);
     
   if not(AQuery.BOF and AQuery.EOF) then
    begin
      {A cool idea would be to insert a jingle here
       that says "The next song is by request" or something simular}
      {For example: Queue.AddFile('c:\.mp3',ipBottom);}
       Queue.AddFile('c:\request.wav',ipBottom);
      {Copy the needed information from the dataset}
      Song := TSongInfo.Create();
      Song['ID']         := AQuery['ID'];
      Song['filename']  := AQuery['filename'];
      Song['artist']     := AQuery['artist'];
      Song['title']      := AQuery['title'];
      Song['duration']  := AQuery['duration'];
      Song['requestID'] := AQuery['requestID'];
      
      {Add request to queue}
      Queue.Add(Song,ipBottom);
      WriteLn('Request handled: '+Song['artist']+' - '+Song['title']);
      
      {Change status of request}
      ExecSQL('UPDATE requestlist SET status=:status WHERE (songID = :songID) AND ((status=''new'') OR (status=''pending'')) ',['pending',song['ID']]);

      {Insert Jingle after request}
      CAT['Jingles (All)'].QueueBottom(smLRP,NoRules);
    end
   else
     WriteLn('No request found');


{-->Insert final category}
CAT['Rare rotation'].QueueBottom(smWeighted,EnforceRules);

{Wait for songs in queue to play}
while (Queue.Count > 0) do
PAL.WaitForPlayCount(1);
Plaats reactie
  • Vergelijkbare Onderwerpen
    Reacties
    Weergaves
    Laatste bericht