OSM2IPFS screenshot is working

This commit is contained in:
fred 2023-09-13 18:26:51 +02:00
parent bf22b7968e
commit b6f35e9ebd
2 changed files with 33 additions and 4 deletions

View File

@ -191,11 +191,12 @@ echo "<meta http-equiv=\"refresh\" content=\"0; url='${UMAPGEN}'\" />" > ~/.zen/
echo "<meta http-equiv=\"refresh\" content=\"0; url='${USATGEN}'\" />" > ~/.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 "<img src=G1Card.${EMAIL}.jpg \>" > ~/.zen/tmp/${MOATS}/UCard.html

28
tools/page_screenshot.py Executable file
View File

@ -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 <URL> <output_file> <width> <height>")
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))