jomalo.paste.lol / post-to-pastebin-listed · 4 months ago·

// Storing the omg.lol credentials in Draft's Credential instead of the action code directly
var credential = Credential.create("omg.lol status", "Keep privately your omg.lol API key and your username");
credential.addTextField("omg_username", "Your username");
credential.addPasswordField("omg_api_key", "API Key");
credential.authorize();

// We'll get the values and store them in our own variables
let omg_api_key = credential.getValue("omg_api_key")
let omg_username = credential.getValue("omg_username")

// Get the safe title of the current Draft and replace spaces with -
var slugText = draft.processTemplate("Link content slug");
var slug = slugText.toLowerCase()
  .replace(/["'=:!?@£#$%&\*\(\)\[\]_\+\|;~`<>,\.]+/g, '')
  .replace(/ +/g,'-');
let title = slug

// Get the body of the of the current Draft removing empty line before and after
let content = draft.processTemplate("[[trimmed_body]]")

// Create paste.lol direct link and copy to clipboard
let link = "https://"+omg_username+".paste.lol/"+title
let clipboard = app.setClipboard(link)

// Check if paste exists 
// API - https://api.omg.lol/#noauth-get-pastebin-retrieve-a-specific-paste

//   var http = HTTP.create();
//   var response = http.request({
//     "url": "https://api.omg.lol/address/" + omg_username + "/pastebin",
//     "method": "GET"
//   });

//  If above request.success = true 
//    show title already exists error dialog 
//      Click OK to return to your draft
//  else 
//    continue with script

// use https://api.omg.lol/address/jomalo/pastebin/post-to-pastebin to verify

// Confirming there is more than one line in the current Draft then submit to the omg.lol pastebin :)
// This creates a public paste - remove "listed": 1 for private
// Should be made into a public Yes|No dialog 
if (title !== '' && content!== '') {
  var http = HTTP.create();
  var response = http.request({
    "url": "https://api.omg.lol/address/" + omg_username + "/pastebin",
    "method": "POST",
    "data": {
      "title": title,
      "content": content,
      "listed": 1
    },
    "headers": {
      "Authorization": "Bearer " + omg_api_key
    }
  });
}