Skip to main content

Hi all,

I've found a script that I've used as a script app to compress all of the images in my tables. Now I would like to turn that into an automation, so when I upload a new image it will use my tinypng account's api to compress the image. I've changed the script a bit in order for it to work as an automation but I don't know how to fix this error. 

My code:

 

// Modify these to your own values.
let tinyPngApiKey = '00000';
let airtableAttachmentSource = 'Billeder';
let airtableAttachmentDestination = 'Billeder';
let airtableColumnToLog = 'Billeder';

// Don't change these unless you know what you're doing.
let table = base.getTable("Anlæg");
let view = table.getView("Alle anlæg");
let queryResult = await view.selectRecordsAsync();

for (let record of queryResult.records) {
let attachments = record.getCellValue(airtableAttachmentSource);
let compressedImageUrls = =];

if (attachments && attachments.length > 0) {
// Iterate through each attachment in the field.
for (let ti, attachment] of attachments.entries()) {
let recordAttachmentUrl = attachmentn'url'];

console.log(`Compressing ${record.getCellValue(airtableColumnToLog)} (Image ${i + 1})`);

let request = await fetch('https://api.tinify.com/shrink', {
body: JSON.stringify({'source': {'url': recordAttachmentUrl}}),
headers: {
Authorization: 'Basic ' + btoa('api:' + tinyPngApiKey),
'Content-Type': 'application/json'
},
method: 'POST'
})

const json = await request.json();

// Checks that the API didn't fail.
if (request.status == 201) {
let percentReduced = Math.round((1 - json.output.ratio) * 100);
let kbReduced = (json.input.size - json.output.size) / 1024;

console.log('Panda just saved you ' + percentReduced + '% (' + Math.round(kbReduced) + 'KB).');

// Add the compressed image URL to the array.
compressedImageUrls.push({ url: jsono'output']''url'] });
}
}

// Update the record with all the compressed image URLs.
await table.updateRecordAsync(record.id, {
airtableAttachmentDestination]: compressedImageUrls,
});
}
}

 

 Any help would be much appreciated. 

Thanks

Reply