PAL script wat requests enabled/disabled

Voor vragen over Playlist Automation Language.
Gesloten
Eagle 1974

PAL script wat requests enabled/disabled

Ongelezen bericht door Eagle 1974 »

heb hier PAL scriptje dat requests aan/uit op bepaalde tijden , en aan/uit zet aan de hand van ip.
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;
Misschien heeft iemand van de mede sam-forummers er iets aan.
Gebruikersavatar
Wout
Beheerder
Berichten: 3522
Lid geworden op: 03 dec 2007, 14:17
SAM-versie: 2019.3
Database: MariaDB
Windows: 11
Locatie: West-Brabant
Contacteer:

Re: PAL script wat requests enabled/disabled

Ongelezen bericht door Wout »

Bedankt voor het delen.
Afbeelding
Eagle 1974

Re: PAL script wat requests enabled/disabled

Ongelezen bericht door Eagle 1974 »

Ik ben nog paar foutjes tegen gekomen in script.
Hier de aangepaste versie.

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
  PAL.WaitForTime('+00:01:00');
  requestoud := request;
  slotnummer := 0; // we hebben nog geen dj slot
  IF (Encoders[0].Status='Encoding') THEN
    request := 0;
  IF (Encoders[0].Status<>'Encoding') THEN
  BEGIN
    request := 1; // ik draai niet, dus ik wil geen requests
  END;

  // vanaf hier volgt DJ slot1
  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 slot1

  // vanaf hier volgt DJ slot2
  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 slot2

// vanaf hier volgt DJ slot3
  IF (DayOfWeek(NOW)=wednesday) THEN
  BEGIN
    IF (NOW >= T['19:30:00']) AND (NOW <= T['22:45:00']) THEN
    BEGIN
      request := 2; // nu requesten we (toch) niet
      slotnummer := 3;
    END; // IF now
  END; // IF wednesday
  // hier eindigt DJ slot3

  // vanaf hier volgt DJ slot4
  IF (DayOfWeek(NOW)=thursday) THEN
  BEGIN
    IF (NOW >= T['19:30:00']) AND (NOW <= T['22:45:00']) THEN
    BEGIN
      request := 2;
      slotnummer := 4;
    END; // IF now
  END; // IF thursday
  // hier eindigt DJ slot4

  // vanaf hier volgt DJ slot5
  IF (DayOfWeek(NOW)=friday) THEN
  BEGIN
    IF (NOW >= T['19:30:00']) AND (NOW <= T['22:45:00']) THEN
    BEGIN
      request := 2;
      slotnummer := 5;
    END; // IF now
  END; // IF friday
  // hier eindigt DJ slot5

  // vanaf hier volgt DJ slot6
  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; // IF now
  END; // IF saturday
  // hier eindigt DJ slot6

  // vanaf hier volgt DJ slot7
  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; // IF now
  END; // IF sunday
  // hier eindigt DJ slot7

  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
    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;
END;

Gesloten
  • Vergelijkbare Onderwerpen
    Reacties
    Weergaves
    Laatste bericht