Skip to main content

Music database and web interface.

Project description

===================
Welcome to MishMash
===================

Music database and web interface.

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

Features
--------

* Free software: GNU GPL v3.0 license
* 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.4 and Postgresql. SQLite is periodically
tested with, but future features may not be supported (e.g. full text
search).

.. _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 your home 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, so now add some music.::

$ mishmash sync /home/travis/Music/Melvins
Syncing library 'Music': paths=['/home/travis/Music/Melvins/']
Syncing directory: /home/travis/Music/Melvins/
Syncing directory: /home/travis/Music/Melvins/1984 - Mangled Demos
Adding artist: Melvins
Syncing directory: /home/travis/Music/Melvins/1986 - 10 Songs
Adding album: 10 Songs
Adding track: /mnt/Media/Media/audio/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




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



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


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
MishMash-0.3b6-py3.6.egg (308.0 kB) Copy SHA256 hash SHA256 Egg 3.6 Feb 18, 2018
MishMash-0.3b6-py3-none-any.whl (277.2 kB) Copy SHA256 hash SHA256 Wheel py3 Feb 18, 2018
MishMash-0.3b6.tar.gz (287.8 kB) Copy SHA256 hash SHA256 Source None Feb 18, 2018

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page