Private GIT

Skip to content
Snippets Groups Projects
Commit 47c43c01 authored by miigotu's avatar miigotu
Browse files

Merge pull request #2910 from SiCKRAGETV/nfo-xml

Clean up, fix, and improve metadata creation for all metadata types
parents 4d6920ea 0207ed95
Branches
Tags
No related merge requests found
......@@ -390,7 +390,7 @@ class GenericMetadata:
continue
thumb_url = getattr(myEp, 'filename', None)
if thumb_url is not None:
if thumb_url:
return thumb_url
return None
......@@ -774,7 +774,7 @@ class GenericMetadata:
return None
if image_type == 'poster_thumb':
if getattr(indexer_show_obj, 'poster', None) is not None:
if getattr(indexer_show_obj, 'poster', None):
image_url = re.sub('posters', '_cache/posters', indexer_show_obj['poster'])
if not image_url:
# Try and get images from Fanart.TV
......@@ -783,13 +783,13 @@ class GenericMetadata:
# Try and get images from TMDB
image_url = self._retrieve_show_images_from_tmdb(show_obj, image_type)
elif image_type == 'banner_thumb':
if getattr(indexer_show_obj, 'banner', None) is not None:
if getattr(indexer_show_obj, 'banner', None):
image_url = re.sub('graphical', '_cache/graphical', indexer_show_obj['banner'])
if not image_url:
# Try and get images from Fanart.TV
image_url = self._retrieve_show_images_from_fanart(show_obj, image_type)
else:
if getattr(indexer_show_obj, image_type, None) is not None:
if getattr(indexer_show_obj, image_type, None):
image_url = indexer_show_obj[image_type]
if not image_url:
# Try and get images from Fanart.TV
......@@ -839,7 +839,7 @@ class GenericMetadata:
return result
# if we have no season banners then just finish
if getattr(indexer_show_obj, '_banners', None) is None:
if not getattr(indexer_show_obj, '_banners', None):
return result
if 'season' not in indexer_show_obj['_banners'] or 'season' not in indexer_show_obj['_banners']['season']:
......@@ -893,7 +893,7 @@ class GenericMetadata:
return result
# if we have no season banners then just finish
if getattr(indexer_show_obj, '_banners', None) is None:
if not getattr(indexer_show_obj, '_banners', None):
return result
# if we have no season banners then just finish
......
......@@ -129,65 +129,65 @@ class KODI_12PlusMetadata(generic.GenericMetadata):
raise
# check for title and id
if getattr(myShow, 'seriesname', None) is None or getattr(myShow, 'id', None) is None:
if not (getattr(myShow, 'seriesname', None) and getattr(myShow, 'id', None)):
logger.log(u"Incomplete info for show with id " + str(show_ID) + " on " + sickbeard.indexerApi(
show_obj.indexer).name + ", skipping it", logger.ERROR)
return False
if getattr(myShow, 'seriesname', None) is not None:
title = etree.SubElement(tv_node, "title")
title.text = myShow["seriesname"]
if getattr(myShow, 'rating', None) is not None:
if getattr(myShow, 'rating', None):
rating = etree.SubElement(tv_node, "rating")
rating.text = myShow["rating"]
if getattr(myShow, 'firstaired', None) is not None:
year = etree.SubElement(tv_node, "year")
if getattr(myShow, 'firstaired', None):
try:
year_text = str(datetime.datetime.strptime(myShow["firstaired"], dateFormat).year)
if year_text:
year = etree.SubElement(tv_node, "year")
year.text = year_text
except:
pass
if getattr(myShow, 'overview', None) is not None:
if getattr(myShow, 'overview', None):
plot = etree.SubElement(tv_node, "plot")
plot.text = myShow["overview"]
if getattr(myShow, 'id', None) is not None:
if getattr(myShow, 'id', None):
episodeguide = etree.SubElement(tv_node, "episodeguide")
episodeguideurl = etree.SubElement(episodeguide, "url")
episodeguideurl.text = sickbeard.indexerApi(show_obj.indexer).config['base_url'] + str(myShow["id"]) + '/all/en.zip'
if getattr(myShow, 'contentrating', None) is not None:
if getattr(myShow, 'contentrating', None):
mpaa = etree.SubElement(tv_node, "mpaa")
mpaa.text = myShow["contentrating"]
if getattr(myShow, 'id', None) is not None:
if getattr(myShow, 'id', None):
indexerid = etree.SubElement(tv_node, "id")
indexerid.text = str(myShow["id"])
if getattr(myShow, 'genre', None) is not None:
if getattr(myShow, 'genre', None) and isinstance(myShow["genre"], basestring):
genre = etree.SubElement(tv_node, "genre")
if isinstance(myShow["genre"], basestring):
genre.text = " / ".join(x.strip() for x in myShow["genre"].split('|') if x.strip())
if getattr(myShow, 'firstaired', None) is not None:
if getattr(myShow, 'firstaired', None):
premiered = etree.SubElement(tv_node, "premiered")
premiered.text = myShow["firstaired"]
if getattr(myShow, 'network', None) is not None:
if getattr(myShow, 'network', None):
studio = etree.SubElement(tv_node, "studio")
studio.text = myShow["network"].strip()
if getattr(myShow, '_actors', None) is not None:
if getattr(myShow, '_actors', None):
for actor in myShow['_actors']:
cur_actor = etree.SubElement(tv_node, "actor")
if 'name' in actor and actor['name'].strip():
cur_actor_name = etree.SubElement(cur_actor, "name")
cur_actor_name.text = actor['name'].strip()
else:
continue
if 'role' in actor and actor['role'].strip():
cur_actor_role = etree.SubElement(cur_actor, "role")
......@@ -251,10 +251,10 @@ class KODI_12PlusMetadata(generic.GenericMetadata):
ep_obj.show.indexer).name + ".. has it been removed? Should I delete from db?")
return None
if getattr(myEp, 'firstaired', None) is None:
if not getattr(myEp, 'firstaired', None):
myEp["firstaired"] = str(datetime.date.fromordinal(1))
if getattr(myEp, 'episodename', None) is None:
if not getattr(myEp, 'episodename', None):
logger.log(u"Not generating nfo because the ep has no title", logger.DEBUG)
return None
......@@ -265,11 +265,11 @@ class KODI_12PlusMetadata(generic.GenericMetadata):
else:
episode = rootNode
if getattr(myEp, 'episodename', None) is not None:
if getattr(myEp, 'episodename', None):
title = etree.SubElement(episode, "title")
title.text = myEp['episodename']
if getattr(myShow, 'seriesname', None) is not None:
if getattr(myShow, 'seriesname', None):
showtitle = etree.SubElement(episode, "showtitle")
showtitle.text = myShow['seriesname']
......@@ -286,54 +286,48 @@ class KODI_12PlusMetadata(generic.GenericMetadata):
aired = etree.SubElement(episode, "aired")
aired.text = str(curEpToWrite.airdate)
if getattr(myEp, 'overview', None) is not None:
if getattr(myEp, 'overview', None):
plot = etree.SubElement(episode, "plot")
plot.text = myEp['overview']
if curEpToWrite.season != 0:
if getattr(myShow, 'runtime', None) is not None:
if curEpToWrite.season and getattr(myShow, 'runtime', None):
runtime = etree.SubElement(episode, "runtime")
runtime.text = myShow["runtime"]
if getattr(myEp, 'airsbefore_season', None) is not None:
if getattr(myEp, 'airsbefore_season', None):
displayseason = etree.SubElement(episode, "displayseason")
displayseason_text = myEp['airsbefore_season']
if displayseason_text != None:
displayseason.text = displayseason_text
displayseason.text = myEp['airsbefore_season']
if getattr(myEp, 'airsbefore_episode', None) is not None:
if getattr(myEp, 'airsbefore_episode', None):
displayepisode = etree.SubElement(episode, "displayepisode")
displayepisode_text = myEp['airsbefore_episode']
if displayepisode_text != None:
displayepisode.text = displayepisode_text
displayepisode.text = myEp['airsbefore_episode']
if getattr(myEp, 'filename', None) is not None:
if getattr(myEp, 'filename', None):
thumb = etree.SubElement(episode, "thumb")
thumb.text = myEp['filename'].strip()
#watched = etree.SubElement(episode, "watched")
#watched.text = 'false'
if getattr(myEp, 'writer', None) is not None:
if getattr(myEp, 'writer', None):
credits = etree.SubElement(episode, "credits")
credits.text = myEp['writer'].strip()
if getattr(myEp, 'director', None) is not None:
if getattr(myEp, 'director', None):
director = etree.SubElement(episode, "director")
director.text = myEp['director'].strip()
if getattr(myEp, 'rating', None) is not None:
if getattr(myEp, 'rating', None):
rating = etree.SubElement(episode, "rating")
rating.text = myEp['rating']
if getattr(myEp, 'gueststars', None) is not None:
if isinstance( myEp['gueststars'], basestring):
if getattr(myEp, 'gueststars', None) and isinstance( myEp['gueststars'], basestring):
for actor in (x.strip() for x in myEp['gueststars'].split('|') if x.strip()):
cur_actor = etree.SubElement(episode, "actor")
cur_actor_name = etree.SubElement(cur_actor, "name")
cur_actor_name.text = actor
if getattr(myShow, '_actors', None) is not None:
if getattr(myShow, '_actors', None):
for actor in myShow['_actors']:
cur_actor = etree.SubElement(episode, "actor")
......
......@@ -133,79 +133,75 @@ class Mede8erMetadata(mediabrowser.MediaBrowserMetadata):
raise
# check for title and id
try:
if getattr(myShow, 'seriesname', None) == None or getattr(myShow, 'seriesname', "") == "" or getattr(myShow, 'id', None) == None or getattr(myShow, 'id', "") == "":
logger.log(u"Incomplete info for show with id " + str(show_obj.indexerid) + " on tvdb, skipping it", logger.ERROR)
return False
except sickbeard.indexer_attributenotfound:
logger.log(u"Incomplete info for show with id " + str(show_obj.indexerid) + " on tvdb, skipping it", logger.ERROR)
if not (getattr(myShow, 'seriesname', None) and getattr(myShow, 'id', None)):
logger.log(u"Incomplete info for show with id " + str(show_ID) + " on " + sickbeard.indexerApi(
show_obj.indexer).name + ", skipping it", logger.ERROR)
return False
SeriesName = etree.SubElement(tv_node, "title")
SeriesName.text = myShow['seriesname']
if getattr(myShow, "genre", None):
Genres = etree.SubElement(tv_node, "genres")
if getattr(myShow, "genre", None) != None:
for genre in myShow['genre'].split('|'):
if genre and genre.strip():
cur_genre = etree.SubElement(Genres, "Genre")
cur_genre.text = genre.strip()
if getattr(myShow, 'firstaired', None):
FirstAired = etree.SubElement(tv_node, "premiered")
if getattr(myShow, 'firstaired', None) != None:
FirstAired.text = myShow['firstaired']
year = etree.SubElement(tv_node, "year")
if getattr(myShow, "firstaired", None) != None:
if getattr(myShow, "firstaired", None):
try:
year_text = str(datetime.datetime.strptime(myShow["firstaired"], dateFormat).year)
if year_text:
year = etree.SubElement(tv_node, "year")
year.text = year_text
except:
pass
if getattr(myShow, 'overview', None):
plot = etree.SubElement(tv_node, "plot")
if getattr(myShow, 'overview', None) is not None:
plot.text = myShow["overview"]
if getattr(myShow, 'rating', None) != None:
if getattr(myShow, 'rating', None):
try:
rating = int((float(myShow['rating']) * 10))
rating = int(float(myShow['rating']) * 10)
except ValueError:
rating = 0
if rating:
Rating = etree.SubElement(tv_node, "rating")
rating_text = str(rating)
if rating_text != None:
Rating.text = rating_text
Rating.text = str(rating)
if getattr(myShow, 'status', None):
Status = etree.SubElement(tv_node, "status")
if getattr(myShow, 'status', None) != None:
Status.text = myShow['status']
if getattr(myShow, "contentrating", None):
mpaa = etree.SubElement(tv_node, "mpaa")
if getattr(myShow, "contentrating", None) != None:
mpaa.text = myShow["contentrating"]
IMDB_ID = etree.SubElement(tv_node, "id")
if getattr(myShow, 'imdb_id', None) != None:
IMDB_ID.attrib["moviedb"] = "imdb"
IMDB_ID.text = myShow['imdb_id']
if getattr(myShow, 'imdb_id', None):
imdb_id = etree.SubElement(tv_node, "id")
imdb_id.attrib["moviedb"] = "imdb"
imdb_id.text = myShow['imdb_id']
if getattr(myShow, 'id', None):
indexerid = etree.SubElement(tv_node, "indexerid")
if getattr(myShow, 'id', None) != None:
indexerid.text = myShow['id']
if getattr(myShow, 'runtime', None):
Runtime = etree.SubElement(tv_node, "runtime")
if getattr(myShow, 'runtime', None) != None:
Runtime.text = myShow['runtime']
if getattr(myShow, '_actors', None):
cast = etree.SubElement(tv_node, "cast")
if getattr(myShow, '_actors', None) is not None:
for actor in myShow['_actors']:
cur_actor_name_text = getattr(actor, 'name', None)
if cur_actor_name_text != None and cur_actor_name_text.strip():
if 'name' in actor and actor['name'].strip():
cur_actor = etree.SubElement(cast, "actor")
cur_actor.text = cur_actor_name_text.strip()
cur_actor.text = actor['name'].strip()
helpers.indentXML(rootNode)
......@@ -264,79 +260,75 @@ class Mede8erMetadata(mediabrowser.MediaBrowserMetadata):
# root (or single) episode
# default to today's date for specials if firstaired is not set
if getattr(myEp, 'firstaired', None) == None and ep_obj.season == 0:
if curEpToWrite.season == 0 and not getattr(myEp, 'firstaired', None):
myEp['firstaired'] = str(datetime.date.fromordinal(1))
if getattr(myEp, 'episodename', None) == None or getattr(myEp, 'firstaired', None) == None:
if not (getattr(myEp, 'episodename', None) and getattr(myEp, 'firstaired', None)):
return None
episode = movie
if curEpToWrite.name:
EpisodeName = etree.SubElement(episode, "title")
if curEpToWrite.name != None:
EpisodeName.text = curEpToWrite.name
else:
EpisodeName.text = ""
SeasonNumber = etree.SubElement(episode, "season")
SeasonNumber.text = str(curEpToWrite.season)
EpisodeNumber = etree.SubElement(episode, "episode")
EpisodeNumber.text = str(ep_obj.episode)
EpisodeNumber.text = str(curEpToWrite.episode)
year = etree.SubElement(episode, "year")
if getattr(myShow, "firstaired", None) != None:
if getattr(myShow, "firstaired", None):
try:
year_text = str(datetime.datetime.strptime(myShow["firstaired"], dateFormat).year)
if year_text:
year = etree.SubElement(episode, "year")
year.text = year_text
except:
pass
if getattr(myShow, "overview", None):
plot = etree.SubElement(episode, "plot")
if getattr(myShow, "overview", None) != None:
plot.text = myShow["overview"]
if curEpToWrite.description:
Overview = etree.SubElement(episode, "episodeplot")
if curEpToWrite.description != None:
Overview.text = curEpToWrite.description
else:
Overview.text = ""
if getattr(myShow, 'contentrating', None):
mpaa = etree.SubElement(episode, "mpaa")
if getattr(myShow, 'contentrating', None) is not None:
mpaa.text = myShow["contentrating"]
if not ep_obj.relatedEps:
if getattr(myEp, "rating", None) != None:
if not ep_obj.relatedEps and getattr(myEp, "rating", None):
try:
rating = int((float(myEp['rating']) * 10))
except ValueError:
rating = 0
if rating:
Rating = etree.SubElement(episode, "rating")
rating_text = str(rating)
if rating_text != None:
Rating.text = rating_text
Rating.text = str(rating)
if getattr(myEp, 'director', None):
director = etree.SubElement(episode, "director")
director_text = getattr(myEp, 'director', None)
if director_text != None:
director.text = director_text
director.text = myEp['director']
if getattr(myEp, 'writer', None):
credits = etree.SubElement(episode, "credits")
credits_text = getattr(myEp, 'writer', None)
if credits_text != None:
credits.text = credits_text
credits.text = myEp['writer']
if getattr(myShow, '_actors', None) or getattr(myEp, 'gueststars', None):
cast = etree.SubElement(episode, "cast")
if getattr(myEp, 'gueststars', None) and isinstance( myEp['gueststars'], basestring):
for actor in (x.strip() for x in myEp['gueststars'].split('|') if x.strip()):
cur_actor = etree.SubElement(cast, "actor")
cur_actor_name.text = actor
if getattr(myShow, '_actors', None) is not None:
if getattr(myShow, '_actors', None):
for actor in myShow['_actors']:
cur_actor_name_text = actor['name']
if cur_actor_name_text != None and cur_actor_name_text.strip():
if 'name' in actor and actor['name'].strip():
cur_actor = etree.SubElement(cast, "actor")
cur_actor.text = cur_actor_name_text.strip()
cur_actor.text = actor['name'].strip()
else:
# append data from (if any) related episodes
......
......@@ -260,120 +260,127 @@ class MediaBrowserMetadata(generic.GenericMetadata):
raise
# check for title and id
if getattr(myShow, 'seriesname', None) is None or getattr(myShow, 'id', None) is None:
if not (getattr(myShow, 'seriesname', None) and getattr(myShow, 'id', None)):
logger.log(u"Incomplete info for show with id " + str(show_obj.indexerid) + " on " + sickbeard.indexerApi(
show_obj.indexer).name + ", skipping it", logger.ERROR)
return False
if getattr(myShow, 'id', None):
indexerid = etree.SubElement(tv_node, "id")
if getattr(myShow, 'id', None) is not None:
indexerid.text = str(myShow['id'])
if getattr(myShow, 'seriesname', None):
SeriesName = etree.SubElement(tv_node, "SeriesName")
if getattr(myShow, 'seriesname', None) is not None:
SeriesName.text = myShow['seriesname']
if getattr(myShow, 'status', None):
Status = etree.SubElement(tv_node, "Status")
if getattr(myShow, 'status', None) is not None:
Status.text = myShow['status']
if getattr(myShow, 'network', None):
Network = etree.SubElement(tv_node, "Network")
if getattr(myShow, 'network', None) is not None:
Network.text = myShow['network']
if getattr(myShow, 'airs_time', None):
Airs_Time = etree.SubElement(tv_node, "Airs_Time")
if getattr(myShow, 'airs_time', None) is not None:
Airs_Time.text = myShow['airs_time']
if getattr(myShow, 'airs_dayofweek', None):
Airs_DayOfWeek = etree.SubElement(tv_node, "Airs_DayOfWeek")
if getattr(myShow, 'airs_dayofweek', None) is not None:
Airs_DayOfWeek.text = myShow['airs_dayofweek']
FirstAired = etree.SubElement(tv_node, "FirstAired")
if getattr(myShow, 'firstaired', None) is not None:
if getattr(myShow, 'firstaired', None):
FirstAired.text = myShow['firstaired']
if getattr(myShow, 'contentrating', None):
ContentRating = etree.SubElement(tv_node, "ContentRating")
MPAARating = etree.SubElement(tv_node, "MPAARating")
certification = etree.SubElement(tv_node, "certification")
if getattr(myShow, 'contentrating', None) is not None:
ContentRating.text = myShow['contentrating']
MPAARating = etree.SubElement(tv_node, "MPAARating")
MPAARating.text = myShow['contentrating']
certification = etree.SubElement(tv_node, "certification")
certification.text = myShow['contentrating']
MetadataType = etree.SubElement(tv_node, "Type")
MetadataType.text = "Series"
if getattr(myShow, 'overview', None):
Overview = etree.SubElement(tv_node, "Overview")
if getattr(myShow, 'overview', None) is not None:
Overview.text = myShow['overview']
if getattr(myShow, 'firstaired', None):
PremiereDate = etree.SubElement(tv_node, "PremiereDate")
if getattr(myShow, 'firstaired', None) is not None:
PremiereDate.text = myShow['firstaired']
if getattr(myShow, 'rating', None):
Rating = etree.SubElement(tv_node, "Rating")
if getattr(myShow, 'rating', None) is not None:
Rating.text = myShow['rating']
ProductionYear = etree.SubElement(tv_node, "ProductionYear")
if getattr(myShow, 'firstaired', None) is not None:
if getattr(myShow, 'firstaired', None):
try:
year_text = str(datetime.datetime.strptime(myShow['firstaired'], dateFormat).year)
if year_text:
ProductionYear = etree.SubElement(tv_node, "ProductionYear")
ProductionYear.text = year_text
except:
pass
if getattr(myShow, 'runtime', None):
RunningTime = etree.SubElement(tv_node, "RunningTime")
Runtime = etree.SubElement(tv_node, "Runtime")
if getattr(myShow, 'runtime', None) is not None:
RunningTime.text = myShow['runtime']
Runtime = etree.SubElement(tv_node, "Runtime")
Runtime.text = myShow['runtime']
IMDB_ID = etree.SubElement(tv_node, "IMDB_ID")
IMDB = etree.SubElement(tv_node, "IMDB")
IMDbId = etree.SubElement(tv_node, "IMDbId")
if getattr(myShow, 'imdb_id', None) is not None:
IMDB_ID.text = myShow['imdb_id']
IMDB.text = myShow['imdb_id']
IMDbId.text = myShow['imdb_id']
if getattr(myShow, 'imdb_id', None):
imdb_id = etree.SubElement(tv_node, "IMDB_ID")
imdb_id.text = myShow['imdb_id']
imdb_id = etree.SubElement(tv_node, "IMDB")
imdb_id.text = myShow['imdb_id']
imdb_id = etree.SubElement(tv_node, "IMDbId")
imdb_id.text = myShow['imdb_id']
if getattr(myShow, 'zap2it_id', None):
Zap2ItId = etree.SubElement(tv_node, "Zap2ItId")
if getattr(myShow, 'zap2it_id', None) is not None:
Zap2ItId.text = myShow['zap2it_id']
if getattr(myShow, 'genre', None) and isinstance(myShow["genre"], basestring):
Genres = etree.SubElement(tv_node, "Genres")
for genre in myShow['genre'].split('|'):
if genre:
if genre.strip():
cur_genre = etree.SubElement(Genres, "Genre")
cur_genre.text = genre
cur_genre.text = genre.strip()
Genre = etree.SubElement(tv_node, "Genre")
if getattr(myShow, 'genre', None) is not None:
Genre.text = "|".join([x for x in myShow["genre"].split('|') if x])
Genre.text = "|".join([x.strip() for x in myShow["genre"].split('|') if x.strip()])
if getattr(myShow, 'network', None):
Studios = etree.SubElement(tv_node, "Studios")
Studio = etree.SubElement(Studios, "Studio")
if getattr(myShow, 'network', None) is not None:
Studio.text = myShow['network']
if getattr(myShow, '_actors', None):
Persons = etree.SubElement(tv_node, "Persons")
if getattr(myShow, 'actors', None) is not None:
for actor in myShow['_actors']:
if not ('name' in actor and actor['name'].strip()):
continue
cur_actor = etree.SubElement(Persons, "Person")
cur_actor_name = etree.SubElement(cur_actor, "Name")
if getattr(actor, 'name', None):
cur_actor_name.text = actor['name'].strip()
cur_actor_type = etree.SubElement(cur_actor, "Type")
cur_actor_type.text = "Actor"
if 'role' in actor and actor['role'].strip():
cur_actor_role = etree.SubElement(cur_actor, "Role")
if getattr(actor, 'role', None):
cur_actor_role.text = actor['role']
cur_actor_role.text = actor['role'].strip()
helpers.indentXML(tv_node)
......@@ -436,19 +443,17 @@ class MediaBrowserMetadata(generic.GenericMetadata):
# root (or single) episode
# default to today's date for specials if firstaired is not set
if getattr(myEp, 'firstaired', None) is None and ep_obj.season == 0:
if ep_obj.season == 0 and not getattr(myEp, 'firstaired', None):
myEp['firstaired'] = str(datetime.date.fromordinal(1))
if getattr(myEp, 'episodename', None) is None or getattr(myEp, 'firstaired', None) is None:
if not (getattr(myEp, 'episodename', None) and getattr(myEp, 'firstaired', None)):
return None
episode = rootNode
if curEpToWrite.name:
EpisodeName = etree.SubElement(episode, "EpisodeName")
if curEpToWrite.name != None:
EpisodeName.text = curEpToWrite.name
else:
EpisodeName.text = ""
EpisodeNumber = etree.SubElement(episode, "EpisodeNumber")
EpisodeNumber.text = str(ep_obj.episode)
......@@ -460,37 +465,34 @@ class MediaBrowserMetadata(generic.GenericMetadata):
SeasonNumber = etree.SubElement(episode, "SeasonNumber")
SeasonNumber.text = str(curEpToWrite.season)
if not ep_obj.relatedEps:
if not ep_obj.relatedEps and getattr(myEp, 'absolute_number', None):
absolute_number = etree.SubElement(episode, "absolute_number")
if getattr(myEp, 'absolute_number', None) is not None:
absolute_number.text = myEp['absolute_number']
absolute_number.text = str(myEp['absolute_number'])
FirstAired = etree.SubElement(episode, "FirstAired")
if curEpToWrite.airdate != datetime.date.fromordinal(1):
FirstAired = etree.SubElement(episode, "FirstAired")
FirstAired.text = str(curEpToWrite.airdate)
else:
FirstAired.text = ""
MetadataType = etree.SubElement(episode, "Type")
MetadataType.text = "Episode"
if curEpToWrite.description:
Overview = etree.SubElement(episode, "Overview")
if curEpToWrite.description != None:
Overview.text = curEpToWrite.description
else:
Overview.text = ""
if not ep_obj.relatedEps:
if getattr(myEp, 'rating', None):
Rating = etree.SubElement(episode, "Rating")
if getattr(myEp, 'rating', None) is not None:
Rating.text = myEp['rating']
if getattr(myShow, 'imdb_id', None):
IMDB_ID = etree.SubElement(episode, "IMDB_ID")
IMDB = etree.SubElement(episode, "IMDB")
IMDbId = etree.SubElement(episode, "IMDbId")
if getattr(myShow, 'imdb_id', None) is not None:
IMDB_ID.text = myShow['imdb_id']
IMDB = etree.SubElement(episode, "IMDB")
IMDB.text = myShow['imdb_id']
IMDbId = etree.SubElement(episode, "IMDbId")
IMDbId.text = myShow['imdb_id']
indexerid = etree.SubElement(episode, "id")
......@@ -498,6 +500,23 @@ class MediaBrowserMetadata(generic.GenericMetadata):
Persons = etree.SubElement(episode, "Persons")
if getattr(myShow, '_actors', None):
for actor in myShow['_actors']:
if not ('name' in actor and actor['name'].strip()):
continue
cur_actor = etree.SubElement(Persons, "Person")
cur_actor_name = etree.SubElement(cur_actor, "Name")
cur_actor_name.text = actor['name'].strip()
cur_actor_type = etree.SubElement(cur_actor, "Type")
cur_actor_type.text = "Actor"
if 'role' in actor and actor['role'].strip():
cur_actor_role = etree.SubElement(cur_actor, "Role")
cur_actor_role.text = actor['role'].strip()
Language = etree.SubElement(episode, "Language")
try:
Language.text = myEp['language']
......@@ -529,12 +548,12 @@ class MediaBrowserMetadata(generic.GenericMetadata):
Overview.text = Overview.text + "\r" + curEpToWrite.description
# collect all directors, guest stars and writers
if getattr(myEp, 'director', None) is not None:
persons_dict['Director'] += [x.strip() for x in myEp['director'].split('|') if x]
if getattr(myEp, 'gueststars', None) is not None:
persons_dict['GuestStar'] += [x.strip() for x in myEp['gueststars'].split('|') if x]
if getattr(myEp, 'writer', None) is not None:
persons_dict['Writer'] += [x.strip() for x in myEp['writer'].split('|') if x]
if getattr(myEp, 'director', None):
persons_dict['Director'] += [x.strip() for x in myEp['director'].split('|') if x.strip()]
if getattr(myEp, 'gueststars', None):
persons_dict['GuestStar'] += [x.strip() for x in myEp['gueststars'].split('|') if x.strip()]
if getattr(myEp, 'writer', None):
persons_dict['Writer'] += [x.strip() for x in myEp['writer'].split('|') if x.strip()]
# fill in Persons section with collected directors, guest starts and writers
for person_type, names in persons_dict.iteritems():
......
......@@ -198,13 +198,13 @@ class TIVOMetadata(generic.GenericMetadata):
ep_obj.show.indexer).name + "... has it been removed? Should I delete from db?")
return None
if getattr(myEp, 'firstaired', None) is None and ep_obj.season == 0:
if ep_obj.season == 0 and not getattr(myEp, 'firstaired', None):
myEp["firstaired"] = str(datetime.date.fromordinal(1))
if getattr(myEp, 'episodename', None) is None or getattr(myEp, 'firstaired', None) is None:
if not (getattr(myEp, 'episodename', None) and getattr(myEp, 'firstaired', None)):
return None
if getattr(myShow, 'seriesname', None) is not None:
if getattr(myShow, 'seriesname', None):
data += ("title : " + myShow["seriesname"] + "\n")
data += ("seriesTitle : " + myShow["seriesname"] + "\n")
......@@ -240,11 +240,11 @@ class TIVOMetadata(generic.GenericMetadata):
# Usually starts with "SH" and followed by 6-8 digits.
# Tivo uses zap2it for thier data, so the series id is the zap2it_id.
if getattr(myShow, 'zap2it_id', None) is not None:
if getattr(myShow, 'zap2it_id', None):
data += ("seriesId : " + myShow["zap2it_id"] + "\n")
# This is the call sign of the channel the episode was recorded from.
if getattr(myShow, 'network', None) is not None:
if getattr(myShow, 'network', None):
data += ("callsign : " + myShow["network"] + "\n")
# This must be entered as yyyy-mm-ddThh:mm:ssZ (the t is capitalized and never changes, the Z is also
......@@ -254,13 +254,13 @@ class TIVOMetadata(generic.GenericMetadata):
data += ("originalAirDate : " + str(curEpToWrite.airdate) + "T00:00:00Z\n")
# This shows up at the beginning of the description on the Program screen and on the Details screen.
if getattr(myShow, 'actors', None) is not None:
for actor in myShow["actors"].split('|'):
if actor:
data += ("vActor : " + actor + "\n")
if getattr(myShow, '_actors', None):
for actor in myShow["_actors"]:
if 'name' in actor and actor['name'].strip():
data += ("vActor : " + actor['name'].strip() + "\n")
# This is shown on both the Program screen and the Details screen.
if getattr(myEp, 'rating', None) is not None:
if getattr(myEp, 'rating', None):
try:
rating = float(myEp['rating'])
except ValueError:
......@@ -272,7 +272,7 @@ class TIVOMetadata(generic.GenericMetadata):
# This is shown on both the Program screen and the Details screen.
# It uses the standard TV rating system of: TV-Y7, TV-Y, TV-G, TV-PG, TV-14, TV-MA and TV-NR.
if getattr(myShow, 'contentrating', None) is not None:
if getattr(myShow, 'contentrating', None):
data += ("tvRating : " + str(myShow["contentrating"]) + "\n")
# This field can be repeated as many times as necessary or omitted completely.
......
......@@ -215,10 +215,10 @@ class WDTVMetadata(generic.GenericMetadata):
ep_obj.show.indexer).name + "... has it been removed? Should I delete from db?")
return None
if getattr(myEp, 'firstaired', None) is None and ep_obj.season == 0:
if ep_obj.season == 0 and not getattr(myEp, 'firstaired', None):
myEp["firstaired"] = str(datetime.date.fromordinal(1))
if getattr(myEp, 'episodename', None) is None or getattr(myEp, 'firstaired', None) is None:
if not (getattr(myEp, 'episodename', None) and getattr(myEp, 'firstaired', None)):
return None
if len(eps_to_write) > 1:
......@@ -233,12 +233,12 @@ class WDTVMetadata(generic.GenericMetadata):
title = etree.SubElement(episode, "title")
title.text = ep_obj.prettyName()
if getattr(myShow, 'seriesname', None):
seriesName = etree.SubElement(episode, "series_name")
if getattr(myShow, 'seriesname', None) is not None:
seriesName.text = myShow["seriesname"]
if curEpToWrite.name:
episodeName = etree.SubElement(episode, "episode_name")
if curEpToWrite.name != None:
episodeName.text = curEpToWrite.name
seasonNumber = etree.SubElement(episode, "season_number")
......@@ -252,43 +252,43 @@ class WDTVMetadata(generic.GenericMetadata):
if curEpToWrite.airdate != datetime.date.fromordinal(1):
firstAired.text = str(curEpToWrite.airdate)
year = etree.SubElement(episode, "year")
if getattr(myShow, 'firstaired', None) is not None:
if getattr(myShow, 'firstaired', None):
try:
year_text = str(datetime.datetime.strptime(myShow["firstaired"], dateFormat).year)
if year_text:
year = etree.SubElement(episode, "year")
year.text = year_text
except:
pass
if curEpToWrite.season != 0 and getattr(myShow, 'runtime', None):
runtime = etree.SubElement(episode, "runtime")
if curEpToWrite.season != 0:
if getattr(myShow, 'runtime', None) is not None:
runtime.text = myShow["runtime"]
if getattr(myShow, 'genre', None):
genre = etree.SubElement(episode, "genre")
if getattr(myShow, 'genre', None) is not None:
genre.text = " / ".join([x for x in myShow["genre"].split('|') if x])
genre.text = " / ".join([x.strip() for x in myShow["genre"].split('|') if x.strip()])
if getattr(myEp, 'director', None):
director = etree.SubElement(episode, "director")
director_text = getattr(myEp, 'director', None)
if director_text is not None:
director.text = director_text
director.text = myEp['director']
if getattr(myShow, '_actors', None) is not None:
if getattr(myShow, '_actors', None):
for actor in myShow['_actors']:
if not ('name' in actor and actor['name'].strip()):
continue
cur_actor = etree.SubElement(episode, "actor")
cur_actor_name = etree.SubElement(cur_actor, "name")
if getattr(actor, 'name', None):
cur_actor_name.text = actor['name']
if 'role' in actor and actor['role'].strip():
cur_actor_role = etree.SubElement(cur_actor, "role")
if getattr(actor, 'role', None):
cur_actor_role.text = actor['role']
cur_actor_role.text = actor['role'].strip()
if curEpToWrite.description:
overview = etree.SubElement(episode, "overview")
if curEpToWrite.description != None:
overview.text = curEpToWrite.description
# Make it purdy
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment