kochka

Membres
  • Compteur de contenus

    56
  • Inscription

  • Dernière visite

Tout ce qui a été posté par kochka

  1. Joyeuuuuuuuuuux Anniversaire !!!! Quoi j'ai deux mois de retard ??? Arrff Ahhh 30 ans Moi je suis pas vraiment préssé des les avoir.... dans 8 mois eek
  2. Et puis j'avais déjà posté quasiment la même chose http://gueux-forum.net/index.php?showtopic=107447 Qui n'a pas eu bcp plus de succès d'ailleurs
  3. kochka

    L`orthographe ......

    Il va falloir retourner en cure => je me suis soigné maintenant ca va
  4. kochka

    L`orthographe ......

    Moi, ce qui me dérange le plus sont les fautes de grammaire, bien plus que les fautes d'orthographe ! Je ne comprend toujours pas comment on peu confondre "c'est", "ces" et "ses" !!! => niveau CM1 Coté conjugaison, il est quand même édifiant de voir que certains confondent l'imparfait, le conditionnel et le participe passé !!! Tout le monde fait plus ou moins de fautes d'orthographe, mais il y a quand même des limites....
  5. Bon je viens de commander un serv dedibox, je vous ferais un retour des que je l'aurais.
  6. Hum qui dit serveur dédié dit accès SSH en root ! Enfin j'espère
  7. Tu peux trouver la doc sans problème sur internet mais il faut la référence exacte du portable. Gericom Hummer semble être une référence générique chez Gericom comme Sony Vaio par exemple ... Tel à ta soeur et demande lui la référence exacte, ca doit etre ecrit sur l'autocollant au dos du portable ou sur sa facture ...
  8. kochka

    [tutos] Ressources Utiles

    Tester la connexion internet avant de lancer un script Votre script utilise la connexion internet, pour parser un site par exemple. Vous pouvez donc conditionner le lancement du script seulement si ce site est dispo. La fonction : def isHostUp(host): """ Test if a host is up """ import socket, time sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) try: sock.connect((host, 80)) sock.close() del sock return True except socket.error, (errcode, errmsg): if errcode == 111: return True else: print 'Internet connection or host is down' return False En pratique : dialog = xbmcgui.DialogProgress()dialog.create('Test de connexion', 'Test de la résolution DNS', 'Veuillez patienter...')hostUp = isHostUp('mon url')dialog.close()if not hostUp: dialog = xbmcgui.Dialog() dialog.ok('Erreur', "La connexion internet n'est pas disponible")else: mainWin = mainWindow() mainWin.doModal() del mainWin
  9. Salut Vous pensez quoi du nouvel album des Red Hot ? Moi je le kiff grave Pour ceux qui voudrais l'ecouter, il est dispo en streaming en intégralité sur le site de MTV ! http://www.mtve.com/article.php?ArticleId=6301 ++
  10. kochka

    [tutos] Ressources Utiles

    Eliminer les caractères html lors d'un parsing Quand vous parsez des données sur le net, elle sont normalement truffées de codes html pour les caractères speciaux comme par exemple & eacute, & qote, etc.. Pour les eliminer, vous pouvez utiliser les dictionnaires de la lib 'htmlentitydefs'. Nous allons donc utiliser le dictionnaire 'entitydefs' de cette lib qui pour un caractère html donne son equivalent iso-8859-1. Nous pouvons appliquer la transformation lors du parsing par expression régulière grace a 're.finditer' et une fonction lambda qui va appliquer la transformation via un 're.sub'. Ca sera plus clair dans l'exemple import urllib, refrom htmlentitydefs import entitydefsmonUrl = 'url de la page a parser'monResultat = []try: htmlContent = urllib.urlopen(monUrl).read() reParse = re.compile('Mon expression régulière de parsing') reClean = re.compile('&([A-Za-z]+?);') clean = lambda match: entitydefs[match.group(1)] for matchLine in reParse.finditer(htmlContent): monResultat.append(reClean.sub(clean, matchLine.group(1)))except IOError: print """ Impossible d'ouvrir la page %s """%colUrl raise Biensur 'matchLine.group(x)' depend du groupe a nettoyer dans l'expression régulière.
  11. Salut L'idée de ce topic est de regrouper des ressources ou des techniques utiles pour les scripts python Xbmc. Ce topic n'a pas pour but d'apprendre a programmer en Python mais de mettre en commun des routines ou experiences sur tous les aspects du dev Python pour Xbmc. Voilou ^_^ Mise en cache de données Si vous dévellopez un script multi-fenêtres et que ces fenêtres effectuent des parsing de données sur internet, le fait de les fermer et de les réouvrir relance des parsing inutiles sur internet. Cela ralenti donc la réactivité du script. L'idée est la de mettre en cache l'objet qui contient les données parsées pour les restitituer a chaque ouverture de fenêtre. On va donc mémoriser l'instance de l'objet dans un système de cache en y associant les arguments passés. Une classe statique oCache va se charger de ce travail. Deux methodes statiques : - oCache.add : Ajoute une instance au cache - oCache.remove : Enlève une instance du cache "oCache.add" renvoi l'instance de l'objet passé en paramètre comme une instanciation classique. Si l'objet est instancié avec les mêmes paramètres, alors il renvoi l'instance stockée en cache. class oCache: """ oCache static class: Objects instances caching based on args Author: kochka (kochka_'at'_gmail.com) """ instanceList = [] def new(oClass, *args, **kwargs): """ Create or retrieve from cache an instance of a class Params : class, args """ for cacheInstance in oCache.instanceList: if cacheInstance[0] == (oClass.__name__, args, kwargs): return cacheInstance[1] # Create a new instance instance = oClass(*args, **kwargs) oCache.instanceList.append([(oClass.__name__, args, kwargs), instance]) return instance new = staticmethod(new) def remove(className, *args, **kwargs): """ Remove an instance from cache Params : class name, args """ for key in range(len(oCache.instanceList)): if oCache.instanceList[key][0] == (className, args, kwargs): del oCache.instanceList[key] break else: raise KeyError, 'No instances corresponding to args' remove = staticmethod(remove) Exemple d'utilisation On imagine que vous avez une classe "dataList" qui parse et stock des données. Votre fennêtre instancie cette classe a chaque ouverture de celle ci. Avec oCache, ca donne : class maFenetre(xbmcgui.Window): def __init__(self, dataParam): xbmcgui.Window.__init__(self) # Creation d'une instance de données ou récupération du cache try: self.dataList = oCache.new(dataList, dataParam) except: print """ Erreur d'instanciation de la classe 'dataList' """ [...]
  12. kochka

    Mycine

    Pour les problèmes de lancement de myCine avec la dernière T3ch, j'ai pas trop poussé les tests mais ca doit être lié à l'encodage des caractères car j'ai réussi a le faire marcher en supprimant des espaces dans le script ! J'ai moi même des problèmes liés a l'encodage des caractères dans mes scripts avec la dernière T3ch... Mais bon il faut mieux attendre les prochaines versions d'Xbmc avant d'essayer de faire d'éventuelles corrections ...
  13. Lo Je l'ai codé avec un éditeur de texte sous Linux donc les retours chariot sont des retours chariot UNIX. Le bloc note ne les aime pas trop Tu peux le lire sans problème avec n'importe quel editeur de texte plus evolué que le bloc note (ex: Ultra Edit). Le Python n'est pas très compliqué si tu a quelques bases en programmation. La première spécificité de Python à intégrer est le fait que les blocs de code sont fait grace a l'indentation. Donc l'aspect d'un script ne change pas bcp quelquesoit le codeur qui l'a fait. N'hesite pas a venir chercher de l'aide içi si tu veux te lancer ! Tcho ++ PS :une doc interressante : http://erci.no-ip.com/origine/divers/python/html/toc.html
  14. kochka

    [script] C Dans L'air V1.1

    Avec la dernière ca sera pas mieux mais plutot pire je pense Je vais quand même regarder mais Python dans les deux dernières n'est pas au mieux de sa forme
  15. kochka

    [script] C Dans L'air V1.1

    T'as quelle version d'Xbmc ? Une des deux dernières T3ch ?
  16. Bonjour, Tout est dans le titre, en esperant que ce script vous sera utile Merci à JaHeLL pour la réalisation du design de ce script ! Cdanslair.zip Update : J'avais pas vu mais les dates avancaient d'un mois C'est corrigé ...
  17. kochka

    Archive De L'ina

    Interressant mais le site est down pour le moment...
  18. kochka

    C Dans L'air (france 5)

    Plop Alex: Pourtant je me suis connecté pleins de fois mais assez tard. Je sais pas si Msn fonctionne correctement car je l'ai installé spécialement, j'utilise pas Msn sinon J'ai pas eu de messages pour me dire que tu avais accepté ni d'alleurs pour me dire qu'il fallait que tu accepte. Ca a ajouté ton contact direct... J'ai essayé aussi au boulot, mais le firewall aime pas Msn JaHell: Merci Chan IRC ? Je vais chercher sur le site car je viens de telecharger le fichier mais c'est un .exe et je suis sous Linux... Je viendrais faire un tour ce soir
  19. Plop J'ai fais un script pour l'émission C dans l'air de France 5. On peut voir les émissions intégralement sur une semaine. Ca marche bien et les vidéos sont de qualité correcte. Il reste que le design à faire J'ai fais quelques tentatives mais c'est moyen, je suis un peu une bille en design Donc si quelqu'un est motivé pour juste faire l'image de fond et une barre de surbrillance pour la liste de videos, ca serait cool L'écran est simple puisqu'il contient que la liste des videos avec des thumbnails pour chaque video Image de fond de 720x576 Une ligne de la liste fera au moins la hauteur d'un thumb qui fait 110x75 Merci
  20. Merci a vous deux Je te trouve bien modeste Alexsolex, ils sont terribles tes scripts En tout cas, je trouve le scripting Xbmc bien sympa, il me faut d'autres idées de scripts Ou si vous avez des projets dans le sac et que je peux donner un coup de main, no souci ++
  21. Bonjour, Tout est dans le titre Télécharger le script Cauet.py V1.0 : http://sebastien.vrillaud.neuf.fr/Cauet.zip
  22. kochka

    Gestion Des Xbmcgui.window

    Merci pour toutes ces infos Le script est terminé, reste plus que le graphisme à faire. J'ai finalement abandonné l'idée de conserver les instances de fenêtres. J'ai écrit à la place une classe statique pour mettre en cache les instances des objets qui font les parsing. Mes freeze étranges venait du fait que j'essayais de passer des params au constructeur de mes classes qui héritent de xbmcgui.Window sans nommer les paramètres. Je comprend pas pourquoi ca plante la console d'ailleurs ??? Je te PM pour MSN, ca sera plus pratique si j'ai des questions metaphysiques sur le fonctionnement de l'API ou sur Python Thx ++
  23. kochka

    Gestion Des Xbmcgui.window

    Merci de ta reponse Je sais pas si il n'y a que l'identification des fenêtre qui est buggé J'ai freezé je sais pas combien de fois la Xbox avec des trucs qui marche parfaitement sur mon PC... J'ai vu que tu avais commencé une ébauche de gestion des fenêtres dans "myCine", tu comptais t'y prendre comment ? J'ai pas le temps maintenant mais je vais faire des tests des possibilités ce We. Tcho ++
  24. Plop tout le monde Comment fonctionne la récupération des fenêtres non détruites ? Le fait que cette possibilité se trouve dans le constructeur d'une xbmcgui.window me laisse un peu perplexe. Voila ce que je cherche a faire : Pour l'instant j'ai 3 classes : - videoList : Classe qui parse des pages web et met a dispo des methodes pour récupérer les infos necessaires - mainWindow(xbmcgui.Window) : Page d'acceuil (fenêtre mère) - videoWindow(xbmcgui.Window) : Liste des videos dispos (fenêtre fille) 1 - mainWindow va donc créer des instances de videoWindow pour chaque menu disponible dans la page d'acceuil 2 - Chaque instance de videoWindow crée une instance de videoList correspondant à la page selectionnée. La re-instanciation des videoWindow a chaque ouverture de menu n'est pas géniale puisqu'elle déclenche des parsings de page web. J'ai cru comprendre dans la doc de l'api que je pouvais ouvrir une page non détruite en passant des winId. Je me dis donc que c'est cool et que le vais stocker la liste des fenêtres filles ouvertes dans mainWindow. Seulement je comprend pas très bien la suite... Je dois faire un truc du genre : ? class videoWindow(xbmcgui.Window): """ Video Window Class inheritate Xbmc window """ def __init__(self, dicId, winId=None): xbmcgui.Window.__init__(self, winId) if not winId: ... Code d'init de ma fenêtre ... self.videoList = videoList(dicId) ... Code d'init de ma fenêtre ... ou je pourrais aussi très bien stocker mes instances de videoWindow dans mainWindow... Bon j'ai pas tester car j'ai pas de Xbox sous la main mais si quelqu'un a des eclaircissement, je suis preneur
  25. kochka

    Script Video Cauet

    Merci Alexsolex Ca avance doucement, mais surement et j'aurais certainement des questions a la con a te poser Allez, une chtit pour la forme : A quoi correspond la proprété "xbmcgui.Emulating" ? Car sauf si je suis aveugle, je la trouve pas dans la doc. C'est déprécié ? Thx ++ EDIT : C'est bon, je viens de capter en allant chercher les py des fichiers d'émulation sur PC