Hahaha, sorry I think I might've confused you with the WaitForAtLeastTime thing.
There is no command by that name as you might've noticed. I just said that it should actually be called that way to better explain how the command works and that the real name is misleading. If you want to have a PAL script wait for an exact time, you first need to check if the next wait time is today or tomorrow. If you can still wait for that time today, PAL.WaitForTime works just as expected. If that time is already over, you first have to wait for the end of the day and then wait for the time again.
Example:
It's 5am and you want to wait for 07:00:00 => PAL.WaitForTime will wait 2 hours until it's 7am.
It's 11am and you want to wait for 07:00:00 => PAL.WaitForTime will not wait at all, because 7am is already over.
For situations where you want to run a PAL script every day at one specific time, better use the event scheduler and schedule the PAL script to run instead of adding a loop and WaitForTime to your PAL script.
---
Code:
months[1] := 'Januar';
months[2] := 'Februar';
You either missed a y at the end of the first 2 months or you mistakenly named your other months in English instead of sticking with the German names.
Code:
url := 'https://content.blubrry.com/thenationaldaily/National_Daily_...' + months[mm] + '_' + IntTostr(dd) + '_' + IntToStr(yy) + '...';
That doesn't look like the sample filename you posted earlier. You missed to fill in the blanks I left for you to fill in. (... is not the actual text that's supposed to go there. You take the original link and put everything up to the name of the month in front of the first + and everything that comes after the year after the last + - You're supposed to fill in the correct filename and stuff yourself where I left the ...)
Same here:
Code:
Queue.AddFile('c:\documents\alexanews\National_Daily_...' + months[mm] + '_' + IntTostr(dd) + '_' + IntToStr(yy) + '...';.mp3',ipTop);
That script will not work because you messed the IF up.
An if statement can either have ONE (only one) command that is executed when the condition matches or it can have a block of statements enclosed in begin ... end; (You may not have a semicolon after END if the next line says either ELSE or UNTIL and you must have a semicolon after END in any other case)
In your case you moved the queue.addfile inside the IF, so that one is only executed if there's no player that has a track loaded, but is not playing.
The rest of the code is always executed, regardless of whether there is a QueuedPlayer or not and regardless of whether you added the file to the queue or not.
Last but not least: Where did downloading the file go? You stored the URL in a variable, but never use it and then you add a file from your harddisk that you never downloaded in the first place (or maybe you have, but you didn't do that through SAM)
---
To sum it up:
1. Schedule your script with the Event scheduler and remove WaitForTime and PAL.Loop
2. Fix your months
3. Fix the URL (fill in the ...)
4. Download the file after you built the url and before you add it to the queue. (WebToFile in my last post)
5. Fix the IF (move queue.addfile above the IF, remove activeplayer.fadetonext)
6. Maybe you need to fix your queue.addfile after you downloaded the file (use the same name you entered in WebToFile as the second parameter)