Plaat uitspelen voor het nieuws. (TOTH)

Voor vragen over Playlist Automation Language.
spiedie
***
Berichten: 61
Lid geworden op: 15 mei 2006, 15:56
SAM-versie: 4.9.6.
Database: MySQL 5.1
Windows: 7 64-bits

Re: Plaat uitspelen voor het nieuws. (TOTH)

Ongelezen bericht door spiedie » 22 mar 2017, 11:53

Wow, wat een fijn script is dit, complimenten aan de maker(s) ervan. Ik heb dit script nu zo'n 2 weken in gebruik en bij 95% gaat het vlekkeloos. Toch word ik ook een enkele keer verrast met een kerstplaat en daar gaat deze vraag over.

Is er een mogelijkheid om deze platen uit te sluiten? (behalve ze te verwijderen uit de database natuurlijk) Zit er zelf aan te denken door bijvoorbeeld de categories "xmas" en "summer" uit te sluiten voor de TOTH. Is dit ook mogelijk? En zo ja, hoe gaat me dat lukken? :)

Gebruikersavatar
Wout
Moderator
Berichten: 3227
Lid geworden op: 03 dec 2007, 14:17
SAM-versie: SAM 2018.10
Database: MySQL 8.0
Windows: Windows 10
Locatie: Bergen op Zoom
Contacteer:

Re: Plaat uitspelen voor het nieuws. (TOTH)

Ongelezen bericht door Wout » 22 mar 2017, 16:59

Jazeker is dat mogelijk, zelf gebruik ik ook een filter op categorieën.
Als je de ID weet van je categorie kan je het invullen in de PAL.

Code: Selecteer alles

Pal.Loop := True ;

    // Begin het script op elk uur vanaf 5 voor het uur
    PAL.WaitForTime(T['XX:55:00']) ;

    // Speed some things up
    Pal.LockExecution ;

        // Wat variabele instellen
        var RestTijd : Integer ;
        var Now_minutes, tijd, uur, nieuws : String ;
        var D : TDataSet ;
        var plus_uur : DateTime ;

        plus_uur := T['+01:00:00'] ;
        tijd := FormatDateTime('hh', plus_uur) ;

        uur := '\\HOMESERVER\Muziek\Jingle\tijd\' + tijd + '.mp3' ;
        nieuws := 'HOMESERVERMuziekJingleNEWSnieuws.mp3' ;

        // Alleen de minuten van het uur
        Now_minutes := FormatDateTime('n', Now) ;

        // De aantal minuten afhalen van 1 uur en waar rekening is gehouden met de spelende nummer in miliseconden
        RestTijd := ( ( (60 - Now_minutes ) * 60000) ) - ( Activeplayer.Duration - ActivePlayer.CurTime ) ;

        // Hier zoek ie de nummer met de juiste lengte + een beetje meer
        D := QUERY('SELECT artist, title, filename '+
                    'FROM songlist s, categorylist cl, category c '+
                    'WHERE s.ID = cl.songID '+
                    'AND categoryID NOT IN (20, 30, 31, 32, 33, 34, 35, 36, 44, 48, 49, 50) '+
                    'AND cl.categoryID = c.ID '+
                    'AND date_artist_played <= DATE_SUB(NOW(), INTERVAL c.artist_min MINUTE) '+
                    'AND date_album_played <= DATE_SUB(NOW(), INTERVAL c.album_min MINUTE) '+
                    'AND date_title_played <= DATE_SUB(NOW(), INTERVAL c.title_min MINUTE) '+
                    'AND duration '+
                    'BETWEEN :RestTijd '+
                    'AND :RestTijd + 9000 ' +        // Hier wat speling op de lengte van het gezochte nummer met 9 seconden
                    'ORDER BY RAND() ' +            // Hij pakt een willekeurige nummer die voldoet aan de eisen
                    'LIMIT 1', [RestTijd], True ) ;

        D.First ;

        if not D.EOF then
        begin
            if((Now >= T['06:00:00']) and (Now <= T['23:00:00'])) then
                Queue.Addfile(nieuws, IpTop) ;    
            Queue.Addfile(uur, ipTop);
            Queue.Addfile(+D['filename'], IpTop) ;
            D.next ;
        end
        else
        begin
            WriteLn('Geen Resultaat');
            if((Now >= T['06:00:00']) and (Now <= T['23:00:00])) then
                Queue.Addfile(nieuws, IpTop) ;        
            Queue.Addfile(uur, ipTop);
        end;
        D.free ;

    // Slow some things down
    Pal.UnLockExecution ; 
Afbeelding

spiedie
***
Berichten: 61
Lid geworden op: 15 mei 2006, 15:56
SAM-versie: 4.9.6.
Database: MySQL 5.1
Windows: 7 64-bits

Re: Plaat uitspelen voor het nieuws. (TOTH)

Ongelezen bericht door spiedie » 24 mar 2017, 08:49

Wout schreef:Jazeker is dat mogelijk, zelf gebruik ik ook een filter op categorieën.
Als je de ID weet van je categorie kan je het invullen in de PAL.
Bedankt voor je reactie, maar nu heb ik het forum al doorzocht alsmede via google getracht het antwoord te vinden maar hoe kom ik erachter wat mijn CategoryID's zijn. Met schaamrood op de kaken moet ik weer een beroep doen op de kenners. [smilie=blush2.gif]

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

Plaat uitspelen voor het nieuws. (TOTH)

Ongelezen bericht door drOhimself » 28 mar 2017, 11:07

Ik weet dat er een topic is gewijd aan dit onderwerp in het verleden.
Ik probeer dat topic -zo snel mogelijk- te vinden.
Groedjez,
drO

Plaats reactie
  • Vergelijkbare Onderwerpen
    Reacties
    Weergaves
    Laatste bericht