Example #1
0
    def get_palimpsest(self,datetime_start,datetime_end):

        step=timedelta(minutes=minelab*2) 


        for datetimeelab in dates(datetime_start, datetime_end, step):

            pro=gest_palimpsest(datetimeelab,minelab)

            for program in pro.get_program():

                length=program.show.length
                if length is None:
                    logging.warning("get_palimpsest: %s legth is None; setting default to 3600 sec",str(program))
                    length = 3600
                pdatetime_start=program.ar_scheduledatetime
                title=str(program)
                pdatetime_end=program.ar_scheduledatetime+timedelta(seconds=length)
                code=program.show.type.code
                type=program.show.type.type
                subtype=program.show.type.subtype
                production=program.show.production
                note=""

                if pdatetime_start >= datetime_start and pdatetime_end < datetime_end :

                    self.append(palimpsest(title,pdatetime_start,pdatetime_end,
                                           code,type,subtype,production,note))


        self.sort()

        #print "prima:"
        #for program in self:
        #    print program

        # timing adjust:
        #    1) overlay
        #    2) insert music no stop for interval >15 minutes


        musicanostop=palimpsests([])

        for i in range(len(self)-1):
            if self[i].datetime_end > self[i+1].datetime_start:

                self[i].datetime_end=self[i+1].datetime_start

            elif self[i].datetime_end < self[i+1].datetime_start-timedelta(minutes=15):

                musicanostop.append(palimpsest("Musica no stop",self[i].datetime_end,
                                       self[i+1].datetime_start,code="13f",
                                       type="13",subtype="13f",production="autoproduzione",note=None))

        for element in musicanostop:
            self.append(element)

        self.sort()

        for i in range(len(self)-1):
        #    3) chain little interval

            if self[i].datetime_end != self[i+1].datetime_start:

                dtmean=self[i].datetime_end+((self[i+1].datetime_start-self[i].datetime_end)/2)

                self[i].datetime_end=dtmean
                self[i+1].datetime_start=dtmean

        # add head and tail:
        #    chain little interval
        if len(self) > 0 :

            if self[0].datetime_start != datetime_start :

                self.insert(0,palimpsest("Musica no stop",datetime_start,
                                       self[0].datetime_start,code="13f",
                                       type="13",subtype="13f",production="autoproduzione",note=None))

            if self[len(self)-1].datetime_end != datetime_end :

                self.append(palimpsest("Musica no stop",self[len(self)-1].datetime_end,
                                       datetime_end,code="13f",
                                   type="13",subtype="13f",production="autoproduzione",note=None))



        #print "dopo:"
        #for program in self:
        #    print program


        # Spots

        for datetimeelab in dates(datetime_start, datetime_end, step):

            #print datetimeelab,minelab
            spots=gest_spot(datetimeelab,minelab,playlistdir)

            for fascia in spots.get_fasce(genfile=False):

                length=spots.ar_length
                #pdatetime_start=spots.ar_emission_done
                pdatetime_start=spots.ar_scheduledatetime
                number=spots.ar_spots_in_fascia
                #title=str(fascia)
                title="PubblicitĂ "
                pdatetime_end=pdatetime_start+timedelta(seconds=length)
                type="5"
                subtype="5a"
                production=""
                note="%d Spot" % number

                #if (number <> 0 and pdatetime_start.date() == dateelab):
                if number <> 0 and  pdatetime_start >= datetime_start and pdatetime_end < datetime_end :
                    self.append(palimpsest(title,pdatetime_start,pdatetime_end,
                                           type,subtype,production,note))


        self.sort()

        return self
Example #2
0
    def get_all(self,now=None,genfile=True):

        # time constants

        #this is the first and last time that I set the current time
        if now is None : now=datetime.now()

        spots=gest_spot(now,minelab,playlistdir)

        for fascia in spots.get_fasce(genfile):

            media = spots.ar_url
            filename = spots.ar_filename
            scheduledatetime=spots.ar_scheduledatetime
            length=spots.ar_length
            emission_done=spots.ar_emission_done
            number=spots.ar_spots_in_fascia
            #print scheduledatetime,media,length,number,emission_done
            if (number <> 0 ):
                self.append(schedule(fascia,scheduledatetime,media,filename,length,"spot",emission_done,title=str(fascia)))


        programs=gest_program(now,minelab)

        for programma in programs.get_program():

            media = programma.ar_url
            filename = programma.ar_filename
            scheduledatetime=programma.ar_scheduledatetime
            length=programma.ar_length
            emission_done=programma.ar_emission_done
            title=programma.ar_title

            #print scheduledatetime,media,length,emission_done
            self.append(schedule(programma,scheduledatetime,media,filename,length,"program",\
                                     emission_done,title=title))


        playlists=gest_playlist(now,minelab)

        for playlist in playlists.get_playlist():

            media = playlist.ar_url
            filename = playlist.ar_filename
            scheduledatetime=playlist.ar_scheduledatetime
            length=playlist.ar_length
            maxlength=playlist.length
            emission_done=playlist.ar_emission_done
            shuffle=playlist.ar_shuffle
            #print scheduledatetime,media,length,emission_done
            self.append(schedule(playlist,scheduledatetime,media,filename,length,"playlist",\
                                     emission_done,shuffle,maxlength,title=str(playlist)))


        jingles=gest_jingle(now,minelab)

        for jingle in jingles.get_jingle():

            media = jingle.ar_url
            filename = jingle.ar_filename
            scheduledatetime=jingle.ar_scheduledatetime
            length=jingle.ar_length
            emission_done=jingle.ar_emission_done

            #print scheduledatetime,media,length,emission_done
            self.append(schedule(jingle,scheduledatetime,media,filename,length,"jingle",\
                                     emission_done,title=str(jingle)))


        return self