diff --git a/helpers/__init__.py b/helpers/__init__.py index 736153b..54e08ab 100644 --- a/helpers/__init__.py +++ b/helpers/__init__.py @@ -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()) diff --git a/readit.py b/readit.py index aa1ca6f..484f583 100755 --- a/readit.py +++ b/readit.py @@ -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)