diff options
| author | 2012-08-11 01:45:47 +0200 | |
|---|---|---|
| committer | 2012-08-11 01:45:47 +0200 | |
| commit | ffd5c3e5396d8d5b8dd4f2a56711bc559ef57b47 (patch) | |
| tree | d0d0ee0c6eb6fe288393af14e35554e24a46283c /splitter.py | |
| download | realbook-splitter-master.tar.xz realbook-splitter-master.zip | |
Diffstat (limited to 'splitter.py')
| -rw-r--r-- | splitter.py | 113 |
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 |
