IntermediateAutomation Engine v1

Media

Media current/quoted memakai opaque signed ref dan didownload on-demand hanya ketika capability benar-benar membutuhkan binary.

Current dan quoted media

js
terima: {
  nama: "media",
  sumber: [
    "message.media",
    "message.quoted.media"
  ],
  tipe: ["gambar", "video"],
  wajib: true
}
  • Gambar dengan caption `.sticker` → current media dipakai langsung.
  • Reply gambar lalu `.sticker` → quoted media dipakai langsung.
  • `.sticker` tanpa media → flow dapat menunggu media berikutnya melalui session continuation.

Jenis reference

RefMakna
wam_...Signed opaque inbound WhatsApp media reference.
med_...Media upload/reference lokal PN3KN yang sudah tersimpan sementara.

Binary tidak dimasukkan ke GatewayScript. Signed inbound ref terikat pada context user/device/message sehingga tidak dapat dipakai sebagai path filesystem.

On-demand resolver

text
message.media.ref (wam_...)
        ↓ capability media.read()
Baileys worker pemilik device
        ↓ downloadMediaMessage()
temporary PN3KN media storage
        ↓ med_...
plugin receives Buffer

Hasil resolve dapat di-cache per inbound message agar capability berikutnya tidak mendownload ulang media yang sama.

Media helper untuk plugin

js
const source = await media.read(input.sumber)
const output = await process(source.buffer)
const saved = await media.save({
  buffer: output,
  fileName: "output.webp",
  mimeType: "image/webp"
})

return { sticker: saved }

Outbound flow

  • text
  • image
  • video
  • audio
  • document
  • sticker
  • location

Output media dari capability biasanya disimpan sebagai `{hasil.xxx}` lalu diberikan ke node `kirim`.