summaryrefslogtreecommitdiffstats
path: root/splitter.py
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2012-08-11 01:45:47 +0200
committerJason A. Donenfeld <Jason@zx2c4.com>2012-08-11 01:45:47 +0200
commitffd5c3e5396d8d5b8dd4f2a56711bc559ef57b47 (patch)
treed0d0ee0c6eb6fe288393af14e35554e24a46283c /splitter.py
downloadrealbook-splitter-master.tar.xz
realbook-splitter-master.zip
Initial commit.HEADmaster
Diffstat (limited to 'splitter.py')
-rw-r--r--splitter.py113
1 files changed, 113 insertions, 0 deletions
diff --git a/splitter.py b/splitter.py
new file mode 100644
index 0000000..9bd45c9
--- /dev/null
+++ b/splitter.py
@@ -0,0 +1,113 @@
+from sys import argv
+from pyPdf import PdfFileWriter, PdfFileReader
+
+songs = []
+f = open(argv[1], "r")
+for i in f:
+ i = i.strip()
+ a = i.split(" ")
+ name = " ".join(a[0:-2])
+ book = a[-2]
+ try:
+ page = int(a[-1])
+ except:
+ continue
+
+ songs.append({
+ 'name': name,
+ 'page': page,
+ 'book': book
+ })
+
+bookmap = {
+ 'Colorado': {
+ 'file': 'COLORADO BOOK.PDF',
+ 'pages': 292,
+ 'offset': 3
+ },
+ 'JazzLTD': {
+ 'file': 'JAZZ LTD BOOK.PDF',
+ 'pages': 402,
+ 'offset': 7
+ },
+ 'RealBk3': {
+ 'file': 'REAL BOOK III.PDF',
+ 'pages': 366,
+ 'offset': 5
+ },
+ 'JazzFake': {
+ 'file': 'JAZZ FAKE BOOK.PDF',
+ 'pages': 448,
+ 'offset': -1
+ },
+ 'EvansBk': {
+ 'file': 'BILL EVANS FAKE BOOK.PDF',
+ 'pages': 106,
+ 'offset': 3
+ },
+ 'Library': {
+ 'file': 'LIBRARY.PDF',
+ 'pages': 217,
+ 'offset': 4
+ },
+ 'RealBk1': {
+ 'file': 'REAL BOOK I.PDF',
+ 'pages': 512,
+ 'offset': 13
+ },
+ 'NewReal2': {
+ 'file': 'NEW REAL BOOK II.PDF',
+ 'pages': 497,
+ 'offset': 12
+ },
+ 'NewReal3': {
+ 'file': 'NEW REAL BOOK III.PDF',
+ 'pages': 448,
+ 'offset': 10
+ },
+ 'RealBk2': {
+ 'file': 'REAL BOOK II.PDF',
+ 'pages': 422,
+ 'offset': 7
+ },
+ 'NewReal1': {
+ 'file': 'NEW REAL BOOK I.PDF',
+ 'pages': 453,
+ 'offset': 15
+ }
+}
+
+def nice_name(name):
+ if name[0] == "'":
+ name = name[1:]
+ return name.replace("/", "-")
+
+prefix = "/mnt/multimedia/Books/Real Book/"
+destination = "/home/zx2c4/Real Split/"
+
+for book in bookmap.keys():
+ input = PdfFileReader(file(prefix + bookmap[book]["file"], "rb"))
+ for song in songs:
+ if song["book"] != book:
+ continue
+ print song
+ page = song["page"] + bookmap[song["book"]]["offset"] - 1
+ span = 999999
+ for song2 in songs:
+ if song["book"] != song2["book"] or song == song2:
+ continue
+ page2 = song2["page"] + bookmap[song2["book"]]["offset"] - 1
+ diff = page2 - page
+ if diff <= 0:
+ continue
+ if diff < span:
+ span = diff
+ if page + span > bookmap[book]["pages"]:
+ span = bookmap[book]["pages"] - page
+ output = PdfFileWriter()
+ for i in xrange(0, span):
+ output.addPage(input.getPage(page + i))
+ output_stream = file("%s%s [%s].pdf" % (destination, nice_name(song["name"]), song["book"]), "wb")
+ output.write(output_stream)
+ output_stream.close()
+ \ No newline at end of file