Exemplo n.º 1
0
 def insertPerson(self, pers):
     try:
         pers.personID
     except AttributeError:
         #PERS is not a valid pbject, maybe a imdblib error
         pers =DumbPerson()
     act = Person.objects.filter(externalid= pers.personID, source = 'I')
     if act:
         #print "ip ", act
         return act[0]
     if not QUICK_INSERTS_IMDB :
         try:
            self.con.update(pers)
         except:
             raise
     act = Person(
         name = pers.get('name', "")[:255],
         namesort = pers.get('canonical name', "")[:255],
         birthstr = pers.get('birth date', None) ,
         deathstr = pers.get('death date', None),
         bio = listdilemma(pers.get('mini biography', None)),
         birthname = pers.get('birth name', "")[:255],
         externalid = pers.personID,
         source = 'I',
         imgurl = pers.get('headshot', None),
         )
     if pers.get('headshot', None):
         ph = urllib.urlopen(pers.get('headshot'))
         ih = ImageFile(ph)
         ih.size = int(ph.info().dict['content-length'])
         ext = CONTENT_EXTENSION.get(ph.info().dict['content-type'], "")
         act.img.save("%s%s"%(str(pers.personID), ext), ih )
     act.save()
     return act
Exemplo n.º 2
0
    def insertTitle (self, sresult):
        rerun = re.compile("\d+")
        runtime = listdilemma(sresult.get('runtimes',None))
        if runtime:
            allrun = rerun.findall(runtime)
            runtime = allrun[0] if allrun else runtime

        #print sresult
#        if type(sresult.get('runtimes',[None])[0]) == types.IntType:
#            runtime = sresult['runtimes'][0]
#        else:
#            runtime = None
        #print sresult.get('color info')
        title = sresult.get('episode title',"").encode('utf-8') if not( sresult.get('episode title',"") and sresult['kind']=='episode') else sresult.get('title',"??").encode('utf-8')
        t = Title(title = sresult.get('title',"??").encode('utf-8')[:255],
            year = listdilemma(sresult.get('year', None)),
            type = listdilemma(sresult.get('kind', None)),
            titlesort = listdilemma(sresult.get('canonical title', ""))[:255],
            #aka = "; ".join(sresult.get('akas', None)),
            externalid = sresult.movieID,
            source = 'I',
            plot = listdilemma(sresult.get('plot', None)),
            plotoutline = sresult.get('plot outline', None),
            rating = floatdilemma(listdilemma(sresult.get('rating', None))),
            runtime = runtime,
            color = listdilemma(sresult.get('color info', None)) ,
            coverurl = listdilemma(sresult.get('cover url', None))
            )
        if listdilemma(sresult.get('cover url', None)):
            tc = urllib.urlopen(listdilemma(sresult.get('cover url', None)))
            ic = ImageFile(tc)
            ic.size = int(tc.info().dict['content-length'])
            ext = CONTENT_EXTENSION.get(tc.info().dict['content-type'], "")
            t.cover.save("%s%s"%(str(sresult.movieID), ext), ic)
        try:
            t.save()
        except :
            #print sresult.values
            raise
        if 'akas' in sresult.keys():
            self._insertAkas(t, sresult['akas'])
        if 'languages' in sresult.keys():
            self._insertLanguage(t, sresult['languages'])
        if 'country' in sresult.keys():
            self._insertCountry(t, sresult['country'])
        if 'genres' in sresult.keys():
            self._insertGenre(t, sresult['genres'])
        return t