{ "info": { "author": "Petri Savolainen", "author_email": "petri.savolainen@koodaamo.fi", "bugtrack_url": null, "classifiers": [ "Environment :: Web Environment", "Framework :: Plone", "Framework :: Plone :: 4.3", "License :: OSI Approved :: GNU General Public License v2 (GPLv2)", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2.7" ], "description": ".. This README is meant for consumption by humans and pypi. Pypi can render rst files so please do not use Sphinx features.\n If you want to learn more about writing documentation, please check out: http://docs.plone.org/about/documentation_styleguide.html\n This text does not appear on pypi or github. It is a comment.\n\n==============================================================================\ncollective.filemeta\n==============================================================================\n\n.. image:: https://travis-ci.org/collective/collective.filemeta.svg\n :target: https://travis-ci.org/collective/collective.filemeta\n\nBackground information\n-----------------------\n\nWhen for example MS Office or PDF documents are stored in Plone as normal File content,\ndocument metadata embedded in the documents is not used. Such metadata is embedded\ninside the files in various type-specific formats, and might include information such as\ntitle, description and keywords, or EXIF/IPTC metadata for images. Nor does Plone provide\na screenshot or cover page thumbnail of the document.\n\nThis packages aims to provide those missing features in a generic, pluggable manner.\n\nNote that in addition to this package, you need additional packages to provide the actual\nfile type - specific metadata extraction, such as:\n\n- Products.OpenXml for MS Office document support\n- collective.pdfdocument for PDF support\n\n\nFeatures provided\n------------------\n\n- Generic pluggable mechanism to retrieve metadata from different file types, update\n content with it, and even round-trip the metadata back to the file from Plone content,\n if needed\n\n- Behavior to toggle the mechanism by content type\n\n- An example optional 'Document File' Dexterity content type that gets its metadata and\n cover image automatically copied over from the uploaded document file\n\n- Optionally enhanced built-in File content type so that it gets it metadata updated\n from uploaded file (including cover image)\n\n- A nicer default view (used both for the example type & enhanced File)\n\nFeatures not provided\n----------------------\n\n- viewing the document contents\n\n- indexing of documents (would be a good fit though)\n\n- asynchronous operation\n\n\nNote on metadata and cover images\n------------------------------------\n\nUsually people don't bother with document metadata so prior to uploading, you should check\nthe document properties.\n\nFor MS Office docs, make sure that the \"store preview\" option is selected, before saving\nthe document. PDFs have no embedded cover image; for them, collective.pdfdocument\nconverts the first page of the PDF into a PNG cover image.\n\n\nImplementation notes\n---------------------\n\nMetadata is processed by a subscriber that attemtps to retrieve the metadata using a 'IFileMetaProvider' utility whose name matches the primary file field mime type. If the\nmetadata can be extracted from file, it is copied over by another 'IContentMetaUpdater'\n(likewise named) utility.\n\n\nInstallation\n------------\n\nInstall collective.filemeta by adding it to your buildout::\n\n [buildout]\n\n ...\n\n eggs =\n collective.filemeta\n\n\nand then running ``bin/buildout``. Remember that you will also need some additional\npackages that provide the file type -specific extraction of document file metadata. For\nMS Office OpenXML and PDF support, the buildout would have::\n\n [buildout]\n\n ...\n\n eggs =\n collective.filemeta\n Products.OpenXml\n collective.pdfdocument\n\n\nContribute\n----------\n\n- Issue Tracker: https://github.com/collective/collective.filemeta/issues\n- Source Code: https://github.com/collective/collective.filemeta\n\n\nSupport\n-------\n\nIf you are having issues, please submit them to tracker or contact the author.\n\nLicense\n-------\n\nThe project is licensed under the GPLv2.\n\n\nContributors\n============\n\n- Petri Savolainen, petri.savolainen@koodaamo.fi\n\n\nChangelog\n=========\n\n1.0rc3 (2016-06-08)\n--------------------\n\n- Add CSS classes for styling\n\n1.0rc2 (2016-06-07)\n--------------------\n\n- Always overwrite metadata on ObjectAddedEvent\n\n1.0rc1 (2016-06-03)\n--------------------\n\n- Don't break when behavior is set on content type without image field\n [petri]\n- Other minor fixes\n [petri]\n\n1.0a1 (unreleased)\n------------------\n\n- Initial release.\n [petri]", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://pypi.python.org/pypi/collective.filemeta", "keywords": "Python Plone", "license": "GPL version 2", "maintainer": null, "maintainer_email": null, "name": "collective.filemeta", "package_url": "https://pypi.org/project/collective.filemeta/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/collective.filemeta/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://pypi.python.org/pypi/collective.filemeta" }, "release_url": "https://pypi.org/project/collective.filemeta/1.0rc3/", "requires_dist": null, "requires_python": null, "summary": "File-to-content metadata updating for Plone", "version": "1.0rc3" }, "last_serial": 2156533, "releases": { "1.0rc1": [ { "comment_text": "", "digests": { "md5": "c64809676e3174f698f26afdce67bb66", "sha256": "96845578ecfc41fc19e8da089a4115d535cdf58093b76a53eeccd83417de5e70" }, "downloads": -1, "filename": "collective.filemeta-1.0rc1.zip", "has_sig": false, "md5_digest": "c64809676e3174f698f26afdce67bb66", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 52465, "upload_time": "2016-06-03T11:29:41", "url": "https://files.pythonhosted.org/packages/82/0d/476e4d968ae51904a2c31ed86fa9df39a6519f41adf18d32018b905d019b/collective.filemeta-1.0rc1.zip" } ], "1.0rc2": [ { "comment_text": "", "digests": { "md5": "83edc8fcffd4f30b501225f2766598b5", "sha256": "4494553f5f5e6215f4a1d31dba190a415edb6703557f17c33847b6fa27933d72" }, "downloads": -1, "filename": "collective.filemeta-1.0rc2.zip", "has_sig": false, "md5_digest": "83edc8fcffd4f30b501225f2766598b5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 52392, "upload_time": "2016-06-07T13:25:30", "url": "https://files.pythonhosted.org/packages/7a/7d/e25f22463251078d110f4647cf5c26b2e4239dde8fea9b7e2d2d63404cd2/collective.filemeta-1.0rc2.zip" } ], "1.0rc3": [ { "comment_text": "", "digests": { "md5": "addd3e03e6a3ce9b1ceebb6c8868f903", "sha256": "33ea974cfdae47cb1f922f569db3c2c18d9c8d0b076725074f7e3c7b6c83476c" }, "downloads": -1, "filename": "collective.filemeta-1.0rc3.zip", "has_sig": false, "md5_digest": "addd3e03e6a3ce9b1ceebb6c8868f903", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 52490, "upload_time": "2016-06-08T10:19:04", "url": "https://files.pythonhosted.org/packages/c6/67/731dfbd389863cb66d09194c67a91012f76dfbc46826c232f2241bb97458/collective.filemeta-1.0rc3.zip" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "addd3e03e6a3ce9b1ceebb6c8868f903", "sha256": "33ea974cfdae47cb1f922f569db3c2c18d9c8d0b076725074f7e3c7b6c83476c" }, "downloads": -1, "filename": "collective.filemeta-1.0rc3.zip", "has_sig": false, "md5_digest": "addd3e03e6a3ce9b1ceebb6c8868f903", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 52490, "upload_time": "2016-06-08T10:19:04", "url": "https://files.pythonhosted.org/packages/c6/67/731dfbd389863cb66d09194c67a91012f76dfbc46826c232f2241bb97458/collective.filemeta-1.0rc3.zip" } ] }