Closed TmpName closed 7 years ago
Pour optimisé je suis d'accord certain addon sont plus rapide pour cree des repertoire et afficher des pages Les fonctions les plus utilisé il faut les mettre dans un fichier leger comme log ou getlanguage,etc...
Ex: La fonction gethoster de hosterhandler pourrait etre mise dans /gui/ hoster
J'aime bien ceux qu'a fait exodus fichier control.py
lang = xbmcaddon.Addon().getLocalizedString
puis il apelle control.lang(32065)
Faudrais aussi virer le isDharma c'est la version 10 ça date lol
Ha oui, pour la fonction gethoster de hosterhandler, j'ai meme pas vu a quoi ca servait ^^. Il y a plein de fichiers qui importe cette fonction, mais qui s'en servent jamais.
Pour le code utilise par exodus, je viens de faire des tests, c'est plus propre, mais dans tout les cas l'integralitee des fonction sont appelle (meme si tu fais juste control.lang(32065), ca execute aussi dataPath = xbmc.translatePath(addonInfo('profile')).decode('utf-8')), donc pas plus leger que la methode Vstream. Et le gros prb c'est que si on fait pareil, ca va rendre les version imcompatible, pr le moment je prefere commencer leger ^^.
Donc pour eviter de foutre le bordel, je propose de mettre les fonctions legeres dans le fichier util (c'est un fichier bateau), en mettant de nouveau nom. En disant fonctions legeres, pour le moment je pense a celles qui n'utilisent aucun import de Vstream, c'est a dire pas d'utilisation de cConfig ou cHosterHandler.
Ca ne perturbera pas le code actuel, et petit a petit on pourra nettoyer l'ancien code sans tout planter.
Vendu
La ou les fonction create ,update dialog aussi pour les sites etc...
Bon J'ai commence a refaire les fonctions dialog pour la progressBar mais je sais pas trop quelle orientation prendre. Oblige de remettre dans une classe a cause de COUNT, si on utilise une classe du coup on peut aussi y mettre oDialog.
Donc ca donnerait dialog = VSProgessBar() dialog.updateDialog(50) dialog.finishDialog()
Pas teste si la difference se voit en performance.
Doit bien avoir un moyen de le faire sans class edit; j'ai réussi en ajoutant count dans le fichier site je cherche une autre methode
c'est bon et j'ai l'impression plus rapide quand il y a que 10ep on n'a pas le tps de lire
edit: le probleme c'est qu'on peut pas modif les fichiers site avant la prochaine version
Nope, mais pas genant, on teste now, et ca passera en MAJ auto apres la grosse MAJ. La je suis reparti sur mon interpreteur JS a cause de openload, leur code chnage tout les jours, pas trouve mieux que d'interpreter le code JS.
Je parlé de si on remplace cConfig par ulil ça fonctionnera pas chez les users
edit jdownloaderHandler.py ne sert pas en faite ?
Nope, plus maintenant je pense, encore un reliquat d'une epoque lointaine ^^.
Ca fonctionnera pas chez les users maintenant, mais apres la MAJ mensuelle, ils auront le bon fichier utils, et on pourra commencer a mettre a jour les fichiers sites, faut juste etre sur que cela va fonctionner, car sinon oblige d'attendre 1 mois de plus pour corriger.
Et en faite j'ai remarqué le fichier logger.py qui aurait pu faire le jobs pour log pareil je ne sais pas s'il est utilisé
Mwé, je sais pas si c'est utile, c'est pas pour ce que ca coute, suis pas sur que ce soit utile les 3 niveau de log ? Moi je m'en sert jamais. Deja ce fichier je le fairais sauter, mais pas sur que ce soit utile de recuperer le systeme de log, celui en place me suffit. Peut etre supprimer quelques affichages ? Mettre une option debug dans les parametres de vstrzeam ?
c'est l'ancien systeme qui servait a affiché quelque chose dans le log si besoin
Depuis le nouveaux systeme d'import les message d'erreur sont un peux limiter j'ai refait le code vite fait pour au moin avoir une petite indication d'ou vient l'erreur la si tu oublie juste un ' vStream te dit rien.J'ai penser au mode debug activer ou pas dans les parametres de vStream mais ont vas juste gagner quelque ligne d’écriture je pense pas que ce soit le plus gourmand.Perso la latente des menus est arrive avec Kodi 17.
Ha oui exact, c'est possible, ca rame depuis la V 17 chez moi. Moi je laisserais comme ca pr les debug et je ferais sauter le fichier logger.py. Par contre j'allegerais les ligne de debug quand par exemple ca liste les fichiers (soit desactiver, sa s'affiche que en mode debug kodi), soit moins de ligne.
Quand vous parlez de Latence des menus > delai d'affichage d'une page ?
Yep mais plus le temps de la barre de progression, meme l'affichage de la page home, j'ai l'impression quelle est plus longue, apres j'ai rien chronometre.
Avec leur nouveau skin j'ai l'impression qu'il charge leur ecrand noir puis la popup de chargement vStream puis coupe leur fenêtre de Load.Avec un delai entre tous ça ben ça fait un petit temps. Mais y a pas a rougir avec ceux que mange vStream comparer au addon au 3 source c'est plutôt pas mal.Faut pas oublier que ce code date de la version 12.
J'ai même reussis le thread sur la recherche visuelle mais j'ai pas trouver ça ouff donc pas utiliser.
il y a possibilité de print la version de vstream quand on appelle VSlog dans util vous en pensez quoi ? et par la suite de remplacer les cConfig.log par util.VSlog
Ben je sais pas, si c'est en memoire, c'est pas genant, mais il y a des chance pour que kodi aille chercher l'info sur un fichier, du coup chute de performance. Pr les logs, au pire on peut le rajouter en log si la personne passe par les outils de Vstream.
Sinon je me tate pour remettre les 3 fonctions createDialog/updateDialog/finishDialog dans une classe juste pour ces 3. Il n'y a pas d'init, donc ca devrait pas rallentir, le truc c'est que c'est utile uniquement si ces fonctions servent toujours ensembles, eg est ce qu'on peut avoir besoin de finishDialog sans utiliser les 2 autres ?
Les 3 fonctions fonctionne sans class ça va changer quoi d'en remettre une ?
Absolument rien, juste au niveau dev, ca fait "package", et que tu peux te passer de dialog du coup (et que COUNT se retrouve uniquement dedans).
class = createDialog("site")
class.updateDialog(12)
class.finishDialog()
Mais c'est purement esthetique, une fois le fichier charge en memoire, classe ou 3 fonctions, ca m'etonnerait que ca chnage quelque chose.
Pour la version dans le log je pensé a la print une seule fois au demarrage mais pas trouvé comment faire Simplement dans default py vu que des qu'on retourne sur home ça reprinté
Pareil que chez @LordVenom , je sais pas pkoi ca marche chez toi. Le pr b viens de DIALOG2, qui empeche la creation d'autre dialog si il y en a deja un d'ouvert, il ya plusieurs moyen de contourner le truc, moi j'ai teste (et je pense que c'est le plus simple)
def createDialog(sSite):
if xbmcgui.Window(10101).getProperty('search') != 'true':
oDialog = xbmcgui.DialogProgress()
oDialog.create(sSite,None)
return oDialog
else:
return False
def updateDialog(dialog,total):
if not dialog:
return
global COUNT
COUNT += 1
iPercent = int(float(COUNT * 100) / total)
dialog.update(iPercent, 'Chargement: '+str(COUNT)+'/'+str(total))
def finishDialog(dialog):
if not dialog:
return
dialog.close()
del dialog
En fait si il ya une recherche globlale en route, ca bloque des l'initialisation en retournant false, et comme tu utilises cette valeur pr les fonction suivantes, ca bloque tout le reste. Mais du coup on ne pourra utiliser ces fonctions que dans 1 mois, a la prochaine MAJ.
Mais perso, je trouve ca plus fiable et plus sur que la methode originelle. De restester xbmcgui.Window(10101).getProperty a chaque fois, alors que le smilblick peut avoir ete ferme ou bloque.
ça fonctionne chez moi recherche global et site directement
En fait c'est pas vraiement que ca plante. Je vais dans "Recherche" "Recherche 1 : film", je tape un film. Ca lance la recherche globale, ok sur 75% puis quad j'arrive sur la source streamingk, ca vire la barre de progression, mais ca fonctionne encore. Puis y a la seconde barre de progression, et l'affichage est ok.
J'ai test ta modif ça regle le soucis
Mais du coup ca repousse d'un mois la possibilitee de s'en servir, cette fois faut etre sur que ca tourne.
en faite fonctionne mais ça vire les résultats ou on utilise util.updatedialog le seul moyen if xbmcgui.Window(10101).getProperty('search') != 'true': pour chaque
edit modif util et defaut pour utilisé util https://github.com/johngf/divers/tree/master/kodi
util :ajout de updatedialogsearch,createDialog de config defaut : juste remplacer config par util
mais encore un bug le dialog affiche en haut le nom du premier site au lieu de rester sur le nom vstream résolu en remplaçant cConfig() par util dans les sites
Ya vraiment un gros changement parseque la c'est lourd a modif.??
J'ai pas compris le "ça vire les résultats ou on utilise util.updatedialog" ?
Ta modif @TmpName lors d'une recherche globale vire le resultat du site si dans le site on utilse util dialog a place de config dialog Mais sur le lien que j'ai posté c'est ok
Si le site utilise config ça fonctionne comme meme sauf le nom vstream du dialog est remplacé par le nom du premier site ou la recherche démarre
Si le site utilise util le nom du dialog recherche reste vstream
apres @LordVenom a t'as question c'est difficile a dire j'ai pas mesuré mais c'est clair que c'est moin lourd au final apres la deco des titres joue aussi sur la vitesse
Oui, je confirme, dans tout les cas appeller Config() est tres lourd, alors dans une boucle ... Si on appelle les fonctions a @johngf, il y a moins de calcul et pas d'acces disque du tout (enfin suis pas un pro du python mais je pense que le fichier util est importe a 100% au debut donc plus jamais apres durant les appel aux fonctions.
Dans mon code ca deconne a if dialog.iscanceled(): vu que dialog = False. Pr le faire marcher suffit de mettre if dialog and dialog.iscanceled() mais le probleme c'est qu'il n'y a plus moyen d'interrompre le dialogue.
Apres non ce n'est pas lourd a modifier, tu peux faire co-habiter les 2 versions, et nous on pourra l activer via les MA auto, et revenir en arriere si ca fait tout deconner de la meme maniere.
Il y aurait moyen d'acceler en faisant cConfig2 = cConfig() au debut du fichier et n'utiliser que cConfig2 mais je trouve quand meme les fonction light plus propres.
xD je suis largué
ben je vous l'aisse faire commenter bien le code que je face pas de modif derrière vous.
Pas de soucis, c'est juste un plus. Soit ca marche et on s'en servira, soit ca plante, on remet le fichier site comme avant et on attendra la prochaine MAJ. Aucune influence directe sur le coeur de Vstream (c'etait le but originel)
Bon j'avais deja aborde le sujet, mais la j'use et abuse de ce fichier et je trouve que ca devient inquietant. Par exemple, si je veut juste un dialogue oui/non, je fais cConfig().yesno("le texte"), le probleme c'est que si on regarde la fonction a cause du init ca fait en meme temps beacoup de calcul et de chargement de fichier pas forcement utile.
Le travail effectue par la machine juste pour un cConfig().log'('texte') est enorme juste pour afficher un texte en debug.
Je propose de la laisser telle quelle pour la compatibilitee, mais de commencer dans le meme fichier une nouvelle classe, mais qui tournerait sans le init()
ou meme mieux hors d'une classe, juste des fonctions en vrac, eg la fonction log() n'a vraiment pas besoin d'etre dans une classe.