def get_myth_data(tuners, scheduled, recorded, expiring): """ Uses the python bindings to get information about the tuners, recent recordings and upcoming recordings. """ myMyth = MythTV() output = "" if tuners: recorders = myMyth.getRecorderList() output = "Tuners:\n" status = "Idle" for i in range(len(recorders)): recorder_data = myMyth.getRecorderDetails(recorders[i]) is_recording = myMyth.isRecording(recorders[i]) if is_recording: status = "Recording" # Get the name of the recording. program = myMyth.getCurrentRecording(recorders[i]) status = "Recording: %s (%s)" % (program.title, program.recgroup) else: status = "Idle" output = output + "%s (%s) %s\n" % (recorder_data.hostname, recorder_data.cardid, status) if scheduled > 0: upcoming_recordings = myMyth.getUpcomingRecordings() upcoming_progs = "" if (len(upcoming_recordings)) > scheduled: for recording in upcoming_recordings[0:scheduled]: upcoming_progs = upcoming_progs + "%s - %s (%s)\n" % ( recording.starttime, recording.title, recording.channame, ) else: for recording in range(upcoming_recordings): upcoming_progs = upcoming_progs + "%s - %s (%s)\n" % ( recording.starttime, recording.title, recording.channame, ) output = output + "\nScheduled recordings:\n%s" % (upcoming_progs) if recorded > 0: recorded_programs = myMyth.getRecordingList("Delete") recorded_progs = "" if (len(recorded_programs)) > recorded: for recording in recorded_programs[0:recorded]: recorded_progs = recorded_progs + "%s - %s (%s)\n" % ( recording.starttime, recording.title, recording.channame, ) else: for recording in recorded_programs: recorded_progs = recorded_progs + "%s - %s (%s)\n" % ( recoring.starttime, recording.title, recording.channame, ) output = output + "\nRecent Recordings:\n%s" % (recorded_progs) if expiring > 0: expiring_programs = myMyth.getExpiring() expiring_progs = "" if (len(expiring_programs)) > expiring: for recording in expiring_programs[0:expiring]: expiring_progs = expiring_progs + "%s - %s (%s)\n" % ( recording.starttime, recording.title, recording.channame, ) else: for recording in expiring_programs: expiring_progs = expiring_progs + "%s - %s (%s)\n" % ( recording.starttime, recording.title, recording.channame, ) output = output + "\nRecordings about to expire:\n%s" % (expiring_progs) return output
from MythTV import MythDB d="/var/lib/mythtv/movies-group/rihanna/" def cmpTime(a,b): atime = int(time.mktime(a.recstartts.timetuple())) btime = int(time.mktime(b.recstartts.timetuple())) return btime - atime def filterMovies(a): return a.stars > 0 and a.recstatus == -1; myth = MythTV() db = MythDB() c = db.cursor() # c.execute("""UPDATE recorded SET %s = %%s # WHERE chanid=%%s and starttime=%%s""" % field, # (value,self.chanid,self.starttime)) # c.close() progs = filter(filterMovies, myth.getPendingRecordings()) for p in sorted(progs, cmpTime): print "%s %s %-8s %-8s %-20s" % (p.recstartts, p.chanid, p.recgroup, p.storagegroup, p.title) if p.recgroup <> "Movies" or p.storagegroup <> "Movies": c.execute("UPDATE record SET recgroup='Movies', storagegroup='Movies' WHERE recordid='%s'" % (p.recordid)) print "UPDATE: %s!" % p.recordid c.close()