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
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