• STATISTIQUES
  • Il y a eu un total de 2 membres et 12609 visiteurs sur le site dans les dernières 24h pour un total de 12 611 personnes!


    Membres: 2 608
    Discussions: 3 580
    Messages: 32 820
    Tutoriels: 78
    Téléchargements: 38
    Sites dans l'annuaire: 58


  • ANNUAIRE
  • [FR] Asp-php
    Tutoriaux sur ASP, PHP, ASP.net, XML, SQL, Javascript, HTML, VML - Scripts et ressources pour webmasters - Forums d&#...
    Programmation
    [EN] Hack this site
    Basic: 11, Realistic: 17, Application: 18, Programming: 12, Extbasic: 14, Javascript: 7, Stego: 17
    Challenges
    [EN] Big-Daddy
    Big-Daddy est site internet communautaire avec un effectif diversifié, y compris des artistes, des programmeur...
    Hacking
    [EN] social-engineer
    Site dédié au Social Engineering en général.
    Hacking
    [EN] wechall
    Pour les gens n'étant pas familiers avec les sites de challenges, un site de challenges est un site propos...
    Hacking
    [FR] WeChall
    Audio: 3, Coding: 11, Cracking: 9, Crypto: 18, Encoding: 11, Exploit: 44, Forensics: 1, Fun: 6, HTTP: 6, Image: 8, Java:...
    Challenges
    [FR] Le site du zero
    Découvrez gratuitement la programmation (C, C++, PHP, MySQL, XHTML, CSS...), Linux, le Mapping, la modé...
    Programmation

  • DONATION
  • Si vous avez trouvé ce site internet utile, nous vous invitons à nous faire un don du montant de votre choix via Paypal. Ce don servira à financer notre hébergement.

    MERCI!




Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
[python] Jukebox
25-02-2013, 00h56
Message : #1
InstinctHack Hors ligne
Posting Freak
*



Messages : 1,366
Sujets : 184
Points: 299
Inscription : Dec 2011
[python] Jukebox
Salut,

Encore un script inutile, mais au combien plaisant \o/
dépendance : mplayer

beug, idée, etc, allez-y!

Pour le beug des quotes, je sais... (aussi pour l'insertion de code)

Code PYTHON :

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import os,random,time,sys

class Jukebox():
        def __init__(self,path,number,time,extensions):
                self.files=[]
                self.path=""
                self.number=0
                self.time=0
                self.extensions=[]

                if path[-1]!="/":
                        path+="/"
                if os.path.isdir(path):
                        self.path=path
                        try:
                                self.number=int(number)
                        except:
                                print("time incorrect")
                        else:
                                try:
                                        time=int(time)
                                except:
                                        print("time incorrect")
                                else:
                                        if time>0:
                                                self.time=time
                                                self.extensions=extensions.split(",")
                                                self.loop()
                                        else:
                                                print("c'est une blague ?")
                else:
                        print("path incorrect")

        def loop(self):
                while self.number!=0:
                        self.maj_bdd()
                        self.listen()
                        time.sleep(5)
                        self.number-=1

        def maj_bdd(self):
                self.files=[]
                self.parcours_rep(self.path)

        def parcours_rep(self,rep):
                for element in os.listdir(rep):
                        if os.path.isdir(rep+element):
                                self.parcours_rep(rep+element+"/")
                        elif os.path.isfile(rep+element):
                                if "." in element:
                                        extension=element.split(".")[-1]
                                        if extension in self.extensions:
                                                self.files.append(rep+element)

        def listen(self):
                if len(self.files)>0:
                        os.system('mplayer "'+self.files[random.randint(0,len(self.files)-1)]+'"')
                else:
                        print("Aucun fichier n'as était trouver...")

if len(sys.argv)==5:
        Jukebox(sys.argv[1],sys.argv[2],sys.argv[3],sys.argv[4])
else:
        print("Lancer ce script avec 3 paramètres")
        print("le premier est le path de votre bibliothèque multimédia")
        print("le deuxième le nombre de média lu souhaité (-1 pour infini)")
        print("le troisième le temps entre la lecture de chaque média")
        print("le quatrième les extensions des médias 3 souhaités, séparées par des virgules")
 
Citation :un jour en cours de java j'ai attrapé les seins d'une fille mais elle m'a frappé en disant "c'est privé !!"
j'ai pas compris pourquoi, je croyais qu'on était dans la même classe
+1 (1) -1 (0) Répondre
25-02-2013, 01h37
Message : #2
gruik Hors ligne
gouteur de savon
*



Messages : 757
Sujets : 44
Points: 482
Inscription : Oct 2012
RE: [python] Jukebox
(25-02-2013, 00h56)khaled a écrit : os.system(...)

oh nooees Big Grin

t'aurais moyen de faire moins inutile en utilisant un binding fait pour, m'est avis
pis si t'avais moyen de mettre quelques maigres commentaires ce serait joie
+1 (0) -1 (0) Répondre
25-02-2013, 02h46
Message : #3
InstinctHack Hors ligne
Posting Freak
*



Messages : 1,366
Sujets : 184
Points: 299
Inscription : Dec 2011
RE: [python] Jukebox
J'ai test d'install le truc, mais j'ai un problème de socket...
j'ai quand même commenté mon code :
Code PYTHON :

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import os,random,time,sys

class Jukebox():
        """
                Classe qui représente un jukebox
        """

        def __init__(self,path,number,time,extensions):
                """
                        Function appellée à l'initialisatation de l'objet
                """


                #Initialisation des variables
                #uniquement pour avoir la liste des variables de l'objets et de leur types
                self.files=[]
                self.path=""
                self.number=0
                self.time=0
                self.extensions=[]

                if path[-1]!="/":#si il manque un / à la fin du path passé en paramètre, on lui rajoute
                        path+="/"
                if os.path.isdir(path):#si le path existe
                        self.path=path#on le met de coté
                        #on essaye de transtyper le parametre en nombre
                        try:
                                self.number=int(number)
                        except:#si une erreur survient, c'est que c'était pas un nombre
                                print("time incorrect")
                        else:#sinon si tout s'est bien passé
                                #on fait la même avec time, mais cette fois, on vérifie en plus qu'il est positif, non nul
                                try:
                                        time=int(time)
                                except:
                                        print("time incorrect")
                                else:
                                        #si c'est bon, on met de coté
                                        if time>0:
                                                self.time=time
                                                self.extensions=extensions.split(",")#on split le paramètre extensions avec "," pour obtenir la liste des extensions autorisées
                                                self.loop()
                                        else:
                                                print("c'est une blague ?")#un delai d'attente négatif ? je veut pareil au ciné :>
                else:
                        print("path incorrect")

        """
                Function qui tourne tant qu'elle n'as pas lu le nombre de média demandé
        """

        def loop(self):
                while self.number!=0:#on met != et pas >0 car on as pus lui passer un nombre négatif afin de faire une boucle infinie
                        self.maj_bdd()#on met à jour la liste des médias
                        self.listen()#on en écoute un
                        time.sleep(self.time)#on attend le temps qu'il faut
                        self.number-=1#on décrémente et c'est repartie \o/

        """
                Function dont le but est de être à jour la liste des médias
        """

        def maj_bdd(self):
                self.files=[]#on supprime ce qui existe
                self.parcours_rep(self.path)#on parcours récursivement le path passé en paramètre

        """
                Function qui parcours un repertoire et s'appelle elle-meme si elle tombe sur un répertoire,
                et ajoute tous les fichiers qui correspondent aux extensions passsés en paramètres
        """

        def parcours_rep(self,rep):
                for element in os.listdir(rep):#on parcours les elements du repertoire
                        if os.path.isdir(rep+element):#si c'est un répertoire
                                self.parcours_rep(rep+element+"/")#on refait un tour de petit train
                        elif os.path.isfile(rep+element):#sinon si c'est un fichier
                                if "." in element:#on vérifie qu'un point existe dans le nom du fichier
                                        extension=element.split(".")[-1]#on récupère l'extension du fichier
                                        if extension in self.extensions:#si elle match avec la liste
                                                self.files.append(rep+element)#on l'ajoute avec le reste des médias

        """
                Function qui choisi un média au hasard, et le lit
        """

        def listen(self):
                if len(self.files)>0:#car on ne fait pas un randint(0,0)
                        os.system('mplayer "'+self.files[random.randint(0,len(self.files)-1)]+'"')
                else:
                        print("Aucun fichier n'as était trouver...")

if len(sys.argv)==5:#si il y a 4 arguments
        Jukebox(sys.argv[1],sys.argv[2],sys.argv[3],sys.argv[4]) #créer une instance, et lui passer les arguments
else:
        print("Lancer ce script avec 4 paramètres")
        print("le premier est le path de votre bibliothèque multimédia")
        print("le deuxième le nombre de média lu souhaité (-1 pour infini)")
        print("le troisième le temps entre la lecture de chaque média")
        print("le quatrième les extensions des médias 3 souhaités, séparées par des virgules")



 
Citation :un jour en cours de java j'ai attrapé les seins d'une fille mais elle m'a frappé en disant "c'est privé !!"
j'ai pas compris pourquoi, je croyais qu'on était dans la même classe
+1 (0) -1 (0) Répondre


Sujets apparemment similaires…
Sujet Auteur Réponses Affichages Dernier message
  [Python]Situer mon niveau. InforMods 19 958 10-11-2016, 00h03
Dernier message: ZeR0-@bSoLu
  [PYTHON] un bot IRC basique darcosion 1 190 13-06-2016, 20h40
Dernier message: Yttrium
  [python] ANBU ::: TCP Session Hunter St0rn 2 238 25-02-2016, 18h45
Dernier message: otherflow
  [Python] Une autre façon de gérer les Virtualenv et Packages thxer 2 136 18-01-2016, 12h06
Dernier message: thxer
  [Python] rot script ark 9 442 08-03-2015, 00h37
Dernier message: ark
  [Python] Todo Manager ark 5 307 03-03-2015, 10h55
Dernier message: ark
  [python] Un décorateur pour inventorier les objets b0fh 1 210 04-12-2014, 17h50
Dernier message: thxer
  [python] UPnP Scanner St0rn 2 185 29-10-2014, 14h50
Dernier message: St0rn
  [python] Buffer Overflow : EBP et EIP St0rn 0 146 25-10-2014, 12h58
Dernier message: St0rn
  [Python] QuickHex thxer 9 399 15-08-2014, 20h26
Dernier message: sakiir

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)
N-PN
Accueil | Challenges | Tutoriels | Téléchargements | Forum | Retourner en haut