Well, this actually seems to work.

This commit is contained in:
Klaus-Uwe Mitterer 2017-07-17 17:48:41 +02:00
parent e069cb3788
commit 8d0c778354
2 changed files with 18 additions and 16 deletions

View file

@ -1,4 +1,4 @@
import errno, os, PIL, fpdf
import errno, os, PIL, fpdf, urllib.request
JPG = 0
PNG = 1
@ -14,8 +14,8 @@ def makeDir(issue):
return False
def makePDF(issue, pages, type = JPG):
ext = "jpg" if type == JPG else "png"
def makePDF(issue, pages, ftype = JPG):
ext = "jpg" if ftype == JPG else "png"
cover = PIL.Image.open("%s/1.%s" % (str(issue), ext))
x, y = cover.size
@ -27,9 +27,8 @@ def makePDF(issue, pages, type = JPG):
pdf.output("%s/issue.pdf" % str(issue), "F")
def downloadPage(canvas, issue, page, driver):
b64 = driver.execute_script("return arguments[0].toDataURL('image/png').substring(21);", canvas)
with open("%s/%i.png" % (str(issue), int(page)), "b+w") as o:
o.write(b64)
def downloadPage(url, issue, page, ftype = JPG):
f = urllib.request.urlopen(url)
with open("%s/%i.%s" % (str(issue), int(page), "jpg" if ftype == JPG else "png"), "b+w") as o:
o.write(f.read())

View file

@ -18,6 +18,8 @@ def loadPage(url, driver, period=5,init=False):
driver.get(url)
time.sleep(period)
print(url, driver.current_url)
return True if driver.current_url == url else False
def loginHandler(driver, user = setuptools.riuser(), password = setuptools.ripass()):
@ -46,17 +48,18 @@ def pageHandler(driver, id, page):
if not loadPage("https://app.myreadit.com/reader/%s#%i" % (id, int(page)), driver):
return False
img = driver.find_element_by_id("page1").get_attribute("src")
helpers.downloadPage(img, id, page, helpers.JPG)
try:
img = driver.find_element_by_tag_name("canvas")
helpers.downloadPage(img, id, page)
img2 = driver.find_element_by_id("page2").get_attribute("src")
helpers.downloadPage(img2, id, page + 1, helpers.JPG)
return 2
except:
print(driver.page_source)
driver.save_screenshot("screenshot.png")
raise
return 1
return 1 if page == 1 else 2
def magazineHandler(driver, id, makepdf = True):
if helpers.makeDir(id):
loginHandler(driver)
@ -68,7 +71,7 @@ def magazineHandler(driver, id, makepdf = True):
val = pageHandler(driver, id, page + 1)
if makepdf:
helpers.makePDF(id, page, helpers.PNG)
helpers.makePDF(id, page, helpers.JPG)
else:
print("[NOTICE] Skipping issue %s - already exists." % id)