Toujours connecté :

> Recherche avancée...

Menus

Connexion Inscription

Recherche

Pages: 1 [2] 3   Bas de page
  Répondre  |  Envoyer ce fil  |  Imprimer  
Auteur Fil de discussion: Code Snippet (exemples)  (Lu 4914 fois)
0 Membres et 1 Invité sur ce fil de discussion.

Hors ligne Voir le profil Homme

# alexsolex - Version Pré Alpha

Fait partie du Décor - Messages: 1292

Developpeur

Re : Code Snippet (exemples)

« Répondre #15 le: 10 Novembre 2008 19:04:34 »
Citer en réponse
hum
Il me semble que la 2ieme solution ne fonctionne pas.

Si on a modifié le module importé le script ne prendra pas en compte les modifications même malgré un simple del module.

Pour ma part le résultat le meilleur constaté est comme suit :
Code
(Python):
if sys.modules.has_key("monmodule"):
   del sys.modules["monmodule"]
import monmodule
Journalisée

Si tu sais pas taper, il est encore temps d'apprendre : http://www.lecturel.com/clavier/mots-par-minute.php

"Toute idée que nous avons dans l'esprit devient une réalité dans le domaine de la possibilité...", Emile Couet

En ligne Voir le profil Homme

# Temhil - Développé Couché

Developpeur Python petit scarabée - Fait partie du Décor - Messages: 2420

Fondateur

Re : Code Snippet (exemples)

« Répondre #16 le: 10 Novembre 2008 19:11:03 »
Citer en réponse
Merci, je supprime donc la 2eme solution du post  smiley
Journalisée

En ligne Voir le profil Homme

# Temhil - Développé Couché

Developpeur Python petit scarabée - Fait partie du Décor - Messages: 2420

Fondateur

Re : Code Snippet (exemples)

« Répondre #17 le: 10 Novembre 2008 20:47:30 »
Citer en réponse
Merci a Alexsolex pour ces snippets. Vous retrouverez le message original ICI

 arrows_right Comment importer un un module (fichier .py) dans un sous-répertoire

Il s'agit en fait d'ajouter un chemin pour recherche pour les librairies avec le module sys

Par exemple si vous voulez importer le fichier :
\passion-XBMC\divers\lib\passion.py

Faites :
Code
(Python):
CHEMIN_LIB = "q:\scripts\passion-XBMC\divers\lib\"
import sys
sys.path.append(CHEMIN_LIB)
 
#maitenant python cherchera aussi dans ce chemin pour y trouver les libs que tu demandes et donc :
import passion #fonctionne normalement



 arrows_right Comment importer un module via une variable

Code
(Python):
mon_module_import = "passion"
exec("import %s"%mon_module_import)
a noter que je ne sais plus si exec est une commande python ou si ca dépend d'un module mais je pense que c'est intégré

« Dernière édition: 10 Novembre 2008 20:49:21 par Temhil » Journalisée

Hors ligne Voir le profil WWW Homme

# Frost - Made in Québec

Développeur Python & Skinning Engine - Fait partie du Décor - Messages: 1512

Fondateur

Re : Code Snippet (exemples)

« Répondre #18 le: 13 Novembre 2008 00:58:15 »
Citer en réponse
Voila suite à une demande...

Mettre de la vie dans un texte d'XBMC


Code
(Python):
#Comment mettre de la couleur dans un texte.
#note: les couleurs du themes en fonction peut etre utiliser. \skin\PM3.HD\colors\defaults.xml
#<color name="green">ffe2ff43</color>  qui nous donnent print "[COLOR=green"]MOT QUI VA ETRE EN VERT[/COLOR]"
#remarque qu'au changement de themes on risque de perdre notre couleur qui est déffinie
#Le mieux est de faire print "[COLOR=ffe2ff43]MOT QUI VA ETRE EN VERT[/COLOR]"
 
red_color = "FFFF0000"
text_color = "Rouge"
 
label_formatting = "[COLOR=%s]%s[/COLOR]" % ( red_color, text_color, )
print label_formatting
 
text = "le feu de circulation est rouge, il faut attendre le feu vert."
text = text.replace( "rouge", label_formatting )
 
#pourquoi pas en faire un autre
text = text.replace( "vert", "[COLOR=ffe2ff43]vert[/COLOR]" )
print text
 
 
# Encore plus mettre un mot en gras ou en italic
print "[B]bold[/B] - bold text."
print "[I]italics[/I] - italic text."
 
# Plus sur le label formatting visite le manuel xbmc: http://xbmc.org/wiki/?title=Label_Formatting
 



Plus sur le label formatting visite le manuel xbmc: http://xbmc.org/wiki/?title=Label_Formatting

[edit]
 - ajouter: lien sur les infos du Label_Formatting en dehors du code python zieu
« Dernière édition: 13 Novembre 2008 16:23:41 par FrostBox » Journalisée

Vous ne comprenez rien au jargon de Frost! Voici l'outil ultime pour vous: Dictionnaire de la langue québécoise

Le joual ou cheval québécois
Le joual, c'est le québécois populaire. C'est à l'origine le parler de ceux qui ne sont pas allés à l'école,
une prononciation déformée de la langue des instruits. Ce terme de joual est une prononciation relâchée, faiblement articulée,
de cheval (prononcez le v comme le w de Waterloo). Il est aussi bien fortement teinté d'anglicismes :

Neveurmagne ! est une déformation de never mind : ça ne fait rien !
Un homme en beau joual vert est un homme très en colère.



En ligne Voir le profil Homme

# Temhil - Développé Couché

Developpeur Python petit scarabée - Fait partie du Décor - Messages: 2420

Fondateur

Re : Code Snippet (exemples)

« Répondre #19 le: 13 Novembre 2008 03:11:48 »
Citer en réponse
Super snippet je n'avais aucune idée que XBMC supportait cela, ou vas tu chercher tout cela???  niark niark
Journalisée

En ligne Voir le profil Homme

# Temhil - Développé Couché

Developpeur Python petit scarabée - Fait partie du Décor - Messages: 2420

Fondateur

Re : Code Snippet (exemples)

« Répondre #20 le: 13 Novembre 2008 15:33:05 »
Citer en réponse
Tiens une question, est-ce qu'il y a moyen avec cette méthode de définir la taille du texte?
Ça serait super intéressant car le font10 ou font12, je trouve cela super limite pour définir la taille du texte.

[edit]
Et pour souligner ton texte? Il semble que
Code:
[U]mon texte[\U]
ne fonctionne pas
« Dernière édition: 13 Novembre 2008 15:54:10 par Temhil » Journalisée

Hors ligne Voir le profil WWW Homme

# Frost - Made in Québec

Développeur Python & Skinning Engine - Fait partie du Décor - Messages: 1512

Fondateur

Re : Re : Code Snippet (exemples)

« Répondre #21 le: 13 Novembre 2008 16:42:53 »
Citer en réponse
Tiens une question, est-ce qu'il y a moyen avec cette méthode de définir la taille du texte?
Ça serait super intéressant car le font10 ou font12, je trouve cela super limite pour définir la taille du texte.

Oui tu as eu la même pensé que moi... niark niark mais non pas de support pour [ FONT = 14 ] balbla [ / FONT ].
Faudrait le demander à la team apres leur finalisation de leur trac.
Et pour infos les font sont pas limitées à 10 et 12 exclam
regarde par exemple le skin pm3: balise <fontset id="Default" unicode="true">
les grandeurs par défaut sont indiquées: http://xbmc.svn.sourceforge.net/viewvc/xbmc/trunk/XBMC/skin/Project%20Mayhem%20III/PAL/Font.xml?view=markup&sortby=date

Et de plus si on indique pas de font dans un code par défaut il prend cette référence:
http://xbmc.svn.sourceforge.net/viewvc/xbmc/trunk/XBMC/skin/Project%20Mayhem%20III/PAL/defaults.xml?view=markup&sortby=date
Code
(XML):
<default type="label">
 <posx>80</posx>
 <posy>60</posy>
 <label>-</label>
 <font>font13</font>
 <textcolor>white</textcolor>
</default>
 

Et pour souligner ton texte? Il semble que
Code:
[U]mon texte[\U]
ne fonctionne pas

Tiens tu as trouvé ca ou, car moi j'ai jamais parlé de cela exclam

Citation
ou vas tu chercher tout cela???

 niark niark
Secret de travail, non sérieux:
 - XBMC Online Manual
 - Directement des sources
 - Et bien sur la doc officiel python.org et celle que j'ai mis a jour dernièrement  sweat

[edit]
 j'ai mis des espace a [ FONT = 14 ] balbla [ / FONT ]. car le forum reconnait et l'affiche pas exclam

« Dernière édition: 13 Novembre 2008 16:52:24 par FrostBox » Journalisée

Vous ne comprenez rien au jargon de Frost! Voici l'outil ultime pour vous: Dictionnaire de la langue québécoise

Le joual ou cheval québécois
Le joual, c'est le québécois populaire. C'est à l'origine le parler de ceux qui ne sont pas allés à l'école,
une prononciation déformée de la langue des instruits. Ce terme de joual est une prononciation relâchée, faiblement articulée,
de cheval (prononcez le v comme le w de Waterloo). Il est aussi bien fortement teinté d'anglicismes :

Neveurmagne ! est une déformation de never mind : ça ne fait rien !
Un homme en beau joual vert est un homme très en colère.



Hors ligne Voir le profil Homme

# alexsolex - Version Pré Alpha

Fait partie du Décor - Messages: 1292

Developpeur

Re : Code Snippet (exemples)

« Répondre #22 le: 13 Novembre 2008 18:24:45 »
Citer en réponse
Excellent tout ca. Ca va m'être utile pour le script IPB !!
Merci Frostbox

Petite question subsidiaire, qu'en est t'il du label parsing : http://xbmc.org/wiki/?title=Label_Parsing
Journalisée

Si tu sais pas taper, il est encore temps d'apprendre : http://www.lecturel.com/clavier/mots-par-minute.php

"Toute idée que nous avons dans l'esprit devient une réalité dans le domaine de la possibilité...", Emile Couet

En ligne Voir le profil Homme

# Temhil - Développé Couché

Developpeur Python petit scarabée - Fait partie du Décor - Messages: 2420

Fondateur

Re : Code Snippet (exemples)

« Répondre #23 le: 28 Janvier 2009 19:26:58 »
Citer en réponse
 arrows_right Lancer une application externe dans XBMC

Voici un exemple de script python vous permettant de lancer une application externe (ici Firefox sous Windows) dans XBMC.
Merci a Frost pour ce Snippet.

Vous pouvez copier/coller ce code dans un fichier et l'enregister sous le nom firefox.py par exemple (ou bien integrer ce code a un script/plugin plus complexe). Cela ouvrira Firefox a partir de XBMC.

Code
(Python):
import xbmc
# Execute shell commands and freezes XBMC until shell is closed
cmd = "System.ExecWait"
 
# Execute shell commands
#cmd = "System.Exec"
 
command = '%s("%s")' % ( cmd, "C:\\Program Files\\Mozilla Firefox\\firefox.exe" )
xbmc.executebuiltin( command )
 
 



Journalisée

En ligne Voir le profil Homme

# Temhil - Développé Couché

Developpeur Python petit scarabée - Fait partie du Décor - Messages: 2420

Fondateur

Re : Code Snippet (exemples)

« Répondre #24 le: 13 Février 2009 15:10:49 »
Citer en réponse
 arrows_right Forcer le loglevel depuis un script ou un plugin

Voici un snippet réalisé par Alexsolex vous montrant comment activer le loglevel directement depuis un script:

Code
(Python):
#pour récupérer le log level actuel (utile pour le rétablir si besoin après l'exécution du script)
actualloglevel = xbmc.executehttpapi("GetLogLevel").replace("<li>","")
 
#pour régler le loglevel sur la valeur désirée (ici à 1):
status = xbmc.executehttpapi("SetLogLevel(1)").replace("<li>","")
#si tout c'est bien passé, status contient "OK"

Pour information <li> (list item) est une balise html pour mettre en forme le résultat de retour.
Vous pouvez suivre le fil de discutions d'origine ICI
Journalisée

En ligne Voir le profil Homme

# Temhil - Développé Couché

Developpeur Python petit scarabée - Fait partie du Décor - Messages: 2420

Fondateur

Re : Code Snippet (exemples)

« Répondre #25 le: 13 Février 2009 15:25:31 »
Citer en réponse
 arrows_right Déterminer la plate-forme sur laquelle XBMC tourne

Voici une petite fonction bien pratique réalisée par Frost vous permettant de déterminer sur quel plate-forme XBMC  s'exécute:

Code
(Python):
import xbmc
 
def get_system_platform():
   """ fonction: pour recuperer la platform que xbmc tourne """
   platform = "unknown"
   if xbmc.getCondVisibility( "system.platform.linux" ):
       platform = "linux"
   elif xbmc.getCondVisibility( "system.platform.xbox" ):
       platform = "xbox"
   elif xbmc.getCondVisibility( "system.platform.windows" ):
       platform = "windows"
   elif xbmc.getCondVisibility( "system.platform.osx" ):
       platform = "osx"
   return platform
 



Et voici une autre méthode de tester que vous êtes sur Mac par exemple:
Code
(Python):
if os.environ.get( "OS", "" ).lower() == "os x":
   print "Platform MAC"
 
« Dernière édition: 17 Février 2009 23:23:09 par Temhil » Journalisée

En ligne Voir le profil Homme

# Temhil - Développé Couché

Developpeur Python petit scarabée - Fait partie du Décor - Messages: 2420

Fondateur

Re : Code Snippet (exemples)

« Répondre #26 le: 17 Février 2009 23:55:20 »
Citer en réponse
 arrows_right Utiliser 'special://'  dans un chemin

Les dernières releases de XBMC ont introduit un nouveau format dans le type de chemins, ceux-ci peuvent etre désormais identifies par special:// qui remplace les anciens Q:, P:, T:, U:, Z:
Voici un petit résumé mais je vous conseille de lire les informations tres importante du Blog XBMC de jmarshall sur ce sujet et ce sujet sur le forum officiel:

  • Utilisez special://home/ (anciennement U:\\) si vous avez besoin de lire/écrire dans la partie modifiable de l'installation de XBMC
  • Utilisez special://profile/ (anciennement P:\\) si vous avez besoin de lire/écrire dans le répertoire userdata de l'utilisateur courrant.
  • Utilisez special://temp/ (anciennement Z:\\) si vous avez besoin de lire/écrire a dans un emplacement temporaire.

Si vous en avez réellement besoin vous pouvez aussi:
  • Utilisez special://xbmc/ (anciennement Q:\\) pour lire dans le répertoire même d'installation de XBMC.
  • Utilisez special://masterprofile/ (anciennement T:\\)  pour lire pour dans le répertoire userdata de l'utilisateur maître/principal (master users)

Attention: Utilisez xbmc.translatePath() pour traduire tout chemin (XBMC) vers son réel chemin (au niveau OS) lorsque vous avez besoin lire ou écrire dans le systeme de fichier (dépendant donc de l'OS).



Maintenant voici un snippet sur la facon de couvir tous les cas, car certains version de XBMC (sur certains OS ou trop anciennes) ne supportent pas bien le chemin  'special://'.
Cet exemple est une librairie réalisée par Frost (merci a lui) dans l'installer Passion-XBMC qui couvre je pense tous les cas:
Code
(Python):
# If the dir exists with the requested name, simply return it
 
__all__ = [
   # public names
   "XBMC_IS_HOME",
   "SPECIAL_XBMC_DIR",
   "SPECIAL_HOME_DIR",
   "SPECIAL_TEMP_DIR",
   "SPECIAL_PROFILE_DIR",
   "SPECIAL_MASTERPROFILE_DIR",
   "SPECIAL_XBMC_HOME",
   "SPECIAL_SCRIPT_DATA",
   ]
 
 
import os
import sys
from xbmc import translatePath
 
 
PLATFORM_MAC = os.environ.get( "OS", "" ).lower() == "os x"
 
 
try: scriptname = sys.modules[ "__main__" ].__script__
except: scriptname = os.path.basename( os.getcwd() )
 
 
SPECIAL_XBMC_DIR = translatePath( "special://xbmc/" )
if PLATFORM_MAC or not os.path.isdir( SPECIAL_XBMC_DIR  ): SPECIAL_XBMC_DIR = translatePath( "Q:\\" )
 
SPECIAL_HOME_DIR = translatePath( "special://home/" )
if PLATFORM_MAC or not os.path.isdir( SPECIAL_HOME_DIR  ): SPECIAL_HOME_DIR = translatePath( "U:\\" )
 
SPECIAL_TEMP_DIR = translatePath( "special://temp/" )
if PLATFORM_MAC or not os.path.isdir( SPECIAL_TEMP_DIR  ): SPECIAL_TEMP_DIR = translatePath( "Z:\\" )
 
SPECIAL_PROFILE_DIR = translatePath( "special://profile/" )
if PLATFORM_MAC or not os.path.isdir( SPECIAL_PROFILE_DIR  ): SPECIAL_PROFILE_DIR = translatePath( "P:\\" )
 
SPECIAL_MASTERPROFILE_DIR = translatePath( "special://masterprofile/" )
if PLATFORM_MAC or not os.path.isdir( SPECIAL_MASTERPROFILE_DIR  ): SPECIAL_MASTERPROFILE_DIR = translatePath( "T:\\" )
 
SPECIAL_XBMC_HOME = ( SPECIAL_HOME_DIR, SPECIAL_XBMC_DIR )[ ( os.environ.get( "OS", "xbox" ).lower() == "xbox" ) ]
 
XBMC_IS_HOME = SPECIAL_HOME_DIR == SPECIAL_XBMC_DIR
 
SPECIAL_SCRIPT_DATA = os.path.join( SPECIAL_PROFILE_DIR, "script_data", scriptname )
if not os.path.isdir( SPECIAL_SCRIPT_DATA ): os.makedirs( SPECIAL_SCRIPT_DATA )
 

Vous pouvez constater le cas particulier de XBMC sur Mac, pour une raison obscure a l'heure actuel le test os.path.isdir sur les chemins 'special://' ne fonctionne pas proprement, aussi on contourne ce problème en verifiant si on est sur Mac.
Sinon on vérifie si XBMC reconnaît un chemin 'special://' et si ce n'est pas le cas, on utilise l'ancien format des chemins Q:, P:, T:, U:, Z:


[edit]
Voici un nouveau fil de discutions sur ce sujet : changement des chemins internes à XBMC
« Dernière édition: 23 Février 2009 00:07:53 par Temhil » Journalisée

Hors ligne Voir le profil WWW Homme

# Frost - Made in Québec

Développeur Python & Skinning Engine - Fait partie du Décor - Messages: 1512

Fondateur

Code Snippet (exemples) - Minimiser XBMC

« Répondre #27 le: 21 Février 2009 13:12:28 »
Citer en réponse
 arrows_right Minimiser XBMC

Code
(Python):
import xbmc
 
# Quit Quit XBMC (same as XBMC.Dashboard on Xbox)
# Suspend Suspends (S3 / S1 depending on bios setting) the System (not working on Xbox due to hardware limitations)
# Hibernate Hibernate (S5) the System (not working on Xbox due to hardware limitations)
# Powerdown Powerdown system
# Minimize Minimize XBMC to tools bar
state = { "quit": 0, "suspend": 1, "hibernate": 2, "powerdown": 4, "minimize": 5 }
 
# print current user setting shutdownstate
user_state = xbmc.executehttpapi( "GetGuiSetting(0;system.shutdownstate)" ).replace( "<li>", "" )
print user_state
# force setting shutdownstate to minimize
print xbmc.executehttpapi( "SetGUISetting(0;system.shutdownstate;%i)" % state[ "minimize" ] ).replace( "<li>", "" )
# print forced setting shutdownstate
print xbmc.executehttpapi( "GetGuiSetting(0;system.shutdownstate)" ).replace( "<li>", "" )
 
# XBMC.ShutDown Trigger default Shutdown action defined in System Settings,
# Default Powerdown on Xbox and Quit on Linux / OSX / Windows
xbmc.shutdown()
 
# replace preference user setting shutdown state
print xbmc.executehttpapi( "SetGUISetting(0;system.shutdownstate;%i)" % int( user_state ) ).replace( "<li>", "" )
 

NB: Vous remarquerez qu'à la fin on replace les préférences de l'utilisateur de l'état d'arrêt, simplement pour pas le rendre malheureux.

frost

[edit] message édité par Temhil: ajout du titre au même format que les autres snippets
« Dernière édition: 22 Février 2009 19:13:24 par Temhil » Journalisée

Vous ne comprenez rien au jargon de Frost! Voici l'outil ultime pour vous: Dictionnaire de la langue québécoise

Le joual ou cheval québécois
Le joual, c'est le québécois populaire. C'est à l'origine le parler de ceux qui ne sont pas allés à l'école,
une prononciation déformée de la langue des instruits. Ce terme de joual est une prononciation relâchée, faiblement articulée,
de cheval (prononcez le v comme le w de Waterloo). Il est aussi bien fortement teinté d'anglicismes :

Neveurmagne ! est une déformation de never mind : ça ne fait rien !
Un homme en beau joual vert est un homme très en colère.



Hors ligne Voir le profil WWW Homme

# Frost - Made in Québec

Développeur Python & Skinning Engine - Fait partie du Décor - Messages: 1512

Fondateur

Re : Code Snippet (exemples)

« Répondre #28 le: 22 Juin 2009 02:12:04 »
Citer en réponse
arrows_right Minimiser XBMC (Méthode simple)

Code
(Python):
import xbmc
 
xbmc.executebuiltin( "XBMC.Minimize()" )
 
 
Journalisée

Vous ne comprenez rien au jargon de Frost! Voici l'outil ultime pour vous: Dictionnaire de la langue québécoise

Le joual ou cheval québécois
Le joual, c'est le québécois populaire. C'est à l'origine le parler de ceux qui ne sont pas allés à l'école,
une prononciation déformée de la langue des instruits. Ce terme de joual est une prononciation relâchée, faiblement articulée,
de cheval (prononcez le v comme le w de Waterloo). Il est aussi bien fortement teinté d'anglicismes :

Neveurmagne ! est une déformation de never mind : ça ne fait rien !
Un homme en beau joual vert est un homme très en colère.



En ligne Voir le profil Homme

# Seb - Hello World

Fait partie du Décor - Messages: 2217

Fondateur

Re : Code Snippet (exemples)

« Répondre #29 le: 18 Juillet 2009 16:46:09 »
Citer en réponse
 arrows_right Détruire tous les sous répertoires .svn d'un répertoire donné

Code
(Python):
import os
 
folder = os.getcwd().replace(';','')
 
def del_all_files_dirs(folder):
   for root, dirs, files in os.walk(folder, topdown=False):
       for name in files:
           os.remove(os.path.join(root, name))
       for name in dirs:
           os.rmdir(os.path.join(root, name))
   os.rmdir(folder)
   print '%s deleted'%folder
 
for root, dirs, files in os.walk(folder , topdown=False):
   for name in dirs:
       print 'entering %s ...'%os.path.join(root, name)
       if '.svn' in name:
           del_all_files_dirs(os.path.join(root,name))
 
print 'Well done'
 
Journalisée

"Gouvernements du monde industriel, géants fatigués de chair et d'acier, je viens du cyberespace, nouvelle demeure de l'esprit. Au nom de l'avenir, je vous demande, à  vous qui êtes du passé, de nous laisser tranquilles. Vous n'êtes pas les bienvenus parmi nous."  par John Perry Barlow

Script : Installeur Passion-XBMC     Tutoriel : Les scrapers ou comment associer des informations à vos films
Pages: 1 [2] 3   Haut de page
  Répondre  |  Envoyer ce fil  |  Imprimer  
 
Aller à:  

+ Réponse Rapide