Request Top draaien

Voor vragen over Playlist Automation Language.
Plaats reactie
radio0511
*
Berichten: 10
Lid geworden op: 08 aug 2016, 14:47
SAM-versie: 4.4.7.
Database: MS SQL
Windows: 8.1

Request Top draaien

Ongelezen bericht door radio0511 » 05 sep 2016, 09:08

Ik ben op zoek naar een palscript dit dit doet:

Specifieke audiofile draaien ( vaste jingle )
nr 11 uit de Request Top 11
Specifieke audiofile draaien ( vaste jingle )
nr 10 uit de Request Top 11
Specifieke audiofile draaien ( vaste jingle )
nr 9 uit de Request Top 11
Specifieke audiofile draaien ( vaste jingle )
nr 8 uit de Request Top 11
Specifieke audiofile draaien ( vaste jingle )
nr 7 uit de Request Top 11
Specifieke audiofile draaien ( vaste jingle )
nr 6 uit de Request Top 11
Specifieke audiofile draaien ( vaste jingle )
nr 5 uit de Request Top 11
Specifieke audiofile draaien ( vaste jingle )
nr 4 uit de Request Top 11
Specifieke audiofile draaien ( vaste jingle )
nr 3 uit de Request Top 11
Specifieke audiofile draaien ( vaste jingle )
nr 2 uit de Request Top 11
Specifieke audiofile draaien ( vaste jingle )
nr 1 uit de Request Top 11

Ik heb al verschillende pal scripts gezien die een request top zoveel kan draaien, echter heb ik geen idee hoe ik de vaste jingles er tussen kan zetten
Daarnaast wil ik ook niet dat dit pal scripts dagelijks uitgevoerd wordt maar 1 keer per week op een vast tijdstip, ook hier kom ik niet uit

Kan iemand mij helpen ?

Gebruikersavatar
drOhimself
Moderator
Berichten: 2941
Lid geworden op: 27 mar 2010, 11:44
SAM-versie: SAM 2014.7
Database: MySQL 5.0
Windows: 2000

Re: Request Top draaien

Ongelezen bericht door drOhimself » 05 sep 2016, 11:46

Wat heb je tot zover zelf in elkaar kunnen flanzen ?
Daarna kunnen we kijken hoe je vaste jingles er tussen gezet kunnen worden.
Groedjez,
drO

radio0511
*
Berichten: 10
Lid geworden op: 08 aug 2016, 14:47
SAM-versie: 4.4.7.
Database: MS SQL
Windows: 8.1

Re: Request Top draaien

Ongelezen bericht door radio0511 » 05 sep 2016, 17:58

drOhimself schreef:Wat heb je tot zover zelf in elkaar kunnen flanzen ?
Daarna kunnen we kijken hoe je vaste jingles er tussen gezet kunnen worden.
Ik heb dit gevonden:

Code: Selecteer alles

$SAMdb->open("SELECT songlist.*, requestlist.code as requestcode, count(*) as cnt 
        FROM requestlist, songlist 
        WHERE (requestlist.songID = songlist.ID) AND
              (requestlist.status = 'played') AND
              (requestlist.t_stamp >= '" . date('Y-m-d H:i:s', strtotime(date('F 1 Y'))) . "')
        GROUP BY songlist.ID
        ORDER BY cnt DESC, requestlist.t_stamp DESC
        LIMIT 10 ");
Maar ik weet niet hoe ik dit pal script moet laten starten. Waarschijnlijk via event inplannen ? Dan zou ik daar op zich wel uit kunnen komen.
Maar geen idee hoe ik jingles inplan.
Ik ben een leek op het gebied van pal scripts.
Laatst gewijzigd door drOhimself op 05 sep 2016, 18:19, 1 keer totaal gewijzigd.
Reden: Edit : code in [code] geplaatst

Gebruikersavatar
drOhimself
Moderator
Berichten: 2941
Lid geworden op: 27 mar 2010, 11:44
SAM-versie: SAM 2014.7
Database: MySQL 5.0
Windows: 2000

Re: Request Top draaien

Ongelezen bericht door drOhimself » 05 sep 2016, 18:38

Even gezocht hier op het forum en kom ik
pal/request-top-andersom-opgelost-t3572 ... est#p22329 deze tegen.
Eentje uit de oude doos, die de 15 meest aangevraagde nummers oplepelt.
Denk dat we deze wel kunnen gebruiken !

De topic-opener heeft er in dit geval een nummer-jingle voor ieder nummer geplakt, zodat je hoort om welk nummer het gaat.
( Queue.AddFile('Z:\Diverse\RHO Top 15\15.mp3',ipBottom); )
In het script staan zoals je kunt zien wat verwijzingen die voor jou niet gelden.
( Z:\Diverse\RHO Top 15\..)

Nog even gericht naar jouw verzoek gekeken :
"Daarnaast wil ik ook niet dat dit pal scripts dagelijks uitgevoerd wordt maar 1 keer per week op een vast tijdstip, ..."
Ik ga ervan uit dat je dan toch wel in één keer die hele verzoek Top 10 draait, achter elkaar ?

Hieronder het gevonden script :

Code: Selecteer alles

Pal.Loop:=True;

// Zaterdag 16:00 uur
while DayOfWeek(Now) = Saturday and ((Now >= T['16:00:00']) and (Now <= T['16:00:10'])) do
begin
RequestPolicy.InsertPos := ripNone;
PAL.WaitForTime(T['16:00:20']);

Queue.AddFile('Z:\Diverse\RHO Top 15\detop15.mp3',ipBottom);
var D : TDataSet;
var C : Integer;
D := Query('SELECT songlist.*, count(*) as cnt '+
              'FROM songlist,requestlist '+
              'WHERE songlist.ID = requestlist.songID '+
              '        AND requestlist.code < 700'+
              '        AND DATE_SUB(NOW(), INTERVAL 7 DAY)'+
              '<= t_stamp GROUP BY songlist.ID '+
              'ORDER BY cnt DESC LIMIT 15',[],True);

C := 0;
D.First;
while not D.EOF do
begin
C := C + 1;
Queue.AddFile('Z:\Diverse\RHO Top 15\15.mp3',ipBottom);
WriteLn('#'+IntToStr(C)+'. '+D['artist']+' - '+D['title']);
Queue.AddFile(D['filename'],ipBottom);
D.Next;

C := C + 1;
Queue.AddFile('Z:\Diverse\RHO Top 15\14.mp3',ipBottom);
WriteLn('#'+IntToStr(C)+'. '+D['artist']+' - '+D['title']);
Queue.AddFile(D['filename'],ipBottom);
D.Next;

C := C + 1;
Queue.AddFile('Z:\Diverse\RHO Top 15\13.mp3',ipBottom);
WriteLn('#'+IntToStr(C)+'. '+D['artist']+' - '+D['title']);
Queue.AddFile(D['filename'],ipBottom);
D.Next;

C := C + 1;
Queue.AddFile('Z:\Diverse\RHO Top 15\12.mp3',ipBottom);
WriteLn('#'+IntToStr(C)+'. '+D['artist']+' - '+D['title']);
Queue.AddFile(D['filename'],ipBottom);
D.Next;

C := C + 1;
Queue.AddFile('Z:\Diverse\RHO Top 15\11.mp3',ipBottom);
WriteLn('#'+IntToStr(C)+'. '+D['artist']+' - '+D['title']);
Queue.AddFile(D['filename'],ipBottom);
D.Next;

C := C + 1;
Queue.AddFile('Z:\Diverse\RHO Top 15\10.mp3',ipBottom);
WriteLn('#'+IntToStr(C)+'. '+D['artist']+' - '+D['title']);
Queue.AddFile(D['filename'],ipBottom);
D.Next;

C := C + 1;
Queue.AddFile('Z:\Diverse\RHO Top 15\9.mp3',ipBottom);
WriteLn('#'+IntToStr(C)+'. '+D['artist']+' - '+D['title']);
Queue.AddFile(D['filename'],ipBottom);
D.Next;

C := C + 1;
Queue.AddFile('Z:\Diverse\RHO Top 15\8.mp3',ipBottom);
WriteLn('#'+IntToStr(C)+'. '+D['artist']+' - '+D['title']);
Queue.AddFile(D['filename'],ipBottom);
D.Next;

C := C + 1;
Queue.AddFile('Z:\Diverse\RHO Top 15\7.mp3',ipBottom);
WriteLn('#'+IntToStr(C)+'. '+D['artist']+' - '+D['title']);
Queue.AddFile(D['filename'],ipBottom);
D.Next;

C := C + 1;
Queue.AddFile('Z:\Diverse\RHO Top 15\6.mp3',ipBottom);
WriteLn('#'+IntToStr(C)+'. '+D['artist']+' - '+D['title']);
Queue.AddFile(D['filename'],ipBottom);
D.Next;

C := C + 1;
Queue.AddFile('Z:\Diverse\RHO Top 15\5.mp3',ipBottom);
WriteLn('#'+IntToStr(C)+'. '+D['artist']+' - '+D['title']);
Queue.AddFile(D['filename'],ipBottom);
D.Next;

C := C + 1;
Queue.AddFile('Z:\Diverse\RHO Top 15\4.mp3',ipBottom);
WriteLn('#'+IntToStr(C)+'. '+D['artist']+' - '+D['title']);
Queue.AddFile(D['filename'],ipBottom);
D.Next;

C := C + 1;
Queue.AddFile('Z:\Diverse\RHO Top 15\3.mp3',ipBottom);
WriteLn('#'+IntToStr(C)+'. '+D['artist']+' - '+D['title']);
Queue.AddFile(D['filename'],ipBottom);
D.Next;

C := C + 1;
Queue.AddFile('Z:\Diverse\RHO Top 15\2.mp3',ipBottom);
WriteLn('#'+IntToStr(C)+'. '+D['artist']+' - '+D['title']);
Queue.AddFile(D['filename'],ipBottom);
D.Next;

C := C + 1;
Queue.AddFile('Z:\Diverse\RHO Top 15\1.mp3',ipBottom);
WriteLn('#'+IntToStr(C)+'. '+D['artist']+' - '+D['title']);
Queue.AddFile(D['filename'],ipBottom);
D.Next;

Queue.AddFile('Z:\Diverse\RHO Top 15\einde top 15 jingle.mp3',ipBottom);

end;
Queue.Free;
D.Free;
end;
Dus allereerst, geef even aan WAAR jij je "Specifieke audiofile draaien ( vaste jingle )" hebt staan.
Groedjez,
drO

radio0511
*
Berichten: 10
Lid geworden op: 08 aug 2016, 14:47
SAM-versie: 4.4.7.
Database: MS SQL
Windows: 8.1

Re: Request Top draaien

Ongelezen bericht door radio0511 » 05 sep 2016, 22:54

drOhimself schreef:Even gezocht hier op het forum en kom ik
pal/request-top-andersom-opgelost-t3572 ... est#p22329 deze tegen.
Eentje uit de oude doos, die de 15 meest aangevraagde nummers oplepelt.
Denk dat we deze wel kunnen gebruiken !



Dus allereerst, geef even aan WAAR jij je "Specifieke audiofile draaien ( vaste jingle )" hebt staan.
Voor zover ik het kan bekijken zou het zo goed moeten zijn. Ik gebruik geen top 15 maar top 11, dus heb ik 4 blokjes verwijderd en de 15 in 11 gewijzigd.
Zaterdag 16:00 is waarschijnlijk ook het tijdstip wat ik wil gebruiken , en anders kan ik die altijd nog wijzigen.
Ik ga in de event scheduler het sponsorblok , en vaste jingles en nieuws op het hele uur verwijderen en heb ik toegevoegd in dit pal script.
Die event wordt gestart op 16:58.30 en laat de huidge plaat uitdraaien ( zwevend nieuws ) Ik weet niet waarom er in het originele script 2 tijdstippen stonden met een verschil van 10 seconden, maar dit heb ik maar mee over genomen.
Als ik het goed begrijp start de 11.mp3 gelijk achter begin.mp3 Klopt dat in hoe ik het pal script heb aangepast ?
Klopt het script verder zo of zie je nog dingen die anders moeten ?
Alvast bedankt voor het kijken

Code: Selecteer alles

Pal.Loop:=True;

// Zaterdag 16:00 uur
while DayOfWeek(Now) = Saturday and ((Now >= T['16:00:00']) and (Now <= T['15:58:20'])) do
begin
RequestPolicy.InsertPos := ripNone;
PAL.WaitForTime(T['15:58:30']);

Queue.AddFile('D:\mp3\NIEUWS\0511 REQUEST - 0511 REQUEST.mp3',ipBottom);
Queue.AddFile('D:\mp3\NIEUWS\0511 RECLAMEPINGEL - 0511 RECLAMEPINGEL.mp3',ipBottom);
Queue.AddFile('D:\mp3\NIEUWS\RADIO 0511 SPONSORBLOK EVEN UREN - SPONSORBLOK.mp3',ipBottom);
Queue.AddFile('D:\mp3\NIEUWS\0511 RECLAMEPINGEL - 0511 RECLAMEPINGEL.mp3',ipBottom);
Queue.AddFile('D:\mp3\NIEUWS\0511 NIEUWS - 0511 NIEUWS.mp3',ipBottom);
Queue.AddFile('D:\mp3\JINGLES\TOP11\BEGIN.mp3',ipBottom);
var D : TDataSet;
var C : Integer;
D := Query('SELECT songlist.*, count(*) as cnt '+
              'FROM songlist,requestlist '+
              'WHERE songlist.ID = requestlist.songID '+
              '        AND requestlist.code < 700'+
              '        AND DATE_SUB(NOW(), INTERVAL 7 DAY)'+
              '<= t_stamp GROUP BY songlist.ID '+
              'ORDER BY cnt DESC LIMIT 11',[],True);

C := 0;
D.First;
while not D.EOF do
begin
C := C + 1;
Queue.AddFile('D:\mp3\JINGLES\TOP11\11.mp3',ipBottom);
WriteLn('#'+IntToStr(C)+'. '+D['artist']+' - '+D['title']);
Queue.AddFile(D['filename'],ipBottom);
D.Next;

C := C + 1;
Queue.AddFile('D:\mp3\JINGLES\TOP11\10.mp3',ipBottom);
WriteLn('#'+IntToStr(C)+'. '+D['artist']+' - '+D['title']);
Queue.AddFile(D['filename'],ipBottom);
D.Next;

C := C + 1;
Queue.AddFile('D:\mp3\JINGLES\TOP11\09.mp3',ipBottom);
WriteLn('#'+IntToStr(C)+'. '+D['artist']+' - '+D['title']);
Queue.AddFile(D['filename'],ipBottom);
D.Next;

C := C + 1;
Queue.AddFile('D:\mp3\JINGLES\TOP11\08.mp3',ipBottom);
WriteLn('#'+IntToStr(C)+'. '+D['artist']+' - '+D['title']);
Queue.AddFile(D['filename'],ipBottom);
D.Next;

C := C + 1;
Queue.AddFile('D:\mp3\JINGLES\TOP11\07.mp3',ipBottom);
WriteLn('#'+IntToStr(C)+'. '+D['artist']+' - '+D['title']);
Queue.AddFile(D['filename'],ipBottom);
D.Next;

C := C + 1;
Queue.AddFile('D:\mp3\JINGLES\TOP11\06.mp3',ipBottom);
WriteLn('#'+IntToStr(C)+'. '+D['artist']+' - '+D['title']);
Queue.AddFile(D['filename'],ipBottom);
D.Next;

C := C + 1;
Queue.AddFile('D:\mp3\JINGLES\TOP11\05.mp3',ipBottom);
WriteLn('#'+IntToStr(C)+'. '+D['artist']+' - '+D['title']);
Queue.AddFile(D['filename'],ipBottom);
D.Next;

C := C + 1;
Queue.AddFile('D:\mp3\JINGLES\TOP11\04.mp3',ipBottom);
WriteLn('#'+IntToStr(C)+'. '+D['artist']+' - '+D['title']);
Queue.AddFile(D['filename'],ipBottom);
D.Next;

C := C + 1;
Queue.AddFile('D:\mp3\JINGLES\TOP11\03.mp3',ipBottom);
WriteLn('#'+IntToStr(C)+'. '+D['artist']+' - '+D['title']);
Queue.AddFile(D['filename'],ipBottom);
D.Next;

C := C + 1;
Queue.AddFile('D:\mp3\JINGLES\TOP11\02.mp3',ipBottom);
WriteLn('#'+IntToStr(C)+'. '+D['artist']+' - '+D['title']);
Queue.AddFile(D['filename'],ipBottom);
D.Next;

C := C + 1;
Queue.AddFile('D:\mp3\JINGLES\TOP11\01.mp3',ipBottom);
WriteLn('#'+IntToStr(C)+'. '+D['artist']+' - '+D['title']);
Queue.AddFile(D['filename'],ipBottom);
D.Next;

Queue.AddFile('D:\mp3\JINGLES\TOP11\EINDE.mp3',ipBottom);

end;
Queue.Free;
D.Free;
end;
Laatst gewijzigd door drOhimself op 06 sep 2016, 17:14, 1 keer totaal gewijzigd.
Reden: EDIT : wederom het script tussen [code] en [/code] gezet.

Gebruikersavatar
drOhimself
Moderator
Berichten: 2941
Lid geworden op: 27 mar 2010, 11:44
SAM-versie: SAM 2014.7
Database: MySQL 5.0
Windows: 2000

Re: Request Top draaien

Ongelezen bericht door drOhimself » 06 sep 2016, 17:20

Ziet er volgens mij wel goed uit, echter kan het zo maar zijn dat er nog een punt of een komma verkeerd staat.
Waar je volgende keer even op mag letten, is dat je het script tussen [ code ] en [ /code ] plaatst.
Dit doe je door boven het veld waar je je tekst in typt, op de oranje knop CODE te drukken. (zie plaatje)

Ik kan het zelf niet testen omdat ik niet gebruik maak van verzoekjes.
Heb jij het zelf wel getest ?
Even de dag en de 3 tijden aanpassen, hoppa !
Ben benieuwd !

Ik zie dat je een fout maakt :

Code: Selecteer alles

while DayOfWeek(Now) = Saturday and ((Now >= T['16:00:00']) and (Now <= T['15:58:20'])) do
begin
RequestPolicy.InsertPos := ripNone;
PAL.WaitForTime(T['15:58:30']);
Dat moet natuurlijk zijn :

Code: Selecteer alles

while DayOfWeek(Now) = Saturday and ((Now >= T['15:58:20']) and (Now <= T['15:58:30'])) do
begin
RequestPolicy.InsertPos := ripNone;
PAL.WaitForTime(T['15:58:40']);
Die 3 tijden MOETEN dus na elkaar komen....!!!
15:58:20
15:58:30
15:58:40

De While loop begint als de huidige tijd TUSSEN 15:58:20 EN 15:58:30 is.
Dan WaitForTime 15:58:40.
Anders krijg je hele rare dingen !
Je hebt niet voldoende permissies om de bijlagen van dit bericht te bekijken.
Groedjez,
drO

radio0511
*
Berichten: 10
Lid geworden op: 08 aug 2016, 14:47
SAM-versie: 4.4.7.
Database: MS SQL
Windows: 8.1

Re: Request Top draaien

Ongelezen bericht door radio0511 » 07 sep 2016, 17:50

Super bedankt.
Het werkt!
drOhimself schreef:Ziet er volgens mij wel goed uit, echter kan het zo maar zijn dat er nog een punt of een komma verkeerd staat.
Waar je volgende keer even op mag letten, is dat je het script tussen [ code ] en [ /code ] plaatst.
Dit doe je door boven het veld waar je je tekst in typt, op de oranje knop CODE te drukken. (zie plaatje)

Ik kan het zelf niet testen omdat ik niet gebruik maak van verzoekjes.
Heb jij het zelf wel getest ?
Even de dag en de 3 tijden aanpassen, hoppa !
Ben benieuwd !

Ik zie dat je een fout maakt :

Code: Selecteer alles

while DayOfWeek(Now) = Saturday and ((Now >= T['16:00:00']) and (Now <= T['15:58:20'])) do
begin
RequestPolicy.InsertPos := ripNone;
PAL.WaitForTime(T['15:58:30']);
Dat moet natuurlijk zijn :

Code: Selecteer alles

while DayOfWeek(Now) = Saturday and ((Now >= T['15:58:20']) and (Now <= T['15:58:30'])) do
begin
RequestPolicy.InsertPos := ripNone;
PAL.WaitForTime(T['15:58:40']);
Die 3 tijden MOETEN dus na elkaar komen....!!!
15:58:20
15:58:30
15:58:40

De While loop begint als de huidige tijd TUSSEN 15:58:20 EN 15:58:30 is.
Dan WaitForTime 15:58:40.
Anders krijg je hele rare dingen !

Gebruikersavatar
drOhimself
Moderator
Berichten: 2941
Lid geworden op: 27 mar 2010, 11:44
SAM-versie: SAM 2014.7
Database: MySQL 5.0
Windows: 2000

Re: Request Top draaien

Ongelezen bericht door drOhimself » 07 sep 2016, 17:51

Mooi !
En waar kunnen we dit moois allemaal bewonderen ?
Groedjez,
drO

radio0511
*
Berichten: 10
Lid geworden op: 08 aug 2016, 14:47
SAM-versie: 4.4.7.
Database: MS SQL
Windows: 8.1

Re: Request Top draaien

Ongelezen bericht door radio0511 » 07 sep 2016, 22:13

drOhimself schreef:Mooi !
En waar kunnen we dit moois allemaal bewonderen ?
op www.radio0511.com

Plaats reactie
  • Vergelijkbare Onderwerpen
    Reacties
    Weergaves
    Laatste bericht