Skip to content

Commit

Permalink
Merge pull request #543 from quickmic/next-gen-dev-python3
Browse files Browse the repository at this point in the history
10.0.45, review changelog for details
  • Loading branch information
quickmic authored Aug 2, 2024
2 parents 5b16bfa + da1e659 commit 5efcb41
Show file tree
Hide file tree
Showing 6 changed files with 39 additions and 22 deletions.
4 changes: 2 additions & 2 deletions addon.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version='1.0' encoding='UTF-8' standalone="yes"?>
<addon id="plugin.service.emby-next-gen" name="Emby for Kodi Next Gen" version="10.0.44" provider-name="quickmic">
<addon id="plugin.service.emby-next-gen" name="Emby for Kodi Next Gen" version="10.0.45" provider-name="quickmic">
<requires>
<import addon="xbmc.python" version="3.0.1"/>
<import addon="script.module.dateutil" version="2.8.1" />
Expand Down Expand Up @@ -56,7 +56,7 @@
</item>
<item library="service.py" args="refreshitem">
<label>30410</label>
<visible>[String.IsEqual(Window(10000).Property(EmbyRefresh),True) + !String.StartsWith(ListItem.FolderPath,"library://") + !String.StartsWith(ListItem.FolderPath,"addons://") + !String.StartsWith(ListItem.FolderPath,"plugin://") + !String.StartsWith(ListItem.FolderPath,"favourites:") + !String.IsEmpty(ListItem.Filename) + !String.IsEqual(ListItem.FileExtension,"m3u") + !String.StartsWith(ListItem.Path,"pvr://")]</visible>
<visible>[String.IsEqual(Window(10000).Property(EmbyRefresh),True) + !String.StartsWith(ListItem.FolderPath,"addons://") + !String.StartsWith(ListItem.FolderPath,"plugin://") + !String.StartsWith(ListItem.FolderPath,"favourites:") + !String.IsEqual(ListItem.FileExtension,"m3u") + !String.StartsWith(ListItem.Path,"pvr://")] + [!String.IsEmpty(ListItem.Filename) | [String.IsEqual(ListItem.DBTYPE,"tvshow") | String.IsEqual(ListItem.DBTYPE,"season")]]</visible>
</item>
<item library="service.py" args="deleteitem">
<label>30409</label>
Expand Down
2 changes: 1 addition & 1 deletion core/musicalbum.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ def change(self, Item):
# Detect compilations
Compilation = 0

if Item['AlbumArtist'].lower() in ("various artists", "various", "various items", "sountrack", "xvarious artistsx"):
if Item['AlbumArtist'].lower() in ("various artists", "various", "various items", "soundtrack", "xvarious artistsx"):
Compilation = 1
xbmc.log(f"EMBY.core.musicalbum: Compilation detected: {Item['Name']}", 0) # LOGDEBUG

Expand Down
2 changes: 1 addition & 1 deletion database/library.py
Original file line number Diff line number Diff line change
Expand Up @@ -263,7 +263,7 @@ def KodiStartSync(self, Firstrun): # Threaded by caller -> emby.py

if UpdateData:
UpdateSyncData = True
self.updated(UpdateData, True)
self.updated(UpdateData, False)

# Update sync update timestamp
if UpdateSyncData:
Expand Down
43 changes: 25 additions & 18 deletions emby/listitem.py
Original file line number Diff line number Diff line change
Expand Up @@ -149,10 +149,17 @@ def set_ListItem_from_Kodi_database(KodiItem, Path=None):
return IsFolder, ListItem

def set_ListItem(item, ServerId, Path=None, KodiId=None):
if 'Name' in item:
Name = item['Name']
elif 'SeriesName' in item: # {'ServerId': '2a38697ffc1b428b943aa1b6014e2263', 'PremiereDate': '2024-10-23T22:00:00.0000000Z', 'ProductionYear': 2024, 'IndexNumber': 2, 'ParentIndexNumber': 5, 'ProviderIds': {}, 'Type': 'Episode', 'SeriesName': 'Star Trek: Lower Decks', 'SeriesId': '58574', 'SeriesPrimaryImageTag': 'fb201a2139810a15d125dfea5e981f36', 'ParentThumbItemId': '58574', 'ParentThumbImageTag': '01e69ca501869a469606bc82bd94d300', 'LocationType': 'Virtual'}
Name = item['SeriesName']
else:
Name = "Unknown"

if Path:
listitem = xbmcgui.ListItem(label=item['Name'], offscreen=True, path=Path)
listitem = xbmcgui.ListItem(label=Name, offscreen=True, path=Path)
else:
listitem = xbmcgui.ListItem(label=item['Name'], offscreen=True)
listitem = xbmcgui.ListItem(label=Name, offscreen=True)

listitem.setContentLookup(False)
Properties = {}
Expand All @@ -170,7 +177,7 @@ def set_ListItem(item, ServerId, Path=None, KodiId=None):
IsVideo = True
HasStreams = True
InfoTags.setMediaType("video")
InfoTags.setTitle(item['Name'])
InfoTags.setTitle(Name)
set_SortTitle(item, InfoTags)
InfoTags.setPlot(item['CurrentProgram']['Overview'])
set_DateAdded(item, InfoTags)
Expand All @@ -197,7 +204,7 @@ def set_ListItem(item, ServerId, Path=None, KodiId=None):
IsVideo = True
HasStreams = True
InfoTags.setMediaType("movie")
InfoTags.setTitle(item['Name'])
InfoTags.setTitle(Name)
set_SortTitle(item, InfoTags)
set_OriginalTitle(item, InfoTags)
set_Plot(item, InfoTags)
Expand Down Expand Up @@ -232,14 +239,14 @@ def set_ListItem(item, ServerId, Path=None, KodiId=None):

Properties = {'embyserverid': str(ServerId), 'embyid': str(item['Id']), 'IsFolder': 'false', 'IsPlayable': 'true', "KodiType": "movie"}
elif item['Type'] == "Series":
item['SeriesName'] = item['Name']
item['SeriesName'] = Name
common.set_RunTimeTicks(item)
common.set_trailer(item, utils.EmbyServers[ServerId])
common.set_common(item, ServerId, True)
InfoTags = listitem.getVideoInfoTag()
IsVideo = True
InfoTags.setMediaType("tvshow")
InfoTags.setTitle(item['Name'])
InfoTags.setTitle(Name)
set_SortTitle(item, InfoTags)
set_OriginalTitle(item, InfoTags)
set_Plot(item, InfoTags)
Expand Down Expand Up @@ -275,7 +282,7 @@ def set_ListItem(item, ServerId, Path=None, KodiId=None):
InfoTags = listitem.getVideoInfoTag()
IsVideo = True
InfoTags.setMediaType("season")
InfoTags.setTitle(item['Name'])
InfoTags.setTitle(Name)
set_SortTitle(item, InfoTags)
set_OriginalTitle(item, InfoTags)
set_Plot(item, InfoTags)
Expand Down Expand Up @@ -312,7 +319,7 @@ def set_ListItem(item, ServerId, Path=None, KodiId=None):
IsVideo = True
HasStreams = True
InfoTags.setMediaType("episode")
InfoTags.setTitle(item['Name'])
InfoTags.setTitle(Name)
set_SortTitle(item, InfoTags)
set_OriginalTitle(item, InfoTags)
set_Plot(item, InfoTags)
Expand Down Expand Up @@ -367,7 +374,7 @@ def set_ListItem(item, ServerId, Path=None, KodiId=None):
if item['IndexNumber']:
InfoTags.setTrackNumber(int(item['IndexNumber']))

InfoTags.setTitle(item['Name'])
InfoTags.setTitle(Name)
set_Album(item, InfoTags)
set_SortTitle(item, InfoTags)
set_OriginalTitle(item, InfoTags)
Expand Down Expand Up @@ -404,7 +411,7 @@ def set_ListItem(item, ServerId, Path=None, KodiId=None):
IsVideo = True
HasStreams = True
InfoTags.setMediaType("video")
InfoTags.setTitle(item['Name'])
InfoTags.setTitle(Name)
set_SortTitle(item, InfoTags)
set_OriginalTitle(item, InfoTags)
set_Plot(item, InfoTags)
Expand Down Expand Up @@ -432,8 +439,8 @@ def set_ListItem(item, ServerId, Path=None, KodiId=None):
common.set_common(item, ServerId, True)
InfoTags = listitem.getMusicInfoTag()
InfoTags.setMediaType("artist")
InfoTags.setTitle(item['Name'])
InfoTags.setArtist(item['Name'])
InfoTags.setTitle(Name)
InfoTags.setArtist(Name)
set_Genres(item, InfoTags)
InfoTags.setDbId(1000000000 + int(item['Id']), "artist")
set_MusicBrainzArtistID(item, InfoTags)
Expand All @@ -445,8 +452,8 @@ def set_ListItem(item, ServerId, Path=None, KodiId=None):
common.set_RunTimeTicks(item)
InfoTags = listitem.getMusicInfoTag()
InfoTags.setMediaType("album")
InfoTags.setTitle(item['Name'])
InfoTags.setAlbum(item['Name'])
InfoTags.setTitle(Name)
InfoTags.setAlbum(Name)
set_Album(item, InfoTags)
set_AlbumArtist(item, InfoTags)
set_Year(item, InfoTags)
Expand All @@ -467,7 +474,7 @@ def set_ListItem(item, ServerId, Path=None, KodiId=None):
set_Album(item, InfoTags)
set_AlbumArtist(item, InfoTags)
InfoTags.setMediaType("song")
InfoTags.setTitle(item['Name'])
InfoTags.setTitle(Name)
set_Year(item, InfoTags)
set_Duration(item, InfoTags)
set_LastPlayed(item, InfoTags)
Expand All @@ -487,7 +494,7 @@ def set_ListItem(item, ServerId, Path=None, KodiId=None):
InfoTags = listitem.getVideoInfoTag()
IsVideo = True
InfoTags.setMediaType("set")
InfoTags.setTitle(item['Name'])
InfoTags.setTitle(Name)
set_SortTitle(item, InfoTags)
set_OriginalTitle(item, InfoTags)
set_Plot(item, InfoTags)
Expand Down Expand Up @@ -515,7 +522,7 @@ def set_ListItem(item, ServerId, Path=None, KodiId=None):
Properties = {'embyserverid': str(ServerId), 'embyid': str(item['Id']), 'IsFolder': 'true', 'IsPlayable': 'true'}
elif item['Type'] == 'Playlist':
InfoTags = listitem.getVideoInfoTag()
InfoTags.setTitle(item['Name'])
InfoTags.setTitle(Name)
common.set_KodiArtwork(item, ServerId, True)
common.set_overview(item)
Properties = {'embyserverid': str(ServerId), 'embyid': str(item['Id']), 'IsFolder': 'true', 'IsPlayable': 'false'}
Expand All @@ -539,7 +546,7 @@ def set_ListItem(item, ServerId, Path=None, KodiId=None):
Properties = {'embyserverid': str(ServerId), 'embyid': str(item['Id']), 'IsFolder': 'true', 'IsPlayable': 'true'}
else: # Letter, Tag, Genre, MusicGenre, etc
InfoTags = listitem.getVideoInfoTag()
InfoTags.setTitle(item['Name'])
InfoTags.setTitle(Name)
common.set_KodiArtwork(item, ServerId, True)

if HasStreams:
Expand Down
9 changes: 9 additions & 0 deletions helper/pluginmenu.py
Original file line number Diff line number Diff line change
Expand Up @@ -144,8 +144,17 @@ def browse(Handle, Id, query, ParentId, Content, ServerId, LibraryId, ContentSup
Extras.update({"SortBy": "DatePlayed"})
EmbyContentQuery = (ParentId, [Content], True, Extras, True, LibraryId)
elif query == 'Recommendations':
Doubles = []

for Item in utils.EmbyServers[ServerId].API.get_recommendations(ParentId):
if Item['Name'] not in Doubles:
Doubles.append(Item['Name'])
else:
continue

ItemsListings = load_ListItem(ParentId, Item, ServerId, ItemsListings, Content, LibraryId)

del Doubles
elif query == 'BoxSet':
ParentId = Id

Expand Down
1 change: 1 addition & 0 deletions hooks/monitor.py
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,7 @@ def monitor_EventQueue(): # Threaded / queued
elif Event[0] == "managelibsselection":
start_new_thread(pluginmenu.select_managelibs, ())
elif Event[0] == "opensettings":
xbmc.executebuiltin('Dialog.Close(all,true)')
xbmc.executebuiltin('Addon.OpenSettings(plugin.service.emby-next-gen)')
elif Event[0] == "backup":
start_new_thread(Backup, ())
Expand Down

0 comments on commit 5efcb41

Please sign in to comment.