Ticket #6913: jamu_data_filter.patch

File jamu_data_filter.patch, 3.9 KB (added by r.d.vaughan@…, 16 years ago)

Protects jamu from aborting due to data issues with TMDB or TVDB

  • mythplugins/mythvideo/mythvideo/scripts/jamu.py

     
    4747fan art and banners and meta data. The richer the source the more valuable the script.
    4848'''
    4949
    50 __version__=u"v0.4.1" # 0.1.0 Initial development
     50__version__=u"v0.4.2" # 0.1.0 Initial development
    5151                                         # 0.2.0 Inital beta release
    5252                                         # 0.3.0 Add mythvideo metadata updating including movie graphics through
    5353                     #       the use of tmdb.pl when the perl script exists
     
    144144                                         #       For all movies IMDB numbers will be used instead of converting to TMDB
    145145                                         #       numbers. This is done to maintain consistency with MythVideo movie inetref
    146146                                         #       numbers.
    147                                          # 0.4.1 Fixed an obscure video file rename (-F option) error
     147                                         # 0.4.1 Fixed an obscure video file rename (-F option) error
     148                                         # 0.4.2 Fixed a bug where bad data for either TMDB or TVDB would abort script
    148149
    149150
    150151usage_txt=u'''
     
    32643265                tmp_array=tmp_files.split('\n')
    32653266                for element in tmp_array:
    32663267                        element = (element.rstrip('\n')).strip()
    3267                         if element == '':
     3268                        if element == '' or element == None:
    32683269                                continue
    32693270                        index = element.index(':')
    32703271                        key = element[:index].lower()
    32713272                        data = element[index+1:]
     3273                        if data == None or data == '':
     3274                                continue
    32723275                        if key == u'inetref' and len(cfile['inetref']) == 7:
    32733276                                meta_dict[key] = cfile['inetref']
    32743277                                continue
     
    33393342                                meta_dict[key] = cfile['inetref']
    33403343                                continue
    33413344                        data = meta_dict[key]
     3345                        if not data:
     3346                                continue
    33423347                        data = self._changeAmp(data)
    33433348                        data = self._changeToCommas(data)
    33443349                        if key == 'genres':
     
    33583363                        if key == 'trailer':
    33593364                                continue
    33603365                        if key == 'year':
    3361                                 meta_dict[key] = int(data)
     3366                                try:
     3367                                        meta_dict[key] = int(data)
     3368                                except:
     3369                                        pass
    33623370                                continue
    33633371                        if key == 'userrating':
    3364                                 meta_dict[key] = float(data)
     3372                                try:
     3373                                        meta_dict[key] = float(data)
     3374                                except:
     3375                                        pass
    33653376                                continue
    33663377                        if key == 'runtime':
    3367                                 meta_dict['length'] = long(data)
     3378                                try:
     3379                                        meta_dict['length'] = long(data)
     3380                                except:
     3381                                        pass
    33683382                                continue
    33693383
    33703384                if meta_dict.has_key('rating'):
     
    34653479                        index = element.index(':')
    34663480                        key = element[:index].lower()
    34673481                        data = element[index+1:]
     3482                        if data == None:
     3483                                continue
    34683484                        if key == 'series':
    34693485                                meta_dict['title'] = data
    34703486                                continue
    34713487                        if key == 'seasonnumber':
    3472                                 meta_dict['season'] = int(data)
     3488                                try:
     3489                                        meta_dict['season'] = int(data)
     3490                                except:
     3491                                        pass
    34733492                                continue
    34743493                        if key == 'episodenumber':
    3475                                 meta_dict['episode'] = int(data)
     3494                                try:
     3495                                        meta_dict['episode'] = int(data)
     3496                                except:
     3497                                        pass
    34763498                                continue
    34773499                        if key == 'episodename':
    34783500                                meta_dict['subtitle'] = data
     
    34843506                                meta_dict['director'] = ''
    34853507                                continue
    34863508                        if key == u'firstaired' and len(data) > 4:
    3487                                 meta_dict['year'] = int(data[:4])
     3509                                try:
     3510                                        meta_dict['year'] = int(data[:4])
     3511                                except:
     3512                                        pass
    34883513                                meta_dict['firstaired'] = data
    34893514                                continue
    34903515                        if key == 'year':
    3491                                 meta_dict['year'] = int(data)
     3516                                try:
     3517                                        meta_dict['year'] = int(data)
     3518                                except:
     3519                                        pass
    34923520                                continue
    34933521                        if key == 'seriesid':
    34943522                                meta_dict['inetref'] = data
    34953523                                continue
    34963524                        if key == 'rating':
    3497                                 meta_dict['userrating'] = float(data)
     3525                                try:
     3526                                        meta_dict['userrating'] = float(data)
     3527                                except:
     3528                                        pass
    34983529                                continue
    34993530                        if key == 'filename':# This "episodeimage URL clashed with the video file name and ep image
    35003531                                continue                #  is not used yet. So skip fixes the db video filename from being wiped.
    35013532                        if key == 'runtime':
    3502                                 meta_dict['length'] = long(data)
     3533                                try:
     3534                                        meta_dict['length'] = long(data)
     3535                                except:
     3536                                        pass
    35033537                                continue
    35043538                        meta_dict[key] = data
    35053539