magic.lambda.puppeteer

The magic.lambda.puppeteer project provides headless Chromium automation slots for Magic using PuppeteerSharp. It uses an explicit session model: [puppeteer.connect] returns a session_id, and every other slot requires that session_id. There is no scoped context or .lambda usage.

Thread safety: This library is not thread safe. Do not use the same session_id concurrently across threads.

Sessions use sliding expiration. By default they expire after 15 minutes of inactivity, and are always closed after 2 hours total lifetime. A maximum of 5 concurrent sessions is allowed globally per cloudlet.

Combination examples

Get title and URL from a page, then close the session.

.session_id
set-value:x:@.session_id
   puppeteer.connect

puppeteer.goto:x:@.session_id
   url:"https://ainiro.io"

puppeteer.title:x:@.session_id
puppeteer.url:x:@.session_id

puppeteer.close:x:@.session_id

Fetch page HTML and save a screenshot.

.session_id
set-value:x:@.session_id
   puppeteer.connect

puppeteer.goto:x:@.session_id
   url:"https://ainiro.io/contact-us"

puppeteer.content:x:@.session_id
puppeteer.screenshot:x:@.session_id
   filename:"/etc/tmp/ainiro-contact.png"
   full-page:true

puppeteer.close:x:@.session_id