From b6f35e9ebd7766416491af0bdfed27cfbc77e450 Mon Sep 17 00:00:00 2001 From: fred Date: Wed, 13 Sep 2023 18:26:51 +0200 Subject: [PATCH] OSM2IPFS screenshot is working --- API/UPLANET.sh | 9 +++++---- tools/page_screenshot.py | 28 ++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 4 deletions(-) create mode 100755 tools/page_screenshot.py diff --git a/API/UPLANET.sh b/API/UPLANET.sh index cc9099c2..a02ec3d8 100755 --- a/API/UPLANET.sh +++ b/API/UPLANET.sh @@ -191,11 +191,12 @@ echo "" > ~/.zen/ echo "" > ~/.zen/tmp/${MOATS}/Usat.html ## COPY MAP IMAGE ## TODO find a better crawling method (pb tiles are not fully loaded before screenshot) -chromium --headless --disable-gpu --screenshot=/tmp/Umap.jpg --window-size=1200x1200 "${myIPFS}${UMAPGEN}" -chromium --headless --disable-gpu --screenshot=/tmp/Umap.png --window-size=1200x1200 "${myIPFS}${UMAPGEN}" +python ${MY_PATH}/../page_screenshot.py "${myIPFS}${UMAPGEN}" /tmp/Umap.jpg 900 900 +# chromium --headless --disable-gpu --screenshot=/tmp/Umap.png --window-size=1200x1200 "${myIPFS}${UMAPGEN}" + ## COPY SAT IMAGE -chromium --headless --disable-gpu --screenshot=/tmp/Usat.jpg --window-size=1200x1200 "${myIPFS}${USATGEN}" -chromium --headless --disable-gpu --screenshot=/tmp/Usat.png --window-size=1200x1200 "${myIPFS}${USATGEN}" +python ${MY_PATH}/../page_screenshot.py "${myIPFS}${USATGEN}" /tmp/Usat.jpg 900 900 +# chromium --headless --disable-gpu --screenshot=/tmp/Usat.png --window-size=1200x1200 "${myIPFS}${USATGEN}" ## CREATE HTML for LAST of U Keys echo "" > ~/.zen/tmp/${MOATS}/UCard.html diff --git a/tools/page_screenshot.py b/tools/page_screenshot.py new file mode 100755 index 00000000..dd267c38 --- /dev/null +++ b/tools/page_screenshot.py @@ -0,0 +1,28 @@ +import asyncio +import sys +from pyppeteer import launch + +async def take_screenshot(url, output_file, width, height): + browser = await launch(headless=True) + page = await browser.newPage() + + try: + await page.setViewport({'width': width, 'height': height}) # Set the viewport size + await page.goto(url, waitUntil='networkidle2') + await page.screenshot({'path': output_file}) + except Exception as e: + print(f"An error occurred: {e}") + finally: + await browser.close() + +if __name__ == "__main__": + if len(sys.argv) != 5: + print("Usage: python page_screenshot.py ") + sys.exit(1) + + url = sys.argv[1] + output_file = sys.argv[2] + width = int(sys.argv[3]) + height = int(sys.argv[4]) + + asyncio.get_event_loop().run_until_complete(take_screenshot(url, output_file, width, height))