{ "info": { "author": "Viktor Nagy", "author_email": "v@pulilab.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Framework :: Django", "Intended Audience :: Developers", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Topic :: Internet :: WWW/HTTP :: Dynamic Content" ], "description": "Medialibrary for Django\n========================\n\nWelcome to the documentation for django-medialibrary!\n\n\n`django-medialibrary` is a pluggable django app that is able to store different media types (audio, video, image) and several versions of a given file in a transparent way.\n\nThe basic problam to solve is to store, retrieve and manage several versions of the same file in a seemless way. E.g. a user uploads a video that you will have to transcode into different formats. For the user you would like to show only a single media in his list of uploaded files, but you still want to serve all the generated files when necessary, moreover, if the user decides to delete his media you would like to delete all its versions.\n\nThe idea for this app is to have all this in an app-indepedent and easy to use and extend way.\n\nFeatures\n---------\n\n* Unique entry point for every media type, `user.medialibrary.shelf_set`\n* Different shelfs with possible different login for every media type. The `shelf_set` contains different models, each derived from `medialibrary.models.Shelf`.\n* Simple access to the original file.::\n\n\tmyShelf = AudioShelf.objects.get(pk=1)\n\tmyShelf.audio_set.all() # returns the list of audio files\n\tisinstance(myShelf.original, Audio) # return True, if a file is attached to myShelf\n\tmyShelf.original.size, myShelf.original.url\n\n* Custom manager to query the shelves.\n* Generic relationships to bind the shelves to any object in the project, using the ShelfRelation model\n* Every shelf type can have an ALLOWED_FORMATS property that lists the allowed extensions to be save in the shelf.\n* VideoShelves can have thumbnail images (actually ImageShelf instances) attached. Only one of these can be marked as selected. The myVideoShelf.thumbnail property returns the selected thumbnail.\n\n\nFrontend API\n-------------\n\nThere is no html frontend on purpose as we are using this app through APIs. The provided APIs out of the box are\n\n* ``/audio/``, ``/video/``, ``/image/`` - to upload and list media elements of a given type\n* ``//`` - to get detailed info about a single media element\n* ``//add/`` - adds a relationship to the media element, expects a json of the form::\n\n\t{\n\t\t'model': 'app_name.model_name',\n\t\t'object_id': 1\n\t}\n\nwhere ``app_name.model_name`` is the `natural key `_ of the model you are attaching.\n\nCustomizations\n---------------\n\nBesides the general django settings for file storage, there is a custom setting, the upload_to method used in the FileFields.::\n\n\timport datetime\n\tdef setup_s3_route(instance, filename=None):\n\t today = datetime.datetime.today()\n\t return 'media/%s-%02d-%02d/%s' % (today.year, today.month, today.day,\n\t filename)\n\tfrom medialibrary import utils \n\tutils.setup_upload_route = setup_s3_route\n\nYou can set a custom argument for the ``limit_choices_to`` attribute on the ShelfRelation model. This way you can define which apps are allowed to have relationships to you media elements. (e.g. if you remove the attached records when you remove the media, you probably don't want to attach django permission records to media). The default is **no restricions**!::\n\n\tfrom medialibrary import utils\n\tfrom django.db import models\n\tutils.content_type_restriction = models.Q(app_label='auth', model='user')\n\nAdding new media types\n_______________________\n\nThe medialibrary can be easily extended with new media types. Here is an example to add a new DocumentShelf model::\n\n\tfrom medialibrary.models import Shelf\n\n\tclass DocumentShelf(Shelf):\n\n\t ALLOWED_FORMATS = ('doc', 'docx', 'pdf', 'odf')\n\n\t def file_set():\n\t doc = \"The file_set property.\"\n\t def fget(self):\n\t return self.audio_set\n\t return locals()\n\t file_set = property(**file_set())\n\nAfter this simple model definition, the user's `user.medialibrary.shelf_set` will contain DocumentShelf instances whenever appropriate. \n\nInstallation\n-------------\n\n``pip install django-medialibrary``\n\nor you can `find the project on github `_\n\nRunning the standalone tests \n------------------------------------\n\nYou can run the tests via:\n\n\t``#create a virtualenv and activate it``\n\t\n\t``pip install -r test_requirements.txt``\n\t\n\t``python runtests.py``\n\nSponsors\n----------\n\nThis app was written at `Pulilab `_ while we were working on `Vidzor `_.", "description_content_type": null, "docs_url": null, "download_url": "https://github.com/pulilab/django-medialibrary/archive/1.1.0.zip", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/pulilab/django-medialibrary", "keywords": null, "license": "BSD 3-Clause License, see the LICENSE file for details", "maintainer": null, "maintainer_email": null, "name": "django-medialibrary", "package_url": "https://pypi.org/project/django-medialibrary/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/django-medialibrary/", "project_urls": { "Download": "https://github.com/pulilab/django-medialibrary/archive/1.1.0.zip", "Homepage": "https://github.com/pulilab/django-medialibrary" }, "release_url": "https://pypi.org/project/django-medialibrary/1.4.9/", "requires_dist": null, "requires_python": null, "summary": "A pluggable django app for media management.", "version": "1.4.9" }, "last_serial": 1136756, "releases": { "1.0.0": [], "1.1.0": [ { "comment_text": "", "digests": { "md5": "8bf12f4de5b85457044fa950446f49f5", "sha256": "e1968d4807abad558fea13dec47d65351a6485e1dcf36ae8917c4dcf0b3e3bb2" }, "downloads": -1, "filename": "django-medialibrary-1.1.0.tar.gz", "has_sig": false, "md5_digest": "8bf12f4de5b85457044fa950446f49f5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12385, "upload_time": "2013-09-11T14:06:29", "url": "https://files.pythonhosted.org/packages/ce/f2/7c9a88b664ddf4c12ae5559d480605e7224211556f8bf83da0a9b02c7922/django-medialibrary-1.1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "14b2fc0a59ea1925d84f96063fd2149f", "sha256": "506bb06158d51b8ad5ab8a36cbee0283cd777887d4f2510576642e3f78aed5f9" }, "downloads": -1, "filename": "django-medialibrary-1.1.1.tar.gz", "has_sig": false, "md5_digest": "14b2fc0a59ea1925d84f96063fd2149f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12746, "upload_time": "2013-09-11T14:31:14", "url": "https://files.pythonhosted.org/packages/ff/95/c13692f67ed61e27d3b794a2d6a8cf47e9c3ed8f134e1dbae1326f414ddb/django-medialibrary-1.1.1.tar.gz" } ], "1.1.2": [ { "comment_text": "", "digests": { "md5": "ca2d74a98f34114c62d33bcf4a03e495", "sha256": "a847c8a6d4baa85a2c30509801bb0d3c60428d5c3d19e48c22a12871e280e704" }, "downloads": -1, "filename": "django-medialibrary-1.1.2.tar.gz", "has_sig": false, "md5_digest": "ca2d74a98f34114c62d33bcf4a03e495", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12770, "upload_time": "2013-09-11T14:46:09", "url": "https://files.pythonhosted.org/packages/0e/37/6a14af577f9a04ef0137b80e68098b3eddd47d6515f601e8eccbe4855fa5/django-medialibrary-1.1.2.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "3b6c40b24ae9ba56402d51ea90b1776a", "sha256": "37b05f8e99953ce107041d8ba754e26c31b25e6b2e6bec9ac2a05f093c775c8f" }, "downloads": -1, "filename": "django-medialibrary-1.2.0.tar.gz", "has_sig": false, "md5_digest": "3b6c40b24ae9ba56402d51ea90b1776a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12850, "upload_time": "2013-09-12T10:59:49", "url": "https://files.pythonhosted.org/packages/19/a0/17ddc9b8cf8c73b05d206b504a74c096461efd78fec2fa55c9d91782f654/django-medialibrary-1.2.0.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "dbbeffa74e68ab2cb15454b8208af45c", "sha256": "c463ae69c9d240a484d3c3c3d6aa571590d875d4516415f90c162fcb749365f7" }, "downloads": -1, "filename": "django-medialibrary-1.2.1.tar.gz", "has_sig": false, "md5_digest": "dbbeffa74e68ab2cb15454b8208af45c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12885, "upload_time": "2013-09-17T16:25:57", "url": "https://files.pythonhosted.org/packages/5d/02/9aa1448ac3263465ebd104fd5a00059b8eee8a698de186299a64eccdbc97/django-medialibrary-1.2.1.tar.gz" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "59152c9189d325d8883b919ae78eb624", "sha256": "d8360ad35950ab6226f6a0af7653c2fc8e17e23804e3177893ccbff6cd0285ff" }, "downloads": -1, "filename": "django-medialibrary-1.3.0.tar.gz", "has_sig": false, "md5_digest": "59152c9189d325d8883b919ae78eb624", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13316, "upload_time": "2013-09-19T10:11:44", "url": "https://files.pythonhosted.org/packages/90/df/3b3153583307e1e21671416ba4c6e16ce95026229a3d4e3eda9d2c98dc25/django-medialibrary-1.3.0.tar.gz" } ], "1.3.1": [ { "comment_text": "", "digests": { "md5": "8ac81c539a3dfc87bd3ecf4911f18918", "sha256": "f8840ed553fac5fe3362e1ebeb8b25f44e99a7ecaf48791e27b854310cfa75b5" }, "downloads": -1, "filename": "django-medialibrary-1.3.1.tar.gz", "has_sig": false, "md5_digest": "8ac81c539a3dfc87bd3ecf4911f18918", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14783, "upload_time": "2013-09-19T17:23:48", "url": "https://files.pythonhosted.org/packages/a8/a2/9f32759434f63aa101e9c66b35e663d895151ad96d4fbc0685f8275c8b2f/django-medialibrary-1.3.1.tar.gz" } ], "1.3.2": [ { "comment_text": "", "digests": { "md5": "a06c881ee1a4732c84c8cd1133f002b3", "sha256": "5211c65c80eb0345e7d34d779c59c59e50e5f1cc4e6083f022b534ed12e29943" }, "downloads": -1, "filename": "django-medialibrary-1.3.2.tar.gz", "has_sig": false, "md5_digest": "a06c881ee1a4732c84c8cd1133f002b3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15230, "upload_time": "2013-09-20T09:00:40", "url": "https://files.pythonhosted.org/packages/b5/69/d286f67ae35491ce8478571c4e11020962effac0a4a663b3e5224cb3a49d/django-medialibrary-1.3.2.tar.gz" } ], "1.3.3": [ { "comment_text": "", "digests": { "md5": "06588a9f8a8687f0a4bd19906ec4e7a6", "sha256": "5e51a168527815ac374d2c8e9079eaa61d8603eda50fbdfcdb0e4b3a869e8bdc" }, "downloads": -1, "filename": "django-medialibrary-1.3.3.tar.gz", "has_sig": false, "md5_digest": "06588a9f8a8687f0a4bd19906ec4e7a6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15239, "upload_time": "2013-09-24T10:18:41", "url": "https://files.pythonhosted.org/packages/c8/70/6ac58468f4bb56b710b46032e6b6e91f57b5c8caf128b71eb7e8ec2bbb33/django-medialibrary-1.3.3.tar.gz" } ], "1.3.4": [ { "comment_text": "", "digests": { "md5": "c8e7d50b215e84a800a9fc86baf0552d", "sha256": "a5f9a814c7c9b22a3c1ab665cd50a3f2968648dc49c630de0d1f02d7ed9df8a8" }, "downloads": -1, "filename": "django-medialibrary-1.3.4.tar.gz", "has_sig": false, "md5_digest": "c8e7d50b215e84a800a9fc86baf0552d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15241, "upload_time": "2013-09-24T13:55:31", "url": "https://files.pythonhosted.org/packages/5f/55/8905afbda383b547953df0208a069d1b6f0b66c0d592db80a89e52cb1bf8/django-medialibrary-1.3.4.tar.gz" } ], "1.3.5": [ { "comment_text": "", "digests": { "md5": "56879f8d8f004ce7d5e66b45b2ddfd84", "sha256": "77453a492f4318a6869b0eab30acbd34e34bd698aec21f0c0f6ce580a169b077" }, "downloads": -1, "filename": "django-medialibrary-1.3.5.tar.gz", "has_sig": false, "md5_digest": "56879f8d8f004ce7d5e66b45b2ddfd84", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15312, "upload_time": "2013-09-25T13:59:03", "url": "https://files.pythonhosted.org/packages/83/fc/a3998cf76255d8ffc8c4404f00102657bcd4afbbbb5bb3a2537e0c6b41ca/django-medialibrary-1.3.5.tar.gz" } ], "1.4.0": [ { "comment_text": "", "digests": { "md5": "37cfd518d4441cef5fd8ef0d20942019", "sha256": "ac2728628170cdcc85882cf1a5da710bd7691baea364c4ae43f5eddc94683e72" }, "downloads": -1, "filename": "django-medialibrary-1.4.0.tar.gz", "has_sig": false, "md5_digest": "37cfd518d4441cef5fd8ef0d20942019", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16125, "upload_time": "2013-10-08T15:21:23", "url": "https://files.pythonhosted.org/packages/8b/f7/63e42a384ff1078e7e2c547e708c3c4bcf263970039a35f74503bc713468/django-medialibrary-1.4.0.tar.gz" } ], "1.4.1": [ { "comment_text": "", "digests": { "md5": "3d3fe4fa4aac6ca7894bd4c31c8d3bb3", "sha256": "f2ce3595a9caf790d57ceadac57af78e64f358e722a9fa9ad79d898feee1d3ff" }, "downloads": -1, "filename": "django-medialibrary-1.4.1.tar.gz", "has_sig": false, "md5_digest": "3d3fe4fa4aac6ca7894bd4c31c8d3bb3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16370, "upload_time": "2013-11-28T12:22:45", "url": "https://files.pythonhosted.org/packages/b3/c0/86d97a46dd5647f59e6dd341b0d4ba89b1f9babd7873ab05cb3ad9dd46a4/django-medialibrary-1.4.1.tar.gz" } ], "1.4.2": [ { "comment_text": "", "digests": { "md5": "492fbcc9519e975b10d0020da0f68073", "sha256": "9f06748eb43a11f39e0f30bc1dc50a85ac5c48365727a87b8c80ffba8eadc1c1" }, "downloads": -1, "filename": "django-medialibrary-1.4.2.tar.gz", "has_sig": false, "md5_digest": "492fbcc9519e975b10d0020da0f68073", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16366, "upload_time": "2014-01-03T14:13:34", "url": "https://files.pythonhosted.org/packages/d7/66/3303744c233dcac69bc1bef6ada23841ebefddba6f4ba6fc1eec0a7080ce/django-medialibrary-1.4.2.tar.gz" } ], "1.4.3": [ { "comment_text": "", "digests": { "md5": "b2670cdee4eeaa91140a1bc59932a2d1", "sha256": "7c35a88276745eb8dc79010e5f8a769445e58e0b38870e8a6273dfc3d24d8297" }, "downloads": -1, "filename": "django-medialibrary-1.4.3.tar.gz", "has_sig": false, "md5_digest": "b2670cdee4eeaa91140a1bc59932a2d1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16411, "upload_time": "2014-02-20T11:28:53", "url": "https://files.pythonhosted.org/packages/5b/7a/5be1e7178e1a0bad1159308a6f14690edf6f9919de77f6b2da6f22382d8e/django-medialibrary-1.4.3.tar.gz" } ], "1.4.4": [ { "comment_text": "", "digests": { "md5": "26e83f74575f81cf61bbe110ed72d013", "sha256": "2e59cb9db20287060df5a7d129db9c4aaa7855f89a3cfae3876246904352cf28" }, "downloads": -1, "filename": "django-medialibrary-1.4.4.tar.gz", "has_sig": false, "md5_digest": "26e83f74575f81cf61bbe110ed72d013", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16996, "upload_time": "2014-03-11T14:27:39", "url": "https://files.pythonhosted.org/packages/c4/5e/cf1769abab09d1ea27010b27e0d5775b2787aa4d5f1977bb6067e9eec69a/django-medialibrary-1.4.4.tar.gz" } ], "1.4.5": [ { "comment_text": "", "digests": { "md5": "e7929ed783658c60fb222c3c3464a39e", "sha256": "d7f8d541c0f1541823c1d6a88fcfd500f5f5ec21a1737172f62fb623b9fdc578" }, "downloads": -1, "filename": "django-medialibrary-1.4.5.tar.gz", "has_sig": false, "md5_digest": "e7929ed783658c60fb222c3c3464a39e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16993, "upload_time": "2014-03-11T14:38:36", "url": "https://files.pythonhosted.org/packages/4a/4c/42d7e717ba34b945b8452a256be22b0eb3b943f736bc6f0a46b6d9668501/django-medialibrary-1.4.5.tar.gz" } ], "1.4.6": [ { "comment_text": "", "digests": { "md5": "f928b06dae22720399fe5e03a8bc1840", "sha256": "5c525891da60b7230caca0aaf32752bb8d487ff9008b9a758c3d933eb4252b01" }, "downloads": -1, "filename": "django-medialibrary-1.4.6.tar.gz", "has_sig": false, "md5_digest": "f928b06dae22720399fe5e03a8bc1840", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16824, "upload_time": "2014-03-11T15:22:31", "url": "https://files.pythonhosted.org/packages/da/00/294ca309b5c33b852776541d9a34e49a33fc687bbd3ccfe5eda55911fd60/django-medialibrary-1.4.6.tar.gz" } ], "1.4.7": [ { "comment_text": "", "digests": { "md5": "588ed1c9778ee7521a9a5311be6e39ec", "sha256": "47f33aa35e0c82cbe6f1088d31b8000218728efa4ad2e095140109b578b34a7d" }, "downloads": -1, "filename": "django-medialibrary-1.4.7.tar.gz", "has_sig": false, "md5_digest": "588ed1c9778ee7521a9a5311be6e39ec", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16848, "upload_time": "2014-03-25T13:47:03", "url": "https://files.pythonhosted.org/packages/9a/9c/abd3bababc9284e013b4e04babdd5a216ba51bc86db11b62a99821c93f9f/django-medialibrary-1.4.7.tar.gz" } ], "1.4.8": [ { "comment_text": "", "digests": { "md5": "ca4f7f3ecf723455a30985bb57c6431e", "sha256": "0ea17e68b0ba1e45ba199fefc7f1d7231a3c6ed05b371ef1992d56a04e3d156e" }, "downloads": -1, "filename": "django-medialibrary-1.4.8.tar.gz", "has_sig": false, "md5_digest": "ca4f7f3ecf723455a30985bb57c6431e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17014, "upload_time": "2014-06-17T15:56:02", "url": "https://files.pythonhosted.org/packages/d0/59/7dc869ed9c65cfc0246e32466f00f0ca454a0d695dac55ce5723d3c3734b/django-medialibrary-1.4.8.tar.gz" } ], "1.4.9": [ { "comment_text": "", "digests": { "md5": "9fac4939236a324342b032daf1f9adac", "sha256": "63a37355186fe2f161ed9213e44c207f2a360b1bf07026572f0dfa5da3e0d849" }, "downloads": -1, "filename": "django-medialibrary-1.4.9.tar.gz", "has_sig": false, "md5_digest": "9fac4939236a324342b032daf1f9adac", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17035, "upload_time": "2014-06-25T11:49:53", "url": "https://files.pythonhosted.org/packages/01/62/8ee0990784878f7bcac3b4de5095f1a629d58e6fee29786419d539dbdcf7/django-medialibrary-1.4.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "9fac4939236a324342b032daf1f9adac", "sha256": "63a37355186fe2f161ed9213e44c207f2a360b1bf07026572f0dfa5da3e0d849" }, "downloads": -1, "filename": "django-medialibrary-1.4.9.tar.gz", "has_sig": false, "md5_digest": "9fac4939236a324342b032daf1f9adac", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17035, "upload_time": "2014-06-25T11:49:53", "url": "https://files.pythonhosted.org/packages/01/62/8ee0990784878f7bcac3b4de5095f1a629d58e6fee29786419d539dbdcf7/django-medialibrary-1.4.9.tar.gz" } ] }