• 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
Rady pre nových tvorcov doplnkov
#1
Information 
Zdravím vás,

Tieto rady + diskusia je určená hlavne vám, ktorí chcete vytvoriť doplnok, avšak nemáte k tomu odvahu/znalosti, spíšem vám sem niekoľko mojich postrehov čo robiť, prípadne čomu sa vyvarovať. Tieto rady by som určite ocenil v minulosti a začal by som s tvorbou už skôr

Ešte pred začatím vášho nápadu je fajn kuknúť sa do repozitára či váš nápad nedostal aj niekto iný...

Ako začať...
Nuž, možno do začiatku by bolo dobré pochopiť základy programovania v tomto prípade základy programovania v jazyku python(konštrukcia kódu, podmienky, cykly funkcie) pokiaľ toto si myslíte že toto ovládate tak je na čase premyslieť to ako to bude fungovať

Vývojové prostredie:
Možností je skutočne veľa, záleží od vašej náročnosti, najčastejšie sa využívajú tieto
  • PyCharm
  • VS Code
  • Idle
Niektorým používateľom stačí aj poznámkový blok to ale môj prípad nie je Big Grin
Veľmi sa mi odporučili nástroje od JetBrains, osobne využívam PyCharm, nakoľko sa v ňom veľmi ľahko doinštalovávajú knižnice (teda python moduly) bez nutnosti použiť príkazový riadok. Zároveň poskytuje aj veľké množstvo funkcii na refactoring kódu. Úplne mi postačuje verzia community, ktorá je zdarma

Zdroje dát:
Táto téma bola pre mňa kľučová spočiatku keď som nevedel ako to v kodi doplnkoch funguje...
  • API (pokiaľ je táto možnosť využite ju :) uľahčí vám to prácu a doplnok môže fungovať dlhšie...)
    • Najľahšie sa asi pracuje z REST API, kde spracovávate json formát do kodi doplnku, prípadne je veľmi dobré aj XML...
  • Scrapovanie
    • Tento spôsob označujú mnohí za konzervatívne získavanie dát, nakoľko niektorí povedzme citliví majitelia webov ho považujú za protiprávny a môže sa vám stať že sa vám budú vyhrážať žalobou, preto si rozmyslite či chcete scrapovať
    • Princip scrapovania je taký že na pozadí načítate nejakú webovú stránku a vybrané časti tej stránky vhodíte ako obsah doplnku
Spätná kompatibilita:
Pri tvorbe doplnku je fajn myslieť aj na "dosah publika", myslím že tu tiež nebude každý súhlasiť, avšak nie každý máme tak fajnoví Hardvér aby sme na našej mašinke rozbehali najnovšiu verziu KODI. Avšak je dôležité myslieť aj na súčasnosť a budúcnosť... Takže by sme dnes nemali vytvárať doplnky pre verzie staršie ako 19.4 (Matrix), aj keď táto verzia je už dosť stará... Ale knižnica pre túto verziu KODI vcelku dobre podporuje aktuálnu verziu, teda až na výnimky.

Pri tvorbe doplnku platia tieto pravidlá:
  • doplnok by mal byť uložený v súbore ktorý začína plugin.xyz.nazov (za xyz dosadíme video, audio, alebo iný zdroj obsahu...)
  • doplnok by mal mať čo najviac znovupoužitelných častí (teda ak píšeme niečo tak to napíšeme unverzálnejšie, tak aby sa to vo veľkej miere neopakovalo) tento bod nám pomôže k sprehľadneniu kódu
  • nepoužívame regulárne výrazy dokiaľ to nie je nutné (tento starý spôsob vytvárania doplnkov je síce k operačnému systému prijateľný, avšak veľmi to zneprehľadní kód), týmto krokom aj myslíme na budúce opravy/zmeny alebo dodatky
  • etické pravidlá
    • Nevytvárame doplnky z warez obsahom :)
  • nepoužívame selenium pokiaľ to nie je nutné
    • Selenium v doplnkoch slúži najmä na "obídenie JavaScriptu" avšak inštálácia selenia môže byť pre niektorých používateľov veľmi zložitá. Samozrejme nie je to zložité len pre používateľa nesprávnym použítím selenia aj mrháme systémovými zdrojmi, ktoré sú nám pridelené
Odporúčané knižice:
  • beautifulsoup4 - užitočný nástroj pre scrapovanie webu
  • urllib3 - knižnica určená pre odoslanie požiadavky na webové stránky (podobné requests)
Určite by sa tých knižníc našlo viac... Tieto aspoň ja najčastejšie využívam

!!! Dôležité !!!
Ak použijete nejakú externú knižnicu nezabudnite ju uviesť do addon.xml, nakoľko vám ju nezoberie potom kodi a inštalácia skončí chybou. Samozrejme v niektorých verziách KODI sa musela aj uviesť verzia, táto verzia je minimálna verzia pre danú knižnicu
Kód:
<import addon="script.module.urllib3" version="1.26.13"/>

Zoznam podporovaných knižnic pre KODI (omega) [Knižnice začínajú kľúvovým slovom script.pokračovanie :) ]:
https://mirrors.kodi.tv/addons/omega/


Použitie gitu:
git je jeden z nástrojov ktorý vám umožní svoj kód udržiavať vo verziách, ktoré môžete potom ľahko editovať, v rámci gitu je dobré projekt rozdeliť do rôznych vetiev (branches), nakoľko týmto krokom vieme efektívne vyfiltrovať konkretne verzie doplnku pre konkretne verzie KODI, samozrejme má to aj kopu iných vylepšení, zverejnením kódu na git vám môže doplnok udržiavať aj niekto po vás :).
Samozrejme ak niečo skazíte tak môžte sa efektívne vracať naspäť do predcházajúcich stavov

Príklad doplnku:
No pre začiatočníka je dobré ak si všetko toto čo som napísal vyskúša, pridávam vám sem teda jeden z príkladov od jedného tvorcu na githube, bohužiaľ je to už kus staršie, novší príklad sa mi nepodarilo nájsť avšak malo by to fungovať aj v dnešných verziách
https://github.com/romanvm/plugin.video....e/releases

Logy:
Určite sa vám stane že vám to spočiatku nepojde, a urobíte nejakú drobnú hlúposť, nenechajte sa však odradiť toto viete napraviť alebo sa viete k riešeniu aspoň priblížiť tak, že použijete logy, kde vám +/- systém vypíše čo robíte zle, teda pokiaľ sa nejedná o logickú chybu v tom prípade využívam pomocné výpisy zavolaním xbmc.log("hláška")

Teplé slová na záver:
Dúfam že som týmto článkom niekoho namotivoval k tvorbe, nakoľko takýto článok som tu na fóre ešte v roku 2019 nenašiel a teda kým som sa k tomu dostal tak to nejakú dobu trvalo ...

15  Autor doplnkov Kukaj.sk, Televízia LUX, Televízie NOE a tvpovazie.sk
Buďte k sebe dobrý a šírte dobro, ale zvážte aké informácie komu poskytnete
 
Citovat
#2
@JanoHD: Chápu snahu o osvětu a určitě takovou aktivitu vítám. Nicméně mám pár výhrad:
  • Téma by mělo být od ostatních témat fóra nějak výrazně odděleno. Původní myšlenka byla, mít pro to na fóru samostatné subfórum, které by se pak mělo rozdělit na několik dílčích témat, nebo možná na ještě další úroveň subfór, a teprve v něm by mohla být konkrétní dílčí témata.
  • Začal jsi poměrně zeširoka, ale zároveň víceméně někde od prostředka. Vůbec nerespektuješ taxonomii Kodi. Doplněk rozhodně není vždy a jen Plugin, jak se z tvého textu čtenář dozví. Tady by asi i tobě prospělo nastudovat si Kodi Wiki, kde je tohle poměrně dobře vysvětleno a minimálně z něj v úvodu vyjít.
  • Začít tím, že budeš psát o vývojových prostředích, je zbytečné matení. Ten, kdo Python zná a používá tohle ví, začátečníci, kterým je dle obsahu a detailů v něm text určenyý, si s tím v první fázi vůbec neporadí.
  • Některá, vlastně většina tvrzení, vychází z nějakých tebou vybraných předpokladů a konkrétních zkušeností a rozhdoně obecně neplatí. Abych byl konkrétní, musel bych tvůj text rozebrat řádek po řádku a vyvsvětlit to, ale to bych tady nerad dělal.
 
Citovat
  


Přejít na fórum:


Prochází: 1 host(ů)