Filmy s diakritikou sú preč.
Closed this issue · 19 comments
Po aktualizácii na verziu 1.2.10 zmizli všetky filmy s diakritikou ako napr.četníci a Návštevníci.
Prostedie skúšané sk/cz/en.Ak by bola chuť a čas,mohli by ste sa nato pozrieť? Zatiaľ som sa vrátil k verzii 1.2.8 , tam je to ok.....
Dakujem.
PS: Pri aktualizácii z verzie 1.2.7 na 1.2.10 zobrazovalo v recently added filmy v or.znení....
Logy prosim, u me to Cetniky listuje
mne ich nájde,aj v recently added sú filmy s diakritikou,teraz kontretne trávnikár 2....ale v zozname filmov nieje ani jeden film s mäkčeňom ani dľžňom....
Kde tie logy najdem...som pasívny užívateľ,nie hacker...
V logu hlásí tohle, je to jen pár prvních řádků, ostatní jsou stejné, samozřejmě kromě adresy, nedávám je sem všechny:
08:13:17 T:7948 NOTICE: ["Initializing provider sosac.ph with settings {'downloads': 'F:\video\', 'quality': '0', 'subs': True}"]
08:13:24 T:6068 NOTICE: Previous line repeats 1 times.
08:13:24 T:6068 WARNING: XFILE::CFileFactory::CreateLoader - unsupported protocol(plugin) in plugin://plugin.video.sosac.ph/?play=687474703a2f2f6d6f766965732e7072656872616a2e6d652f2f706c617965722f632d682d752d642d31393834&cp=736f7361632e7068&
08:13:24 T:6068 WARNING: XFILE::CFileFactory::CreateLoader - unsupported protocol(plugin) in plugin://plugin.video.sosac.ph/?play=687474703a2f2f6d6f766965732e7072656872616a2e6d652f2f706c617965722f676976652d656d2d68656c6c2d6d616c6f6e652d32303039&cp=736f7361632e7068&
08:13:24 T:6068 WARNING: XFILE::CFileFactory::CreateLoader - unsupported protocol(plugin) in plugin://plugin.video.sosac.ph/?play=687474703a2f2f6d6f766965732e7072656872616a2e6d652f2f706c617965722f63657374612d646f2d726f6b7963616e2d31393831&cp=736f7361632e7068&
08:13:24 T:6068 WARNING: XFILE::CFileFactory::CreateLoader - unsupported protocol(plugin) in plugin://plugin.video.sosac.ph/?play=687474703a2f2f6d6f766965732e7072656872616a2e6d652f2f706c617965722f6465766f75722d32303035&cp=736f7361632e7068&
08:13:24 T:6068 WARNING: XFILE::CFileFactory::CreateLoader - unsupported protocol(plugin) in plugin://plugin.video.sosac.ph/?play=687474703a2f2f6d6f766965732e7072656872616a2e6d652f2f706c617965722f726f61642d6e6f7274682d32303132&cp=736f7361632e7068&
08:13:24 T:6068 WARNING: XFILE::CFileFactory::CreateLoader - unsupported protocol(plugin) in plugin://plugin.video.sosac.ph/?play=687474703a2f2f6d6f766965732e7072656872616a2e6d652f2f706c617965722f726973656e2d32303130&cp=736f7361632e7068&
08:13:24 T:6068 WARNING: XFILE::CFileFactory::CreateLoader - unsupported protocol(plugin) in plugin://plugin.video.sosac.ph/?play=687474703a2f2f6d6f766965732e7072656872616a2e6d652f2f706c617965722f7468652d77617272696f722d732d7761792d32303130&cp=736f7361632e7068&
08:13:24 T:6068 WARNING: XFILE::CFileFactory::CreateLoader - unsupported protocol(plugin) in plugin://plugin.video.sosac.ph/?play=687474703a2f2f6d6f766965732e7072656872616a2e6d652f2f706c617965722f63657374612d76656e2d32303134&cp=736f7361632e7068&
08:13:24 T:6068 WARNING: XFILE::CFileFactory::CreateLoader - unsupported protocol(plugin) in plugin://plugin.video.sosac.ph/?play=687474703a2f2f6d6f766965732e7072656872616a2e6d652f2f706c617965722f612d676f6f642d6d616e2d32303134&cp=736f7361632e7068&
08:13:24 T:6068 WARNING: XFILE::CFileFactory::CreateLoader - unsupported protocol(plugin) in plugin://plugin.video.sosac.ph/?play=687474703a2f2f6d6f766965732e7072656872616a2e6d652f2f706c617965722f636573746f752d6e65636573746f752d732d6d69726f736c6176656d2d646f6e7574696c656d2d32303037&cp=736f7361632e7068&
08:13:24 T:6068 WARNING: XFILE::CFileFactory::CreateLoader - unsupported protocol(plugin) in plugin://plugin.video.sosac.ph/?play=687474703a2f2f6d6f766965732e7072656872616a2e6d652f2f706c617965722f636f696e2d6c6f636b65722d6769726c2d32303135&cp=736f7361632e7068&
08:13:24 T:6068 WARNING: XFILE::CFileFactory::CreateLoader - unsupported protocol(plugin) in plugin://plugin.video.sosac.ph/?play=687474703a2f2f6d6f766965732e7072656872616a2e6d652f2f706c617965722f636861696e65642d32303132&cp=736f7361632e7068&
08:13:24 T:6068 WARNING: XFILE::CFileFactory::CreateLoader - unsupported protocol(plugin) in plugin://plugin.video.sosac.ph/?play=687474703a2f2f6d6f766965732e7072656872616a2e6d652f2f706c617965722f7468652d6368616d656c656f6e2d32303130&cp=736f7361632e7068&
08:13:24 T:6068 WARNING: XFILE::CFileFactory::CreateLoader - unsupported protocol(plugin) in plugin://plugin.video.sosac.ph/?play=687474703a2f2f6d6f766965732e7072656872616a2e6d652f2f706c617965722f6368616f732d32303035&cp=736f7361632e7068&
08:13:24 T:6068 WARNING: XFILE::CFileFactory::CreateLoader - unsupported protocol(plugin) in plugin://plugin.video.sosac.ph/?play=687474703a2f2f6d6f766965732e7072656872616a2e6d652f2f706c617965722f636861706c696e2d7468652d6c6567656e642d6f662d7468652d63656e747572792d706172742d312d32303134&cp=736f7361632e7068&
08:13:24 T:6068 WARNING: XFILE::CFileFactory::CreateLoader - unsupported protocol(plugin) in plugin://plugin.video.sosac.ph/?play=687474703a2f2f6d6f766965732e7072656872616a2e6d652f2f706c617965722f636861706c696e2d7468652d6c6567656e642d6f662d7468652d63656e747572792d706172742d322d32303134&cp=736f7361632e7068&
08:13:24 T:6068 WARNING: XFILE::CFileFactory::CreateLoader - unsupported protocol(plugin) in plugin://plugin.video.sosac.ph/?play=687474703a2f2f6d6f766965732e7072656872616a2e6d652f2f706c617965722f636861707069652d32303135&cp=736f7361632e7068&
08:13:24 T:6068 WARNING: XFILE::CFileFactory::CreateLoader - unsupported protocol(plugin) in plugin://plugin.video.sosac.ph/?play=687474703a2f2f6d6f766965732e7072656872616a2e6d652f2f706c617965722f636861726c69652d626172746c6574742d32303037&cp=736f7361632e7068&
08:13:24 T:6068 WARNING: XFILE::CFileFactory::CreateLoader - unsupported protocol(plugin) in plugin://plugin.video.sosac.ph/?play=687474703a2f2f6d6f766965732e7072656872616a2e6d652f2f706c617965722f636861726c69652d732d6661726d2d32303134&cp=736f7361632e7068&
Potvrzuji nefunkčnost najít filmy s diakritikou. Po aktualizaci všechno ok najde film Diagnóza šampion ale po restartu kodi LibreElec 7.0.2 už film nenajde.
log-2016-09-26-09.31.58.zip
Vse vidim korektne jak v MOVIES tak pres SEARCH:
- Travnikar 2
- 5x Navstevnici
- 6x Cetnik
- Diagnoza: Sampion
Sosac v1.2.10
Stream Resolver v1.6.43
Windows KODI 16.1
Tak to jsi asi jediný, viz http://www.xbmc-kodi.cz/prispevek-sosac-1-2-10
Čistá instalace Kodi 16.1 na Windows 10, pouze změna jazyka rozhraní na češtinu, následné přidání CZ/SK repo, instalace Sosáče 1.2.10, a v Movies žádní Četníci, Návštěvníci, ani nic jiného s diakritikou v názvu filmu.
Zatiaľ sa treba vrátiť k v.1.2.8 a hádam to opravia...plagátiky a sťahovanie mi fakt nechýba...hlavne aby bolo všetko k dispozicii....
Zaujímave že serialy sú ok....vid četnické humoresky...
Tak ono ty filmy k dispozici jsou, tam bude problém pouze se zobrazením v menu Movies, vyhledat a pustit se ty nezobrazené dají.
Problem je, ze je nutne encodovat do UTF-8 title a ne item['title']
https://github.com/kodi-czsk/plugin.video.sosac.ph/blob/master/resources/lib/sosac.py#L233
Kdyz kod zmenite viz nize, tak vam to zacne fungovat:
if ISO_639_1_CZECH in self.ISO_639_1_CZECH:
title = film.findtext('nazevcs').encode('utf-8')
else:
title = film.findtext('nazeven').encode('utf-8')
item['title'] = '%s (%s)' % (title, film.findtext('rokvydani'))
item['name'] = item['title']
@ExSport
Dobrej postřeh 👍
Tohle je podle mě největší slabina Pythonu 2:
title = film.findtext('nazevcs')
title je Unicode
item['title'] = '%s (%s)' % (title, film.findtext('rokvydani'))
Item['title'] je byte String a tak python 2 před sloučením IMPLICITNĚ udělá .encode('ascii') na oba slučované řetězce což u znaků bez diakritiky projde, ale na nabodeníčkách si to vyláme zuby 😄
Perfektně je to vysvětlené tady: http://nedbatchelder.com/text/unipain.html
A pobral jsem to cca na třetí pokus :-)
Osobně jsem si myslel že problém je až v
item['img'] = 'http://csfd.bbaron.sk/xbmc.php?img=1;%s' % (urllib.urlencode(f))
urlencode() má problém s Unicode řetězci:
http://stackoverflow.com/questions/6480723/urllib-urlencode-doesnt-like-unicode-values-how-about-this-workaround
@petrm74
ta chyba je v logu vidět jenom pokud jsou logovány i další informace, nejlepší je zaškrtnout všechno 😄
WARNING: XFILE::CFileFactory::CreateLoader - unsupported proto ...
je o něčem jiném, ale pokud by se to neobjevilo v issues asi bych se k tomu nikdy nedokopal 😄
@zbyna JJ, s tim jsem zapasil kdyz jsem dodelaval import vsech polozek do Knihovny a pak jeste resil proc se nezobrazuje obecne diaktrika v KODI u imprtovanych titulu :)
Kdyz uz jsem to troubleshootil tak jsem opravil u MOVIES - RECENTLY ADDED, aby ukazoval poslednich 200 polozek misto jen 45 (navic nacita data z XML misto parsovani prvnich 5 stranek webu, takze je to rychlejsi) a pridal podporu nahledu obrazku (i pri prehravani).
Nevim zda ma cenu udelat to same i pro MOVIES - MOST POPULAR, kdyz stejne ta kategorie se zastavila v roce 2009 a je spis na odebrani...
Pokud se k tomu pres vikend dostanu, tak bych to PULLnul.
@zbyna
Ted se divam a mel jsi pravdu 👍
if ISO_639_1_CZECH in self.ISO_639_1_CZECH:
title = film.findtext('nazevcs')
else:
title = film.findtext('nazeven')
item['title'] = '%s (%s)' % (title, film.findtext('rokvydani'))
item['name'] = item['title'].encode('utf-8')
f = {'name': item['title'], 'o': film.findtext('obrazekmaly')}
item['img'] = 'http://csfd.bbaron.sk/xbmc.php?img=1;%s' % (urllib.urlencode(f))
Pokud item['title'] obsahuje diaktriku, tak to pak upadne protoze v F promenne by se melo pouzit bud item['name'], ktery uz je encodovan do utf8 nebo muj puvodni priklad, ktery zabezpeci, ze item['title'] bude taktez encodovan 👍
Heh, tak teď v tom mám zase hokej 😄 :
title = film.findtext('nazevcs')
title je Unicode
item['title'] = '%s (%s)' % (title, film.findtext('rokvydani'))
Item['title'] je teda taky Unicode a python 2 tady před sloučením NEDĚLÁ IMPLICITNĚ KONVERZI na Unicode, protože oba slučované řetězce jsou už Unicode, minule jsem to obrátil ...
Pokud je skutečně problém v urlencode() (má problém s Unicode řetězci:
http://stackoverflow.com/questions/6480723/urllib-urlencode-doesnt-like-unicode-values-how-about-this-workaround)
tak by se obě položky f měly encodovat do UTF8 :
f = {'name': item['title'], 'o': film.findtext('obrazekmaly')}
item['img'] = 'http://csfd.bbaron.sk/xbmc.php?img=1;%s' % (urllib.urlencode(f))
A tvoje navrhovaná úprava:
else:
title = film.findtext('nazeven').encode('utf-8')
by měla vyvolat implicitní ASCII decode title do Unicode v:
item['title'] = '%s (%s)' % (title, film.findtext('rokvydani'))
a tedy zkončit chybou 😕
Rád se podívám, až ten patch dáš dohromady, co bude vlastně fungovat,
je to mazec 😄
Ať už je encode u title, item['title'] či item['name'] tak položky s diakritikou jsou viditelné.
Nejsou viditelné v případě, že proměnná F obsahuje diakritiku což je z důvodu, že obsahuje item['title'], který není encodovan, narozdíl od item['name']. UrlEncode tedy spíš nemá rád diakritiku než utf8.
Pokud se v F nahradí item['title'] utf8 encodovanym item['name'] či se encoduje přímo title, tak tituly s diakritikou nechybí. Otestováno.
Btw. část kódu s UrlEncode byl vyhozen protože přetěžoval server bbaronaSVK takže vlastně není třeba už řešit :)
Btw2. mám 3 nové pully, které zítra postnu.
Tak to 👍 👍 👍
Přetěžování serveru jsem nezaznamenal 😄
A to se ještě nestahovaly plakáty pro filmy s diakritikou.
@ExSport
tree.findall
vrací inteligentně 😄 všechny řetězce xml v ascii rozmezí jako byte str
a všechny ostatní jako unicode
name | value | type |
---|---|---|
tree | Element:<Element 'filmy' at 0x1543cc50> |
Element |
001 | Element:<Element 'film' at 0x1543cf50> |
Element |
0 | Element:<Element 'nazevcs' at 0x1543cf70> |
Element |
text | unicode: Má láska s Jakubem |
unicode |
5 | Element:<Element 'rokvydani' at 0x1a584050> |
Element |
text | str: 1982 |
str |
takže tvoje úprava:
title = film.findtext('nazevcs').encode('utf-8')
neskončí chybou v :
item['title'] = '%s (%s)' % (title, film.findtext('rokvydani'))
a implicitně se neprovede žádný encode('ascii') protože jsou oba parametry formátovacího řetězce byte str
, :
- title je
ut8 encoded str
a - film.findtext('rokvydání') je
ascii encoded str
(ascii znaky mají utf8 reprezetaci stejnou)
Výsledek je teda byte str
Píšu to naschvál polopatě, abych tomu rozuměl 😄 a až to zase zapomenu, abych se měl kam podívat 😄
Jinak ten pull podle mě OK 👍 Vypadá to, že sosač bude umět česky na všech frontách.
Opraveno v 1.3.0