Request Filteren

PHP, HTML, Joomla, WordPress, etc..
Plaats reactie
rhradmin

Request Filteren

Ongelezen bericht door rhradmin »

Beste Broadcaster Community,

Ik vroeg me af is er een mogelijkheid om mijn request lijst te filteren?
Tracks langer dan 10 minuten niet in de lijst komen.

Ik weet dat ik dan elke set op P moet zetten in Sam Broadcaster ipv op S, maar dit is geen ideale situaties.

Is het niet mogelijk om in de config te filteren via PHP.
Mijn PHP kennis bevat helaas dit gedeelte dit ;)

Hoop dat jullie me kunnen helpen.

Mvg,
Roy
ojee66

Re: Request Filteren

Ongelezen bericht door ojee66 »

Code: Selecteer alles

PAL.Loop := True;
{PAL.MemoryLeakWarning := True;}
{-->Insert first songs into queue}


PAL.LockExecution;
{-->Insert next request + Jingle if request was found}
var AQuery, queueBottom : TDataSet;
var Song : TSongInfo;

AQuery := Query('SELECT songlist.*, requestlist.*, 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
{Also Set SAM to leave Requests in the queue}

{A cool idea would be to insert a jingle here
that says "The next song is by request" or something similar}
{For example: Queue.AddFile('c:\.mp3',ipBottom);}

{CHECK IF PRIOR JINGLE IS ALREADY IN QUEUE}
queueBottom := Query('SELECT queuelist.requestID, queuelist.songID, songlist.title, songlist.songtype, songlist.artist, songlist.album from queuelist, songlist where queuelist.songID = songlist.ID ORDER BY sortID DESC LIMIT 1', [], true);
if(queueBottom['songtype'] <> 'J') then
begin
//   CAT['Jingles (All)'].QueueBottom(smRandom,NoRules); //<----this is the jingle that gets inserted before each requested song
Queue.Addfile('c:\promo\request.mp3', ipBottom);

   queueBottom.Free;
end;
{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']]);

end
else
WriteLn('No request found');
PAL.UnLockExecution;
{Wait for songs in queue to play}
AQuery.Free;
Song.Free;
queueBottom.Free;
//while (Queue.Count > 1) do
PAL.WaitForPlayCount(1);
PAL.WaitForTime('+00:00:25');


Daar wel iets in veranderen namelijk de check of het een track is die langer dan 10 minuten is.

Hier nog een voorwaarde toevoegen

+' WHERE (requestlist.ETA<:now) AND (requestlist.status=''new'') AND (songlist.ID=requestlist.songID) '

zodat het zoiets wordt;

+' WHERE (requestlist.ETA<:now) AND (requestlist.status=''new'') AND (songlist.duration<:1000000) AND (songlist.ID=requestlist.songID) '



Niet getest!!
rhradmin

Re: Request Filteren

Ongelezen bericht door rhradmin »

Ik snap niet echt wat dit script doet...
Tevens krijg ik een SQL Foutmelding.

Is het niet mogelijk om de php pagina te filteren door Duration +10 mins niet te weergeven?

OF alle tracks die langer zijn dan +10 minuten op de songtype P te zetten met een script?
ojee66

Re: Request Filteren

Ongelezen bericht door ojee66 »

Hi

Er stond ook bij dat het niet getest was....

Idd bovenstaande oplossing is de moeilijke, een aanpassing van de php pagina is een stuk beter.
Denk er dan wel aan dat er in de standaard sam 2 plekken zijn om aan te vragen.
De lijst en de songinfo.

Code: Selecteer alles

 //Now grab a section of that
 $db->params = $tmp; //Restore params
 $db->open("SELECT songlist.* , categorylist.* FROM songlist, categorylist WHERE (songtype='S') AND (status=0) ORDER BY artist ASC, title ASC", $limit, $start);
 $row = $db->row();
 
kan worden aangepast, dan zie geen liedjes van 10 minuten op langer of,

Code: Selecteer alles

	<td nowrap width="1%"> 
      <p align="center"><font size="2" color="#003366"><a href="<? echo $song["request"]; ?>"><img
    src="images/request.gif" alt="Request this song now!" border="0"></a></font> 
    </td>
aanpassen dan zie je nog wel de liedjes maar kan je ze niet aanvragen.

Dat is dan voor d eplaylist.

De songinfo kan je hier aanpassen

Code: Selecteer alles

    <td bgcolor="eaeaea" align="center"><a href="<? echo $song["request"]; ?>"><img src="images/request.gif" alt="Request this song now!" border="0"></a></td>
  </tr>
Gebruikersavatar
Wout
Beheerder
Berichten: 3511
Lid geworden op: 03 dec 2007, 14:17
SAM-versie: 2019.3
Database: MariaDB
Windows: 11
Locatie: West-Brabant
Contacteer:

Re: Request Filteren

Ongelezen bericht door Wout »

In je playlist.php verander je de volgende regel.

Code: Selecteer alles

 $where = " WHERE (songtype='S') AND (status=0) "; 
In onderstaand

Code: Selecteer alles

 $where = " WHERE (songtype='S') AND (status=0) AND (duration <600000)"; 
600000 = 10 minuten
Want 60 seconden x 10 minuten = 600 x 1000 miliseconden = 600000 miliseconden
Afbeelding
rhradmin

Re: Request Filteren

Ongelezen bericht door rhradmin »

Juist wout dat is hem!!!

Hartelijk bedankt!!
Plaats reactie
  • Vergelijkbare Onderwerpen
    Reacties
    Weergaves
    Laatste bericht