Exemple #1
0
    def __init__(self, parent=None):
        # Init UI
        QDialog.__init__(self, parent)
        self.ui = Ui_CacheToolForm()
        self.ui.setupUi(self)  # Setup UI
        #
        self.ui.currentDateTime.setDisplayFormat("yyyy.MM.dd - hh:mm:ss LOC")
        self.ui.showCacheDateTime.setDisplayFormat("yyyy.MM.dd - hh:mm:ss UTC")
        #
        self.ui.tableEpisodes.setColumnCount(5)
        self.ui.tableEpisodes.setHorizontalHeaderLabels(
            ["S", "E", "Title", "Date", "Delta"])
        #vHeader = QHeaderView( Qt.Vertical, self.ui.tableEpisodes )
        self.ui.tableEpisodes.verticalHeader().hide()

        # Vars
        self.baseDir = os.path.expanduser("~/.superkaramba/nextShows/cache")
        self.cacheFilePattern = re.compile(r'^show_\d+$')
        #
        self.currentDateTime = datetime.datetime.utcnow()
        #
        self.showList = self._readCachedShows()

        self.ui.listShows.clear()
        for show in self.showList:
            self.ui.listShows.addItem(show[0])

        # Timer
        self.timer = QTimer()
        self.timer.setInterval(1000)
        self.timer.start()

        QObject.connect(self.timer, SIGNAL("timeout()"), self._timerTimeout)
        QObject.connect(self.ui.btnQuit, SIGNAL("clicked()"), self,
                        SLOT("close()"))
Exemple #2
0
class CacheTool(QDialog):
    def __init__(self, parent=None):
        # Init UI
        QDialog.__init__(self, parent)
        self.ui = Ui_CacheToolForm()
        self.ui.setupUi(self)  # Setup UI
        #
        self.ui.currentDateTime.setDisplayFormat("yyyy.MM.dd - hh:mm:ss LOC")
        self.ui.showCacheDateTime.setDisplayFormat("yyyy.MM.dd - hh:mm:ss UTC")
        #
        self.ui.tableEpisodes.setColumnCount(5)
        self.ui.tableEpisodes.setHorizontalHeaderLabels(
            ["S", "E", "Title", "Date", "Delta"])
        #vHeader = QHeaderView( Qt.Vertical, self.ui.tableEpisodes )
        self.ui.tableEpisodes.verticalHeader().hide()

        # Vars
        self.baseDir = os.path.expanduser("~/.superkaramba/nextShows/cache")
        self.cacheFilePattern = re.compile(r'^show_\d+$')
        #
        self.currentDateTime = datetime.datetime.utcnow()
        #
        self.showList = self._readCachedShows()

        self.ui.listShows.clear()
        for show in self.showList:
            self.ui.listShows.addItem(show[0])

        # Timer
        self.timer = QTimer()
        self.timer.setInterval(1000)
        self.timer.start()

        QObject.connect(self.timer, SIGNAL("timeout()"), self._timerTimeout)
        QObject.connect(self.ui.btnQuit, SIGNAL("clicked()"), self,
                        SLOT("close()"))

    @pyqtSignature("on_listShows_currentRowChanged(int)")
    def on_listShows_currentRowChanged(self, rowNum):
        self.ui.tableEpisodes.setRowCount(0)

        episodes = self.showList[rowNum][3]
        pos = 0
        for episode in episodes:
            self.ui.tableEpisodes.setRowCount(
                self.ui.tableEpisodes.rowCount() + 1)
            itemS = QTableWidgetItem(str(episode['season']))
            itemS.setFlags(Qt.ItemIsEnabled)
            itemE = QTableWidgetItem(str(episode['episode']))
            itemE.setFlags(Qt.ItemIsEnabled)
            itemT = QTableWidgetItem(episode['title'])
            itemT.setFlags(Qt.ItemIsEnabled)
            year, month, day = episode['airdate']
            date = datetime.date(year, month, day)
            itemD = QTableWidgetItem(date.strftime("%Y.%m.%d"))
            itemD.setFlags(Qt.ItemIsEnabled)
            dateToday = datetime.date.today()
            delta = date - dateToday
            itemA = QTableWidgetItem("%d d." % delta.days)
            itemA.setFlags(Qt.ItemIsEnabled)
            self.ui.tableEpisodes.setItem(pos, 0, itemS)
            self.ui.tableEpisodes.setItem(pos, 1, itemE)
            self.ui.tableEpisodes.setItem(pos, 2, itemT)
            self.ui.tableEpisodes.setItem(pos, 3, itemD)
            self.ui.tableEpisodes.setItem(pos, 4, itemA)
            pos += 1

        for i in range(5):
            self.ui.tableEpisodes.resizeColumnToContents(i)

        qdt = QDateTime()
        qdt.setTime_t(self.showList[rowNum][1])
        self.ui.showCacheDateTime.setDateTime(qdt)

    def _readCachedShows(self):
        showList = []
        listDir = os.listdir(self.baseDir)

        for file in listDir:
            show = ()
            match = self.cacheFilePattern.match(file)
            if match:
                fileName = os.path.join(self.baseDir, file)
                fp = open(fileName, "rb")
                data = cPickle.load(fp)
                fp.close()

                fetchTS = data['fetch_time']
                name = data['episode_list'][0]['show']
                show = (name, fetchTS, fileName, data['episode_list'])
                showList.append(show)

        return showList

    def _timerTimeout(self):
        qdt = QDateTime()
        qdt.setTime_t(int(datetime.datetime.now().strftime("%s")))
        self.ui.currentDateTime.setDateTime(qdt)