De tijden dat een dj draaid vul je in bij de dj-slot 1 t/m 7 (ik persoonlijk zet de requests eerder uit dan dj begint
zodat er minder requests een x-aantal uur blijven staan terwijl dj draait).
Dan kijkt script naar welk ip draait en of dat een ander ip is dan eigen ip,
verschild dat dan zet hij ook de requests aan/uit.
Hij zet rechts in edit venster of requests aan of uit is en als ip veranderd van welk ip naar welk ip dat is
en om hoelaat dit gebeurt is en op welke dag.
(Misschien dat ik dit ooit ook nog wil laten opslaan in een logfile, maar dat heb ik er nog niet inverwerkt.)
Tenslotte zet hij de encoder(s) uit,wacht 10 seconde en weer aan.(Dit omdat ik gemerkt heb als
de auto-dj (waar dit script draait) gekickt wordt de encoder nog wel is blijft hangen in encoding status
terwijl er een dj gewoon draait en dan niet automatische de stream terug pakt als die weer wordt vrij gegeven.
Code: Selecteer alles
var Flag : Integer;
var InfoPagina, IPadres, IPadresOud, IPvanmij : String;
var I1, I2 : Integer;
const shoutcast_password = 'XXXXXXXXXX'; //<---wachtwoord invullen
const shoutcast_host = 'XXXXXXXXXX'; //<---ip invullen
const shoutcast_port = 'XXXX'; //<---port invullen
var URL : String;
var request, slotnummer, requestoud : Integer;
URL := 'http://admin:'+shoutcast_password+'@'+shoutcast_host+':'+shoutcast_port+'/admin.cgi';
IPvanmij := ('XX.XX.XX.XX'); //<---ip van pc waar dit script op draait invullen
Flag := 0;
WHILE (Flag=0) DO
BEGIN
requestoud := request;
request := 0; // ik draai er mogen requests
slotnummer := 0; // we hebben nog geen dj slot
IF (Encoders[0].Status<>'Encoding') Then
request := 1; // ik draai niet, dus ik wil geen requests
// vanaf hier volgt DJ slot 1
IF (DayOfWeek(NOW)=monday) THEN
Begin
IF (NOW >= T['19:30:00']) AND (NOW <= T['22:45:00']) Then
BEGIN
request := 2;
slotnummer := 1;
END; // if now
END; // if monday
// hier eindigt DJ slot 1
// vanaf hier volgt DJ slot 2
IF (DayOfWeek(NOW)=tuesday) THEN
Begin
IF (NOW >= T['19:30:00']) AND (NOW <= T['22:45:00']) Then
BEGIN
request := 2;
slotnummer := 2;
END; // if now
END; // if tuesday
// hier eindigt DJ slot 2
// vanaf hier volgt DJ slot 3
IF (DayOfWeek(NOW)=wednesday) THEN
Begin
IF (NOW >= T['19:30:00']) AND (NOW <= T['22:45:00']) Then
BEGIN
request := 2;
slotnummer := 3;
END; // if now
END; // if wednesday
// hier eindigt DJ slot 3
// vanaf hier volgt DJ slot 4
IF (DayOfWeek(NOW)=thursday) THEN
Begin
IF (NOW >= T['19:30:00']) AND (NOW <= T['22:45:00']) Then
BEGIN
request := 2; // nu requesten we (toch) niet
slotnummer := 4;
END; // if now
END; // if thursday
// hier eindigt DJ slot 4
// vanaf hier volgt DJ slot 5
IF (DayOfWeek(NOW)=friday) THEN
Begin
IF (NOW >= T['18:30:00']) AND (NOW <= T['22:45:00']) Then
BEGIN
request := 2;
slotnummer := 5;
END; // if now
END; // if friday
// hier eindigt DJ slot 5
// vanaf hier volgt DJ slot 6
IF (DayOfWeek(NOW)=saturday) THEN
Begin
IF (NOW >= T['19:30:00']) AND (NOW <= T['23:59:59']) Then
BEGIN
request := 2;
slotnummer := 6;
END;
END;
// hier eindigt DJ slot 6
// vanaf hier volgt DJ slot 7
IF (DayOfWeek(NOW)=sunday) THEN
Begin
IF (NOW >= T['18:30:00']) AND (NOW <= T['22:00:00']) Then
BEGIN
request := 2;
slotnummer := 7;
END;
END;
// hier eindigt DJ slot 7
URL := 'http://admin:'+shoutcast_password+'@'+shoutcast_host+':'+shoutcast_port+'/admin.cgi';
IPadresOud := IPadres;
InfoPagina := webToStr(URL);
WebToFile('c:\IPquery.txt', URL);
InfoPagina := FileToStr('c:\IPquery.txt');
I1 := Pos('Incoming interface', InfoPagina);
I2 := Pos('Outgoing interface', InfoPagina);
IPadres := Copy(InfoPagina, I1+23, I2-I1-35);
if (request <> requestoud) THEN
WriteLn('request := '+IntToStr(request));
if (request = 2) then // is het een DJ slot?
RequestPolicy.Enabled := False;
IF (request = 1) THEN
RequestPolicy.Enabled := False;
IF (request = 0) THEN
RequestPolicy.Enabled := True;
if (request <> requestoud) THEN
IF (RequestPolicy.Enabled) THEN
WriteLn('Requests aan')
ELSE
WriteLn('Request uit');
if (IPadres <> IPadresOud) AND (IPadres <> IPvanmij) Then
begin
Encoders[0].Stop;
PAL.WaitForTime('+00:00:10');
Encoders[0].Start;
end;
if (IPadres <> IPadresOud) Then
begin
WriteLn(IPadres + ' ('+IPadresOud+')'+DateTimeToStr(NOW));
end;
PAL.WaitForTime('+00:01:00');
END;

