summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorPieter Goetschalckx2016-06-11 21:53:07 +0200
committerPieter Goetschalckx2016-06-11 21:53:07 +0200
commit7a8aff407adb46dc4ecb3b0abaab3c808031badc (patch)
tree17a0ce7a453cbabfebd21d35bb8f4373357c8298
downloadaur-7a8aff407adb46dc4ecb3b0abaab3c808031badc.tar.gz
Initial import
-rw-r--r--.SRCINFO15
-rw-r--r--PKGBUILD27
-rwxr-xr-xaudiotag-thumbnailer74
-rw-r--r--audiotag-thumbnailer.install19
-rw-r--r--audiotag-thumbnailer.schemas136
5 files changed, 271 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..904f830f1c83
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,15 @@
+pkgbase = audiotag-thumbnailer
+ pkgdesc = A nautilus thumbnailer for MP3 and OGG files
+ pkgver = 0.1
+ pkgrel = 1
+ install = audiotag-thumbnailer.install
+ arch = any
+ license = custom:WTFPL
+ depends = mutagen
+ source = audiotag-thumbnailer
+ source = audiotag-thumbnailer.schemas
+ sha256sums = f58b15d8702b1fc0a91fe8e4949df7d23f85290b41c0004c490102b3593e339e
+ sha256sums = 978074b71b4a2ea9ad17890b23ef27733e2567414d6e87defdd562c1a36affbc
+
+pkgname = audiotag-thumbnailer
+
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..ba45d269f433
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,27 @@
+# Maintainer: Pieter Goetschalckx <3.14.e.ter <at> gmail <dot> com>
+# Contributor: solsTiCe d'Hiver <solstice.dhiver@gmail.com>
+
+pkgname=audiotag-thumbnailer
+pkgver=0.1
+pkgrel=1
+pkgdesc="A nautilus thumbnailer for MP3 and OGG files"
+arch=('any')
+url=""
+license=("custom:WTFPL")
+depends=('mutagen')
+install=$pkgname.install
+source=("$pkgname" "$pkgname.schemas")
+sha256sums=('f58b15d8702b1fc0a91fe8e4949df7d23f85290b41c0004c490102b3593e339e'
+ '978074b71b4a2ea9ad17890b23ef27733e2567414d6e87defdd562c1a36affbc')
+
+build() {
+ cd $srcdir
+ mkdir -p $pkgdir/usr/{share/gconf/schemas,bin}
+ install -m644 audiotag-thumbnailer.schemas $pkgdir/usr/share/gconf/schemas
+ install -m755 audiotag-thumbnailer $pkgdir/usr/bin
+}
+
+package () {
+ install -Dm644 "$pkgname.schemas" "$pkgdir/usr/share/gconf/schemas/$pkgname.schemas"
+ install -m755 "$pkgname" "$pkgdir/usr/bin/$pkgname"
+}
diff --git a/audiotag-thumbnailer b/audiotag-thumbnailer
new file mode 100755
index 000000000000..5e0245a9e2ed
--- /dev/null
+++ b/audiotag-thumbnailer
@@ -0,0 +1,74 @@
+#!/usr/bin/python
+
+# DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
+# Version 2, December 2004
+#
+# Copyright (C) 2011 solsTiCe d'Hiver <solstice.dhiver@gmail.com>
+# Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>
+#
+# Everyone is permitted to copy and distribute verbatim or modified
+# copies of this license document, and changing it is allowed as long
+# as the name is changed.
+#
+# DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
+# TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+#
+# 0. You just DO WHAT THE FUCK YOU WANT TO.
+
+import os
+import sys
+from PIL import Image
+from StringIO import StringIO
+import urllib
+import base64
+
+DEFAULT_SIZE = 192
+
+def get_img_ogg(filename, size=(DEFAULT_SIZE, DEFAULT_SIZE)):
+ from mutagen.oggvorbis import OggVorbis
+ ov = OggVorbis(filename)
+ pic = base64.b64decode(ov['coverart'][0])
+ #mimetype = ov['coverartmime']
+
+ img = Image.open(StringIO(pic))
+ img = img.resize(size, Image.ANTIALIAS)
+ return img
+
+def get_img_mp3(filename, size=(DEFAULT_SIZE, DEFAULT_SIZE)):
+ from mutagen.mp3 import MP3
+ mp3 = MP3(filename)
+ if mp3.has_key('APIC'):
+ apic = mp3.get('APIC')
+ else:
+ keys = mp3.keys()
+ found = False
+ for k in keys:
+ if k.startswith('APIC:'):
+ mykey = k
+ found = True
+ break
+ if found:
+ apic = mp3.get(mykey)
+ else:
+ sys.exit(1)
+
+ mimetype = apic.mime
+ img = Image.open(StringIO(apic.data))
+ img = img.resize(size, Image.ANTIALIAS)
+ return img
+
+IMG_EXTRACTOR_FUNC = {'.mp3':get_img_mp3, '.ogg':get_img_ogg}
+
+def get_img(filename, size=(DEFAULT_SIZE, DEFAULT_SIZE)):
+ path, ext = os.path.splitext(filename)
+ return IMG_EXTRACTOR_FUNC[ext.lower()](filename, size)
+
+if __name__ == '__main__':
+ # If we have 2 args
+ if len(sys.argv) == 3:
+ INPUT_FILE = urllib.url2pathname(sys.argv[1]).replace('file://', '')
+ OUTPUT_FILE = urllib.url2pathname(sys.argv[2]).replace('file://', '')
+ get_img(INPUT_FILE).save(OUTPUT_FILE, 'png')
+ else:
+ # usage
+ sys.exit(1)
diff --git a/audiotag-thumbnailer.install b/audiotag-thumbnailer.install
new file mode 100644
index 000000000000..5bcc7a6c8110
--- /dev/null
+++ b/audiotag-thumbnailer.install
@@ -0,0 +1,19 @@
+pkgname=audiotag-thumbnailer
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/audiotag-thumbnailer.schemas b/audiotag-thumbnailer.schemas
new file mode 100644
index 000000000000..44b567f4d525
--- /dev/null
+++ b/audiotag-thumbnailer.schemas
@@ -0,0 +1,136 @@
+<gconfschemafile>
+ <schemalist>
+ <schema>
+ <key>/schemas/desktop/gnome/thumbnailers/audio@x-mp3/enable</key>
+ <applyto>/desktop/gnome/thumbnailers/audio@x-mp3/enable</applyto>
+ <owner>audiotag-thumbnailer</owner>
+ <type>bool</type>
+ <default>true</default>
+ <locale name="C">
+ <short></short>
+ <long></long>
+ </locale>
+ </schema>
+ <schema>
+ <key>/schemas/desktop/gnome/thumbnailers/audio@x-mp3/command</key>
+ <applyto>/desktop/gnome/thumbnailers/audio@x-mp3/command</applyto>
+ <owner>audiotag-thumbnailer</owner>
+ <type>string</type>
+ <default>/usr/bin/audiotag-thumbnailer %u %o</default>
+ <locale name="C">
+ <short></short>
+ <long></long>
+ </locale>
+ </schema>
+ <schema>
+ <key>/schemas/desktop/gnome/thumbnailers/audio@mpeg/enable</key>
+ <applyto>/desktop/gnome/thumbnailers/audio@mpeg/enable</applyto>
+ <owner>audiotag-thumbnailer</owner>
+ <type>bool</type>
+ <default>true</default>
+ <locale name="C">
+ <short></short>
+ <long></long>
+ </locale>
+ </schema>
+ <schema>
+ <key>/schemas/desktop/gnome/thumbnailers/audio@mpeg/command</key>
+ <applyto>/desktop/gnome/thumbnailers/audio@mpeg/command</applyto>
+ <owner>audiotag-thumbnailer</owner>
+ <type>string</type>
+ <default>/usr/bin/audiotag-thumbnailer %u %o</default>
+ <locale name="C">
+ <short></short>
+ <long></long>
+ </locale>
+ </schema>
+ <schema>
+ <key>/schemas/desktop/gnome/thumbnailers/audio@x-vorbis@ogg/enable</key>
+ <applyto>/desktop/gnome/thumbnailers/audio@x-vorbis@ogg/enable</applyto>
+ <owner>audiotag-thumbnailer</owner>
+ <type>bool</type>
+ <default>true</default>
+ <locale name="C">
+ <short></short>
+ <long></long>
+ </locale>
+ </schema>
+ <schema>
+ <key>/schemas/desktop/gnome/thumbnailers/audio@x-vorbis@ogg/command</key>
+ <applyto>/desktop/gnome/thumbnailers/audio@x-vorbis@ogg/command</applyto>
+ <owner>audiotag-thumbnailer</owner>
+ <type>string</type>
+ <default>/usr/bin/audiotag-thumbnailer %u %o</default>
+ <locale name="C">
+ <short></short>
+ <long></long>
+ </locale>
+ </schema>
+ <schema>
+ <key>/schemas/desktop/gnome/thumbnailers/audio@ogg/enable</key>
+ <applyto>/desktop/gnome/thumbnailers/audio@ogg/enable</applyto>
+ <owner>audiotag-thumbnailer</owner>
+ <type>bool</type>
+ <default>true</default>
+ <locale name="C">
+ <short></short>
+ <long></long>
+ </locale>
+ </schema>
+ <schema>
+ <key>/schemas/desktop/gnome/thumbnailers/audio@ogg/command</key>
+ <applyto>/desktop/gnome/thumbnailers/audio@ogg/command</applyto>
+ <owner>audiotag-thumbnailer</owner>
+ <type>string</type>
+ <default>/usr/bin/audiotag-thumbnailer %u %o</default>
+ <locale name="C">
+ <short></short>
+ <long></long>
+ </locale>
+ </schema>
+ <schema>
+ <key>/schemas/desktop/gnome/thumbnailers/application@ogg/enable</key>
+ <applyto>/desktop/gnome/thumbnailers/application@ogg/enable</applyto>
+ <owner>audiotag-thumbnailer</owner>
+ <type>bool</type>
+ <default>true</default>
+ <locale name="C">
+ <short></short>
+ <long></long>
+ </locale>
+ </schema>
+ <schema>
+ <key>/schemas/desktop/gnome/thumbnailers/application@ogg/command</key>
+ <applyto>/desktop/gnome/thumbnailers/application@ogg/command</applyto>
+ <owner>audiotag-thumbnailer</owner>
+ <type>string</type>
+ <default>/usr/bin/audiotag-thumbnailer %u %o</default>
+ <locale name="C">
+ <short></short>
+ <long></long>
+ </locale>
+ </schema>
+ <schema>
+ <key>/schemas/desktop/gnome/thumbnailers/application@x-ogg/enable</key>
+ <applyto>/desktop/gnome/thumbnailers/application@x-ogg/enable</applyto>
+ <owner>audiotag-thumbnailer</owner>
+ <type>bool</type>
+ <default>true</default>
+ <locale name="C">
+ <short></short>
+ <long></long>
+ </locale>
+ </schema>
+ <schema>
+ <key>/schemas/desktop/gnome/thumbnailers/application@x-ogg/command</key>
+ <applyto>/desktop/gnome/thumbnailers/application@x-ogg/command</applyto>
+ <owner>audiotag-thumbnailer</owner>
+ <type>string</type>
+ <default>/usr/bin/audiotag-thumbnailer %u %o</default>
+ <locale name="C">
+ <short></short>
+ <long></long>
+ </locale>
+ </schema>
+ </schemalist>
+</gconfschemafile>