> On Dec. 6, 2015, 5:32 p.m., Vishesh Handa wrote: > > If you're planning on pushing this please push it to a testing branch. > > Untill we actually have some plugins using this we might not be sure of the > > API. My points below are quite negative and I was hoping on writing a more > > positive email about the different ways to go about this, but I seem to > > have been procrastinating and have not written it. Sorry. > > > > My main objections with this - > > > > 1. One cannot choose between external plugins. Since all of them are in > > 1-plugin (called ExternalPlugin), and all the mimtypes are just combined. > > This matters less in the case of Baloo, but when someone else wants to > > choose specific extractors. It's impossible. > > > > 2. Extraction of plain text is simply not supported. > > > > 3. No way to differentiate in the implementation of a plugin. We may get > > plugins for the same mimetype using different technologies, perhaps we need > > a way to identify which one to choose. Maybe this will never be a problem, > > but I'm skeptical. > > > > 4. Contamination of the PATH, maybe we could put them in a different place > > which makes it obvious that users should never execute them. > > > > 5. Getting the list of extractors now means running a possibly large number > > of executables with possibly bad implementations. They could just get > > stuck, and all other plugins will suffer. Perhaps the list of mimetypes > > supported could be in a desktop file?
I'm going to sit and think on this for a while. I wanted to get a minimally invasive solution to the problem, but if you want it doen **right**, I'd have to think things through. I don't think 3 will ever be a problem - I'm suggesting that people will install only one plugin per mimetype, if someone wants a plugin using different tech, they'll swap out the current plugin (by removing it from their system). For 4, we can put the somewhere in libexec. For 5, I don't want to use .desktop files. Maybe KPackage based solutions? Or even simpler, a bunch of json files in some subdir of /etc. - Boudhayan ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://git.reviewboard.kde.org/r/125762/#review89174 ----------------------------------------------------------- On Oct. 24, 2015, 5:49 p.m., Boudhayan Gupta wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://git.reviewboard.kde.org/r/125762/ > ----------------------------------------------------------- > > (Updated Oct. 24, 2015, 5:49 p.m.) > > > Review request for Baloo, KDE Frameworks, Pinak Ahuja, and Vishesh Handa. > > > Repository: kfilemetadata > > > Description > ------- > > This patch introduces support for external metadata extractors in > KFileMetaData > > The external extractors themselves can be written in any language, provided > that it can be executed as a standalone executable (compiled or script with a > hashbang), with command line arguments, and can output data to stdout. > > The extractors are executed like so: > > * `extractor --mimetypes` - outputs a list of mimetypes supported by the > extractor, one per line. > * `extractor filename` - outputs a json document with the metadata. The keys > are such that they can be directly used with PropertyInfo::fromName(). > > At the KFileMetaData end, an additional internal plugin (ExternalExtractor) > is provided that forms a conduit between external extractors and the internal > API. This plugin looks for executables called > kfilemetadata_extractor_<something> in /usr/bin to find external extractors, > and executes them with the --mimetypes arg to find the list of mimetypes each > extractor supports. ExternalExtractor then claims to support all of these > mimetypes, and then delegates to the extractor executable when doing the > actual extraction. > > > Diffs > ----- > > README.md 19b1a26 > src/extractors/CMakeLists.txt 5dd223e > src/extractors/externalextractor.h PRE-CREATION > src/extractors/externalextractor.cpp PRE-CREATION > > Diff: https://git.reviewboard.kde.org/r/125762/diff/ > > > Testing > ------- > > Tested with the sample executable file extractor (as attched, written in > python) with the dump manual test in KFileMetaData. Works. > > > File Attachments > ---------------- > > kfilemetadata_extractor_executable > > https://git.reviewboard.kde.org/media/uploaded/files/2015/10/23/146b657f-31d9-4117-a82f-ef966a6339d4__kfilemetadata_extractor_executable > > > Thanks, > > Boudhayan Gupta > >
_______________________________________________ Kde-frameworks-devel mailing list Kde-frameworks-devel@kde.org https://mail.kde.org/mailman/listinfo/kde-frameworks-devel