kodi-czsk / plugin.video.sosac.ph

GNU General Public License v2.0
17 stars 31 forks source link

Nejde spustit plugin #172

Open m1l4n89 opened 2 years ago

m1l4n89 commented 2 years ago

Čau, mám Raspberry Pi 2 používal jsem Kodi 18.7 se starší verzí pluginu a vše fungovalo. Včera jsem udělal aktualizaci na Kodi 19 a aktualizaci pluginu na verzi 1.4.1 . Po aktualizaci se plugin nespustí.

Koukal jsem do logů a končí to chybou: 2022-04-06 13:43:02.794 T:2270 INFO : CActiveAESink::OpenSink - initialize sink 2022-04-06 13:43:02.795 T:2270 INFO : CAESinkALSA::Initialize - Attempting to open device "default" 2022-04-06 13:43:02.819 T:2270 INFO : CAESinkALSA::Initialize - Opened device "default" 2022-04-06 13:43:02.822 T:2270 INFO : CAESinkALSA::InitializeHW - Your hardware does not support AE_FMT_FLOAT, trying other formats 2022-04-06 13:43:02.822 T:2270 INFO : CAESinkALSA::InitializeHW - Using data format AE_FMT_S16NE 2022-04-06 13:43:07.234 T:2690 INFO : initializing python engine. 2022-04-06 13:43:22.299 T:2690 INFO : ['URL: '] 2022-04-06 13:43:22.302 T:2690 INFO : ['Running sosac provider with params: {}'] 2022-04-06 13:43:22.325 T:2690 INFO : ["Initializing provider sosac.ph with settings {'downloads': '', 'quality': '0', 'subs': True, 'lang': '0'}"] 2022-04-06 13:43:23.141 T:2690 ERROR : EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--

2022-04-06 13:43:23.564 T:2690 INFO : Python interpreter stopped 2022-04-06 13:43:23.582 T:2688 ERROR : GetDirectory - Error getting plugin://plugin.video.sosac.ph/ 2022-04-06 13:43:23.596 T:2186 ERROR : CGUIMediaWindow::GetDirectory(plugin://plugin.video.sosac.ph/) failed

Zkoušel jsem plugin odinstalovat a nainstalovat znovu a stejná chyba.

Nemáte někdo radu co s tím?

Předem dík

Saljack commented 2 years ago

Nainstaluj z https://repo.xbmc-kodi.cz/

m1l4n89 commented 2 years ago

Původní verze na Kodi 18 byla z https://kodi-czsk.github.io/repository/ , ale tam již nebyla podpora. Takže současnou verzi již mám právě z repozitáře https://repo.xbmc-kodi.cz/.

m1l4n89 commented 2 years ago

Provedl jsem i úplně čistou instalaci Kodi 19. A pořád stejné. To vypadá možná na nějakou novější verzi PYTHONa a má to problém se syntaxí. Nemůže být problém v tom formátu datumu?

zajdee commented 1 year ago

Pokud nainstalujete OSMC v poslední verzi a nastavíte regionální nastavení na češtinu, dojde k nastavení systémového locale Pythonu na CZ.

Chyba vypadá krypticky, protože uvedený datum/čas v default locale Python naparsuje.

ValueError: time data 'Mon, 21 Nov 2022 16:36:29 GMT' does not match format '%a, %d %b %Y %H:%M:%S %Z'

Jakmile ale použijete lang CZ, očekává český zkrácený název dne a měsíce, např. Po, 21 lis 2022 16:19:41. A ten se samozřejmě naparsovat nepovede, protože v HTTP hlavičce je datum anglicky. Řešením je pro parsovací funkci dočasně předefinovat locale, např. takto:

--- sosac.py.orig   2022-11-21 22:36:23.875308293 +0100
+++ sosac.py    2022-11-21 22:36:09.305272367 +0100
@@ -23,6 +23,7 @@
 import urllib.request, urllib.parse, urllib.error
 import http.cookiejar
 import hashlib
+import locale
 import sys
 import json
 import datetime
@@ -499,8 +500,11 @@
         req.add_header('User-Agent', util.UA)
         try:
             response = urllib.request.urlopen(req)
+            saved_locale = locale._setlocale(locale.LC_TIME)
+            locale.setlocale(locale.LC_TIME, 'C')
             lastmodtime = time.strptime(response.info().get_all('Last-Modified')[0],
                 '%a, %d %b %Y %H:%M:%S %Z')
+            locale.setlocale(locale.LC_TIME, saved_locale)
             lastmod = datetime.datetime(*lastmodtime[:6]).strftime('%d.%m.%Y')
             response.close()
         except urllib.error.HTTPError as error: