IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Stocker les images de "Windows à la Une" [PowerShell]


Sujet :

Scripts/Batch

  1. #1
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 378
    Points : 19 055
    Points
    19 055
    Par défaut Stocker les images de "Windows à la Une"
    Salut à tous.

    J'ai cherché et je n'ai pas trouvé le lieu où il est consacré un forum à PowerShell. Désolé si je me suis trompé de forum.

    J'ai décidé de me mettre enfin à Power Shell.
    Pour ce premier programme, je désire stocker les images de "Windows à la Une".
    Je reçois une image, comme tout le monde, chaque jour et je la stocke.

    Au lieu de le faire manuellement jusqu'à présent, j'ai fait un programme PowerShell qui le fait à ma place.
    Le but est d'extraire uniquement les images dont la dimension est 1920x1080.
    Voici ce que j'ai fait :
    Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    $CHEMIN="C:\Users\Patron\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets"
    $DIRPATH="C:\Users\Patron\OneDrive\Bureau\Windows_a_la_Une"
     
    Write-host "Extraction Images Windows à la Une"
    Write-host "=================================="
    Write-host ""
     
    if (Test-Path -Path $DIRPATH)
    {
    	Remove-Item -Path "$DirPath" -Include *.* -Recurse
    }
    else
    {
    	New-Item    -Path "$DIRPATH" -ItemType directory
    }
     
    $Liste = Get-Childitem "$CHEMIN"
     
    foreach ($Ligne in $Liste)
    {
    	Add-Type -AssemblyName System.Drawing
     
    	$Image = [System.Drawing.Image]::FromFile("$CHEMIN\$Ligne")
     
    	if (($Image.Width -eq 1920) -and ($Image.Height -eq 1080))
    	{
    		Copy-Item "$CHEMIN\$Ligne" "$DIRPATH"
    	}
    }
     
    Get-Childitem "$DIRPATH" | ForEach-Object {$_ | Rename-Item -NewName "$_.jpg"}
     
    Write-host ""
    pause
    exit
    Je n'ai pas trouvé le moyen de stocker mes images en les numérotant.
    Le nom est Img suivit d'un numéro commençant à 100.
    Comme il existe déjà des images portant ces numéros, je ne désire pas les écraser.
    Si quelqu'un peut me donner la solution, cela me serait très profitable.

    Manque-t-il des choses dans ce programme PowerShell ?
    N'y-a-t-il pas une entête comme dans l'invite de commande : "@echo off" ?

    Cordialement.
    Artemus24.
    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  2. #2
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 183
    Points : 5 754
    Points
    5 754
    Par défaut
    Sans trop dénaturer le code voici quelques propositions de modifications minimes, certaines sont surement des préférences personnelles.

    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    $CHEMIN = "C:\Users\Patron\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets"
    $DIRPATH = "C:\Users\Patron\OneDrive\Bureau\Windows_a_la_Une"
     
    Write-host "Extraction Images Windows à la Une"
    Write-host "=================================="
    Write-host ""
     
    if (Test-Path -Path $DIRPATH -PathType Container)
    {
    	Remove-Item -Path "${DIRPATH}\*.*" -Recurse -Force
    }
    else
    {
    	New-Item -Path $DIRPATH -ItemType directory
    }
     
    $Liste = ChildItem -Path $CHEMIN -File
     
    Add-Type -AssemblyName System.Drawing
     
    foreach ($Ligne in $Liste)
    {
    	$Image = [System.Drawing.Image]::FromFile($Ligne.FullName)
     
    	if ($Image.Width -eq 1920 -and $Image.Height -eq 1080)
    	{
    		Copy-Item -LiteralPath $Ligne.FullName -Destination "${DIRPATH}\$($Ligne.BaseName).jpg"
    	}
    }
     
    Write-host "`nAppuyer sur Entrée pour terminer"
    $null = Read-Host
    Exit

    En voyant ton code je ne vois pas comment il pourrait y avoir un doublon de nom de fichier puisque tu purge le dossier cible et que la source se cantonne à un seul dossier.
    Sinon je te conseillerait d'ajouter la date dans le nom des fichiers (car joué 1 fois par jours).

    Nous pouvons discuter des modifications si besoin

    PS : Script non testé, utiliser -WhatIf si besoin

  3. #3
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 378
    Points : 19 055
    Points
    19 055
    Par défaut
    Salut ericlm128.

    Merci pour ton intervention.
    Tes modifications sont bien ce que je recherchais, une normalisation.

    Peux-tu me donner l'instruction pour supprimer un répertoire avec son contenu ?
    J'ai essayé par un remove-item mais il me provoque une erreur.
    Soit c'est "un point de jonction NTFS" ou encore, "l'accès au fichier cloud est refusé".
    Je n'ai pas bien compris ces erreurs.

    Citation Envoyé par ericlm128
    En voyant ton code je ne vois pas comment il pourrait y avoir un doublon de nom de fichier puisque tu purge le dossier cible et que la source se cantonne à un seul dossier.
    Mon programme n'est pas terminé car ce que je fais à la main, est d'enregistrer l'image en lui donnant le nom "Img" + un numéro séquentiel.
    Or dans un autre répertoire, j'ai déjà disons "Img100", ...,"Img127". La prochaine image que je vais y stocker sera la "Img128".

    Comment trouver le prochain nom de l'image dans ce répertoire ?

    Cordialement.
    Artemus24.
    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  4. #4
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 183
    Points : 5 754
    Points
    5 754
    Par défaut
    Pour la suppression d'un dossier :
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    Remove-Item -LiteralPath "C:\dossier\sousdossier" -Recurse -Force -Confirm:$False
    Ou ceci pour utiliser le FrameWork :
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    [System.IO.Directory]::Delete("C:\dossier\sousdossier", $true)



    l'accès au fichier cloud est refusé
    Qu'est ce donc ? Un dossier sur un espace synchronisé à un cloud ?

  5. #5
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 378
    Points : 19 055
    Points
    19 055
    Par défaut
    Salut ericlm128.

    C'est pourtant la même commande (Remove-Item) que j'ai utilisé pour supprimer un répertoire.
    Voici ce que j'obtiens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Remove-Item : L'accès au fichier cloud est refusé
    Au caractère C:\Users\Patron\OneDrive\Bureau\Toto.ps1:1 : 1
    + Remove-Item -LiteralPath "C:\Users\Patron\OneDrive\Bureau\Windows_a_l ...
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : NotSpecified: (:) [Remove-Item], Win32Exception
        + FullyQualifiedErrorId : System.ComponentModel.Win32Exception,Microsoft.PowerShell.Commands.RemoveItemCommand
    
    Cliquez sur Entrée pour continuer...:
    Cordialement.
    Artemus24.
    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  6. #6
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 183
    Points : 5 754
    Points
    5 754
    Par défaut
    Et avec la deuxième méthode ?

    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    [System.IO.Directory]::Delete("C:\dossier\sousdossier", $true)

  7. #7
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 183
    Points : 5 754
    Points
    5 754
    Par défaut
    Il semble que tu n'as pas de chance (pour commencer ) et que OneDrive soit un problème (ça aurai été étonnant que ce soit un autre éditeur de stockage que Microsoft, sur un OS Microsoft avec un langage PowerShell de Microsoft ...bref)
    Les Fichiers a la demande sont certainement mal gérées ou alors ils ont décidés de les gérer via l'erreur que tu as.

    Plus d'info et solution ici :
    https://stackoverflow.com/questions/...file-is-denied
    https://evotec.xyz/remove-item-acces...from-onedrive/

  8. #8
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 378
    Points : 19 055
    Points
    19 055
    Par défaut
    Salut ericlm128.

    Au lieu de mettre le script ainsi que le répertoire dans le bureau, je les ai déplacé dans un répertoire où je range mes exercices sur PowerShell.
    Ainsi je n'ai plus le problème de la suppression du répertoire vide dans le bureau.
    Par contre, j'ai un lien vers le répertoire contenant le script "Windows à la une".

    Pour ce qui est de OneDrive, il est installé par défaut dans mon Windows 10 Pro.
    Comme je travaille toujours avec le même ordinateur, cela ne me sert pas à grand chose d'avoir OneDrive.

    J'ai testé la seconde solution. Je n'ai aucune erreur mais le dossier est présent visuellement dans le bureau.
    Quand je clique dessus pour l'ouvrir, il me dit que le dossier n'est pas présent physiquement.
    Autrement dit, OneDrive me fait une erreur.
    J'ai tué la tâche "Windows Eplorer", puis je l'ai relancé afin de faire disparaitre ce dossier détruit.

    Il vaut mieux ne pas travailler dans le bureau.

    Cordialement.
    Artemus24.
    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  9. #9
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 378
    Points : 19 055
    Points
    19 055
    Par défaut
    Salut Ericlm128.

    Au lieu de passer par un répertoire intermédiaire pour stocker les images, j'ai préféré écrire directement dans le répertoire final.
    L'ancien script PowerShell, je le garde.

    Voici le nouveau script PowerShell :
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    $FILE1="C:\Users\Patron\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets"
    $FILE2="J:\Images\WallPaper\Theme_2\"
     
    Write-host "Images Windows à la Une"
    Write-host "=======================`n"
     
    # ------------------------- #
    # Nombre d'Images Présentes #
    # ------------------------- #
     
    $NBRE = (Get-ChildItem $FILE2 | Measure-Object).Count
     
    Write-Host "Nombre d'images : $NBRE`n"
     
    $NBRE = $NBRE + 100
     
    # --------------------- #
    # Sauvegarde des Images #
    # --------------------- #
     
    Add-Type -AssemblyName System.Drawing
     
    $ListeUn = ChildItem -Path $FILE1 -File
     
    foreach ($Un in $ListeUn)
    {
    	$Image = [System.Drawing.Image]::FromFile($Un.FullName)
     
    	if ($Image.Width -eq 1920 -and $Image.Height -eq 1080)
    	{
    		$Flag = "Ko"
     
    		$ListeDeux = ChildItem -Path $FILE2 -File
     
    		foreach ($Deux in $ListeDeux)
    		{
    			if ((Get-FileHash $Un.FullName).hash -eq (Get-FileHash $Deux.FullName).hash)
    			{
    				$Flag="Ok"
    			}
    		}
     
    		if ($Flag -eq "Ko")
    		{
    			Write-Host "Sauvegarde Image  N° $NBRE"
    			Copy-Item -LiteralPath $Un.FullName -Destination "${FILE2}\Img$NBRE.jpg"
    			$NBRE = $NBRE + 1
    		}
    	}
    }
     
    # ----------------- #
    # Fin du Traitement #
    # ----------------- #
     
    Write-host "`nAppuyer sur Entrée pour terminer"
    $null = Read-Host
    Exit
    La numérotation des images commence à 100.

    Le but est de comparer les images déjà stockées avec les nouvelles.
    Si une image est vraiment nouvelle je la stocke.

    Pour la comparaison, je suis passé par le HASH.
    Je n'ai pas trouvé le moyen de comparer si l'image est identique ou différente.

    Cordialement.
    Artemus24.
    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  10. #10
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 183
    Points : 5 754
    Points
    5 754
    Par défaut
    Une conversion de ton code orienté plus PowerShell. Vu que tu débute je pense que ce code peut être intéressant.

    Le seul point de logique qui m'embête dans ton code est que pour chaque fichier dans $FILE1 tu recalcule le hash de tous les fichiers de $FILE2, ce qui peux être très long avec un dossier conséquent.
    Et je préfère libérer les fichiers une fois analysé via System.Drawing.Image

    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    $FILE1="C:\Users\Patron\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets"
    $FILE2="J:\Images\WallPaper\Theme_2\"
     
    Write-host "Images Windows à la Une"
    Write-host "=======================`n"
     
    # Ajout type
    Add-Type -AssemblyName System.Drawing
     
    # Récupère les fichiers de $FILE1 | avec résolution FHD | calcul/ajoute le Hash en MD5 | ne garde que les Hash unique
    $ListeUn = ChildItem -Path $FILE1 -File | 
    Where-Object {
        $Image = [System.Drawing.Image]::FromFile($_.FullName)
        $Image.Width -eq 1920 -and $Image.Height -eq 1080
        $Image.Dispose()
    } | Select-Object *, @{label='Hash' ; expression={($_ | Get-FileHash -Algorithm MD5).Hash}} | Sort-Object -Unique -Property Hash
     
    # Récupère les fichiers de $FILE2 et calcul/ajoute le Hash en MD5
    $ListeDeux = ChildItem -Path $FILE2 -File | Select-Object *, @{label='Hash' ; expression={($_ | Get-FileHash -Algorithm MD5).Hash}}
     
    # Récupère le nombre de fichier dans $FILE2
    $NBRE = @($ListeDeux).Count
    Write-Host "Nombre d'images : $NBRE`n"
    $NBRE = $NBRE + 100
     
    # Compare le hash des deux listes
    $CompareHash = Compare-Object -ReferenceObject @($ListeUn) -DifferenceObject @($ListeDeux) -Property Hash -PassThru
     
    # Pour chaque item qui sont uniquement présent dans $ListeUn
    $CompareHash | Where-Object {$_.SideIndicator -eq "<="} | ForEach-Object {
        Write-Host "Sauvegarde Image N° $NBRE"
        Copy-Item -LiteralPath $_.FullName -Destination "${FILE2}\Img$NBRE.jpg"
        $NBRE++
    }
     
    # ----------------- #
    # Fin du Traitement #
    # ----------------- #
     
    Write-host "`nAppuyer sur Entrée pour terminer"
    $null = Read-Host
    Exit

    Une gestion d'erreur pourrait être ajouté a [System.Drawing.Image]::FromFile si le fichier n'est pas une image valide
    Comme ceci par exemple :
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    ...
    Where-Object {
        try
        {
            $Image = [System.Drawing.Image]::FromFile($_.FullName)
            $Image.Width -eq 1920 -and $Image.Height -eq 1080
        }
        catch
        {
            $false
        }
        finally
        {
            $Image.Dispose()
        }
    }
    ...

  11. #11
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 378
    Points : 19 055
    Points
    19 055
    Par défaut
    Salut Ericlm128.

    Merci, c'est ce que je recherchais.

    Je n'ai pas tout compris car je n'ai pas encore le niveau d'une bonne manipulation de Power Shell.

    Citation Envoyé par Ericlm128
    Une gestion d'erreur pourrait être ajouté a [System.Drawing.Image]::FromFile si le fichier n'est pas une image valide
    Le but est justement de récupérer des images au format 1920x1080.
    Tout ce qui n'a pas ce format, voire qui n'est pas une image, ne m'intéresse pas.

    J'ai rajouté ton test d'erreur dans ton exemple. Le script fonctionne parfaitement.

    Je te remercie de m'avoir aidé. Le sujet est résolu !

    Cordialement.
    Artemus24.
    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Mon premier programme
    Par brisso dans le forum C
    Réponses: 21
    Dernier message: 01/10/2006, 21h21
  2. mon premier programme j2me
    Par adilo dans le forum Java ME
    Réponses: 1
    Dernier message: 14/09/2006, 08h43
  3. [JDOM] Mon premier programme java-xml
    Par adilo dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 12/07/2006, 13h12
  4. [Language] Aide sur mon premier programme Java?
    Par hash2zo dans le forum Langage
    Réponses: 15
    Dernier message: 27/09/2005, 19h26
  5. [Débutant] Mon premier programme: rien ne va...
    Par vincent0 dans le forum OpenGL
    Réponses: 10
    Dernier message: 02/08/2005, 13h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo