From abf02bd55c806b67604e522691669d674dbe552b Mon Sep 17 00:00:00 2001 From: dockes Date: Tue, 28 Mar 2006 09:38:13 +0000 Subject: [PATCH] filter for indexing mp3 tags --- src/filters/rclmedia | 72 +++++++++++++++++++++++++++++++++++++ src/qtgui/mtpics/sownd.png | Bin 0 -> 4756 bytes src/sampleconf/mimeconf | 7 +++- src/sampleconf/mimemap | 3 +- 4 files changed, 80 insertions(+), 2 deletions(-) create mode 100755 src/filters/rclmedia create mode 100755 src/qtgui/mtpics/sownd.png diff --git a/src/filters/rclmedia b/src/filters/rclmedia new file mode 100755 index 00000000..7b11259b --- /dev/null +++ b/src/filters/rclmedia @@ -0,0 +1,72 @@ +#!/bin/sh +# @(#$Id: rclmedia,v 1.1 2006-03-28 09:38:12 dockes Exp $ (C) 2004 J.F.Dockes +#================================================================ +# rclmedia +# Handle media files for recoll. This currently returns an empty +# document to let the indexer process the file names as terms, but +# we might want to extract mp3 tags one day +#================================================================ +# set variables +LANG=C ; export LANG +LC_ALL=C ; export LC_ALL +progname="rclsoff" + +# show help message +if test $# -ne 1 -o "$1" = "--help" +then + printf 'Process a media file for recoll indexation.\n' + printf 'Usage: %s [infile]\n' "$progname" + exit 1 +fi + +infile="$1" + +iscmd() +{ + cmd=$1 + case $cmd in + */*) + if test -x $cmd ; then return 0; else return 1; fi ;; + *) + oldifs=$IFS; IFS=":"; set -- $PATH; IFS=$oldifs + for d in $*;do test -x $d/$cmd && return 0;done + return 1 ;; + esac +} +checkcmds() +{ + cmdsok=0 + for cmd in $*;do + if iscmd $cmd + then + cmdsok=1 + else + cmdsok=0 + fi + done +} + +# check the input file existence +if test ! -f "$infile" +then + printf '%s: %s: no such file\n' "$progname" "$infile" + exit 1 +fi +checkcmds id3info + +# output the result +echo '' +#echo '' "$title" '' +echo '' +echo '' +echo '
'
+if test X$cmdsok = X1 ; then
+   id3info $infile | \
+   sed -e 's/'
+echo ''
+
+# exit normally
+exit 0
diff --git a/src/qtgui/mtpics/sownd.png b/src/qtgui/mtpics/sownd.png
new file mode 100755
index 0000000000000000000000000000000000000000..5748f06196ac0f2e819509998a98129859b5d71f
GIT binary patch
literal 4756
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
Sfb3ccaNoIiN5yt#`u_pAe)zut

literal 0
HcmV?d00001

diff --git a/src/sampleconf/mimeconf b/src/sampleconf/mimeconf
index 814deab3..a1214598 100644
--- a/src/sampleconf/mimeconf
+++ b/src/sampleconf/mimeconf
@@ -1,4 +1,4 @@
-# @(#$Id: mimeconf,v 1.13 2006-02-03 10:53:35 dockes Exp $  (C) 2004 J.F.Dockes
+# @(#$Id: mimeconf,v 1.14 2006-03-28 09:38:12 dockes Exp $  (C) 2004 J.F.Dockes
 
 # Recoll : associations of mime types to processing filters.
 # There are different sections for decompression, 'interning' for indexing
@@ -42,6 +42,8 @@ application/x-dvi = exec rcldvi
 
 image/vnd.djvu = exec rcldjvu
 
+audio/mpeg = exec rclmedia
+
 message/rfc822 = internal
 
 text/html  = internal 
@@ -72,6 +74,8 @@ application/vnd.sun.xml.writer.template = openoffice %f
 image/vnd.djvu = djview %f
 application/x-dvi = xdvi %f
 
+audio/mpeg = xmms %f
+
 # Icons to be used in the result list.
 [icons]
 application/msword = wordprocessing
@@ -86,6 +90,7 @@ application/vnd.sun.xml.impress.template = presentation
 application/vnd.sun.xml.writer = wordprocessing
 application/vnd.sun.xml.writer.global = wordprocessing
 application/vnd.sun.xml.writer.template = wordprocessing
+audio/mpeg = sownd
 text/html = html
 text/plain = txt
 text/x-mail = message
diff --git a/src/sampleconf/mimemap b/src/sampleconf/mimemap
index ee6a655f..4a4230c0 100644
--- a/src/sampleconf/mimemap
+++ b/src/sampleconf/mimemap
@@ -1,4 +1,4 @@
-# @(#$Id: mimemap,v 1.12 2006-03-20 09:54:09 dockes Exp $  (C) 2004 J.F.Dockes
+# @(#$Id: mimemap,v 1.13 2006-03-28 09:38:13 dockes Exp $  (C) 2004 J.F.Dockes
 
 # Recoll: associations of file name extensions to mime types
 .txt = text/plain
@@ -49,6 +49,7 @@
 .wpd = application/vnd.wordperfect
 .rtf = text/rtf
 
+.mp3 = audio/mpeg
 
 # A list of stuff that we don't want to touch at all (for now). Having the
 # suffixes listed in there speeds up things quite a lot by avoiding