cleaner and compacter dict building

This commit is contained in:
simon 2021-06-20 16:06:31 +07:00
parent ad6a8b3523
commit b7cb1a0c64
5 changed files with 84 additions and 90 deletions

View File

@ -130,8 +130,6 @@ class ListParser():
file_item_tech = []
for file_item in filelist:
file_name = path.basename(file_item['Path'])
duration_min = round(file_item['RunTimeTicks'] / 600000000)
# loop through media sources
for i in file_item['MediaSources']:
if i['Protocol'] == 'File':
@ -147,14 +145,15 @@ class ListParser():
# found it
break
# technical csv
tech_dict = {}
tech_dict['file_name'] = file_name
tech_dict['duration_min'] = duration_min
tech_dict['filesize_MB'] = filesize
tech_dict['image_width'] = image_width
tech_dict['image_height'] = image_height
tech_dict['avg_bitrate_MB'] = avg_bitrate
tech_dict['codec'] = codec
tech_dict = {
'file_name': path.basename(file_item['Path']),
'duration_min': round(file_item['RunTimeTicks'] / 600000000),
'filesize_MB': filesize,
'image_width': image_width,
'image_height': image_height,
'avg_bitrate_MB': avg_bitrate,
'codec': codec
}
file_item_tech.append(tech_dict)
# sort and return
@ -171,20 +170,14 @@ class ListParser():
for movie in all_movies:
movie_name = movie['Name']
year = movie['Path'].split('/')[3]
overview = movie['Overview']
imdb = movie['ProviderIds']['Imdb']
genres = ', '.join(movie['Genres'])
duration_min = round(movie['RunTimeTicks'] / 600000000)
info_dict = {}
info_dict['movie_name'] = movie_name
info_dict['year'] = year
info_dict['imdb'] = imdb
info_dict['genres'] = genres
info_dict['overview'] = overview
info_dict['duration_min'] = duration_min
info_dict = {
'movie_name': movie['Name'],
'year': movie['Path'].split('/')[3],
'imdb': movie['ProviderIds']['Imdb'],
'genres': ', '.join(movie['Genres']),
'overview': movie['Overview'],
'duration_min': round(movie['RunTimeTicks'] / 600000000)
}
movie_info.append(info_dict)
# sort and return
@ -198,8 +191,6 @@ class ListParser():
episode_info = []
for episode in all_episodes:
episode_name = episode['Name']
file_name = path.basename(episode['Path'])
try:
episode_id = episode['IndexNumber']
except KeyError:
@ -214,22 +205,19 @@ class ListParser():
imdb = episode['ProviderIds']['Imdb']
except KeyError:
imdb = 'NA'
genres = ', '.join(episode['Genres'])
season_name = episode['SeasonName']
series_name = episode['SeriesName']
duration_min = round(episode['RunTimeTicks'] / 600000000)
# info csv
info_dict = {}
info_dict['series_name'] = series_name
info_dict['season_name'] = season_name
info_dict['episode_id'] = episode_id
info_dict['episode_name'] = episode_name
info_dict['file_name'] = file_name
info_dict['imdb'] = imdb
info_dict['genres'] = genres
info_dict['overview'] = overview
info_dict['duration_min'] = duration_min
info_dict = {
'episode_id': episode_id,
'overview': overview,
'imdb': imdb,
'episode_name': episode['Name'],
'file_name': path.basename(episode['Path']),
'genres': ', '.join(episode['Genres']),
'series_name': episode['SeriesName'],
'season_name': episode['SeasonName'],
'duration_min': round(episode['RunTimeTicks'] / 600000000)
}
episode_info.append(info_dict)
# sort and return

View File

@ -60,11 +60,12 @@ class MovieNameFix():
if premier_year != file_year:
error = True
if error:
error_dict = {}
error_dict['old_year'] = file_year
error_dict['old_name'] = file_name
error_dict['new_year'] = premier_year
error_dict['new_name'] = f'{emby_name} ({premier_year}){ext}'
error_dict = {
'old_year': file_year,
'old_name': file_name,
'new_year': premier_year,
'new_name': f'{emby_name} ({premier_year}){ext}'
}
errors.append(error_dict)
return errors

View File

@ -157,11 +157,12 @@ class MovieIdentify():
moviename = self.filename.split(year)[0].rstrip('.')
moviename_encoded = self.encode_moviename(moviename)
# build file_parsed dict
file_parsed = {}
file_parsed['moviename'] = moviename
file_parsed['moviename_encoded'] = moviename_encoded
file_parsed['year'] = int(year)
file_parsed['file_ext'] = file_ext
file_parsed = {
'moviename': moviename,
'moviename_encoded': moviename_encoded,
'year': int(year),
'file_ext': file_ext
}
return file_parsed
@ staticmethod
@ -234,10 +235,11 @@ class MovieIdentify():
name_dedected = result['title']
new_moviename = f'{name_dedected} ({year_dedected})'
new_filename = f'{new_moviename}{file_ext}'
movie_details = {}
movie_details['new_moviename'] = new_moviename
movie_details['new_filename'] = new_filename
movie_details['year_dedected'] = year_dedected
movie_details = {
'new_moviename': new_moviename,
'new_filename': new_filename,
'year_dedected': year_dedected
}
return movie_details

View File

@ -33,8 +33,10 @@ class TrailerHandler():
trailing_pattern = re.compile(trailing_reg)
youtube_id = trailing_pattern.findall(trailer_name)[0][1]
movie_name = movie['Path'].split('/')[-2]
trailer_details = {'movie_name': movie_name,
'youtube_id': youtube_id}
trailer_details = {
'movie_name': movie_name,
'youtube_id': youtube_id
}
local_trailer_list.append(trailer_details)
return local_trailer_list
@ -54,8 +56,10 @@ class TrailerHandler():
for remote_trailer in remote_trailers:
url = remote_trailer['Url']
youtube_id = url.split('?v=')[1]
trailer_details = {'movie_name': movie_name,
'youtube_id': youtube_id}
trailer_details = {
'movie_name': movie_name,
'youtube_id': youtube_id
}
remote_trailers_list.append(trailer_details)
return remote_trailers_list
@ -69,8 +73,10 @@ class TrailerHandler():
for trailer_line in trailer_lines:
youtube_id = trailer_line.split()[0]
movie_name = trailer_line.lstrip(youtube_id).strip()
trailer_details = {'movie_name': movie_name,
'youtube_id': youtube_id}
trailer_details = {
'movie_name': movie_name,
'youtube_id': youtube_id
}
ignore_trailer_list.append(trailer_details)
return ignore_trailer_list

View File

@ -133,16 +133,15 @@ class Episode():
filename = self.filename
season, episode, season_id, id_style = Static.split_file_name(filename)
showname = filename.split(season_id)[0]
ext = os.path.splitext(filename)[1]
encoded = Static.showname_encoder(showname)
# build file_parsed dict
file_parsed = {}
file_parsed['showname'] = encoded
file_parsed['season'] = season
file_parsed['episode'] = episode
file_parsed['season_id'] = season_id
file_parsed['id_style'] = id_style
file_parsed['ext'] = ext
file_parsed = {
'season': season,
'episode': episode,
'season_id': season_id,
'id_style': id_style,
'showname': Static.showname_encoder(showname),
'ext': ext = os.path.splitext(filename)[1]
}
# return dict
return file_parsed
@ -154,22 +153,19 @@ class Episode():
# loop through results
all_results = []
for idx, result in enumerate(request):
list_id = idx
show_id = result['show']['id']
showname_clean = result['show']['name']
status = result['show']['status']
desc_raw = result['show']['summary']
# filter out basic html tags
try:
desc = re.sub('<[^<]+?>', '', desc_raw)
except TypeError:
desc = desc_raw
result_dict = {}
result_dict['list_id'] = list_id
result_dict['show_id'] = show_id
result_dict['showname_clean'] = showname_clean
result_dict['desc'] = desc
result_dict['status'] = status
result_dict = {
'list_id': idx,
'show_id': result['show']['id'],
'showname_clean': result['show']['name'],
'status': result['show']['status'],
'desc': desc
}
all_results.append(result_dict)
# return all_results dict
return all_results
@ -218,12 +214,13 @@ class Episode():
if not show_id and not showname_clean:
show_id, showname_clean = self.pick_show_id()
season, episode, episode_name = self.get_episode_name(show_id)
episode_details = {}
episode_details['show_id'] = show_id
episode_details['showname_clean'] = showname_clean
episode_details['season'] = season
episode_details['episode'] = episode
episode_details['episode_name'] = episode_name
episode_details = {
'show_id': show_id,
'showname_clean': showname_clean,
'season': season,
'episode': episode,
'episode_name': episode_name
}
return episode_details
def multi_parser(self, show_id):
@ -322,11 +319,11 @@ class TvHandler():
# add to discovered
showname = episode.file_parsed['showname']
showname_clean = episode.episode_details['showname_clean']
show_id = episode.episode_details['show_id']
discovered_item = {}
discovered_item['showname'] = showname
discovered_item['showname_clean'] = showname_clean
discovered_item['show_id'] = show_id
discovered_item = {
'showname': showname
'showname_clean': showname_clean
'show_id': episode.episode_details['show_id']
}
self.discovered.append(discovered_item)
identified.append(episode)
print(filename)