From 064a02ad3c890414d8e86b858fe3b8244dad165c Mon Sep 17 00:00:00 2001
From: Peter Fern <github@0xc0dedbad.com>
Date: Tue, 21 Nov 2023 17:07:36 +1100
Subject: [PATCH 1/2] Fix uncaught exception in Player.report_playback()

---
 jellyfin_kodi/player.py | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/jellyfin_kodi/player.py b/jellyfin_kodi/player.py
index e8a92985..104f3901 100644
--- a/jellyfin_kodi/player.py
+++ b/jellyfin_kodi/player.py
@@ -326,7 +326,11 @@ class Player(xbmc.Player):
         if not report:
 
             previous = item['CurrentPosition']
-            item['CurrentPosition'] = int(self.getTime())
+
+            try:
+                item['CurrentPosition'] = int(self.getTime())
+            except Exception:  # at this point we should be playing and if not then bail out
+                return
 
             if int(item['CurrentPosition']) == 1:
                 return

From 248b49c86937a1af89909d4d9d844f3baedaa8c9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Odd=20Str=C3=A5b=C3=B8?= <oddstr13@openshell.no>
Date: Wed, 7 Feb 2024 08:54:53 +0100
Subject: [PATCH 2/2] Log when catching generic exceptions

---
 jellyfin_kodi/player.py | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/jellyfin_kodi/player.py b/jellyfin_kodi/player.py
index 104f3901..bb6a8bea 100644
--- a/jellyfin_kodi/player.py
+++ b/jellyfin_kodi/player.py
@@ -329,7 +329,9 @@ class Player(xbmc.Player):
 
             try:
                 item['CurrentPosition'] = int(self.getTime())
-            except Exception:  # at this point we should be playing and if not then bail out
+            except Exception as e:
+                # getTime() raises RuntimeError if nothing is playing
+                LOG.debug("Failed to get playback position: %s", e)
                 return
 
             if int(item['CurrentPosition']) == 1: