kodi-czsk/plugin.video.sosac.ph

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.

Pravda, že ta moje testovací není čistá 1.2.10 ale obsahuje i #77 a #80 a ta fungovala na Win10 při zběžném testu.
Zkusím ofiko...

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']
zbyna commented

@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 👍

zbyna commented

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.

zbyna commented

Tak to 👍 👍 👍
Přetěžování serveru jsem nezaznamenal 😄
A to se ještě nestahovaly plakáty pro filmy s diakritikou.

zbyna commented

@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