#!/usr/bin/env python
# -*- coding: utf-8 -*-
-# Debian-Depends: poppler-utils (pdftotext)
+# Copyright © 2014 AUF
+# Licence: GPL-2
+# Author: Progfou <jean-christophe.andre@auf.org>
+# Created: 2014-01-31
+# Debian-Depends: python (>= 2.6), poppler-utils (pdftotext)
import sys
+import os
+import os.path
from subprocess import Popen, PIPE
-if len(sys.argv) < 2:
- sys.exit(0)
-
-for filename in sys.argv[1:]:
- olddir = os.getcwd()
- os.chdir(os.path.dirname(filename))
+for filename in os.getenv("NAUTILUS_SCRIPT_SELECTED_FILE_PATHS", "").split("\n"):
+ newdir = os.path.dirname(filename)
+ if newdir:
+ olddir = os.getcwd()
+ os.chdir(newdir)
filename = os.path.basename(filename)
+ root, ext = os.path.splitext(filename)
+ # FIXME: vérifier plutôt le type MIME
+ if ext.lower() != ".pdf":
+ continue
+ # conversion
+ out_filename = root + ".txt"
p1 = Popen(["/usr/bin/pdftotext", filename, "-"], stdout=PIPE)
p2 = Popen(["/bin/sed", "-e", "s|\t\r | |g;s|-‐|–|g;s| \+| |g"], stdin=p1.stdout, stdout=PIPE)
p1.stdout.close() # Allow p1 to receive a SIGPIPE if p2 exits.
output = p2.communicate()[0]
- file(filename + '.txt', 'wt').write(output)
- os.chdir(olddir)
+ file(out_filename, 'wt').write(output)
+ if newdir:
+ os.chdir(olddir)
sys.exit(0)