• Vítejte na XBMC-Kodi.cz
  • Česko-slovenská komunita fanoušků XBMC/Kodi
Vítejte návštevníku! Přihlášení Registrace


Hodnocení tématu:
  • 0 Hlas(ů) - 0 Průměr
  • 1
  • 2
  • 3
  • 4
  • 5
Context Menu
#1
    Doplněk Context Menu je první z řady doplňků a řešení určených pro Kodi, které jsem zařadil do skupiny, kterou budu prezentovat jako Easy TOOLS. Postupně do ní plánuji přidat další výtvory z mé dílny - skin Esturay Easy, užitečný doplněk Speed Meter nebo několik na pozadí běžících service Monitor, RDS nebo Calendar. Ale všechno má svůj čas a nyní tedy přišlel čas zveřejnění doplňku Context Menu.

Doplněk přidává do kontextového menu Kodi 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čí v tomto tématu námět zveřejnit návrh a já se o to (pokud to funkce Kodi dovolí) pokusím.

Historie

Na konec nezbytného úvodu něco málo k historii. Doplněk Context Menu jsem v základní a velmi primitivní podobě více než rok používal v instalcích Kodi mých přátel a známých, a také samozřejmě mých vlastních. Teprve dotaz a námět v příspěvku Context menu add-on mě inspiroval k doplnění a rozšíření funkcí do (zatím) konečné podoby. Děkuji tímto @MiLaCzech: nejen za inspiraci, ale také za pomoc při odladění funkce přepínání výběru streamu v doplňku Stream Cinema Community.

Popis řešení a funkcí

V doplňku v současné verzi fungují tři úrovně výběru položek v menu (aplikují se v uvedeném pořadí):
  1. podle nastavení doplňku - to umožňuje uživateli vybrat si, které položky v menu mohou být zobrazeny
  2. 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í
  3. podle okamžitého kontextu - zobrazení položek v menu může být podmíněno aktuálním obsahem položky v seznamu, na které bylo kontextové menu vyvoláno
Pozn. Výběr podle 3. kritéria je zpravidla nastaven tak, že v případě, kdy by položka doplňku Context Menu nějak kolidovala (například by ji dublovala) s položkou kontextového menu nějkého dalšího doplňku, tak je její zbrazení potlačeno. Příkladem ja např. dále uvedená položka Přehrát upoutávku. Stejná položka se nachází v kontextovém menu doplňku Stream Cinema Community (SCC), takže při zobrazení seznamu z SCC se v kontextovém menu položka Přehrát upoutávku z doplňku Context Menu nezobrazí.

Uživatelsky definované položky

Od verze 0.1.4 včetně umožňuje doplněk uživatelsky definovat další položky kontextového menu. V současné chvíli je možné definovat až 4 položky a každou z nich umístit do jedné ze čtyř pozic (viz Dostupné položky a jejich funkce níže). 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é ze čtyř pozic označených jako Horní, 1/4, 3/4 a Dolní) - 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, který se vykoná při aktivaci položky kontexového menu - defaultně prázdný řetězec.
K uvedeným parametrům tři poznámky:
  1. Aby se daná položka v kontextovém menu zobrazila je třeba současně jak Povolení položky, tak vybrat jednu ze čtyř pozic jejího umístění (tedy jinou než defaultně Nedefinovaná)
  2. Položky se, kromě možnosti každou povolit či zakázat, zobrazují nepodmíněně a není možné (v dané chvíli) žádnou podmínku (odvozenou od aktuálního kontextu) pro jejich (ne)zobrazení definovat. Původně jsem si myslel, že to půjde, ale ukázalo se, že je to jen velmi obtížně realizovatelné. Zatím to tedy spadá do oblasti To-Do.
  3. Seznam Kodi built-in příkazů najdete ve Wiki Kodi v List of built-in functions, v kombinaci s příkazem Action() je pak možné použít i Action IDs.
Dostupné položky a jejich funkce
  • Uživatelsky definované položky - pozice označená jako Horní 
  • Automatický výběr streamu SCC pro přehrávání - změní stav Automatický výběr streamu pro přehrávání v nastavení doplňku SCC v sekci Streamy. Funguje jako tzv. "toggle". Zároveň se v kontextovém menu zobrazuje stav do kterého se po jeho aktivaci nastavení přepne (AUTO/RUČNĚ).
  • Automatický výběr streamu SCC pro stahování - změní stav Automatický výběr streamu pro stahování v nastavení doplňku SCC v sekci Streamy. Funguje jako tzv. "toggle". Zároveň se v kontextovém menu zobrazuje stav do kterého se po jeho aktivaci nastavení přepne (AUTO/RUČNĚ).
  • Uživatelsky definované položky - pozice označená jako 1/4
  • Hudba na pozadí prezentace
  • Přehrát upoutávku - spustí přehrávání upoutávky (trailer-u), pokud existuje. V tomto případě se (zatím) v doplňku nekontroluje, zda jsou případně k dispozici doplňky, kterými se upoutávky přehrávají (Youtube, Tubed atp.)
  • Item Info
  • Hledat v SCC - spustí funkci Hledat z doplňku SCC, s volitelnou možností převzít jako parametr hledání text aktuální položky - Pozn. 1
  • Hledat na Webshare - spustí funkci Hledat na Webshare z doplňku SCC, s volitelnou možností převzít jako parametr hledání text aktuální položky - Pozn. 1
  • [NEW] Hledat v SC - spustí funkci Hledat z doplňku SC, s volitelnou možností převzít jako parametr hledání text aktuální položky - Pozn. 3
  • Hledat na Youtube - spustí funkci Hledat z doplňku Youtube, s volitelnou možností převzít jako parametr hledání text aktuální položky - Pozn. 2
  • 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. Pokdu není v daném kontextu tato akce definovaná, neprovede se samozřejmě nic.
  • Uživatelsky definované položky - pozice označená jako 3/4
  • Nastavení doplňku - spustí funkci nastavení doplňku v případě, že aktuálně zobrazený seznam byl nějakým doplňkem vytvořený
  • Nastavení Kodi - spustí funkci nastavení Kodi
  • Nastavení menu - spustí funkci nastavení doplňku Context Menu
  • Uživatelsky definované položky - pozice označená jako Dolní
Poznámka: Tyto položky jsou v aktuální verzi doplňku zablokovány, protože jsou vázány na existenci dalších, dosud nezveřejněných doplňků. Teprve, až budou tyto doplňky zveřejněny, budou funkce uvolněny také.
Pozn. 1: předpokládá instalovaný doplněk Stream Cinema Community
Pozn. 2: předpokládá instalovaný doplněk Youtube
Pozn. 3: předpokládá instalovaný doplněk Stream Cinema CZ a SK
   
Každou z funkcí, kromě těch aktuálně zablokovaných, je možné v nastavení doplňku Context Menu povolit či zakázat. Pokud je zakázána, tak se v kontext menu, i když budou ostatní podmíny k jejímu zobrazení splněny, nezobrazí.
   

Instalace

Doplněk je určen pouze pro Kodi verze 20 (Nexus) a případně vyšší. Důvodem je, že používá funkce, které jsou v Kodi dostupné právě od této verze. Úpravu doplňku pro nižší verze Kodi nepředpokládám.

V současné chvíli je doplněk v Alpha verzi a proto je jeho instalace možná pouze z níže připojeného zip souboru. I případné aktualizace budou tedy přidávány zatím pouze do tohoto příspěvku. Předpokládám, že v nějaké dohledné době doplněk umístím na Github a poté i do repozitáře XBMC-Kodi CZ/SK, a pak už vše bude fungovat standardně dle očekávání a pravidel. Budu o tom v tomto tématu informovat.

Doplněk se v Kodi instaluje do sekce Místní nabídky/Context Menus. Po první instalaci je třeba restartovat Kodi a doporučuji restartovat Kodi i po každé další instalaci. Tento postup je třeba provést s ohledem na funkce Kodi, které jsou v tomto doplňku použity. Konkrétně jde o změny, kdy v nové verzi doplňku dojde ke změně v definici položek kontextového menu v addon.xml. Tato změna se totiž v Kodi projeví až po dalším spuštění Kodi, následující po této instalaci.

Update

Nová verze 0.1.8  (2023-05-17) se změnami:
  • přidáno vyhledávání v SC
  • vyčištění hledaného textu od formátovacích značek SC
Zatím stále ke stažení pouze zde... 8


Přiložené soubory
.zip   script.contextmenu-0.1.8.zip (Velikost: 1,32 MB / Stažení: 16)
 
Citovat
#2
@JiRo: Mám nainstalováno včetně Item Info a samozřejmě tvůj počin sleduji a přemýšlím o daších námětech. Asi se zeptám blbě, ale je nějaká šance spustit Contextmenu při fullscreen videu? Zatím řeším ala contextmenu oklikou přes vyvolání custom...xml souboru, ale to není tak elegantní. Snažím se vymyslet přepínání zvukové stopy během přehrávání (bez použití OSD).

Jinak podařený kousek.
X96max plus 4/32 + CE 20.1 final + skin - upravený Confluence / TV Samsung QE55Q6FNA
X96max plus 4/32 + CE 19.5 + skin - upravený Confluence

AVR Denon 1600H / Dali Spektor 5.1
Win10pro + Kodi19.2 Matrix
NAS Synology 215j 3TB Raid1
Router Turris 1.1
 
Citovat
#3
@jkmh Obávám se, že tohle nejde. Kontextové menu je funkce Kodi, která se váže k aktuálně vybrané položce v nějakém seznamu, resp. container-u, ve kterém je jeho obsah. A taková vazba ve fullscreen neexistuje.

A proč se ti nelíbí to řešení s custom dialog window? Vždyť bys tím mohl dosáhnout stejného efektu. A když si přemapuješ Context Menu tlačítko na DO na jeho volbu, dosáhneš tím skoro stejného výsledku.
 
Citovat
#4
@JiRo: Moje současné řešení je možná jen můj problém, resp. problém omezené skupiny uživatelů. Protože používám jen smartDO Samsung, mám je omezený počet použitelných tlačítek. Kvazi context menu vyvolám tím, že na do stisknu Pauze/play. Tím vyvolám mapovatelná tlačítka (viz fotka). Na OK mám namapovaný kvazi Contextmenu (screeshot). Ovšem tam, když chci scrollovat, musím napřed zhasnout ta mapovatelná tlačítka. Když na to zapomenu, dělá při to sclollování psí kusy. Někdy se stream stopne, někdy se posune a někdy se Kodi i kousne.

Ostatní tlačítka (fotka) mám obsazena a longpress, kterým v ostatních případech vyvolávám "pravé" Context menu, při fullscreen video nefunguje


Přiložené soubory Miniatury
       
X96max plus 4/32 + CE 20.1 final + skin - upravený Confluence / TV Samsung QE55Q6FNA
X96max plus 4/32 + CE 19.5 + skin - upravený Confluence

AVR Denon 1600H / Dali Spektor 5.1
Win10pro + Kodi19.2 Matrix
NAS Synology 215j 3TB Raid1
Router Turris 1.1
 
Citovat
#5
@jkmh No a co když si ta tlačítka pro oba mody toho DO namapuješ pro to custom okno stejně. Takže v rámci toho okna bude jedno, v jakém modu to DO právě je.
 
Citovat
#6
@JiRo: To mě taky napadlo. Namapoval  jsem mu ActivateWindow(OSDAudioSettings), skin.toggledebug i jiné. A nic. Longpress na tlačítku Zpět při fullscreen video nereaguje na nic. Jako kdyby nebylo.
X96max plus 4/32 + CE 20.1 final + skin - upravený Confluence / TV Samsung QE55Q6FNA
X96max plus 4/32 + CE 19.5 + skin - upravený Confluence

AVR Denon 1600H / Dali Spektor 5.1
Win10pro + Kodi19.2 Matrix
NAS Synology 215j 3TB Raid1
Router Turris 1.1
 
Citovat
#7
@jkmh No ale vždyť jsi psal, že to je custom okno, takže musíš mapovat v něm.

Longpress zpět (return) na většině Samsung DO, tedy nejen na tom chytrém, generuje kód clear.
 
Citovat
#8
@Asi jsem to špatně vysvětlil. Všude v Kodi mám namapováno, že Longpress Zpět vyvolá contextmenu, pokud je v tu chvíli k dispozici. A i vyvolání custom okna, v tomto případě Extended Controls (viz screenshot výše), jsem chtěl řešit stejně. Tím pádem to nemůžu namapovat do něj. Proto výše vznikl můj dotaz, zda lze vnutit vyvolání contextmenu při fullscreen videu a z něj bych pak vyvolal mé custom okno, kde mám aktuálně volání přímo ActivateWindow(OSDAudioSettings).

Smířím se s tím, že to nejde ani tak ani tak, takže budu dál řešit změnu jazykové stopy během streamu. Zatím jsem jen u prvního screenshotu, cílem je rovnou ten druhý screenshot. Resp. dostat se jedním klikem až na druhé okno.

Ale to jme se dostali daleko od původního tématu.


Přiložené soubory Miniatury
       
X96max plus 4/32 + CE 20.1 final + skin - upravený Confluence / TV Samsung QE55Q6FNA
X96max plus 4/32 + CE 19.5 + skin - upravený Confluence

AVR Denon 1600H / Dali Spektor 5.1
Win10pro + Kodi19.2 Matrix
NAS Synology 215j 3TB Raid1
Router Turris 1.1
 
Citovat
#9
@JiRo: Kapitolu uzavírám. Pustil jsem se do toho proto, že namapování po příkazu audionextlanguage a reload keymaps (úplně původní záměr) nepřišla očekávaná akce. Po restartu celého boxu už ano. Takže vyřešeno.
X96max plus 4/32 + CE 20.1 final + skin - upravený Confluence / TV Samsung QE55Q6FNA
X96max plus 4/32 + CE 19.5 + skin - upravený Confluence

AVR Denon 1600H / Dali Spektor 5.1
Win10pro + Kodi19.2 Matrix
NAS Synology 215j 3TB Raid1
Router Turris 1.1
 
Citovat
#10
@JiRo: OT - chtěl jsem ti do SZ obšírněji odpovědět, máš to zakázané. Ale přečetl jsem si dodatek a začíná mě to zase zajímat.
X96max plus 4/32 + CE 20.1 final + skin - upravený Confluence / TV Samsung QE55Q6FNA
X96max plus 4/32 + CE 19.5 + skin - upravený Confluence

AVR Denon 1600H / Dali Spektor 5.1
Win10pro + Kodi19.2 Matrix
NAS Synology 215j 3TB Raid1
Router Turris 1.1
 
Citovat
#11
Update Context Menu

Na první stránce tématu je ke stažení nová verze 0.1.3  (2023-04-24) se změnami:
  • opravena chyba, kdy se nezobrazovala možnost přepnutí (AUTO/RUČNĚ) streamů SCC pro widgety, pro které je tento doplněk přímo (myšleno ne přes knihovnu) zdrojem
  • opravena chyba, doplněna chybějící kritéria pro zobrazení nastavení doplňku (jakéhokoliv) pro widgety, pro které je tento doplněk zdrojem
  • přidána položka kontextového menu pro nastavení Kodi
  • další drobné úpravy - texty položek v nastavení, úpravy, zjednodušení a sjednocení kódu některých scriptů
 
Citovat
#12
@JiRo: Label 30120 by bylo dobré upravit. Narazil jsem na stejný text s různou funkcí.


Přiložené soubory Miniatury
   
X96max plus 4/32 + CE 20.1 final + skin - upravený Confluence / TV Samsung QE55Q6FNA
X96max plus 4/32 + CE 19.5 + skin - upravený Confluence

AVR Denon 1600H / Dali Spektor 5.1
Win10pro + Kodi19.2 Matrix
NAS Synology 215j 3TB Raid1
Router Turris 1.1
 
Citovat
#13
@jkmh Opravím v další verzi. Díky.
 
Citovat
#14
Měl bych návrh na přidání funkce do doplňku, i když nevím, jestli je to reálně možné udělat. Šla by do kontextového menu přidat možnost smazat? Používám vzhled Eminence, verze Kodi Nexus na xboxu. Vysvětlím konkrétně o co mi jde:

V Kodi knihovně mám možnost zobrazit filmy podle herců. Perfektní vlastnost, tedy pokud by se dala nějak třídit. Bohužel se do této "kategorie" zařazují úplně všichni herci. Je to tedy takový velký "telefonní" seznam.

Bylo by možné přidat funkci odstranit/smazat u konkrétního herce a tímto si udělat pořádek a mít v této kategorii jen herce, které chci?

Přikládám link na 2 fotografie pro představu.
 
Citovat
#15
@MiLaCzech: V tuto chvíli máš v knihovně všechny herce z obsahu knihovny. Než @JiRo upraví context menu (tedy pokud to půjde), pošli si vybrané herce do oblíbených.
X96max plus 4/32 + CE 20.1 final + skin - upravený Confluence / TV Samsung QE55Q6FNA
X96max plus 4/32 + CE 19.5 + skin - upravený Confluence

AVR Denon 1600H / Dali Spektor 5.1
Win10pro + Kodi19.2 Matrix
NAS Synology 215j 3TB Raid1
Router Turris 1.1
 
Citovat
#16
(29.4.2023, 11:18)MiLaCzech Napsal(a): Šla by do kontextového menu přidat možnost smazat?

Bude to, ale teď jsem pár dní mimo...

Napadlo mě, že bych mohl doplnit funkci uživatelsky definovaných položek menu, kdy by si středně zkušený uživatel (musí mít alespoň základní znalosti z oblasti Kodi příkazů, doplňků a vzhledů) mohl přidat vlastní položku kontext menu. Definice, řekněme maximálně až 8 takových pložek, by byla obsahem nastavení doplňku Context Menu a ukládala by se do jeho nastavení.

Myslíte si, že by to bylo užitečné?

Když o tom dál přemýšlím, tak si nejsem 100% jistý, zda to půjde vymyslet tak dynamicky, jak jsem popsal, ale zkusím to a dám vědět...
 
Citovat
#17
@MiLaCzech Nějak jsem to "smazání podcenil". Myslel jsem si, že to bude brnkačka a vlastě jsem ani nevěděl, zda a jak to v Kodi funguje. Teď jsem zjistil, že já herce smazat se seznamu nemůžu. Respektive, pokud dám na položce herce Delete na dálkovém ovladači, které jinde funguje dobře (např. v nahrávkách PVR & Live TV), tak to sice chvíli něco dělá, ale nakonec se nestane nic (a v logu také žádná zpráva). Jde ono to vůbec?
 
Citovat
#18
@JiRo: Já si myslím, že to do db stáhne všechny herce, kteří jsou uvedeni ve filmech/seriálech. I kdyby se nějak povedlo smáznout konkrétní jméno, nejpozději po refresh knihovny se dotáhne znovu. A určitě je to systémová funkce, takže si myslím, že si do toho nenechá mluvit.
Ale třeba se pletu.
X96max plus 4/32 + CE 20.1 final + skin - upravený Confluence / TV Samsung QE55Q6FNA
X96max plus 4/32 + CE 19.5 + skin - upravený Confluence

AVR Denon 1600H / Dali Spektor 5.1
Win10pro + Kodi19.2 Matrix
NAS Synology 215j 3TB Raid1
Router Turris 1.1
 
Citovat
#19
@jkmh Nepleteš. Dospěl jsem nakonec ke stejnému názoru. Bral jsem to, po námětu @MiLaCzech, jako hotovou věc, a ani jsme o tom moc nepřemýšlel. Předpokládal jsem, že mu to na delete tlačítko funguje, a já jen do Context Menu přidám položku s builtin příkazem Kodi Action(Delete). Ale také jsem nějaké pochybnosti o tom měl a tak jsem si to u známých, kde jsme na návštěvě, a kteří mají také Kodi, chtěl vyzkoušet a zjistil jsme, že to nefunguje. A máš pravdu, i kdyby to smazat šlo, tak další scraper-ování by tam toho herce, pokud by se v nějakém nově přidávaném titulu vyskytoval, přidalo. No, tak jsem si alespoň v hlavě rozmyslil, jak to celé řešení upravím, aby mělo nějakou lepší "štábní kulturu" a zkusím tam přidat nějaké další funkce.
 
Citovat
#20
(29.4.2023, 13:55)jkmh Napsal(a): @MiLaCzech: V tuto chvíli máš v knihovně všechny herce z obsahu knihovny. Než @JiRo upraví context menu (tedy pokud to půjde), pošli si vybrané herce do oblíbených.

Toto je taky možnost. A asi i rychlejší. Děkuji za tip.
 
Citovat
  


Přejít na fórum:


Prochází: 1 host(ů)