fread/falter.py

73 lines
1.3 KiB
Python
Raw Normal View History

2017-02-06 23:46:26 +00:00
#!/usr/bin/env python3
import errno, fpdf, os, os.path, PIL, urllib.request
def getPage(issue, page):
try:
f = urllib.request.urlopen("https://www.falter.at/falter/e-paper/fetch/%i/%i.jpg" % (issue, page))
with open("%i/%i.jpg" % (issue, page), "b+w") as o:
o.write(f.read())
except urllib.error.HTTPError:
return False
def makeDir(issue):
try:
os.makedirs(str(issue))
return True
except OSError as e:
if e.errno != errno.EEXIST:
raise
return False
def makePDF(issue, pages):
cover = PIL.Image.open("%i/1.jpg" % issue)
x, y = cover.size
pdf = fpdf.FPDF(unit = "pt", format = [x, y])
for page in range(pages):
pdf.add_page()
pdf.image("%i/%i.jpg" % (issue, page + 1), 0, 0)
pdf.output("%i/issue.pdf" % issue, "F")
def getIssue(issue, makepdf = True):
if makeDir(issue):
i = 1
while getPage(issue, i) is not False:
i += 1
if i == 1:
os.rmdir(str(issue))
2017-02-06 23:46:26 +00:00
return False
if i < 5:
print("[NOTICE] Incomplete issue: %i" % issue)
if makepdf:
makePDF(issue, i-1)
else:
print("[NOTICE] Skipping issue: %i (already exists)" % issue)
2017-02-06 23:46:26 +00:00
def getterLoop(start = 53):
i = start
j = 0
while j < 5:
if getIssue(i) is False:
j += 1
2017-02-07 00:02:15 +00:00
print("[NOTICE] Skipping issue: %i (not found - %i)" (i, j))
else:
j = 0
2017-02-06 23:46:26 +00:00
i += 1
if __name__ == "__main__":
getterLoop()