Metadata-Version: 2.1
Name: MishMash
Version: 0.3b14
Summary: Music database and web interface.
Home-page: https://github.com/nicfit/MishMash
Author: Travis Shirk
Author-email: travis@pobox.com
License: GNU GPL v3.0
Download-URL: https://github.com/nicfit/mishmash/releases/downloads/v0.3b14/MishMash-0.3b14.tar.gz
Keywords: music,database
Platform: Any
Classifier: Intended Audience :: End Users/Desktop
Classifier: Operating System :: POSIX
Classifier: Natural Language :: English
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Development Status :: 5 - Production/Stable
Requires-Dist: eyeD3 (>=0.9a0)
Requires-Dist: nicfit.py
Requires-Dist: SQLAlchemy
Requires-Dist: inotify
Requires-Dist: alembic
Requires-Dist: countrycode
Requires-Dist: pyfiglet
Requires-Dist: sqlalchemy-utils
Provides-Extra: postgres
Requires-Dist: psycopg2-binary ; extra == 'postgres'
Provides-Extra: web
Requires-Dist: pyramid ; extra == 'web'
Requires-Dist: pyramid-chameleon ; extra == 'web'
Requires-Dist: pyramid-layout ; extra == 'web'
Requires-Dist: pyramid-tm ; extra == 'web'
Requires-Dist: transaction ; extra == 'web'
Requires-Dist: zope.sqlalchemy ; extra == 'web'
Requires-Dist: waitress ; extra == 'web'
Requires-Dist: pyramid-debugtoolbar ; extra == 'web'
Requires-Dist: gevent ; extra == 'web'
Requires-Dist: gunicorn ; extra == 'web'

========
MishMash
========

|Build Status| |License| |PyPI| |Python versions| |Coverage| |Status|

Music database and web interface.

Features
--------

* MishMash is a music database using `Python`_ and `SQLAlchemy`_.
* A command-line tool for building and managing a music database.
* Web browser interface (using `Pyramid`_) for browsing your music library.
* Uses `eyeD3`_ for reading MP3s and ID3 metadata.
* Support and tested with Python 3.6 and Postgresql. SQLite is periodically
  tested with, but future features may not be supported (e.g. full text
  search).
* Free software: GNU GPL v3.0 license

.. _Python: https://www.python.org/
.. _SQLAlchemy: http://www.sqlalchemy.org/
.. _eyeD3: http://eyeD3.nicfit.net/
.. _Pyramid: https://trypyramid.com/

Getting Started
----------------
::

    $ mishmash info
    /\/\_____  .__       .__        _____                .__   /\/\
    \(\(     \ |__| _____|  |__    /     \ _____    _____|  |__\(\(
      /  \ /  \|  |/  ___/  |  \  /  \ /  \\__  \  /  ___/  |  \
     /    Y    \  |\___ \|   Y  \/    Y    \/ __ \_\___ \|   Y  \
     \____|__  /__/____  >___|  /\____|__  (____  /____  >___|  /
             \/        \/     \/         \/     \/     \/     \/

    Version              : 0.3
    Database URL         : sqlite:////~/mishmash.db
    Database version     : 0.3
    Last sync            : Never
    Configuration files  : <default>


    === Music library ===
    0 music tracks
    0 music artists
    0 music albums
    0 music tags


Surprise, you now have an empty sqlite database in the current directory.
Let's leave it here for now, it can be located elsewhere or use a different
database using command line arguments and/or environment variables. Pretty
useless without any music.::

    $ mishmash sync ~/Music/Melvins
    Syncing library 'Music': paths=['~/Music/Melvins/']
    Syncing directory: ~/Music/Melvins/
    Syncing directory: ~/Music/Melvins/1984 - Mangled Demos
    Adding artist: Melvins
    Syncing directory: ~/Music/Melvins/1986 - 10 Songs
    Adding album: 10 Songs
    Adding track: ~/Music/Melvins/1986 - 10 Songs/Melvins - 01 - Easy As It Was.mp3
    Updating album: 10 Songs
    ...
    == Library 'Music' sync'd [ 8.73s time (45.9 files/s) ] ==
    401 files sync'd
    401 tracks added
    0 tracks modified
    0 orphaned tracks deleted
    0 orphaned artists deleted
    0 orphaned albums deleted

Use your database as you wish. Browse it with `mishmash web`, or use one of its
management commands.

Check out the `Unsonic`_ project for streaming capabilities.


.. _Unsonic: https://github.com/redshodan/unsonic

.. |Build Status| image:: https://travis-ci.org/nicfit/MishMash.svg?branch=master
   :target: https://travis-ci.org/nicfit/MishMash
   :alt: Build Status
.. |PyPI| image:: https://img.shields.io/pypi/v/MishMash.svg
   :target: https://pypi.python.org/pypi/MishMash/
   :alt: Latest Version
.. |Python versions| image:: https://img.shields.io/pypi/pyversions/MishMash.svg
   :target: https://pypi.python.org/pypi/MishMash/
   :alt: Supported Python versions
.. |License| image:: https://img.shields.io/pypi/l/MishMash.svg
   :target: https://pypi.python.org/pypi/MishMash/
   :alt: License
.. |Status| image:: https://img.shields.io/pypi/status/MishMash.svg
   :target: https://pypi.python.org/pypi/MishMash/
   :alt: Project Status
.. |Coverage| image:: https://coveralls.io/repos/nicfit/MishMash/badge.svg
   :target: https://coveralls.io/r/nicfit/MishMash
   :alt: Coverage Status



Release History
===============



v0.3b14 (2019-03-07)
------------------------

Fix
~~~
- Compilation handling. fixes #539.


v0.3b13 (2019-03-01)
------------------------
- Support for duplicate artist names (made unique with origin/location) (#525)
- Support for duplicate album titles per artist (made unique with dates) (#525)
- eyeD3 0.9aN required.
- [docker] install ca-certificates.
- Removed old Unicode u"literals"

v0.3b12 (2019-01-12)
------------------------

New
~~~
- `mishmash web`: Image HTTP cache headers
- `mishmash web`: Added --port arg.
- Added gevent and gunicorn to `web` requirements (and docker image) to allow
  for SSL etc.

Changes
~~~~~~~
- Default sqlite database is now $CWD/mishmash.db.

Fix
~~~
- Pyaml >= 4.2b1 for security alert.
- Don't override web port from config file.


v0.3b11 (2018-12-16)
------------------------
- Run unsonic from `mishmash server`
- Venv-less docker.


v0.3b10 (2018-12-15)
------------------------

New
~~~~~
- `mishmash server`
- Bootstrap4 update.

Fix
~~~
- Fix album sorts for missing dates.
- Various artist support.


v0.3b9 (2018-12-15)
------------------------

Fix
~~~
- Fix album sorts for missing dates.
- Various artist support.


v0.3b9 (2018-12-02)
------------------------

New
~~~
- Split-artist docs.
- `mishmash web` albums view.
- `mishmash web` artist filters.

Fix
~~~
- Database URL obfuscation is more reliable.


v0.3b8 (2018-11-28)
------------------------

New
~~~
- Added `MishMash(ConfigClass=clazz)` keyword argument.

v0.3b7 (2018-06-18)
------------------------

New
~~~
- More multi-lib supoort (merge, split, info)

Fix
~~~
- Return resolved album when a sync does not occur.
- Recent inotify uses Unicode natively, remove conversions to bytes.
- Pick up new image files when rescanning and no audio files changed.

Other
~~~~~
- Run make test targets thru tox. Travis-CI will do this in a future
  commit.


v0.3b6 (2018-02-18)
--------------------

New
~~~
- Mishmash info -L/--library and --artists.

Changes
~~~~~~~
- Reduced sync stats precision.
- Nicfit.py 0.8 Command changes.

Fix
~~~
- Fix container fail to start issue (#242) <me@benschumacher.com>
- Added check for osx to avoid monitor mode (#260) <redshodan@gmail.com>
- Nicfit.py 0.8 config_env_var changes.
- Removed no-arg (nicfit.py) main test, test is done upstream.


v0.3b5 (2017-11-26) : I Need a Miracle
---------------------------------------

New
~~~
- Mishmash_cmd session-scoped fixture.
- Library 'excludes' option. Fixes #202.
- orm length limit constants
- More ORM limit tests, truncation, validation.
- Use mishmash.util.safeDbUrl for displayed/logged password obfuscation.
- Add Track.metadata_format and Track.METADATA_FORMATS.

Changes
~~~~~~~
- Moved VARIOUS_TYPE detection info _albumTypeHint.
  less noise about lp->various conversion
- Close DB connections after commands.
- Better logging for debugging VARIOUS_TYPE coersion.
- Moved limit constants to each ORM class.
- Docker updates.

Fix
~~~
- PServeCommand requires .ini extension.
- Show used config files.
- Some (not all) truncation for colomn limits and \x00 handling.
- Make docker-publish.
- Dup config section error.


v0.3b4 (2017-05-14) : Triumph Of Death
-----------------------------------------

New
~~~
- Init(scope=False), for wrapped SessionMaker with
  sqlalchemy.orm.scoped_session.
- Mishmash.web is optional, and packaged as extra [web] install.
- Mishmash.VARIOUS_ARTISTS_NAME == gettext("Various Artists")

Changes
~~~~~~~
- Removed various artist config and started gettext.

Fix
~~~
- Mishmash.web working again.

Other
~~~~~
- Update eyed3 from 0.8.0b1 to 0.8 (#108) <github-bot@pyup.io>
- Pin pyramid to latest version 1.8.3 (#94) <github-bot@pyup.io>


v0.3b3 (2017-04-09) : Prayers for Rain
---------------------------------------

New
~~~
- UTC sync times and per lib last_sync. Fixes #6, #7.
- Db test fixtures, etc.

Changes
~~~~~~~
- mishmash.data.init now returns the 3-tuple (engine, SessionMaker, connection).
  Previously a 2-tuple, sans connection, was returned.
  The new mishmash.database.DatebaseInfo namedtuple is the actual return type,
  if you prefer not to unpack the return value.

v0.3b2 (2017-03-12) : Nine Patriotic Hymns For Children
-------------------------------------------------------

Fix
~~~
- Protect against not being the first to call
  multiprocessing.set_start_method.


v0.3b1 (2017-03-12) : Nine Patriotic Hymns For Children
-------------------------------------------------------

New
~~~
- Mismash sync --monitor (using inotify)
- Test beginnings.

Changes
~~~~~~~
- Label_id renamed tag_id. Fixes #65.
- Mishmash.database.init accepts the DB URL as its first arguments, NO
  LONGER a Config object.

Fix
~~~
- Postgres service on Travis-CI.
- Restored gitchangelog fork.


v0.3b0 (2017-02-26)
-------------------------

* Initial release


