Skip to content

Commit

Permalink
Merge pull request #374 from quickmic/next-gen-dev
Browse files Browse the repository at this point in the history
plugin.video.emby-next-gen-5.3.2-build 6 (ex1)
  • Loading branch information
quickmic authored May 30, 2021
2 parents afcf62c + 28cba0e commit aacaeea
Show file tree
Hide file tree
Showing 8 changed files with 37 additions and 24 deletions.
2 changes: 1 addition & 1 deletion 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.video.emby-next-gen" name="Emby-next-gen" version="5.3.1" provider-name="quickmic, angelblue05, sualfred">
<addon id="plugin.video.emby-next-gen" name="Emby-next-gen" version="5.3.2" provider-name="quickmic, angelblue05, sualfred">
<requires>
<import addon="script.module.requests" version="2.22.0"/>
<import addon="script.module.dateutil" version="2.8.1"/>
Expand Down
31 changes: 17 additions & 14 deletions emby/core/http.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ def stop_session(self):
except Exception as error:
self.LOG.warning("The requests session could not be terminated: %s" % error)

def request(self, data, MSGs=True): #MSGs are disabled on initial sync and reconnection. Only send msgs if connection is unexpectly interrupted
def request(self, data, MSGs=True, Binary=False): #MSGs are disabled on initial sync and reconnection. Only send msgs if connection is unexpectly interrupted
if 'url' not in data:
data['url'] = "%s/emby/%s" % (self.EmbyServer.Data['auth.server'], data.pop('handler', ""))

Expand Down Expand Up @@ -129,23 +129,26 @@ def _retry(current):
elapsed = int(r.elapsed.total_seconds() * 1000)
self.LOG.debug("---<[ http ][%s ms]" % elapsed)

try:
self.EmbyServer.Data['server-time'] = r.headers['Date']
if Binary:
return r.content
else:
try:
self.EmbyServer.Data['server-time'] = r.headers['Date']

if r.status_code == 204:
# return, because there is no response
return
if r.status_code == 204:
# return, because there is no response
return

response = r.json()
response = r.json()

try:
self.LOG.debug(json.dumps(response, indent=4))
except Exception:
self.LOG.debug(response)
try:
self.LOG.debug(json.dumps(response, indent=4))
except Exception:
self.LOG.debug(response)

return response
except ValueError:
return r.content
return response
except ValueError:
return r.content

def get_header(self, data):
data['headers'] = data.setdefault('headers', {})
Expand Down
2 changes: 1 addition & 1 deletion emby/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -282,7 +282,7 @@ def update_views(self):
database.emby_db.EmbyDatabase(embydb.cursor).add_view(library['Id'], library['Name'], library['Media'], self.EmbyServer.server_id)

#Cache artwork
icon = self.APIHelper.get_artwork(library['Id'], 'Primary', None, [('Index', 0)])
icon = self.APIHelper.get_artwork(library['Id'], 'Primary', None, [('Index', 0), ('api_key', self.EmbyServer.Data['auth.token'])], self.EmbyServer.Data['auth.server'])
iconpath = self.IconDownload(icon, "%s_%s" % (self.EmbyServer.Data['auth.server-name'], library['Id']))
self.LibraryIcons[library['Id']] = iconpath

Expand Down
7 changes: 5 additions & 2 deletions helper/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -257,7 +257,7 @@ def get_backdrops(self, item_id, tags, query):
return backdrops

#Get any type of artwork: Primary, Art, Banner, Logo, Thumb, Disc
def get_artwork(self, item_id, image, tag, query):
def get_artwork(self, item_id, image, tag, query, Native=False):
query = list(query) if query else []

if item_id is None:
Expand All @@ -266,5 +266,8 @@ def get_artwork(self, item_id, image, tag, query):
if tag is not None:
query.append(('Tag', tag))

artwork = "http://127.0.0.1:57578/%s/Images/%s/0?%s" % (item_id, image, urlencode(query))
if Native:
artwork = "%s/emby/Items/%s/Images/%s/0?%s" % (Native, item_id, image, urlencode(query))
else:
artwork = "http://127.0.0.1:57578/%s/Images/%s/0?%s" % (item_id, image, urlencode(query))
return artwork
7 changes: 4 additions & 3 deletions helper/context.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,9 +47,10 @@ def delete_item(self, LoadItem=False):
if not self.load_item():
return

self.EmbyServers[self.server_id].API.delete_item(self.item[0])
self.library[self.server_id].removed([self.item[0]])
self.library[self.server_id].delay_verify([self.item[0]])
if self.Utils.dialog("yesno", heading="{emby}", line1=self.Utils.Translate(33015)):
self.EmbyServers[self.server_id].API.delete_item(self.item[0])
self.library[self.server_id].removed([self.item[0]])
self.library[self.server_id].delay_verify([self.item[0]])

def select_menu(self):
options = []
Expand Down
2 changes: 1 addition & 1 deletion helper/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -216,7 +216,7 @@ def download_file_from_Embyserver(self, request, filename, EmbyServer):
xbmcvfs.mkdir(temp)

path = os.path.join(temp, filename)
response = EmbyServer.http.request(request)
response = EmbyServer.http.request(request, True, True)

if response:
with open(path, 'wb') as f:
Expand Down
3 changes: 2 additions & 1 deletion hooks/monitor.py
Original file line number Diff line number Diff line change
Expand Up @@ -277,14 +277,15 @@ def AddPlaylistItem(self, Position, EmbyID, server_id, Offset):
Data = database.database.get_kodiID(self.Service.Utils, str(EmbyID))

if Data: #Requested video is synced to KodiDB. No additional info required
if Data[0][1] == "audio":
if Data[0][1] in ("song", "album", "artist"):
playlistID = 0
playlist = xbmc.PlayList(xbmc.PLAYLIST_MUSIC)
else:
playlistID = 1
playlist = xbmc.PlayList(xbmc.PLAYLIST_VIDEO)

Pos = self.GetPlaylistPos(Position, playlist, Offset)

helper.jsonrpc.JSONRPC('Playlist.Insert').execute({'playlistid': playlistID, 'position': Pos, 'item': {'%sid' % Data[0][1]: int(Data[0][0])}})
else:
listitems = core.listitem.ListItem(self.Service.Utils)
Expand Down
7 changes: 6 additions & 1 deletion hooks/player.py
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ def OnPlay(self, data, EmbyServer, library):
else:
kodi_id = data['item']['id']
media_type = data['item']['type']
item = database.database.get_item(EmbyServer.Utils, kodi_id, media_type)
item = database.database.get_item_complete(EmbyServer.Utils, kodi_id, media_type)

if item:
self.CurrentItem['Id'] = item[0]
Expand All @@ -96,6 +96,11 @@ def OnPlay(self, data, EmbyServer, library):
return #Kodi internal Source

if EmbyServer.Utils.direct_path: #native mode
PresentationKey = item[10].split("-")
self.ItemSkipUpdate.append(PresentationKey[0])
self.ItemSkipUpdate.append(self.CurrentItem['Id'])
self.ItemSkipUpdateAfterStop.append(PresentationKey[0])
self.ItemSkipUpdateAfterStop.append(self.CurrentItem['Id'])
self.PlaySessionId = str(uuid.uuid4()).replace("-", "")

self.CurrentItem['Tracking'] = True
Expand Down

0 comments on commit aacaeea

Please sign in to comment.