how to workout the programs times?

Discussion of plugin / script development for XBMC4Xbox
Post Reply
chris0147
Posts: 24
Joined: Thu Jun 19, 2014 4:48 pm

how to workout the programs times?

Post by chris0147 »

Hi guys,

I'm working on my python script to create the button for tv programs.

I know how to create the variable to get the program title for the programs which I have to pull the data from the sqlite database.

I can also create the variable for the height with size I want, but I have no idea how to work out the program times to get the width size for the button control.



Here is the code I use:

Code: Select all

#get the programs list
cur.execute('SELECT channel, title, start_date, stop_date FROM programs WHERE channel="channel"')
programList = list()
programs = cur.fetchall()


for row in programs:
     program = row[1].encode('ascii'), str(row[2]), str(row[3])
     program_title = row[1].encode('ascii')
     program_startdate = str(row[2])
     program_endDate = str(row[3])

     # find nearest half hour
     viewStartDate = datetime.datetime.now()
     viewStartDate -= datetime.timedelta(minutes = viewStartDate.minute % 30, seconds = viewStartDate.second)

     try:
         start_date = datetime.datetime.strptime(program_startdate, "%Y%m%d%H%M%S")
         end_date = datetime.datetime.strptime(program_endDate, "%Y%m%d%H%M%S")
     except TypeError:
         start_date = datetime.datetime.fromtimestamp(time.mktime(time.strptime(program_startdate, "%Y%m%d%H%M%S")))
         end_date = datetime.datetime.fromtimestamp(time.mktime(time.strptime(program_endDate, "%Y%m%d%H%M%S")))


         idx = str(program)
         notificationScheduled = program
         #convert the datetime object between start_date and end_date
         startDelta = start_date - viewStartDate
         stopDelta = end_date - viewStartDate
                        
         program_start = self.secondsToXposition(startDelta.seconds)
         if startDelta.days < 0:
            program_start = self.epgView.left
         program_width = self.secondsToXposition(stopDelta.seconds) - program_start
         
         if program_start + program_width > self.epgView.right:
             program_width = self.epgView.right - program_start


         title = program_title
         program_height = 38

         programs_controls = xbmcgui.ControlButton(350, program_width * idx, 300, program_height, program_title)
         self.addControl(programs_controls)
     cur.close()


I use this to get the start date and end date format from sqlite database:

Code: Select all

program_startdate = str(row[2])
program_endDate = str(row[3])



Here is the start date for each channel:

Code: Select all

20140520170000
20140520170000
20140520170000
20140520170000
20140520170000
20140520170000
20140520170000


Here is the end date for each channel:

Code: Select all

20140520173000
20140520180000
20140520183000
20140520173000
20140520180000
20140520180000

When you workout the two different formats, example: 20140520170000 and 20140520180000 which is make one hour then convert it to make the width size for per program.

Do you know how?
044hnoor
Posts: 1
Joined: Wed Feb 18, 2015 10:11 am

Re: how to workout the programs times?

Post by 044hnoor »

I know how to create the variable to get the program title for the programs which I have to pull the data from the sqlite database.
Post Reply