{ "info": { "author": "Dr. Volker Jaenisch , Sandra Rum ", "author_email": "volker.jaenisch@inqbus.de", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Framework :: Plone", "Intended Audience :: Developers", "Intended Audience :: Information Technology", "Intended Audience :: Science/Research", "Intended Audience :: Telecommunications Industry", "Programming Language :: Python :: 2 :: Only", "Topic :: Multimedia :: Graphics :: Presentation", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "Introduction\n============\n\nThis module allows automatic keyword tagging of multimedia content with a strong focus on images.\n\nInqbus.tagging processes metadata of the following keyword sources: Filename/Title, EXIF, IPTC, XMP. Any Plone Object-Type can be processed.\n\nKeywords from Filename\n----------------------\n\nThe metadata is filtered by configurable filters. For each metadata source there is a filter which can be switched on/off independently.\n\nThe filename/title may be filtered by a regular expression you are free to craft. The regular expression enables you to filter, strip, split into words, what you like.\nYou can decide if you like to have new keywords to be extracted from the title or if you want use only keywords from the title that match existing ones, or both strategies with different regular expressions in parallel.\n\nKeywords from EXIF, IPTC and XMP\n--------------------------------\n\nEXIF, IPTC and XMP are filtered firstly by a positive list of tags for each category.\n\nFor every tag in a filter can be defined a regular expression and a format string to cut and format the way you like. Lets assume you have metadata tags with the structure \"Asimov, Isaac; Bradley, Alex\" you can transform them into the Plone tags \"Isaac Asimov\" and \"Alex Bradley\" easily.\n\nSince there are lots of possible tags available inqbus.tagging comes with tag import views for each metadata category. Each tag import view allows for opening an arbitrary file in Plone to inspect its metadata and to select and transfer metadata tag names into the tag configuration.\n\nImproved manual tagging of images\n---------------------------------\n\nInqbus.tagging supports manual tagging of images by providing a preview image column in the folder_contents-View. Also inqbus.tagging brings lossless EXIF image auto rotation back to Plone.\n\nRetagging of already uploaded content\n-------------------------------------\n\nIf you have changed your autotagging config you can use the \"retag\" Button in the folder_contents-View to rerun the auto tagging on certain objects.\n\nStabilty\n========\n\nThis code is work in progress crafted in after hours. It may not be save for production sites, but runs fine in our setup.\nWe welcome anyone to improve the code.\n\n\nRequirements\n============\n\n* Plone 5\n* z3c.forms\n* IPTCInfo\n* exifread\n* jpegtran-cffi (libjpeg8, cython, cffi) for fast and loss less auto rotation.\n\nNote: If not using jpegtran the EXIF auto rotation falls back to PIL. The XMP-Metadata in auto rotated files then is lost since PIL does not respect XMP.\n Also the rotated images are larger and a bit blurred. So we strongly suggest to use jpegtran-cffi.\n\nInstallation of jpegtran-cffi\n-----------------------------\n\nBuilding jpegtran-cffi on debian jessie:\n\naptitude install build-essential python-dev libturbojpeg1-dev libjpeg62-turbo-dev libffi-dev\npip install cffi\npip install jpegtran-cffi\n\nInstallation\n============\n\nAdd inqbus.tagging to your buildout eggs.::\n\n eggs=\\\n ...\n inqbus.tagging\n\n\nTo use inqbus.tagging with `jpegtran-cffi` add inqbus.tagging[jpegtran] to your buildout eggs.::\n\n eggs=\\\n ...\n inqbus.tagging[jpegtran]\n\n\n`jpegtran-cffi` is used for the rotation of the images. If you do not use it images\nwill be rotated using `Pillow`. This leads to metadata loss especially xmp-data.\n\nDeinstallation\n==============\n\nFor removing all stored configurations run the profile `profile-inqbus.tagging:purge`.\n\nThen go to Configuration -> Extensions. Select uninstall inqbus.tagging.\n\n\nUsing inqbus.tagging\n====================\n\n\nConfigure Auto-Tagging\n----------------------\n\nGo to Configuration -> inqbus.tagging Configuration:\n\n.. image:: https://github.com/collective/inqbus.tagging/raw/master/docs/img/tagging_config.png\n\n\n\nSelect Tags by Tag Import\n-------------------------\n\nTo make selecting meta-information more easier, you can use `Inqbus Tagging - Tag Imports`\nin Site Setup to select meta-fields.\n\nTherefore select an image and press `ok`. A list of available fields will be displayed\nincluding the value of the selected image as example.\n\n.. image:: https://github.com/collective/inqbus.tagging/raw/master/docs/img/tag_import.png\n\nSelect your tags and press ok. All selected tags are added to the list in\n`Inqbus Tagging Settings` and can be configured there.\n\nEnable Auto-Tagging for other Contenttypes\n------------------------------------------\n\nRegister a subscriber like::\n\n \n\nfor every contenttype you want to tag.\n\nManage existing Tags\n--------------------\n\nFor managing existing tags you can use a modified version of `Products.PloneKeywordManager`.\n\n.. image:: https://github.com/collective/inqbus.tagging/raw/master/docs/img/keywordmanager.png\n\nHere you can join tags used for the same content or delete not wanted tags.\n\n\nExtended Folder_contents-View\n=============================\n\nImage Preview\n-------------\n\nTo make working with Images more easier a preview-column was\nadded to the `folder_contents`-View and can be selected like all other columns.\n\n.. image:: https://github.com/collective/inqbus.tagging/raw/master/docs/img/folder_contents.png\n\nRetag\n-----\n\nTo migrate existing objects you can use the `Retag`-Action in the `folder_contents`-View.\n\n\nLimitations\n===========\n\nProcessing XMP is done by parsing the RDF:XML-Data structure directly utilizing LXML.\nUsually XMP is parsed by tools based on Adobe's XMP-Toolkit which fiddles a lot with the tag values to make them appear\nright. There seems to be no Python XMP-Lib out there which does not requires an image file name to process a file.\nEven in the underlying C++ Code there appears no good entry point for processing image data from a ZODB-Blob. So we\ndecided to parse the XMP \"by hand\" and do without the Adobe corrections. So please be not disappointed if the XMP tags\nyou have applied to your image by Photoshop 10 years ago may come out a bit askew.\n\nBackground\n==========\n\nWe take part in a small foto group in germany. Our site http://fotogruppe-altenstadt.de presents 20.000+ high\nquality images tagged by 2000+ keywords under CC license. Using Plone for a long time we like to give back our knowledge\nto the community.\n\n\nChangelog\n=========\n\n1.0.6\n-----\n\n* Bugfix:\n (src/lxml/lxml.etree.c:47744)\n IndexError: list index out of range\n\n1.0.5\n-----\n\n* Removed entrypoints\n* Updated MANIFEST.in\n\n1.0.4\n-----\n\n* Improved Documentation/Readme\n* Corrected dependencies\n\n1.0.3\n-----\n\n* Added MANIFEST.in to make package installable\n\n1.0.1 and 1.0.2\n---------------\n\n* Some smaller changes ind Readme and setup.py to improve the documentation\n\n1.0 - Initial release\n---------------------\n\n* Autotagging for Images based on meta information and title\n* Autorotation for Images based on Exif\n* Possibilities to configure Autotagging\n* Managing Keywords by a modified KeywordManager\n* Retaging and Previews for Folder-Contents-View", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/collective/inqbus.tagging", "keywords": "Plone,tagging,keywords,autorotation,EXIF,IPTC,XMP,image,inqbus", "license": "GPL", "maintainer": null, "maintainer_email": null, "name": "inqbus.tagging", "package_url": "https://pypi.org/project/inqbus.tagging/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/inqbus.tagging/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/collective/inqbus.tagging" }, "release_url": "https://pypi.org/project/inqbus.tagging/1.0.6/", "requires_dist": null, "requires_python": null, "summary": "Auto tagging for Plone", "version": "1.0.6" }, "last_serial": 2057372, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "29c5510abc67c0828c8f7c8049a1ba4e", "sha256": "5de0fd34ae012a455ab1faacc7d1e9c237c436e28cd0dce0f7a72ae0f824f7dc" }, "downloads": -1, "filename": "inqbus.tagging-1.0.zip", "has_sig": false, "md5_digest": "29c5510abc67c0828c8f7c8049a1ba4e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35942, "upload_time": "2016-01-26T17:05:30", "url": "https://files.pythonhosted.org/packages/63/24/ae5f30815d1c87ea4afa1c6f4a2e9f6996082c9f9f3a83b56a48729b7477/inqbus.tagging-1.0.zip" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "37a4e880b4744ba0d8d723b272326d7d", "sha256": "77354214e0e92bb2b13361363f065581e622f93478d5acfaf980e95a18980d84" }, "downloads": -1, "filename": "inqbus.tagging-1.0.1.zip", "has_sig": false, "md5_digest": "37a4e880b4744ba0d8d723b272326d7d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36194, "upload_time": "2016-01-26T17:22:13", "url": "https://files.pythonhosted.org/packages/bb/38/cdcd637688e8a49d80323fc4ac21aa61f181230bd0d473873125feca52c0/inqbus.tagging-1.0.1.zip" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "62b48860c7b5b2643d97fd3dfabd6d5b", "sha256": "7e192b18ae6a182e9ecc01d6fe14ea0a338c48c40e9c096ee7343e1fad8d4c3f" }, "downloads": -1, "filename": "inqbus.tagging-1.0.2.zip", "has_sig": false, "md5_digest": "62b48860c7b5b2643d97fd3dfabd6d5b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36295, "upload_time": "2016-01-26T17:55:11", "url": "https://files.pythonhosted.org/packages/6b/d2/f132389e1b0f8b21a499aae9256993e00b97973cd3aa4046daa1aae756e2/inqbus.tagging-1.0.2.zip" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "219ace46a9de72b5a402b218b3d0052d", "sha256": "164045f4e409e1f5f92d4781ae20b7ac63e7ed886d70e3e4830c227f98b6ccbb" }, "downloads": -1, "filename": "inqbus.tagging-1.0.3.zip", "has_sig": false, "md5_digest": "219ace46a9de72b5a402b218b3d0052d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 434993, "upload_time": "2016-01-27T11:11:30", "url": "https://files.pythonhosted.org/packages/cd/3a/545c7389aa6cf23e936e92bea64670cf7a46d7df93bdcd5d9a056fd4324f/inqbus.tagging-1.0.3.zip" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "d360f6343eefc6bce690d8ec301c4411", "sha256": "0068f5045bfbe001456630ece4f539b738d072168dc07b4518815562aa51631f" }, "downloads": -1, "filename": "inqbus.tagging-1.0.4.zip", "has_sig": false, "md5_digest": "d360f6343eefc6bce690d8ec301c4411", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 435593, "upload_time": "2016-01-27T12:06:50", "url": "https://files.pythonhosted.org/packages/01/34/b33d7713b484ed05229d45d587242da53b59b1929c0f5613bf92b818391a/inqbus.tagging-1.0.4.zip" } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "350150e47c08ffcb5b41c5f1f40ac632", "sha256": "3bfd6e30eaf0f780c7e7c4f9650125283bad599c08778a3c1b001fe156c212c9" }, "downloads": -1, "filename": "inqbus.tagging-1.0.5.zip", "has_sig": false, "md5_digest": "350150e47c08ffcb5b41c5f1f40ac632", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1013534, "upload_time": "2016-01-27T12:33:06", "url": "https://files.pythonhosted.org/packages/d2/b7/a5050ded685b6f19ce441fe92c6b6fd11ff68243c62faa625254b3cc326f/inqbus.tagging-1.0.5.zip" } ], "1.0.6": [ { "comment_text": "", "digests": { "md5": "10ac906f41f68b3c0f0a0f2887a649bb", "sha256": "bff10019497a49d7d677af1c12789bf6bb153a17f445452adb7fdcac62f3500d" }, "downloads": -1, "filename": "inqbus.tagging-1.0.6.zip", "has_sig": false, "md5_digest": "10ac906f41f68b3c0f0a0f2887a649bb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1014082, "upload_time": "2016-04-11T09:22:08", "url": "https://files.pythonhosted.org/packages/5f/4c/3961bebb397c1ad7ca89df55a98bb6c1131e4a3b03f1be90869947d82ef5/inqbus.tagging-1.0.6.zip" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "10ac906f41f68b3c0f0a0f2887a649bb", "sha256": "bff10019497a49d7d677af1c12789bf6bb153a17f445452adb7fdcac62f3500d" }, "downloads": -1, "filename": "inqbus.tagging-1.0.6.zip", "has_sig": false, "md5_digest": "10ac906f41f68b3c0f0a0f2887a649bb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1014082, "upload_time": "2016-04-11T09:22:08", "url": "https://files.pythonhosted.org/packages/5f/4c/3961bebb397c1ad7ca89df55a98bb6c1131e4a3b03f1be90869947d82ef5/inqbus.tagging-1.0.6.zip" } ] }