Action

Send to OF Inbox 3

Posted by @sylumer, Last update over 2 years ago - Unlisted

Steps

  • script

    const baseURL = "omnifocus:///paste";
    
    //replace any placeholder if they exist
    let known_placeholders = {};
    let placeholders = [];
    
    let draftsContent = draft.content;
    let matches = draftsContent.match(/«(.+?)»/g);
    
    for (match in matches) {
    	let placeholder = matches[match];
    	known_placeholders[placeholder] = null;
    	placeholders.push(placeholder);
    }
    
    if (placeholders.length === 0) {
    	let alert = Prompt.create();
    	alert.title = "No template placeholders were found.";
    	alert.body = "If your project text has placeholders (that look like «this»), this script will prompt for values you'd like to substitute for them.";
    	let alertCancelled = alert.addButton("Continue Anyway");
    	if (alertCancelled === false) {
    		cancel("User cancelled the script");
    	}
    }	else {
    	for (let placeholder in known_placeholders) {
    		let showPlaceholder = placeholder.replace("«", "").replace("»", "");
    		let placeholderQuery = Prompt.create();
    		placeholderQuery.title = placeholder;
    		placeholderQuery.addTextField("placeholder", "", showPlaceholder);
    		placeholderQuery.addButton("OK");
    		placeholderQuery.isCancellable = false;
    		placeholderQuery.show();
    
    		draftsContent = draftsContent.replace(new RegExp(placeholder, 'g'), placeholderQuery.fieldValues["placeholder"]);
    }
    }
    //send this to OmniFocus
    let cb = CallbackURL.create();
    cb.baseURL = baseURL;
    cb.addParameter("content", draftsContent + "%20@tags(foo)");
    // open and wait for result
    let success = cb.open();
    if (success) {
    	console.log("Taskpaper added to OF")
    } else { // something went wrong or was cancelled
      	console.log(cb.status);
      	if (cb.status == "cancel") {
    		context.cancel();
    	}
    	else {
    		context.fail();
    	}
    }

Options

  • After Success Default , Tags: now
    Notification Info
    Log Level Info
Items available in the Drafts Directory are uploaded by community members. Use appropriate caution reviewing downloaded items before use.