Ejemplo n.º 1
0
 def test_episode(self):
     obj = episode(u'a', u'b', 1, datetime(2000, 1, 1), u'c', u'd', u'e', True, 2)
     self.assertEqual(obj.name, u'a', 'name is assigned incorrectly')
     self.assertEqual(obj.description, u'b', 'description is assigned incorrectly')
     self.assertEqual(obj.number, 1, 'number is assigned incorrectly')
     self.assertEqual(obj.date, datetime(2000, 1, 1), 'date is assigned incorrectly')
     self.assertEqual(obj.id, u'c', 'id is assigned incorrectly')
     self.assertEqual(obj.showid, u'd', 'showid is assigned incorrectly')
     self.assertEqual(obj.seasonid, u'e', 'seasonid is assigned incorrectly')
     self.assertTrue(obj.watched, 'watched is assigned incorrectly')
     self.assertEqual(obj.data, 2, 'data is assigned incorrectly')
     
     self.assertRaises(exceptions.TypeError, episode, (1, 1, '', '', 1, 1, 1, 1, ''))
Ejemplo n.º 2
0
    def getlocalepisodes(self, showid, seasonid):
        '''
        @type showid: str
        @type seasonid: str
        @rtype: list
        '''
        episodes = []

        if self._storage.exists('shows/%s/en.xml' % showid):
            data = self._storage.getdata('shows/%s/en.xml' % showid)
            
            xml = QDomDocument()
            xml.setContent(data)
            
            episodelist = xml.elementsByTagName('Episode')
            
            for episodenum in range(episodelist.count()):
                
                if seasonid == unicode(QString(episodelist.at(episodenum).toElement().elementsByTagName('seasonid').at(0).childNodes().at(0).toText().data())):
                    
                    newepisode = episode()
                    
                    number = QString(episodelist.at(episodenum).toElement().elementsByTagName('EpisodeNumber').at(0).childNodes().at(0).toText().data()).toInt()
                    if number[1]:
                        newepisode.number = number[0]
                    else:
                        newepisode.number = 0
                    
                    if newepisode.number > 0:
                        newepisode.id = unicode(QString(episodelist.at(episodenum).toElement().elementsByTagName('id').at(0).childNodes().at(0).toText().data()))
                        newepisode.name = unicode(QString(episodelist.at(episodenum).toElement().elementsByTagName('EpisodeName').at(0).childNodes().at(0).toText().data()))
                        newepisode.description = unicode(QString(episodelist.at(episodenum).toElement().elementsByTagName('Overview').at(0).childNodes().at(0).toText().data()))
                                            
                        datestring = unicode(QString(episodelist.at(episodenum).toElement().elementsByTagName('FirstAired').at(0).childNodes().at(0).toText().data()))
                        if len(datestring) > 0:
                            newepisode.date = datetime.fromtimestamp(mktime(strptime(datestring, '%Y-%m-%d')))
                                                    
                        newepisode.showid = showid
                        newepisode.seasonid = seasonid
                        
                        newepisode.watched = self.getwatched(newepisode.showid, newepisode.seasonid, newepisode.id)

                        episodes.append(newepisode)
                
        return sorted(episodes, key = lambda item: item.number)