Context Menu
Context Menu je doplněk, který do kontextového menu Kodi přidává další položky, které nabízejí řadu specifických a dále popsaných funkcí. Koncepce řešení umožňuje autorovi přidávat další funkce dle libosti a možností, které Kodi nabízí. Doplněk využívá možnost definice kontextového menu nezávislého na konkrétním doplňku, přímo v jeho definičním souboru addon.xml. Z tohoto pohledu je množina funkcí otevřená a pokud někdo přijde s nápadem, jakou funkci by bylo vhodné doplnit, stačí dát návrh a já se o to (pokud to funkce Kodi dovolí) pokusím.
V současné chvíli není doplněk veřejný. Původní verze už není funkční a na nové verzi, která bude poměrně zásadně přepracována, stále ještě pracuji.
Úrovně výběru položek
V doplňku budou fungovat tři úrovně výběru položek v menu (aplikují se v uvedeném pořadí):
- podle nastavení doplňku - to umožní uživateli vybrat si, které položky v menu mohou být zobrazeny
- podle stavu dalších doplňků - pokud je položka v menu vázána na nějaký další doplněk, kontroluje se, zda je doplněk instalovaný a povolený a pokud tomu tak není, tak se položka v menu neobjeví
- podle okamžitého kontextu - zobrazení položek v menu bude podmíněno aktuálním obsahem položky v seznamu, na které bylo kontextové menu vyvoláno
Dostupné položky a jejich funkce
Seznam dostupných položek a bude průběžně aktualizován. Jednak proto, že některé položky a funkce budou přibývat, ale také proto, že některé položky a funkce nebudou moci být nakonec také realizovány podle původního předpokladu z důvodu aktuálního omezení ze strany doplňků nebo aplikací, které využívá.
Seznam je v tuto chvíli členěný a seřazený zatím pouze podle funkcí a příslušnosti k funkční skupinám. Každou funkci samostatně nebo celou funkční skupinu, bude možné v nastavení doplňku povolit či zakázat.
Konečné umístění položek v kontextovém menu bude předmětem dalších úvah o tom, jaké položky a v jakých souvislostech budou využívány nejčastěji, a to tak, aby přístup k nim byl pro uživatele nejjednodušší a nejrychlejší. To platí i pro uživatelské položky a jejich umístění, kde bude zachována dosavadní flexibilita s možností volby pozice některých položek či celých skupin v uživatelském nastavení.
- Uživatelsky definované funkce
- Skupina uživatelsky definovaných funkcí, které je dále věnována samostatná kapitola
- Funkce doplňkové
- Hudba na pozadí - spustí přehrávání hudby při prezentaci obrázků
- Přehrát upoutávku - z položky video spustí přehrávání upoutávky (trailer-u), pokud v dané položce odkaz existuje
- Funkce hledání
- Skupina funkcí, které je dále věnována samostatná kapitola
- Funkce knihovny a stahování
- Vložení do knihovny - vloží (pokusí se vložit) vybraný titul z video doplňku (pokud se jedná o přehratelnou položku) do knihovny - funkce bude vybavena jistou základní heuristikou, která rozhodne o tom, zda je možné, tedy jakým způsobem a v jaké formě, titul do knihovny vložit.
- Stažení videa - stáhne (pokusí se stáhnout) vybraný titul z video doplňku (pokud se jedná o přehratelnou položku) - funkce bude vybavena jistou základní heuristikou, která rozhodne o tom, zda je možné, tedy jakým způsobem a v jaké formě, titul stáhnou.
- Funkce seznamů
- Obnovení obsahu - provede tzv. Refresh, tedy nové načtení aktuálně zobrazeného seznamu
- Odstranit - u položky, kde je to v rámci Kodi možné a povolené, se provede její "odstranění". Odstraněním je míněná akce (Action ID Delete) v daném kontextu, dle typu a stavu položky. Pokud není v daném kontextu tato akce definovaná nebo možná, neprovede se samozřejmě nic.
- Funkce nastavení
- Nastavení doplňku - spustí funkci nastavení doplňku, a to i v případě, že aktuálně zobrazený seznam byl nějakým doplňkem vytvořený - např. u položky widgetu
- Nastavení Kodi - spustí funkci nastavení Kodi
- Nastavení menu - spustí funkci nastavení doplňku Context Menu
- Funkce informační
- Item Info - vrátí aktuálně možný kompletní výpis obsahu položky v Kodi databázi
Uživatelsky definované položky
Doplněk umožňuje uživatelsky definovat další (až 4) položky kontextového menu, a každou z nich umístit do jedné ze čtyř pozic v menu. Pro každou položku je možné v nastavení doplňku definovat:
- Povolení položky - povoluje její zobrazení ve zvolené pozici - defaultně Nepovoleno, tzn. položka nebude zobrazena
- Pozice - definuje pozici zobrazení položky v jedné z možných pozic - defaultně Nedefinovaná, tzn. položka nebude zobrazena
- Název - označení položky v kontextovém menu - defaultně prázdný řetězec
- Styl - stylu fontu názvu Normální, Tučné, Kurzíva a Tučná kurzíva - defaultně Normální
- Barva - barva fontu názvu Bílá, Šedá, Modrá, Zelená, Žlutá a Červená - defaultně Bílá
- Příkaz - Kodi built-in příkaz, defaultně žádný.
Funkce hledání
U funkcí hledání dojde k zásadní změně oproti předcházejícím verzím doplňku. Motivací k těmto změnám je několik:- citlivost některých funkcí k zásadám, praktikám a omezením existujícím v komunitě kolem Kodi, jeho doplňků i dalších mediálních aplikací,
- nové zdroje, nové doplňky, ale také nové mediální aplikace a jejich zdroje a doplňky, které se v Kodi dají použít - doplňky pro Stremio, Streamlet, Luna, ..., je toho dnes hodně a něco z toho má celkem jednoduše využitelný potenciál, stát se zdrojem pro Kodi a jeho doplňky,
- tvorba komplexní python knihovny, modulů i doplňků z mé dílny, které jsem souhrnně nazval Easy Search Engin (ESE), která je koncipovaná tak, aby vytvořila jakýsi game changer pro funkce hledání v Kodi samotném, jejich doplňcích, ale také v samostatně fungující aplikaci Media Source Server (MSS), která mi ve finále poběží v režimu 24/7 na mém domácím serveru.
Definice položky funkce hledání tedy bude vypadat nějak takto:
- Povolení položky - povoluje její zobrazení - defaultně Nepovoleno, tzn. položka nebude zobrazena nikdy
- Typ položky - určuje u jakých seznamů se bude položka zobrazovat (typicky např. u položky z guide (EPG), u daného typu doplňku, apod. - defaultně Vždy, kdy položka se objeví u každého seznamu
- Název - označení položky v kontextovém menu - defaultně prázdný řetězec
- Styl - stylu fontu názvu Normální, Tučné, Kurzíva a Tučná kurzíva - defaultně Normální
- Barva - barva fontu názvu Bílá, Šedá, Modrá, Zelená, Žlutá a Červená - defaultně Bílá
- Funkce hledání - ze seznamu vybraná jedna z konfigurovaných funkcí hledání - defaultně nevybraná žádná
A konfigurace funkce hledání, to bude právě ona druhá úroveň definice. Tady je stále ještě hodně otevřených témat a je to zatím asi nejčastěji se měnící část celého řešení. Ostatně, také je to ta část, s kterou mám teď nejvíce práce. Proto i tuto část prozatím popíši jen heslovitě, bodově a víceméně rámcově. Celé řešení funkcí hledání je postaveno na řetězení dílčích funkcí, kde si uživatel může, už v rámci konfigurace vybrat, které funkce v daném kroku řetězení povolí a jak si je nastaví. Generálně platí, že vždy v okamžiku, kdy je výsledkem nějakého kroku textový řetězec, může se při konfiguraci nastavit, že se zobrazí možnost, pro každý jednotlivý krok, tento řetězec ve standardní Kodi virtuální klávesnici upravit.
Stručný a velmi předběžný přehled konfigurace jednotlivých kroků vypadá asi nějak takto:
- výběr zdroje položky
- buď se taxativně vybere z několika typických položek - např. Title, Original Title, ...
- nebo se zobrazí dialog, který nabídne všechny dostupné položky
- výběr odpovídajícího titulu z TMDB
- buď se výběr povolí, v takovém případě se spustí vyhledávání v TMDB s původním textem a uživatel dostane seznam nalezených titulů a vybere si z něj jediný, a další vyhledávání bude pracovat s tímto titulem
- nebo bude další vyhledávání pracovat s původním textem
- způsob výběru zdrojů hledání
- buď se zdroje, ve kterých se bude hledat, vyberou v konfiguraci
- nebo se v konfiguraci nastaví seznam zdrojů, který se při vyhledávání zobrazí jako nabídka zdrojů, ze kterých si uživatel vybere
- způsob použití primárních zdrojů
- buď budou použity existující doplňky, YAWSP, Fastshare, SC, ...
- nebo budou použity interní moduly doplňku, využívající funkce Easy Search Engin
- způsob prezentace výsledků
- buď ve formě standardních výstupů existujících doplňků
- nebo ve formě speciálních výstupů, což si ale vyžádá úpravy ve skinu
Podařilo se mi nešikovnou manipulací smazat komentář uživatele @meda, za což se mu omlouvám. Nebyl v tom úmysl a už vůbec ne reakce na obsah jeho příspěvku. Jen má nešikovnost a ještě ne úplně zvládnutá správa blogu. Doufám, že se mi tohle nebude stávat často.
OdpovědětVymazatContext menu už mám něco málo přes rok a rád ho používám, díky za tvoji práci.
OdpovědětVymazat