Пример #1
0
    def run(self):
        if self.amActive:
            return
        self.amActive = True
        print "beginning to add to queue"
        query = "SELECT EpisodeId FROM tivo_episode WHERE Status = ?"

        myDB = db.DBConnection()
        results = myDB.select(query, [episodeStatus.getStatusCode("Wanted")])

        episodesToAdd = [x["EpisodeId"] for x in results]

        eps = ["?" for k in episodesToAdd]

        episodesToAdd.insert(0, episodeStatus.getStatusCode("Queued"))

        myDB.action("UPDATE tivo_episode set Status = ? where EpisodeId IN (" + (",").join(eps) + ")", episodesToAdd)

        for x in results:
            print "adding " + str(x["EpisodeId"]) + " to the queue"
            tivopuller.QUEUE.addToQueue(x["EpisodeId"])

        self.amActive = False

        print "add to queue complete"
Пример #2
0
    def markDeletedEpisodes(self, episodes, dba):
        episodeIds = [x.episodeId for x in episodes]
        parms = ['?' for x in episodeIds]

        query = "UPDATE tivo_episode SET Status = ? WHERE Status <> ? AND episodeId NOT IN (" + ",".join(parms) + ")"

        removed = episodeStatus.getStatusCode("Removed from Tivo")
        downloaded = episodeStatus.getStatusCode("Downloaded")

        statuses = [removed, downloaded]
        statuses.extend(episodeIds)
        dba.action(query, statuses)
Пример #3
0
    def addEpisodeToDb(self, episode, dba):
        epi = dba.select("SELECT * FROM tivo_episode where EpisodeId = ?", [str(episode.episodeId)])

        if (len(epi) == 0):
            ser = dba.select("SELECT * FROM tivo_series WHERE SeriesId = ?", [episode.seriesId])

            if (len(ser) == 0):
                dba.action("INSERT INTO tivo_series(SeriesId, SeriesName) VALUES(?, ?)", [episode.seriesId, episode.title])

            status = episodeStatus.getStatusCode("Ignored")

            if (tivopuller.AUTO_DOWNLOAD_NEW == True):
                status = episodeStatus.getStatusCode("Wanted")

            dba.action("INSERT INTO tivo_episode(EpisodeId, SeriesId, EpisodeName, CaptureDate, Downloaded, DownloadDate, Status) VALUES(?, ?, ?, ?, ?, ?, ?)", [episode.episodeId, episode.seriesId, episode.episode, episode.date, False, None, status])
Пример #4
0
    def test_addToQueue(self):
        tivopuller.initialize()
        myDB = db.DBConnection()

        myDB.action("Update tivo_episode set Status = ? WHERE EpisodeId = '1'", [episodeStatus.getStatusCode('Wanted')])

        adder = tivoQueueAdder.TivoQueueAdder()

        adder.run()

        self.assertEqual(1, len(tivopuller.QUEUE))
Пример #5
0
 def run(self):
     if (self.amActive or tivopuller.IP is None or tivopuller.IP == ""):
         return
     print "beginning to download"
     self.amActive = True
     element = tivopuller.QUEUE.getNextFromQueue()
     while (element is not None):
         entries = self.fetcher.FetchPlayList()
         episode = find(lambda x: x.episodeId == element, entries)
         
         if (episode is not None):
             conn = db.DBConnection()
             self.isDownloading = True
             conn.action("UPDATE tivo_episode SET Status = ? WHERE EpisodeId = ?", [episodeStatus.getStatusCode('Downloading'), element])
             f = self.downloadEpisode(episode)
             self.isDownloading = False
             conn.action("UPDATE tivo_episode SET Status = ?, downloadLoc = ? WHERE EpisodeId = ?", [episodeStatus.getStatusCode('Downloaded'), f, element])
         element = tivopuller.QUEUE.getNextFromQueue()
     self.amActive = False
     print "download complete"