kodi-czsk / plugin.video.ivysilani

MIT License
20 stars 22 forks source link

TypeError: Parse() argument 1 must be string or read-only buffer, not None #34

Closed petr-fischer closed 5 years ago

petr-fischer commented 5 years ago

Momentálně nefunguje, listovat lze, ale přehrávání padne na chybu:

12:48:28.081 T:34628700672 ERROR: [iVysílání — Česká televize] ['Traceback (most recent call last):\n', ' File "/home/tv/.kodi/addons/plugin.video.ivysilani/addon.py", line 496, in <module>\n playPlayable(playable, skip_auto, force_quality)\n', ' File "/home/tv/.kodi/addons/plugin.video.ivysilani/addon.py", line 305, in playPlayable\n url = autoSelectQuality(playable)\n', ' File "/home/tv/.kodi/addons/plugin.video.ivysilani/addon.py", line 238, in autoSelectQuality\n url = playable.url(setting_quality)\n', ' File "/home/tv/.kodi/addons/plugin.video.ivysilani/ivysilani.py", line 179, in url\n root = ET.fromstring(data)\n', ' File "/usr/local/lib/python2.7/xml/etree/ElementTree.py", line 1311, in XML\n parser.feed(text)\n', ' File "/usr/local/lib/python2.7/xml/etree/ElementTree.py", line 1657, in feed\n self._parser.Parse(data, 0)\n', 'TypeError: Parse() argument 1 must be string or read-only buffer, not None\n']
12:48:28.154 T:34512322560 ERROR: Previous line repeats 1 times.
12:48:28.154 T:34512322560 ERROR: GetDirectory - Error getting plugin://plugin.video.ivysilani/?play=CT24
12:48:28.155 T:34512322560 ERROR: CGUIMediaWindow::GetDirectory(plugin://plugin.video.ivysilani/?play=CT24) failed

Verze: 1.3.7

FrAcTi0N commented 5 years ago

Mám stejný problém.

gorn commented 5 years ago

Plugin je tímto nefunkcni!

Pridavam screenshot stejneho problemu. Otazka je zda to zpusobila zmena pluginu nebo API.

photo6003346304295612289 photo6003346304295612290

gorn commented 5 years ago

Možná nesouvisející, ale po zapnutí "hlášení chyb" to ještě píše něco jako "hlášení se nepodařilo odeslat"

gorn commented 5 years ago

Nafunguje přehrávání jak živého vysílání tak pořadů z archivu.

kidal7 commented 5 years ago

Dělá mi to taky, nepomáhá ani přechod na nižší verzi a též nejdou odeslat hlášení (nevím jestli někdy vůbec šla) Myslím že to nefunguje od čtvrtka

martinrotter commented 5 years ago

Potvrzuji, u mě se projevuje tak, že na pořad kliknout lze, ale následně se už nezobrazí seznam dostupných kvalit, který je prázdný.

PitelVonSacek commented 5 years ago

Problém je, že v dotazu na playlist je nastaveno Content-Encoding: gzip, ale současný kód očekává, že odpověď bude plaintext. Následující patch přidává rozbalení gzipované odpovědi a s ním mi už plugin funguje.

--- ivysilani.py   2019-05-26 08:25:22.358886462 +0200
+++ ivysilani.py   2019-05-27 09:07:50.698724754 +0200
@@ -11,6 +11,9 @@
 import xml.etree.ElementTree as ET
 from datetime import datetime, timedelta

+from StringIO import StringIO
+import gzip
+
 import util

 __author__ = "Štěpán Ort"
@@ -331,7 +334,10 @@
     conn.request("POST", url, urllib.urlencode(params), headers)
     response = conn.getresponse()
     if response.status == 200:
-        data = response.read()
+        if response.getheader('Content-Encoding') == 'gzip':
+            data = gzip.GzipFile(fileobj = StringIO(response.read())).read()
+        else:
+            data = response.read()
         conn.close()
         return data
     return None
gorn commented 5 years ago

Jaký je další postup release opravy? Je to automatické? Zkouším v kodi aktuaslizovat a je tam pořád 1.3.7

martinrotter commented 5 years ago

U mě už 1.3.8, vše funkční.

gorn commented 5 years ago

Když dám "aktualizovat doplňky" tak to novou verzi nenajde. Dá se to nějak forcenout?

gorn commented 5 years ago

Aha, tak teď. To musel Štěpán nějak proštouchnout.

Takže u mě taky funguje. Díky!

JardaNC commented 4 years ago

Ahoj,

mam stejnou chybu ve verzi 1.3.8

Chyba se objevu pri spusteni poradu.

Dalsi chyba, ktera se objevuje je:

Programme has no attribute.

Muze nekdo pomoc?

Dik moc Jarda

PitelVonSacek commented 4 years ago

@JardaNC mě doplněk funguje. Jakou verzi Kodi používáš, děje se to jen s jedním videem nebo se všemi? A raději na to založ nové issue.