1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
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()
|