// Name: Watch Screenshots Dir // Watch: ~/Desktop/screenshots // Description: Don't forget to run following command in your terminal to set default screenshot directory in macOSX: defaults write com.apple.screencapture location ~/Desktop/screenshots import "@johnlindquist/kit"; import cloudinary from "cloudinary"; import trash from "trash"; const DIR = "screenshots"; const NOTIFY_SOUND_FILE_PATH = false; // home("Desktop/come-here-notification.mp3"); const CUSTOM_DOMAIN = false; // 'https://vojta.io/shots/' // These are optional and automatically set by the watcher let filePath = await arg(); let event = await arg(); // Cloudinary options const options = { public_id: `${DIR}/${Date.now()}`, unique_filename: true, use_filename: true, overwrite: true, filename_override: true, }; cloudinary.v2.config({ cloud_name: await env("CLOUDINARY_CLOUD_NAME"), api_key: await env("CLOUDINARY_API_KEY"), api_secret: await env("CLOUDINARY_API_SECRET"), }); // if file is added to DIR directory if (event === "add") { await appendFile(home(`Desktop/${DIR}/download.log`), filePath + "\n"); const isVideoFile = filePath.endsWith(".mov"); await cloudinary.v2.uploader.upload( filePath, { ...options, resource_type: isVideoFile ? "video" : "image" }, async (error, result) => { if (error) { console.error("Error uploading file:", error); } else { if (result) { await copy( CUSTOM_DOMAIN ? `${CUSTOM_DOMAIN}${result.public_id.replace(`${DIR}/`, "")}` : isVideoFile ? result.url.replace(".mov", ".mp4") : result.url ); notify("✓ Uploaded to Cloudinary"); NOTIFY_SOUND_FILE_PATH && (await playAudioFile(NOTIFY_SOUND_FILE_PATH)); await trash([filePath]); } } } ); }