=======
 Dnuos
=======

.. contents::

A Propos
========

Dnuos est un programme de terminal qui fait des listes des collections
de la musique, par la structure des dossiers.

Par exemple, une liste pourrait ressembler à ceci::

    Album/Artiste                      | Taill | Type | Qualité
    ===========================================================
    Ambient                            |       |      | 
        Alva Noto                      |       |      | 
            2001 - Transform           | 70.9M | MP3  | -V2
            2004 - Transrapid          | 30.2M | MP3  | -aps
            2005 - Transspray          | 31.7M | MP3  | -aps
            2005 - Transvision         | 32.3M | MP3  | -aps
        Alva Noto and Ryuichi Sakamoto |       |      | 
            2002 - Vrioon              | 72.6M | MP3  | -aps
            2005 - Insen               | 99.1M | MP3  | 320 C
            2006 - Revep               | 27.9M | MP3  | -V2n

Le format de la liste est complètement personnalisable et peut être texte
brut ou HTML.

Dnuos s'appuie MP3, AAC, Musepack, Ogg Vorbis, et FLAC. Détection du profil
de qualité est appuyé aussi, y compris l'information du
`LAME quality preset`_.

Informations sur les fichiers audio sont enregistrées sur le disque après
une liste est initialement faite, ce qui accélère faire de prochaines listes.
Seulement les fichiers audio et les dossiers qui ont étés modifiés depuis
la dernière liste a été faite.

Dnuos est basé sur le code d'`Oidua`_. Oidua peut faire des listes
similaires, mais c'est trop vieux et n'est plus maintenu.

.. _LAME quality preset: http://wiki.hydrogenaudio.org/index.php?title=Lame#Recommended_encoder_settings
.. _Oidua: http://oidua.suxbad.com/


Télécharger
===========

Les versions peuvent être trouvées à http://dnuos.tweek.us/files/.


Installation/Usage
==================

Exécutez ``dnuos --help`` pour information détaillée sur toutes les options.


Linux, Mac OS X, Unix
---------------------

Si vous souhaitez installer Dnuos avec setuptools_ (qui est empaqueté avec
Mac OS X, par exemple), téléchargez et exécutez `ez_setup.py`_, et
simplement rentrez la commande suivante::

    sudo easy_install dnuos

Sinon, exécutez ``setup.py`` avec la version de Python avec qui vous
souhaitez installer Dnuos::

    sudo easy_install dnuos

Cela installera Dnuos sur votre dossier ``site-packages``, et installera un
script de terminal qui est nommé ``dnuos`` (généralement dans ``/usr/bin/``
ou ``/usr/local/bin/``).

Après installation, ouvrez votre terminal préféré et exécutez ``dnuos``.
Sur Mac OS X, *Terminal* serait un bon choix (situé dans
``/Applications//Utilities``).


.. _setuptools: http://peak.telecommunity.com/DevCenter/setuptools
.. _`ez_setup.py`: http://peak.telecommunity.com/dist/ez_setup.py


Windows
-------

Il n'y a pas d'installation. Simplement extrayez le fichier zip où vous
souhaitez l'installer. Vous pouvez exécuter l'application à la ligne de
commande avec ``dnuos.exe``.

Après vous avez extrait Dnuos, appuyez simultanément sur les touches Windows
et R pour ouvrir le dialogue *Run*. Tapez *cmd* et appuyez enter pour
lancer la ligne de commande. Ensuite tapez la lettre de disque où
l'exécutable est placé et ``cd`` au dossier avec l'exécutable. Ici,
simplement exécutez ``dnuos.exe``.


Front-ends Graphiques
---------------------

Si vous détestez la ligne de commande, vous pouvez utiliser l'un des
front-ends graphiques suivants plutôt:

Guidua_
    Un front-end graphique pour Windows.
QtOIDUA_
    Un front-end graphique pour Linux et Mac OS X. (Note: Les versions 0.08
    et les anciennes versions ont un bogue qui empêche l'opération QtOIDUA
    avec Dnuos 1.0.)


.. _Guidua: http://oidua.suxbad.com/setup_guidua_0.16.exe
.. _QtOIDUA: http://www.spoonfedmonkey.com/software/qtoidua/


Quoi de Neuf
============

Version 1.0b5 (23 Fév. 2008)
    Ajouté l'option ``-L``/``--list-files`` pour énumérer les fichiers
    individuels dans des dossiers. Néanmoins, l'information des fichiers
    individuels n'est pas caché.

    Ajouté l'option ``-u``/``--unknown-types`` pour énumérer les dossiers avec
    les fichiers non soutenus.

    Corrigé un plantage de la création du cache.

Version 1.0b4 (22 Fév. 2008)
    Ajouté l'appui pour le formatage des dombres par les paramètres régionaux.

    Corrigé un plantage avec le basile Audiolist et les MP3 VBR.

    Corrigé un plantage avec les dossiers inaccessibles (ils sont ignorés
    maintenant).

    Ajouté l'appui pour traduction avec gettext.

    Ajouté une traduction française.

    Corrigé une erreur théorique de la division par zéro avec
    ``-t``/``--time``.

    Corrigé des problèmes du cache ne cache pas correctement (et les dossiers
    inexistantes sont maintenant cueillis).
    
    Amélioré l'implémentation de cache alors qu'il est chargé
    incrémentalement au lieu de tous ensemble avant la sortie d'une liste.

    Corrigé l'option ``-e`` (exclure des dossiers) ne pas fonctionner avec des
    chemins relatifs.

    Corrigé un plantage avec ``-w``/``--wildcards``.

    Corrigé ``-m``/``--merge`` ne pas fonctionner correctement sur Windows.

    Amélioré la couverture de code des tests unitaires et corrigé des
    problèmes avec la portabilité de Windows.

Version 1.0b3 (26 Déc. 2007)
    Ajouté l'appui pour l'enregistrement du cache, même lorsque Dnuos
    est interrompu.

    Renommé ``-p``/``--parallel`` à ``-m``/``--merge``. Il a la même
    fonction.

    Corrigé ``-i``/``--ignore-case`` ne pas fonctionner.

    Des améliorations marginales de vitesse avec le code de ``audiotype``
    et de ``id3``.

    Supprimé une grande quantité de code inutilisé dans le paquet ``id3``.

    Corrigé un plantage possible avec la nouvelle balise de vendeur.

    Corrigé des erreurs d'analyse avec les fichiers Ogg Vorbis et ajouté
    l'appui pour la balise de vendeur.

    Réduit la taille du paquet win32.

Version 1.0b2 (7 Déc. 2007)
    Mis à jour et simplifié la documentation.

    Corrigé ``setup.py sdist`` ne pas inclure tous les fichiers.

    Corrigé le traitement des MP3 avec l'en-tête VBRI (par ex. fait par
    Fraunhofer).

    Corrigé des problèmes sérieux avec le code ID3 qui probablement le
    rendent brisé.

    Corrigé l'importation de ``set()`` (qui devrait améliorer la
    compatibilité avec Python 2.3).

    Échangé d'usage de ``pickle`` avec ``cPickle`` (quand il existe) et
    opté pour le format le plus efficace de ``pickle`` (qui devrait
    accélérer Dnuos grandement).

    Fait la recherche du dossier de cache plus robuste.

    Ajouté l'appui pour enregistrer le cache durant exécution, donc si
    vous terminez de faire d'une liste, il cache ce qui a déjà été
    énuméré.

    Ajouté un message simple d'erreur pour des chaînes de sortie avec
    des champs invalides.

    Créé un Makefile qui exécute ``setup.py``.

Version 1.0b1 (2 Déc. 2007)
    Beaucoup d'améliorations du code.

    Ajouté le cachage des métadonnées audio.

    Ajouté la capacité pour filtrer les dossiers avec des fichiers
    mélangés.

    Ajouté le bon appui pour ``distutils``/``setuptools``.

    Ajouté l'appui pour calculer les bitrates des fichiers AAC.

    Ajouté une balise de sortie ``V`` qui affiche l'information du
    encodeur (actuellement seulement pour MP3).

    Nettoyé le message d'aide (il utilise ``optparse`` maintenant).

    Supprimé l'option ``-m``/``--merge``.

    Supprimé l'appui pour Python 2.2.

Version 0.94 (16 Jan. 2006)
    Corrigé les problèmes avec endianness sur les machines utilisées
    big-endian.

Version 0.93 (13 Jan. 2006)
    Corrigé une régression avec détection de l'en-tête MP3.

    Ajouté l'appui expérimental de l'en-tête VBRI.

Version 0.92 (13 Jan. 2006)
    Les options ``-l`` (les MP3 LAME seulement) et ``-v`` (les MP3 VBR
    seulement) maintenant fonctionnent dans la sortie normale.

    Ajouté l'option ``-b`` qui permet filtrer des MP3 avec les bitrates
    moins que ce qui est spécifié par ``-b``.

Version 0.91 (12 Jan. 2006)
    Fait la recherche de l'en-tête MP3 plus robuste. Les MP3 encodés
    à ``-V 9`` avec LAME 3.97b1 ne peuvent plus se confondre.

Version 0.9 (11 Jan. 2006)
    Finalement branché Oidua ! Ceci est maintenant DNUOS !


Développement
=============

Le stockage officiel de développement peut être trouvé à
http://dnuos.tweek.us/hg/. Avec Mercurial_, exécutez::

    hg clone http://dnuos.tweek.us/hg/

Exécuter l'ensemble des tests unitaires exige nose_ et les
`données de test`_. Après que vous avez les deux, vous pouvez
exécuter les tests avec la commande suivante::

    ./setup.py test

Si vous trouvez aucun de problèmes, soumettez une fiche sur le `site Trac`_.
Ce site est pour le développement et non pas d'assistance, donc ne soumettez
pas de fiches d'assistance.


.. _Mercurial: http://www.selenic.com/mercurial/
.. _nose: http://somethingaboutorange.com/mrl/projects/nose/
.. _données de test: http://dnuos.tweek.us/files/testdata.zip
.. _site Trac: http://dnuos.tweek.us/trac/


Contacter
=========

`Mattias Päivärinta <pejve at vasteras2 dot net>`_
    Programmeur principal.
`Brodie Rao <me+dnuos at dackz dot net>`_
    Mainteneur du projet.
