{"workflows": [{"url": "http://editorial-app.appspot.com/workflow/5892600095571968/LriB2ZUJ_dA", "workflow_data": {"username": "yt", "description": "Preserve Line Breaks was inspired by Brett Terpstra's Mac Service of the same name. To preserve a line break in iOS, markdown syntax requires that you type three spaces. But in iOS, typing two spaces generates a period, which drives me nuts. This workflow takes the text of a document, adds three spaces to the end of each line as required by Markdown, and the replaces the original text with the proper Markdown syntax. ", "actions": [{"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"foldedTextReplacement": "\u2026", "foldedTextOption": 0}, "class": "WorkflowActionGetEditorText"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"text": {"text": " ", "tokenRanges": {}, "type": "advancedText"}, "prefixOrSuffix": 1}, "class": "WorkflowActionPrefixSuffixLines"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"numberOfSteps": {"text": "1", "tokenRanges": {}, "type": "advancedText"}, "direction": 2, "unit": 0}, "class": "WorkflowActionExtendSelection"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"replacement": {"text": "?", "tokenRanges": {"{0, 1}": "Input"}, "type": "advancedText"}}, "class": "WorkflowActionReplaceSelectedText"}], "name": "Preserve Line Breaks", "version": "133001", "device": {"userInterfaceIdiom": 0, "model": "iPhone9,1", "systemVersion": "12.2"}, "type": "wkflw", "public": true, "icon": "TYPICONS-ALL_SPANNER.png"}, "install_url": "editorial://add-workflow?workflow-data=%7B%22username%22%3A%20%22yt%22%2C%20%22description%22%3A%20%22Preserve%20Line%20Breaks%20was%20inspired%20by%20Brett%20Terpstra%27s%20Mac%20Service%20of%20the%20same%20name.%20To%20preserve%20a%20line%20break%20in%20iOS%2C%20markdown%20syntax%20requires%20that%20you%20type%20three%20spaces.%20But%20in%20iOS%2C%20typing%20two%20spaces%20generates%20a%20period%2C%20which%20drives%20me%20nuts.%20This%20workflow%20takes%20the%20text%20of%20a%20document%2C%20adds%20three%20spaces%20to%20the%20end%20of%20each%20line%20%20as%20required%20by%20Markdown%2C%20and%20the%20replaces%20the%20original%20text%20with%20the%20proper%20Markdown%20syntax.%20%22%2C%20%22actions%22%3A%20%5B%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22foldedTextReplacement%22%3A%20%22%5Cu2026%22%2C%20%22foldedTextOption%22%3A%200%7D%2C%20%22class%22%3A%20%22WorkflowActionGetEditorText%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22text%22%3A%20%7B%22text%22%3A%20%22%20%20%20%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22prefixOrSuffix%22%3A%201%7D%2C%20%22class%22%3A%20%22WorkflowActionPrefixSuffixLines%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22numberOfSteps%22%3A%20%7B%22text%22%3A%20%221%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22direction%22%3A%202%2C%20%22unit%22%3A%200%7D%2C%20%22class%22%3A%20%22WorkflowActionExtendSelection%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22replacement%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22Input%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionReplaceSelectedText%22%7D%5D%2C%20%22name%22%3A%20%22Preserve%20Line%20Breaks%22%2C%20%22version%22%3A%20%22133001%22%2C%20%22device%22%3A%20%7B%22userInterfaceIdiom%22%3A%200%2C%20%22model%22%3A%20%22iPhone9%2C1%22%2C%20%22systemVersion%22%3A%20%2212.2%22%7D%2C%20%22type%22%3A%20%22wkflw%22%2C%20%22public%22%3A%20true%2C%20%22icon%22%3A%20%22TYPICONS-ALL_SPANNER.png%22%7D", "description": "Preserve Line Breaks was inspired by Brett Terpstra's Mac Service of the same name. To preserve a line break in iOS, markdown syntax requires that you type three spaces. But in iOS, typing two spaces generates a period, which drives me nuts. This workflow takes the text of a document, adds three spaces to the end of each line as required by Markdown, and the replaces the original text with the proper Markdown syntax. ", "title": "Preserve Line Breaks"}, {"url": "http://editorial-app.appspot.com/workflow/5882678989553664/3m-W1aVfnbo", "workflow_data": {"username": "yt", "description": "Shows a diff that compares the selected document with text in the clipboard. The diff is shown in the Preview panel.", "actions": [{"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"script": "#coding: utf-8\nimport workflow\nimport difflib\nimport clipboard\nimport re\nimport editor\nimport console\n\ndef main():\n\ttext1 = clipboard.get()\n\tif not text1:\n\t\tconsole.hud_alert('Clipboard Empty', 'error')\n\t\tworkflow.stop()\n\t\treturn\n\ttext2 = editor.get_text()\n\tif not text2:\n\t\tconsole.hud_alert('No Text in Editor', 'error')\n\t\tworkflow.stop()\n\t\treturn\n\td = difflib.Differ()\n\tlines1 = text1.splitlines()\n\tlines2 = text2.splitlines()\n\tout_lines = []\n\tdiff_lines = list(d.compare(lines1, lines2))\n\tfor i, line in enumerate(diff_lines):\n\t\tif line.startswith('+'):\n\t\t\tout_lines.append('
%s
' % line[2:])\n\t\telif line.startswith('-'):\n\t\t\tout_lines.append('
%s
' % line[2:])\n\t\telif line.startswith('?') and i > 0:\n\t\t\tprev_line = diff_lines[i-1]\n\t\t\tranges = [(m.start(), m.end()) for m in re.finditer(r'\\++|-+', line)]\n\t\t\tfor start, end in reversed(ranges):\n\t\t\t\tspan_tag = '' % ('deleted' if line[start] == '-' else 'added')\n\t\t\t\tprev_line = prev_line[:start] + span_tag + prev_line[start:end] + '' + prev_line[end:]\n\t\t\tpre_tag = '
' % ('added' if prev_line.startswith('+') else 'deleted')\n\t\t\tout_lines[i-1] = '%s%s
' % (pre_tag, prev_line[2:],)\n\t\t\tout_lines.append('')\n\t\telse:\n\t\t\tout_lines.append('
%s
' % line[2:])\n\t\n\tworkflow.set_output('\\n'.join(out_lines))\n\nmain()\n"}, "class": "WorkflowActionRunScript"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"html": {"text": "\n\n\n\n\n\n?\n\n", "tokenRanges": {"{763, 1}": "Input"}, "type": "advancedText"}, "baseURL": "", "title": "Diff"}, "class": "WorkflowActionShowHTMLPreview"}], "name": "Diff with Clipboard", "version": "133001", "device": {"userInterfaceIdiom": 0, "model": "iPhone9,1", "systemVersion": "12.2"}, "type": "wkflw", "public": true, "icon": "minicons-icons-file-layout.png"}, "install_url": "editorial://add-workflow?workflow-data=%7B%22username%22%3A%20%22yt%22%2C%20%22description%22%3A%20%22Shows%20a%20diff%20that%20compares%20the%20selected%20document%20with%20text%20in%20the%20clipboard.%20The%20diff%20is%20shown%20in%20the%20Preview%20panel.%22%2C%20%22actions%22%3A%20%5B%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22script%22%3A%20%22%23coding%3A%20utf-8%5Cnimport%20workflow%5Cnimport%20difflib%5Cnimport%20clipboard%5Cnimport%20re%5Cnimport%20editor%5Cnimport%20console%5Cn%5Cndef%20main%28%29%3A%5Cn%5Cttext1%20%3D%20clipboard.get%28%29%5Cn%5Ctif%20not%20text1%3A%5Cn%5Ct%5Ctconsole.hud_alert%28%27Clipboard%20Empty%27%2C%20%27error%27%29%5Cn%5Ct%5Ctworkflow.stop%28%29%5Cn%5Ct%5Ctreturn%5Cn%5Cttext2%20%3D%20editor.get_text%28%29%5Cn%5Ctif%20not%20text2%3A%5Cn%5Ct%5Ctconsole.hud_alert%28%27No%20Text%20in%20Editor%27%2C%20%27error%27%29%5Cn%5Ct%5Ctworkflow.stop%28%29%5Cn%5Ct%5Ctreturn%5Cn%5Ctd%20%3D%20difflib.Differ%28%29%5Cn%5Ctlines1%20%3D%20text1.splitlines%28%29%5Cn%5Ctlines2%20%3D%20text2.splitlines%28%29%5Cn%5Ctout_lines%20%3D%20%5B%5D%5Cn%5Ctdiff_lines%20%3D%20list%28d.compare%28lines1%2C%20lines2%29%29%5Cn%5Ctfor%20i%2C%20line%20in%20enumerate%28diff_lines%29%3A%5Cn%5Ct%5Ctif%20line.startswith%28%27%2B%27%29%3A%5Cn%5Ct%5Ct%5Ctout_lines.append%28%27%3Cpre%20class%3D%5C%22diffline%20added%5C%22%3E%25s%3C%2Fpre%3E%27%20%25%20line%5B2%3A%5D%29%5Cn%5Ct%5Ctelif%20line.startswith%28%27-%27%29%3A%5Cn%5Ct%5Ct%5Ctout_lines.append%28%27%3Cpre%20class%3D%5C%22diffline%20deleted%5C%22%3E%25s%3C%2Fpre%3E%27%20%25%20line%5B2%3A%5D%29%5Cn%5Ct%5Ctelif%20line.startswith%28%27%3F%27%29%20and%20i%20%3E%200%3A%5Cn%5Ct%5Ct%5Ctprev_line%20%3D%20diff_lines%5Bi-1%5D%5Cn%5Ct%5Ct%5Ctranges%20%3D%20%5B%28m.start%28%29%2C%20m.end%28%29%29%20for%20m%20in%20re.finditer%28r%27%5C%5C%2B%2B%7C-%2B%27%2C%20line%29%5D%5Cn%5Ct%5Ct%5Ctfor%20start%2C%20end%20in%20reversed%28ranges%29%3A%5Cn%5Ct%5Ct%5Ct%5Ctspan_tag%20%3D%20%27%3Cspan%20class%3D%5C%22%25s-highlight%5C%22%3E%27%20%25%20%28%27deleted%27%20if%20line%5Bstart%5D%20%3D%3D%20%27-%27%20else%20%27added%27%29%5Cn%5Ct%5Ct%5Ct%5Ctprev_line%20%3D%20prev_line%5B%3Astart%5D%20%2B%20span_tag%20%2B%20prev_line%5Bstart%3Aend%5D%20%2B%20%27%3C%2Fspan%3E%27%20%2B%20prev_line%5Bend%3A%5D%5Cn%5Ct%5Ct%5Ctpre_tag%20%3D%20%27%3Cpre%20class%3D%5C%22diffline%20%25s%5C%22%3E%27%20%25%20%28%27added%27%20if%20prev_line.startswith%28%27%2B%27%29%20else%20%27deleted%27%29%5Cn%5Ct%5Ct%5Ctout_lines%5Bi-1%5D%20%3D%20%27%25s%25s%3C%2Fpre%3E%27%20%25%20%28pre_tag%2C%20prev_line%5B2%3A%5D%2C%29%5Cn%5Ct%5Ct%5Ctout_lines.append%28%27%27%29%5Cn%5Ct%5Ctelse%3A%5Cn%5Ct%5Ct%5Ctout_lines.append%28%27%3Cpre%20class%3D%5C%22common%5C%22%3E%25s%3C%2Fpre%3E%27%20%25%20line%5B2%3A%5D%29%5Cn%5Ct%5Cn%5Ctworkflow.set_output%28%27%5C%5Cn%27.join%28out_lines%29%29%5Cn%5Cnmain%28%29%5Cn%22%7D%2C%20%22class%22%3A%20%22WorkflowActionRunScript%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22html%22%3A%20%7B%22text%22%3A%20%22%3C%21DOCTYPE%20html%3E%5Cn%3Chtml%3E%5Cn%3Chead%3E%3Cmeta%20charset%3D%5C%22utf-8%5C%22%2F%3E%5Cn%3Cstyle%20type%3D%5C%22text%2Fcss%5C%22%3E%5Cnbody%20%7B%5Cn%5Ctbackground-color%3A%20%23f6f6f6%3B%5Cn%5Ctcolor%3A%20%23333%3B%5Cn%5Ctmargin%3A%2016px%3B%5Cn%7D%5Cnpre%20%7B%5Cn%5Ctfont-family%3A%20Menlo%2C%20monospace%3B%5Cn%5Ctwhite-space%3A%20pre-wrap%3B%5Cn%5Ctmargin-top%3A%200%3B%5Cn%5Ctmargin-bottom%3A%200%3B%5Cn%5Ctoverflow%3A%20hidden%3B%5Cn%7D%5Cnpre.diffline%20%7B%5Cn%5Ctborder-width%3A%200%200%200%208px%3B%5Cn%5Ctmargin-left%3A%20-16px%3B%5Cn%5Ctmargin-right%3A%20-16px%3B%5Cn%5Ctpadding-right%3A%2016px%3B%5Cn%5Ctpadding-left%3A%208px%3B%5Cn%5Ctborder-style%3A%20solid%3B%5Cn%7D%5Cn.added%20%7B%5Cn%5Ctcolor%3A%20green%3B%5Cn%5Ctbackground-color%3A%20%23f4fbef%3B%5Cn%5Ctborder-color%3A%20%23c9ffb3%3B%5Cn%7D%5Cn.deleted%20%7B%5Cn%5Ctcolor%3A%20%23820e03%3B%5Cn%5Ctbackground-color%3A%20%23fbefef%3B%5Cn%5Ctborder-color%3A%20%23ffb3b4%3B%5Cn%7D%5Cn.deleted-highlight%20%7B%5Cn%5Ctbackground-color%3A%20%23ffb3b4%3B%5Cn%5Ctborder-radius%3A%203px%3B%5Cn%7D%5Cn.added-highlight%20%7B%5Cn%5Ctbackground-color%3A%20%23c9ffb3%3B%5Cn%5Ctborder-radius%3A%203px%3B%5Cn%7D%5Cn.common%20%7B%5Cn%5Ctcolor%3A%20%23999%3B%5Cn%7D%5Cn%3C%2Fstyle%3E%5Cn%3C%2Fhead%3E%5Cn%3Cbody%3E%5Cn%3F%5Cn%3C%2Fbody%3E%5Cn%3C%2Fhtml%3E%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B763%2C%201%7D%22%3A%20%22Input%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22baseURL%22%3A%20%22%22%2C%20%22title%22%3A%20%22Diff%22%7D%2C%20%22class%22%3A%20%22WorkflowActionShowHTMLPreview%22%7D%5D%2C%20%22name%22%3A%20%22Diff%20with%20Clipboard%22%2C%20%22version%22%3A%20%22133001%22%2C%20%22device%22%3A%20%7B%22userInterfaceIdiom%22%3A%200%2C%20%22model%22%3A%20%22iPhone9%2C1%22%2C%20%22systemVersion%22%3A%20%2212.2%22%7D%2C%20%22type%22%3A%20%22wkflw%22%2C%20%22public%22%3A%20true%2C%20%22icon%22%3A%20%22minicons-icons-file-layout.png%22%7D", "description": "Shows a diff that compares the selected document with text in the clipboard. The diff is shown in the Preview panel.", "title": "Diff with Clipboard"}, {"url": "http://editorial-app.appspot.com/workflow/5793900337823744/4r5gTirQsDc", "workflow_data": {"username": "", "description": "Workflow for transferring files from Working Copy to Editorial and back again.\n\nWhen called with input, it will pick the filename from the first line and write the other lines into this file, which lets Working Copy create a new file with predefined content. The filename contains a unique identifier for remembering where it belongs. To avoid overwriting files in Editorial by mistake, the previous contents of files are put in WorkingCopy.bak\n\nWhen this workflow is called without any input the contents of the current file is written back to Working Copy.\n\nChange askcommit variable to 0 if you just want to save and not be asked to commit.\n\nTo install a new version of this workflow delete or rename this one and perform Edit in Editorial from Working Copy.", "actions": [{"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"name": "all", "value": {"text": "?", "tokenRanges": {"{0, 1}": "Input"}, "type": "advancedText"}}, "class": "WorkflowActionStoreVariable"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"expression1": {"text": "?", "tokenRanges": {"{0, 1}": "all"}, "type": "advancedText"}, "expression2": {"text": "", "tokenRanges": {}, "type": "advancedText"}, "comparisonType": 0}, "class": "WorkflowActionCondition"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"name": "key", "value": {"text": "7UXXJE9HLY", "tokenRanges": {}, "type": "advancedText"}}, "class": "WorkflowActionStoreVariable"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"name": "askcommit", "value": {"text": "1", "tokenRanges": {}, "type": "advancedText"}}, "class": "WorkflowActionStoreVariable"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"name": "path", "value": {"text": "?", "tokenRanges": {"{0, 1}": "%editor:filename"}, "type": "advancedText"}}, "class": "WorkflowActionStoreVariable"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"expression1": {"text": "?", "tokenRanges": {"{0, 1}": "%editor:file-extension"}, "type": "advancedText"}, "expression2": {"text": "", "tokenRanges": {}, "type": "advancedText"}, "comparisonType": 1}, "class": "WorkflowActionCondition"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"name": "path", "value": {"text": "?.?", "tokenRanges": {"{0, 1}": "%editor:filename", "{2, 1}": "%editor:file-extension"}, "type": "advancedText"}}, "class": "WorkflowActionStoreVariable"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {}, "class": "WorkflowActionConditionEnd"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"foldedTextReplacement": "\u2026", "foldedTextOption": 0}, "class": "WorkflowActionGetEditorText"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"revealBrowserAutomatically": true, "URL:__URL_ESCAPE__": 1, "URL": {"text": "working-copy://x-callback-url/write/?key=?&askcommit=?&path=?&text=?", "tokenRanges": {"{53, 1}": "askcommit", "{67, 1}": "Input", "{60, 1}": "path", "{41, 1}": "key"}, "type": "advancedText"}, "openIn": 1, "tabOption": 0, "waitUntilLoaded": false}, "class": "WorkflowActionOpenURL"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"showHUD": false, "HUDTitle": ""}, "class": "WorkflowActionStopWorkflow"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {}, "class": "WorkflowActionConditionEnd"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"regex": {"text": "(.*)\\n", "tokenRanges": {}, "type": "advancedText"}, "matchGroup": "1", "searchTypeOption": 0}, "class": "WorkflowActionMatchRegularExpression"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"name": "filename", "value": {"text": "?", "tokenRanges": {"{0, 1}": "Input"}, "type": "advancedText"}}, "class": "WorkflowActionStoreVariable"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"text": {"text": "?", "tokenRanges": {"{0, 1}": "all"}, "type": "advancedText"}}, "class": "WorkflowActionFormatString"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"findOption": 1, "find": {"text": "?\n", "tokenRanges": {"{0, 1}": "filename"}, "type": "advancedText"}, "replace": {"text": "", "tokenRanges": {}, "type": "advancedText"}}, "class": "WorkflowActionFindReplace"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"name": "text", "value": {"text": "?", "tokenRanges": {"{0, 1}": "Input"}, "type": "advancedText"}}, "class": "WorkflowActionStoreVariable"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"inDropbox": false, "ifNotExists": 0, "filename": "%var:filename"}, "class": "WorkflowActionGetFileContents"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"expression1": {"text": "?", "tokenRanges": {"{0, 1}": "Input"}, "type": "advancedText"}, "expression2": {"text": "", "tokenRanges": {}, "type": "advancedText"}, "comparisonType": 1}, "class": "WorkflowActionCondition"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"inDropbox": false, "text": {"text": "?", "tokenRanges": {"{0, 1}": "Input"}, "type": "advancedText"}, "ifNotExists": 0, "filename": "WorkingCopy.bak"}, "class": "WorkflowActionSetFileContents"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"duration": 2, "HUDText": {"text": "Previous content of ? put in WorkingCopy.bak", "tokenRanges": {"{20, 1}": "filename"}, "type": "advancedText"}, "icon": 0}, "class": "WorkflowActionShowHUD"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {}, "class": "WorkflowActionConditionEnd"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"inDropbox": false, "text": {"text": "?", "tokenRanges": {"{0, 1}": "text"}, "type": "advancedText"}, "ifNotExists": 0, "filename": "%var:filename"}, "class": "WorkflowActionSetFileContents"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"inDropbox": false, "filename": "%var:filename"}, "class": "WorkflowActionOpenDocument"}], "name": "Working Copy", "version": "133001", "device": {"userInterfaceIdiom": 0, "model": "iPhone10,3", "systemVersion": "12.2"}, "type": "wkflw", "public": true, "icon": "minicons-social-github_alt.png"}, "install_url": "editorial://add-workflow?workflow-data=%7B%22username%22%3A%20%22%22%2C%20%22description%22%3A%20%22Workflow%20for%20transferring%20files%20from%20Working%20Copy%20to%20Editorial%20and%20back%20again.%5Cn%5CnWhen%20called%20with%20input%2C%20it%20will%20pick%20the%20filename%20from%20the%20first%20line%20and%20write%20the%20other%20lines%20into%20this%20file%2C%20which%20lets%20Working%20Copy%20create%20a%20new%20file%20with%20predefined%20content.%20The%20filename%20contains%20a%20unique%20identifier%20for%20remembering%20where%20it%20belongs.%20To%20avoid%20overwriting%20files%20in%20Editorial%20by%20mistake%2C%20the%20previous%20contents%20of%20files%20are%20put%20in%20WorkingCopy.bak%5Cn%5CnWhen%20this%20workflow%20is%20called%20without%20any%20input%20the%20contents%20of%20the%20current%20file%20is%20written%20back%20to%20Working%20Copy.%5Cn%5CnChange%20askcommit%20variable%20to%200%20if%20you%20just%20want%20to%20save%20and%20not%20be%20asked%20to%20commit.%5Cn%5CnTo%20install%20a%20new%20version%20of%20this%20workflow%20delete%20or%20rename%20this%20one%20and%20perform%20Edit%20in%20Editorial%20from%20Working%20Copy.%22%2C%20%22actions%22%3A%20%5B%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22name%22%3A%20%22all%22%2C%20%22value%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22Input%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionStoreVariable%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22expression1%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22all%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22expression2%22%3A%20%7B%22text%22%3A%20%22%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22comparisonType%22%3A%200%7D%2C%20%22class%22%3A%20%22WorkflowActionCondition%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22name%22%3A%20%22key%22%2C%20%22value%22%3A%20%7B%22text%22%3A%20%227UXXJE9HLY%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionStoreVariable%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22name%22%3A%20%22askcommit%22%2C%20%22value%22%3A%20%7B%22text%22%3A%20%221%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionStoreVariable%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22name%22%3A%20%22path%22%2C%20%22value%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22%25editor%3Afilename%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionStoreVariable%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22expression1%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22%25editor%3Afile-extension%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22expression2%22%3A%20%7B%22text%22%3A%20%22%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22comparisonType%22%3A%201%7D%2C%20%22class%22%3A%20%22WorkflowActionCondition%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22name%22%3A%20%22path%22%2C%20%22value%22%3A%20%7B%22text%22%3A%20%22%3F.%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22%25editor%3Afilename%22%2C%20%22%7B2%2C%201%7D%22%3A%20%22%25editor%3Afile-extension%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionStoreVariable%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%7D%2C%20%22class%22%3A%20%22WorkflowActionConditionEnd%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22foldedTextReplacement%22%3A%20%22%5Cu2026%22%2C%20%22foldedTextOption%22%3A%200%7D%2C%20%22class%22%3A%20%22WorkflowActionGetEditorText%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22revealBrowserAutomatically%22%3A%20true%2C%20%22URL%3A__URL_ESCAPE__%22%3A%201%2C%20%22URL%22%3A%20%7B%22text%22%3A%20%22working-copy%3A%2F%2Fx-callback-url%2Fwrite%2F%3Fkey%3D%3F%26askcommit%3D%3F%26path%3D%3F%26text%3D%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B53%2C%201%7D%22%3A%20%22askcommit%22%2C%20%22%7B67%2C%201%7D%22%3A%20%22Input%22%2C%20%22%7B60%2C%201%7D%22%3A%20%22path%22%2C%20%22%7B41%2C%201%7D%22%3A%20%22key%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22openIn%22%3A%201%2C%20%22tabOption%22%3A%200%2C%20%22waitUntilLoaded%22%3A%20false%7D%2C%20%22class%22%3A%20%22WorkflowActionOpenURL%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22showHUD%22%3A%20false%2C%20%22HUDTitle%22%3A%20%22%22%7D%2C%20%22class%22%3A%20%22WorkflowActionStopWorkflow%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%7D%2C%20%22class%22%3A%20%22WorkflowActionConditionEnd%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22regex%22%3A%20%7B%22text%22%3A%20%22%28.%2A%29%5C%5Cn%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22matchGroup%22%3A%20%221%22%2C%20%22searchTypeOption%22%3A%200%7D%2C%20%22class%22%3A%20%22WorkflowActionMatchRegularExpression%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22name%22%3A%20%22filename%22%2C%20%22value%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22Input%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionStoreVariable%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22text%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22all%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionFormatString%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22findOption%22%3A%201%2C%20%22find%22%3A%20%7B%22text%22%3A%20%22%3F%5Cn%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22filename%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22replace%22%3A%20%7B%22text%22%3A%20%22%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionFindReplace%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22name%22%3A%20%22text%22%2C%20%22value%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22Input%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionStoreVariable%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22inDropbox%22%3A%20false%2C%20%22ifNotExists%22%3A%200%2C%20%22filename%22%3A%20%22%25var%3Afilename%22%7D%2C%20%22class%22%3A%20%22WorkflowActionGetFileContents%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22expression1%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22Input%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22expression2%22%3A%20%7B%22text%22%3A%20%22%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22comparisonType%22%3A%201%7D%2C%20%22class%22%3A%20%22WorkflowActionCondition%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22inDropbox%22%3A%20false%2C%20%22text%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22Input%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22ifNotExists%22%3A%200%2C%20%22filename%22%3A%20%22WorkingCopy.bak%22%7D%2C%20%22class%22%3A%20%22WorkflowActionSetFileContents%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22duration%22%3A%202%2C%20%22HUDText%22%3A%20%7B%22text%22%3A%20%22Previous%20content%20of%20%3F%20put%20in%20WorkingCopy.bak%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B20%2C%201%7D%22%3A%20%22filename%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22icon%22%3A%200%7D%2C%20%22class%22%3A%20%22WorkflowActionShowHUD%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%7D%2C%20%22class%22%3A%20%22WorkflowActionConditionEnd%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22inDropbox%22%3A%20false%2C%20%22text%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22text%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22ifNotExists%22%3A%200%2C%20%22filename%22%3A%20%22%25var%3Afilename%22%7D%2C%20%22class%22%3A%20%22WorkflowActionSetFileContents%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22inDropbox%22%3A%20false%2C%20%22filename%22%3A%20%22%25var%3Afilename%22%7D%2C%20%22class%22%3A%20%22WorkflowActionOpenDocument%22%7D%5D%2C%20%22name%22%3A%20%22Working%20Copy%22%2C%20%22version%22%3A%20%22133001%22%2C%20%22device%22%3A%20%7B%22userInterfaceIdiom%22%3A%200%2C%20%22model%22%3A%20%22iPhone10%2C3%22%2C%20%22systemVersion%22%3A%20%2212.2%22%7D%2C%20%22type%22%3A%20%22wkflw%22%2C%20%22public%22%3A%20true%2C%20%22icon%22%3A%20%22minicons-social-github_alt.png%22%7D", "description": "Workflow for transferring files from Working Copy to Editorial and back again.\n\nWhen called with input, it will pick the filename from the first line and write the other lines into this file, which lets Working Copy create a new file with predefined content. The filename contains a unique identifier for remembering where it belongs. To avoid overwriting files in Editorial by mistake, the previous contents of files are put in WorkingCopy.bak\n\nWhen this workflow is called without any input the contents of the current file is written back to Working Copy.\n\nChange askcommit variable to 0 if you just want to save and not be asked to commit.\n\nTo install a new version of this workflow delete or rename this one and perform Edit in Editorial from Working Copy.", "title": "Working Copy"}, {"url": "http://editorial-app.appspot.com/workflow/5240466354208768/VUEDMIjvRVo", "workflow_data": {"username": "", "description": "Moves @done tasks in a TaskPaper document to the \"Archive\" project (created if necessary).\n\nIf a task is in a project, a @project(name) tag is appended automatically. Note that this ignores indentation and doesn't handle sub-projects though.", "actions": [{"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "Check if TaskPaper File...", "parameters": {"expression1": {"text": "?", "tokenRanges": {"{0, 1}": "%editor:file-extension"}, "type": "advancedText"}, "expression2": {"text": "taskpaper", "tokenRanges": {}, "type": "advancedText"}, "comparisonType": 1}, "class": "WorkflowActionCondition"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"button1Value": {"text": "?", "tokenRanges": {"{0, 1}": "Input"}, "type": "advancedText"}, "button3Value": {"text": "", "tokenRanges": {}, "type": "advancedText"}, "button2Value": {"text": "", "tokenRanges": {}, "type": "advancedText"}, "title": "Not TaskPaper?", "button3Title": "", "button2Title": "", "button1Title": "Continue", "message": {"text": "TaskPaper documents typically use a \".taskpaper\" file extension, this document uses \".?\". Do you want to continue?", "tokenRanges": {"{86, 1}": "%editor:file-extension"}, "type": "advancedText"}, "showCancelButton": true}, "class": "WorkflowActionShowAlert"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {}, "class": "WorkflowActionConditionEnd"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {}, "class": "WorkflowActionUnfoldText"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"name": "Message", "value": {"text": "(the Python script will set this to show the number of tasks being archived)", "tokenRanges": {}, "type": "advancedText"}}, "class": "WorkflowActionStoreVariable"}, {"customTitle": "", "parameters": {"script": "#coding: utf-8\nimport workflow\nimport editor\nimport re\nimport sys\n\ntext = editor.get_text()\nlines = text.splitlines()\n\nnew_lines = []\narchive_found = False\ndone_tasks = []\ncurrent_project = None\nfor i, line in enumerate(lines):\n\tif line.strip().endswith(':'):\n\t\tcurrent_project = line.strip(': ')\n\tif line.strip().startswith('Archive:'):\n\t\tarchive_found = True\n\t\tnew_lines.append(line)\n\t\tnew_lines += done_tasks\n\telif not archive_found and line.find('@done') >= 0:\n\t\tif current_project:\n\t\t\tline = '%s @project(%s)' % (line, current_project)\n\t\tdone_tasks.append(line)\n\telse:\n\t\tnew_lines.append(line)\n\nif not done_tasks:\n\tworkflow.set_output('')\n\tworkflow.set_variable('Message', 'No @done Tasks')\nelse:\n\tworkflow.set_variable('Message', '%i Task%s Archived' % (len(done_tasks), '' if len(done_tasks) == 1 else 's'))\n\tif not archive_found:\n\t\tnew_lines.append('Archive:')\n\t\tnew_lines += done_tasks\n\toutput = '\\n'.join(new_lines)\n\tworkflow.set_output(output)\n"}, "pauseWithoutShowingParameters": false, "colorLabel": 1, "class": "WorkflowActionRunScript", "pauseBeforeRunning": false}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"name": "Replacement", "value": {"text": "?", "tokenRanges": {"{0, 1}": "Input"}, "type": "advancedText"}}, "class": "WorkflowActionStoreVariable"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"expression1": {"text": "?", "tokenRanges": {"{0, 1}": "Input"}, "type": "advancedText"}, "expression2": {"text": "", "tokenRanges": {}, "type": "advancedText"}, "comparisonType": 1}, "class": "WorkflowActionCondition"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"numberOfSteps": {"text": "1", "tokenRanges": {}, "type": "advancedText"}, "direction": 2, "unit": 0}, "class": "WorkflowActionExtendSelection"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"replacement": {"text": "?", "tokenRanges": {"{0, 1}": "Replacement"}, "type": "advancedText"}}, "class": "WorkflowActionReplaceSelectedText"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "Find \"Archive:\" (to move cursor)", "parameters": {"outputOption": 1, "regex": {"text": "^ *Archive:()", "tokenRanges": {}, "type": "advancedText"}, "matchGroup": "1", "searchTypeOption": 0}, "class": "WorkflowActionMatchRegularExpression"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"range": {"text": "?", "tokenRanges": {"{0, 1}": "Input"}, "type": "advancedText"}}, "class": "WorkflowActionSelectRange"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {}, "class": "WorkflowActionConditionEnd"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"duration": 1, "HUDText": {"text": "?", "tokenRanges": {"{0, 1}": "Message"}, "type": "advancedText"}, "icon": 0}, "class": "WorkflowActionShowHUD"}], "name": "Archive @done", "version": "133001", "device": {"userInterfaceIdiom": 0, "model": "iPhone8,4", "systemVersion": "12.3"}, "type": "wkflw", "public": true, "icon": "minicons-icons-content-box.png"}, "install_url": "editorial://add-workflow?workflow-data=%7B%22username%22%3A%20%22%22%2C%20%22description%22%3A%20%22Moves%20%40done%20tasks%20in%20a%20TaskPaper%20document%20to%20the%20%5C%22Archive%5C%22%20project%20%28created%20if%20necessary%29.%5Cn%5CnIf%20a%20task%20is%20in%20a%20project%2C%20a%20%40project%28name%29%20tag%20is%20appended%20automatically.%20Note%20that%20this%20ignores%20indentation%20and%20doesn%27t%20handle%20sub-projects%20though.%22%2C%20%22actions%22%3A%20%5B%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22Check%20if%20TaskPaper%20File...%22%2C%20%22parameters%22%3A%20%7B%22expression1%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22%25editor%3Afile-extension%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22expression2%22%3A%20%7B%22text%22%3A%20%22taskpaper%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22comparisonType%22%3A%201%7D%2C%20%22class%22%3A%20%22WorkflowActionCondition%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22button1Value%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22Input%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22button3Value%22%3A%20%7B%22text%22%3A%20%22%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22button2Value%22%3A%20%7B%22text%22%3A%20%22%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22title%22%3A%20%22Not%20TaskPaper%3F%22%2C%20%22button3Title%22%3A%20%22%22%2C%20%22button2Title%22%3A%20%22%22%2C%20%22button1Title%22%3A%20%22Continue%22%2C%20%22message%22%3A%20%7B%22text%22%3A%20%22TaskPaper%20documents%20typically%20use%20a%20%5C%22.taskpaper%5C%22%20file%20extension%2C%20this%20document%20uses%20%5C%22.%3F%5C%22.%20Do%20you%20want%20to%20continue%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B86%2C%201%7D%22%3A%20%22%25editor%3Afile-extension%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22showCancelButton%22%3A%20true%7D%2C%20%22class%22%3A%20%22WorkflowActionShowAlert%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%7D%2C%20%22class%22%3A%20%22WorkflowActionConditionEnd%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%7D%2C%20%22class%22%3A%20%22WorkflowActionUnfoldText%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22name%22%3A%20%22Message%22%2C%20%22value%22%3A%20%7B%22text%22%3A%20%22%28the%20Python%20script%20will%20set%20this%20to%20show%20the%20number%20of%20tasks%20being%20archived%29%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionStoreVariable%22%7D%2C%20%7B%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22script%22%3A%20%22%23coding%3A%20utf-8%5Cnimport%20workflow%5Cnimport%20editor%5Cnimport%20re%5Cnimport%20sys%5Cn%5Cntext%20%3D%20editor.get_text%28%29%5Cnlines%20%3D%20text.splitlines%28%29%5Cn%5Cnnew_lines%20%3D%20%5B%5D%5Cnarchive_found%20%3D%20False%5Cndone_tasks%20%3D%20%5B%5D%5Cncurrent_project%20%3D%20None%5Cnfor%20i%2C%20line%20in%20enumerate%28lines%29%3A%5Cn%5Ctif%20line.strip%28%29.endswith%28%27%3A%27%29%3A%5Cn%5Ct%5Ctcurrent_project%20%3D%20line.strip%28%27%3A%20%27%29%5Cn%5Ctif%20line.strip%28%29.startswith%28%27Archive%3A%27%29%3A%5Cn%5Ct%5Ctarchive_found%20%3D%20True%5Cn%5Ct%5Ctnew_lines.append%28line%29%5Cn%5Ct%5Ctnew_lines%20%2B%3D%20done_tasks%5Cn%5Ctelif%20not%20archive_found%20and%20line.find%28%27%40done%27%29%20%3E%3D%200%3A%5Cn%5Ct%5Ctif%20current_project%3A%5Cn%5Ct%5Ct%5Ctline%20%3D%20%27%25s%20%40project%28%25s%29%27%20%25%20%28line%2C%20current_project%29%5Cn%5Ct%5Ctdone_tasks.append%28line%29%5Cn%5Ctelse%3A%5Cn%5Ct%5Ctnew_lines.append%28line%29%5Cn%5Cnif%20not%20done_tasks%3A%5Cn%5Ctworkflow.set_output%28%27%27%29%5Cn%5Ctworkflow.set_variable%28%27Message%27%2C%20%27No%20%40done%20Tasks%27%29%5Cnelse%3A%5Cn%5Ctworkflow.set_variable%28%27Message%27%2C%20%27%25i%20Task%25s%20Archived%27%20%25%20%28len%28done_tasks%29%2C%20%27%27%20if%20len%28done_tasks%29%20%3D%3D%201%20else%20%27s%27%29%29%5Cn%5Ctif%20not%20archive_found%3A%5Cn%5Ct%5Ctnew_lines.append%28%27Archive%3A%27%29%5Cn%5Ct%5Ctnew_lines%20%2B%3D%20done_tasks%5Cn%5Ctoutput%20%3D%20%27%5C%5Cn%27.join%28new_lines%29%5Cn%5Ctworkflow.set_output%28output%29%5Cn%22%7D%2C%20%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22colorLabel%22%3A%201%2C%20%22class%22%3A%20%22WorkflowActionRunScript%22%2C%20%22pauseBeforeRunning%22%3A%20false%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22name%22%3A%20%22Replacement%22%2C%20%22value%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22Input%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionStoreVariable%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22expression1%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22Input%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22expression2%22%3A%20%7B%22text%22%3A%20%22%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22comparisonType%22%3A%201%7D%2C%20%22class%22%3A%20%22WorkflowActionCondition%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22numberOfSteps%22%3A%20%7B%22text%22%3A%20%221%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22direction%22%3A%202%2C%20%22unit%22%3A%200%7D%2C%20%22class%22%3A%20%22WorkflowActionExtendSelection%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22replacement%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22Replacement%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionReplaceSelectedText%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22Find%20%5C%22Archive%3A%5C%22%20%28to%20move%20cursor%29%22%2C%20%22parameters%22%3A%20%7B%22outputOption%22%3A%201%2C%20%22regex%22%3A%20%7B%22text%22%3A%20%22%5E%20%2AArchive%3A%28%29%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22matchGroup%22%3A%20%221%22%2C%20%22searchTypeOption%22%3A%200%7D%2C%20%22class%22%3A%20%22WorkflowActionMatchRegularExpression%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22range%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22Input%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionSelectRange%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%7D%2C%20%22class%22%3A%20%22WorkflowActionConditionEnd%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22duration%22%3A%201%2C%20%22HUDText%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22Message%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22icon%22%3A%200%7D%2C%20%22class%22%3A%20%22WorkflowActionShowHUD%22%7D%5D%2C%20%22name%22%3A%20%22Archive%20%40done%22%2C%20%22version%22%3A%20%22133001%22%2C%20%22device%22%3A%20%7B%22userInterfaceIdiom%22%3A%200%2C%20%22model%22%3A%20%22iPhone8%2C4%22%2C%20%22systemVersion%22%3A%20%2212.3%22%7D%2C%20%22type%22%3A%20%22wkflw%22%2C%20%22public%22%3A%20true%2C%20%22icon%22%3A%20%22minicons-icons-content-box.png%22%7D", "description": "Moves @done tasks in a TaskPaper document to the \"Archive\" project (created if necessary).\n\nIf a task is in a project, a @project(name) tag is appended automatically. Note that this ignores indentation and doesn't handle sub-projects though.", "title": "Archive @done"}, {"url": "http://editorial-app.appspot.com/workflow/5803416307630080/JzNX1N2PUJI", "workflow_data": {"username": "", "description": "Modified from omnigroup's New Omnifocus Project: http://people.omnigroup.com/kc/editorial-template-project-workflow.html\n\nCreate new simple project without ask placeholder. \n\n\u4fee\u6539\u81ea Omnigroup \u7684 New Omnifocus Project\uff0c\u53d6\u6d88\u4e86\u5176\u4e2d\u7684 Placeholder\uff0c\u6240\u4ee5\u53ef\u4ee5\u76f4\u63a5\u53d1\u9001\u9879\u76ee\u5230 Omnifocus \u800c\u4e0d\u4f1a\u63d0\u793a\u4f60\u6ca1\u6709\u7ed9\u53d8\u91cf\u8d4b\u503c\u3002", "actions": [{"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"foldedTextReplacement": "\u2026", "emptySelectionOption": 1, "foldedTextOption": 0, "selectEntireLines": false}, "class": "WorkflowActionGetSelectedText"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"script": "#coding: utf-8\nimport workflow\nimport dialogs\nimport re\n\naction_in = workflow.get_input()\n\n# Find placeholders\nknown_placeholders = set()\nplaceholders = []\nfields = []\n\naction_out = action_in\n\nworkflow.set_output(action_out)\n"}, "class": "WorkflowActionRunScript"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {}, "class": "WorkflowActionURLEscape"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"name": "encodedContent", "value": {"text": "?", "tokenRanges": {"{0, 1}": "Input"}, "type": "advancedText"}}, "class": "WorkflowActionStoreVariable"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"URL": {"text": "omnifocus://x-callback-url/paste?target=projects&content=?", "tokenRanges": {"{57, 1}": "encodedContent"}, "type": "advancedText"}, "waitUntilLoaded": false, "revealBrowserAutomatically": true, "openIn": 0, "tabOption": 0}, "class": "WorkflowActionOpenURL"}], "name": "Project to Omnifocus (simple)", "version": "133001", "device": {"userInterfaceIdiom": 1, "model": "iPad6,3", "systemVersion": "12.3"}, "type": "wkflw", "public": true, "icon": "TYPICONS-ALL_LIST.png"}, "install_url": "editorial://add-workflow?workflow-data=%7B%22username%22%3A%20%22%22%2C%20%22description%22%3A%20%22Modified%20from%20omnigroup%27s%20New%20Omnifocus%20Project%3A%20http%3A%2F%2Fpeople.omnigroup.com%2Fkc%2Feditorial-template-project-workflow.html%5Cn%5CnCreate%20new%20simple%20project%20without%20ask%20placeholder.%20%5Cn%5Cn%5Cu4fee%5Cu6539%5Cu81ea%20Omnigroup%20%5Cu7684%20New%20Omnifocus%20Project%5Cuff0c%5Cu53d6%5Cu6d88%5Cu4e86%5Cu5176%5Cu4e2d%5Cu7684%20Placeholder%5Cuff0c%5Cu6240%5Cu4ee5%5Cu53ef%5Cu4ee5%5Cu76f4%5Cu63a5%5Cu53d1%5Cu9001%5Cu9879%5Cu76ee%5Cu5230%20Omnifocus%20%5Cu800c%5Cu4e0d%5Cu4f1a%5Cu63d0%5Cu793a%5Cu4f60%5Cu6ca1%5Cu6709%5Cu7ed9%5Cu53d8%5Cu91cf%5Cu8d4b%5Cu503c%5Cu3002%22%2C%20%22actions%22%3A%20%5B%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22foldedTextReplacement%22%3A%20%22%5Cu2026%22%2C%20%22emptySelectionOption%22%3A%201%2C%20%22foldedTextOption%22%3A%200%2C%20%22selectEntireLines%22%3A%20false%7D%2C%20%22class%22%3A%20%22WorkflowActionGetSelectedText%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22script%22%3A%20%22%23coding%3A%20utf-8%5Cnimport%20workflow%5Cnimport%20dialogs%5Cnimport%20re%5Cn%5Cnaction_in%20%3D%20workflow.get_input%28%29%5Cn%5Cn%23%20Find%20placeholders%5Cnknown_placeholders%20%3D%20set%28%29%5Cnplaceholders%20%3D%20%5B%5D%5Cnfields%20%3D%20%5B%5D%5Cn%5Cnaction_out%20%3D%20action_in%5Cn%5Cnworkflow.set_output%28action_out%29%5Cn%22%7D%2C%20%22class%22%3A%20%22WorkflowActionRunScript%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%7D%2C%20%22class%22%3A%20%22WorkflowActionURLEscape%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22name%22%3A%20%22encodedContent%22%2C%20%22value%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22Input%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionStoreVariable%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22URL%22%3A%20%7B%22text%22%3A%20%22omnifocus%3A%2F%2Fx-callback-url%2Fpaste%3Ftarget%3Dprojects%26content%3D%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B57%2C%201%7D%22%3A%20%22encodedContent%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22waitUntilLoaded%22%3A%20false%2C%20%22revealBrowserAutomatically%22%3A%20true%2C%20%22openIn%22%3A%200%2C%20%22tabOption%22%3A%200%7D%2C%20%22class%22%3A%20%22WorkflowActionOpenURL%22%7D%5D%2C%20%22name%22%3A%20%22Project%20to%20Omnifocus%20%28simple%29%22%2C%20%22version%22%3A%20%22133001%22%2C%20%22device%22%3A%20%7B%22userInterfaceIdiom%22%3A%201%2C%20%22model%22%3A%20%22iPad6%2C3%22%2C%20%22systemVersion%22%3A%20%2212.3%22%7D%2C%20%22type%22%3A%20%22wkflw%22%2C%20%22public%22%3A%20true%2C%20%22icon%22%3A%20%22TYPICONS-ALL_LIST.png%22%7D", "description": "Modified from omnigroup's New Omnifocus Project: http://people.omnigroup.com/kc/editorial-template-project-workflow.html\n\nCreate new simple project without ask placeholder. \n\n\u4fee\u6539\u81ea Omnigroup \u7684 New Omnifocus Project\uff0c\u53d6\u6d88\u4e86\u5176\u4e2d\u7684 Placeholder\uff0c\u6240\u4ee5\u53ef\u4ee5\u76f4\u63a5\u53d1\u9001\u9879\u76ee\u5230 Omnifocus \u800c\u4e0d\u4f1a\u63d0\u793a\u4f60\u6ca1\u6709\u7ed9\u53d8\u91cf\u8d4b\u503c\u3002", "title": "Project to Omnifocus (simple)"}, {"url": "http://editorial-app.appspot.com/workflow/5801361232887808/sUYnUCtfdh8", "workflow_data": {"username": "", "description": "Detectar Textos B\u00edblicos", "actions": [{"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"script": "#coding: utf-8\nimport workflow\nimport editor\n\nworkflow.set_variable('ScrollPosition', repr(editor.get_scroll_position()))\n"}, "class": "WorkflowActionRunScript"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"foldedTextReplacement": "\u2026", "emptySelectionOption": 1, "foldedTextOption": 0, "selectEntireLines": false}, "class": "WorkflowActionGetSelectedText"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"name": "initialInput", "value": {"text": "?", "tokenRanges": {"{0, 1}": "Input"}, "type": "advancedText"}}, "class": "WorkflowActionStoreVariable"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"regex": {"text": "([\\[=])?([1-3])?(?:\\s*)([\\w+]{2,})[.]?(?:\\s*)(\\d+)(?:\\s*)[:]((?:\\s*)(?:\\d+)(?:(?:[,-])?(?:\\s*)(?:\\d+)?)*)", "tokenRanges": {}, "type": "advancedText"}, "repeatOption": 1, "reverse": false}, "class": "WorkflowActionRepeatWithLines"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"expression1": {"text": "?", "tokenRanges": {"{0, 1}": "Input"}, "type": "advancedText"}, "expression2": {"text": "^[^\\[=]", "tokenRanges": {}, "type": "advancedText"}, "comparisonType": 4}, "class": "WorkflowActionCondition"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {}, "class": "WorkflowActionRemoveWhitespace"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"name": "scriptureBefore", "value": {"text": "?", "tokenRanges": {"{0, 1}": "Input"}, "type": "advancedText"}}, "class": "WorkflowActionStoreVariable"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"script": "#coding: utf-8\nimport workflow\nimport re\nimport console\n\naction_in = workflow.get_input()\n\nbible = [\n ['Es'],\n ['G\u00e9nesis', 'G\u00e9', 'Ge', 'G\u00e9', 'Gene', 'Gen', 'G\u00e9n', 'G\u00e9nesis'],\n ['\u00c9xodo', '\u00c9x', 'Ex', 'Exodo', 'Exo'],\n ['Lev\u00edtico', 'Le', 'Lev', 'Lev\u00edtico', 'Levitico'],\n ['N\u00fameros', 'N\u00fa', 'Nu', 'Num', 'Numeros'],\n ['Deuteronomio', 'Dt', 'Deu', 'De'],\n ['Josu\u00e9', 'Jos', 'Josue'],\n ['Jueces', 'Jue'],\n ['Rut', 'Ru'],\n ['1 Samuel', '1Sa', '1 Sam'],\n ['2 Samuel', '2Sa', '2 Sam'],\n ['1 Reyes', '1Re', '1 Rey'],\n ['2 Reyes', '2Re', '2 Rey'],\n ['1 Cr\u00f3nicas', '1Cr', '1 Cro', '1 Cr'],\n ['2 Cr\u00f3nicas', '2Cr', '2 Cro', '2 Cr'],\n ['Esdras', 'Esd'],\n ['Nehem\u00edas', 'Ne', 'Neh'],\n ['Ester', 'Est'],\n ['Job', 'Job'],\n ['Salmos', 'Sl', 'Sal', 'Salmo'],\n ['Proverbios', 'Pr', 'Pro', 'Prov'],\n ['Eclesiast\u00e9s', 'Ec', 'Ecl', 'Ecle'],\n ['El Cantar de los Cantares', 'Can', 'Cantar', 'Cantar de los Cantares'],\n ['Isa\u00edas', 'Isa\u00edas', 'Isaias', 'Isa', 'Is'],\n ['Jerem\u00edas', 'Jerem\u00edas', 'Jeremias', 'Jere', 'Jer'],\n ['Lamentaciones', 'Lam', 'Lament'],\n ['Ezequiel', 'Eze', 'Ezeq'],\n ['Daniel', 'Da', 'Dan'],\n ['Oseas', 'Os', 'Ose'],\n ['Joel', 'Joe'],\n ['Am\u00f3s', 'Am', 'Amos'],\n ['Abd\u00edas', 'Abd', 'Abdias'],\n ['Jon\u00e1s', 'Jon', 'Jonas'],\n ['Miqueas', 'Miq', 'Miquea'],\n ['Nah\u00fam', 'Na', 'Nah'],\n ['Habacuc', 'Hab', 'Haba'],\n ['Sofon\u00edas', 'Sof', 'Sofonias'],\n ['Ageo', 'Ag', 'Age'],\n ['Zacar\u00edas', 'Zac', 'Zacarias'],\n ['Malaqu\u00edas', 'Mal', 'Malaquias'],\n ['Mateo', 'Mt', 'Mat'],\n ['Marcos', 'Mr', 'Marc', 'Mar'],\n ['Lucas', 'Lu', 'Luc'],\n ['Juan', 'Jn'],\n ['Hechos', 'Hch', 'Hech'],\n ['Romanos', 'Ro', 'Rom'],\n ['1 Corintios', '1Co', '1 Cor'],\n ['2 Corintios', '2Co', '2 Cor'],\n ['G\u00e1latas', 'G\u00e1l', 'Galatas', 'Gal'],\n ['Efesios', 'Ef', 'Efe'],\n ['Filipenses', 'Flp', 'Fili'],\n ['Colosenses', 'Col', 'Colo'],\n ['1 Tesalonicenses', '1Te', '1 Te', '1 Tes'],\n ['2 Tesalonicenses', '2Te', '2 Te', '2 Tes'],\n ['1 Timoteo', '1Ti', '1 Ti', '1 Tim'],\n ['2 Timoteo', '2Ti', '2 Ti', '2 Tim'],\n ['Tito', 'Tit'],\n ['Filem\u00f3n', 'Flm', 'File', 'Filemon'],\n ['Hebreos', 'Heb', 'Hebr'],\n ['Santiago', 'Snt', 'Sant'],\n ['1 Pedro', '1Pe', '1 Ped', '1 Pe'],\n ['2 Pedro', '2Pe', '2 Ped', '2 Pe'],\n ['1 Juan', '1Jn', '1 Jn'],\n ['2 Juan', '2Jn', '2 Jn'],\n ['3 Juan', '3Jn', '3 Jn'],\n ['Judas', 'Jud'],\n ['Revelaci\u00f3n', 'Rev', 'Revelacion', 'Revel', 'Re']\n]\n\ndef getBook(book):\n\tfor list in bible:\n\t\tfor bookName in list:\n\t\t\tif bookName.lower().strip() == book.lower().strip():\n\t\t\t\treturn (list[0], list[1])\n\treturn ('', '')\n\t\n\ndef processMatch(m):\n\tpart = ''\n\tbook = ''\n\tabreviation = ''\n\tchapter = ''\n\tverses = '';\n\tif m.group(2) is not None:\n\t\tpart = m.group(2).strip()\n\tif m.group(3) is not None:\n\t\tbook = m.group(3).strip()\n\tif m.group(4) is not None:\n\t\tchapter = m.group(4).strip()\n\tif m.group(5) is not None:\n\t\tverses = m.group(5).strip()\n\t(libro, abreviation) = getBook(part + \" \" + book)\n\t\n\tif m.group(1) is not None:\n\t\tif m.group(1).strip() == '[':\n\t\t\treturn false\n\t\telif m.group(1).strip() == '=':\n\t\t\treturn false\n\t\telse:\n\t\t\treturn '[{0} {1}:{2}](equipdbible://x-callback-url/lookup?x-source=editorial&language=es&scripture={3}{4}:{5}&x-success=editorial://)'.format(libro.strip(), chapter.strip(), verses, abreviation.strip(), chapter.strip(),verses.strip().replace(' ', ''))\n\telse:\n\t\treturn '[{0} {1}:{2}](equipdbible://x-callback-url/lookup?x-source=editorial&language=es&scripture={3}{4}:{5}&x-success=editorial://)'.format(libro.strip(), chapter.strip(), verses, abreviation.strip(), chapter.strip(),verses.strip().replace(' ', ''))\n\n#This regular expression matches a bible scripture capturing \n#Group 1 ([ = or Empty) - This char help identify when a scripture has already been extracted and replaced in the text as a markdown link to equipd bible.\n#Group 2 (Primero, segundo or tercero) (o vac\u00edo)\n#Group 3 (Libro de la Biblia)\n#Group 4 (Cap\u00edtulo)\n#Group 5 (Vers\u00edculo/s)\n\nregex = re.compile(r'([\\[=])?([1-3])?(?:\\s*)([\\w+]{2,})[.]?(?:\\s*)(\\d+)(?:\\s*)[:]((?:\\s*)(?:\\d+)(?:(?:[,;:\u2013-])?(?:\\s*)(?:\\d+)?)*)', re.UNICODE)\n\nresult = regex.sub(processMatch, action_in)\n\nworkflow.set_output(result)\n"}, "class": "WorkflowActionRunScript"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"name": "urlToEquipd", "value": {"text": "?", "tokenRanges": {"{0, 1}": "Input"}, "type": "advancedText"}}, "class": "WorkflowActionStoreVariable"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"name": "Input", "value": {"text": "?", "tokenRanges": {"{0, 1}": "initialInput"}, "type": "advancedText"}}, "class": "WorkflowActionStoreVariable"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"findOption": 0, "find": {"text": "?", "tokenRanges": {"{0, 1}": "scriptureBefore"}, "type": "advancedText"}, "replace": {"text": "?", "tokenRanges": {"{0, 1}": "urlToEquipd"}, "type": "advancedText"}}, "class": "WorkflowActionFindReplace"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"name": "initialInput", "value": {"text": "?", "tokenRanges": {"{0, 1}": "Input"}, "type": "advancedText"}}, "class": "WorkflowActionStoreVariable"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"name": "madeChange", "value": {"text": "True", "tokenRanges": {}, "type": "advancedText"}}, "class": "WorkflowActionStoreVariable"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {}, "class": "WorkflowActionConditionEnd"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {}, "class": "WorkflowActionRepeatWithLinesEnd"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"expression1": {"text": "?", "tokenRanges": {"{0, 1}": "madeChange"}, "type": "advancedText"}, "expression2": {"text": "True", "tokenRanges": {}, "type": "advancedText"}, "comparisonType": 0}, "class": "WorkflowActionCondition"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"numberOfSteps": {"text": "1", "tokenRanges": {}, "type": "advancedText"}, "direction": 2, "unit": 0}, "class": "WorkflowActionExtendSelection"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"replacement": {"text": "?", "tokenRanges": {"{0, 1}": "initialInput"}, "type": "advancedText"}}, "class": "WorkflowActionReplaceSelectedText"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {}, "class": "WorkflowActionConditionEnd"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"script": "#coding: utf-8\nimport workflow\nimport editor\n\neditor.set_scroll_position(float(workflow.get_variable('ScrollPosition')))\n"}, "class": "WorkflowActionRunScript"}], "name": "Detectar Textos B\u00edblicos", "version": "133001", "device": {"userInterfaceIdiom": 1, "model": "iPad5,3", "systemVersion": "12.1.4"}, "type": "wkflw", "public": true, "icon": "minicons-icons-content-book-6.png"}, "install_url": "editorial://add-workflow?workflow-data=%7B%22username%22%3A%20%22%22%2C%20%22description%22%3A%20%22Detectar%20Textos%20B%5Cu00edblicos%22%2C%20%22actions%22%3A%20%5B%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22script%22%3A%20%22%23coding%3A%20utf-8%5Cnimport%20workflow%5Cnimport%20editor%5Cn%5Cnworkflow.set_variable%28%27ScrollPosition%27%2C%20repr%28editor.get_scroll_position%28%29%29%29%5Cn%22%7D%2C%20%22class%22%3A%20%22WorkflowActionRunScript%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22foldedTextReplacement%22%3A%20%22%5Cu2026%22%2C%20%22emptySelectionOption%22%3A%201%2C%20%22foldedTextOption%22%3A%200%2C%20%22selectEntireLines%22%3A%20false%7D%2C%20%22class%22%3A%20%22WorkflowActionGetSelectedText%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22name%22%3A%20%22initialInput%22%2C%20%22value%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22Input%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionStoreVariable%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22regex%22%3A%20%7B%22text%22%3A%20%22%28%5B%5C%5C%5B%3D%5D%29%3F%28%5B1-3%5D%29%3F%28%3F%3A%5C%5Cs%2A%29%28%5B%5C%5Cw%2B%5D%7B2%2C%7D%29%5B.%5D%3F%28%3F%3A%5C%5Cs%2A%29%28%5C%5Cd%2B%29%28%3F%3A%5C%5Cs%2A%29%5B%3A%5D%28%28%3F%3A%5C%5Cs%2A%29%28%3F%3A%5C%5Cd%2B%29%28%3F%3A%28%3F%3A%5B%2C-%5D%29%3F%28%3F%3A%5C%5Cs%2A%29%28%3F%3A%5C%5Cd%2B%29%3F%29%2A%29%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22repeatOption%22%3A%201%2C%20%22reverse%22%3A%20false%7D%2C%20%22class%22%3A%20%22WorkflowActionRepeatWithLines%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22expression1%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22Input%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22expression2%22%3A%20%7B%22text%22%3A%20%22%5E%5B%5E%5C%5C%5B%3D%5D%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22comparisonType%22%3A%204%7D%2C%20%22class%22%3A%20%22WorkflowActionCondition%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%7D%2C%20%22class%22%3A%20%22WorkflowActionRemoveWhitespace%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22name%22%3A%20%22scriptureBefore%22%2C%20%22value%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22Input%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionStoreVariable%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22script%22%3A%20%22%23coding%3A%20utf-8%5Cnimport%20workflow%5Cnimport%20re%5Cnimport%20console%5Cn%5Cnaction_in%20%3D%20workflow.get_input%28%29%5Cn%5Cnbible%20%3D%20%5B%5Cn%20%20%20%20%5B%27Es%27%5D%2C%5Cn%20%20%20%20%5B%27G%5Cu00e9nesis%27%2C%20%27G%5Cu00e9%27%2C%20%27Ge%27%2C%20%27G%5Cu00e9%27%2C%20%27Gene%27%2C%20%27Gen%27%2C%20%27G%5Cu00e9n%27%2C%20%27G%5Cu00e9nesis%27%5D%2C%5Cn%20%20%20%20%5B%27%5Cu00c9xodo%27%2C%20%27%5Cu00c9x%27%2C%20%27Ex%27%2C%20%27Exodo%27%2C%20%27Exo%27%5D%2C%5Cn%20%20%20%20%5B%27Lev%5Cu00edtico%27%2C%20%27Le%27%2C%20%27Lev%27%2C%20%27Lev%5Cu00edtico%27%2C%20%27Levitico%27%5D%2C%5Cn%20%20%20%20%5B%27N%5Cu00fameros%27%2C%20%27N%5Cu00fa%27%2C%20%27Nu%27%2C%20%27Num%27%2C%20%27Numeros%27%5D%2C%5Cn%20%20%20%20%5B%27Deuteronomio%27%2C%20%27Dt%27%2C%20%27Deu%27%2C%20%27De%27%5D%2C%5Cn%20%20%20%20%5B%27Josu%5Cu00e9%27%2C%20%27Jos%27%2C%20%27Josue%27%5D%2C%5Cn%20%20%20%20%5B%27Jueces%27%2C%20%27Jue%27%5D%2C%5Cn%20%20%20%20%5B%27Rut%27%2C%20%27Ru%27%5D%2C%5Cn%20%20%20%20%5B%271%20Samuel%27%2C%20%271Sa%27%2C%20%271%20Sam%27%5D%2C%5Cn%20%20%20%20%5B%272%20Samuel%27%2C%20%272Sa%27%2C%20%272%20Sam%27%5D%2C%5Cn%20%20%20%20%5B%271%20Reyes%27%2C%20%271Re%27%2C%20%271%20Rey%27%5D%2C%5Cn%20%20%20%20%5B%272%20Reyes%27%2C%20%272Re%27%2C%20%272%20Rey%27%5D%2C%5Cn%20%20%20%20%5B%271%20Cr%5Cu00f3nicas%27%2C%20%271Cr%27%2C%20%271%20Cro%27%2C%20%271%20Cr%27%5D%2C%5Cn%20%20%20%20%5B%272%20Cr%5Cu00f3nicas%27%2C%20%272Cr%27%2C%20%272%20Cro%27%2C%20%272%20Cr%27%5D%2C%5Cn%20%20%20%20%5B%27Esdras%27%2C%20%27Esd%27%5D%2C%5Cn%20%20%20%20%5B%27Nehem%5Cu00edas%27%2C%20%27Ne%27%2C%20%27Neh%27%5D%2C%5Cn%20%20%20%20%5B%27Ester%27%2C%20%27Est%27%5D%2C%5Cn%20%20%20%20%5B%27Job%27%2C%20%27Job%27%5D%2C%5Cn%20%20%20%20%5B%27Salmos%27%2C%20%27Sl%27%2C%20%27Sal%27%2C%20%27Salmo%27%5D%2C%5Cn%20%20%20%20%5B%27Proverbios%27%2C%20%27Pr%27%2C%20%27Pro%27%2C%20%27Prov%27%5D%2C%5Cn%20%20%20%20%5B%27Eclesiast%5Cu00e9s%27%2C%20%27Ec%27%2C%20%27Ecl%27%2C%20%27Ecle%27%5D%2C%5Cn%20%20%20%20%5B%27El%20Cantar%20de%20los%20Cantares%27%2C%20%27Can%27%2C%20%27Cantar%27%2C%20%27Cantar%20de%20los%20Cantares%27%5D%2C%5Cn%20%20%20%20%5B%27Isa%5Cu00edas%27%2C%20%27Isa%5Cu00edas%27%2C%20%27Isaias%27%2C%20%27Isa%27%2C%20%27Is%27%5D%2C%5Cn%20%20%20%20%5B%27Jerem%5Cu00edas%27%2C%20%27Jerem%5Cu00edas%27%2C%20%27Jeremias%27%2C%20%27Jere%27%2C%20%27Jer%27%5D%2C%5Cn%20%20%20%20%5B%27Lamentaciones%27%2C%20%27Lam%27%2C%20%27Lament%27%5D%2C%5Cn%20%20%20%20%5B%27Ezequiel%27%2C%20%27Eze%27%2C%20%27Ezeq%27%5D%2C%5Cn%20%20%20%20%5B%27Daniel%27%2C%20%27Da%27%2C%20%27Dan%27%5D%2C%5Cn%20%20%20%20%5B%27Oseas%27%2C%20%27Os%27%2C%20%27Ose%27%5D%2C%5Cn%20%20%20%20%5B%27Joel%27%2C%20%27Joe%27%5D%2C%5Cn%20%20%20%20%5B%27Am%5Cu00f3s%27%2C%20%27Am%27%2C%20%27Amos%27%5D%2C%5Cn%20%20%20%20%5B%27Abd%5Cu00edas%27%2C%20%27Abd%27%2C%20%27Abdias%27%5D%2C%5Cn%20%20%20%20%5B%27Jon%5Cu00e1s%27%2C%20%27Jon%27%2C%20%27Jonas%27%5D%2C%5Cn%20%20%20%20%5B%27Miqueas%27%2C%20%27Miq%27%2C%20%27Miquea%27%5D%2C%5Cn%20%20%20%20%5B%27Nah%5Cu00fam%27%2C%20%27Na%27%2C%20%27Nah%27%5D%2C%5Cn%20%20%20%20%5B%27Habacuc%27%2C%20%27Hab%27%2C%20%27Haba%27%5D%2C%5Cn%20%20%20%20%5B%27Sofon%5Cu00edas%27%2C%20%27Sof%27%2C%20%27Sofonias%27%5D%2C%5Cn%20%20%20%20%5B%27Ageo%27%2C%20%27Ag%27%2C%20%27Age%27%5D%2C%5Cn%20%20%20%20%5B%27Zacar%5Cu00edas%27%2C%20%27Zac%27%2C%20%27Zacarias%27%5D%2C%5Cn%20%20%20%20%5B%27Malaqu%5Cu00edas%27%2C%20%27Mal%27%2C%20%27Malaquias%27%5D%2C%5Cn%20%20%20%20%5B%27Mateo%27%2C%20%27Mt%27%2C%20%27Mat%27%5D%2C%5Cn%20%20%20%20%5B%27Marcos%27%2C%20%27Mr%27%2C%20%27Marc%27%2C%20%27Mar%27%5D%2C%5Cn%20%20%20%20%5B%27Lucas%27%2C%20%27Lu%27%2C%20%27Luc%27%5D%2C%5Cn%20%20%20%20%5B%27Juan%27%2C%20%27Jn%27%5D%2C%5Cn%20%20%20%20%5B%27Hechos%27%2C%20%27Hch%27%2C%20%27Hech%27%5D%2C%5Cn%20%20%20%20%5B%27Romanos%27%2C%20%27Ro%27%2C%20%27Rom%27%5D%2C%5Cn%20%20%20%20%5B%271%20Corintios%27%2C%20%271Co%27%2C%20%271%20Cor%27%5D%2C%5Cn%20%20%20%20%5B%272%20Corintios%27%2C%20%272Co%27%2C%20%272%20Cor%27%5D%2C%5Cn%20%20%20%20%5B%27G%5Cu00e1latas%27%2C%20%27G%5Cu00e1l%27%2C%20%27Galatas%27%2C%20%27Gal%27%5D%2C%5Cn%20%20%20%20%5B%27Efesios%27%2C%20%27Ef%27%2C%20%27Efe%27%5D%2C%5Cn%20%20%20%20%5B%27Filipenses%27%2C%20%27Flp%27%2C%20%27Fili%27%5D%2C%5Cn%20%20%20%20%5B%27Colosenses%27%2C%20%27Col%27%2C%20%27Colo%27%5D%2C%5Cn%20%20%20%20%5B%271%20Tesalonicenses%27%2C%20%271Te%27%2C%20%271%20Te%27%2C%20%271%20Tes%27%5D%2C%5Cn%20%20%20%20%5B%272%20Tesalonicenses%27%2C%20%272Te%27%2C%20%272%20Te%27%2C%20%272%20Tes%27%5D%2C%5Cn%20%20%20%20%5B%271%20Timoteo%27%2C%20%271Ti%27%2C%20%271%20Ti%27%2C%20%271%20Tim%27%5D%2C%5Cn%20%20%20%20%5B%272%20Timoteo%27%2C%20%272Ti%27%2C%20%272%20Ti%27%2C%20%272%20Tim%27%5D%2C%5Cn%20%20%20%20%5B%27Tito%27%2C%20%27Tit%27%5D%2C%5Cn%20%20%20%20%5B%27Filem%5Cu00f3n%27%2C%20%27Flm%27%2C%20%27File%27%2C%20%27Filemon%27%5D%2C%5Cn%20%20%20%20%5B%27Hebreos%27%2C%20%27Heb%27%2C%20%27Hebr%27%5D%2C%5Cn%20%20%20%20%5B%27Santiago%27%2C%20%27Snt%27%2C%20%27Sant%27%5D%2C%5Cn%20%20%20%20%5B%271%20Pedro%27%2C%20%271Pe%27%2C%20%271%20Ped%27%2C%20%271%20Pe%27%5D%2C%5Cn%20%20%20%20%5B%272%20Pedro%27%2C%20%272Pe%27%2C%20%272%20Ped%27%2C%20%272%20Pe%27%5D%2C%5Cn%20%20%20%20%5B%271%20Juan%27%2C%20%271Jn%27%2C%20%271%20Jn%27%5D%2C%5Cn%20%20%20%20%5B%272%20Juan%27%2C%20%272Jn%27%2C%20%272%20Jn%27%5D%2C%5Cn%20%20%20%20%5B%273%20Juan%27%2C%20%273Jn%27%2C%20%273%20Jn%27%5D%2C%5Cn%20%20%20%20%5B%27Judas%27%2C%20%27Jud%27%5D%2C%5Cn%20%20%20%20%5B%27Revelaci%5Cu00f3n%27%2C%20%27Rev%27%2C%20%27Revelacion%27%2C%20%27Revel%27%2C%20%27Re%27%5D%5Cn%5D%5Cn%5Cndef%20getBook%28book%29%3A%5Cn%5Ctfor%20list%20in%20bible%3A%5Cn%5Ct%5Ctfor%20bookName%20in%20list%3A%5Cn%5Ct%5Ct%5Ctif%20bookName.lower%28%29.strip%28%29%20%3D%3D%20book.lower%28%29.strip%28%29%3A%5Cn%5Ct%5Ct%5Ct%5Ctreturn%20%28list%5B0%5D%2C%20list%5B1%5D%29%5Cn%5Ctreturn%20%28%27%27%2C%20%27%27%29%5Cn%5Ct%5Cn%5Cndef%20processMatch%28m%29%3A%5Cn%5Ctpart%20%3D%20%27%27%5Cn%5Ctbook%20%3D%20%27%27%5Cn%5Ctabreviation%20%3D%20%27%27%5Cn%5Ctchapter%20%3D%20%27%27%5Cn%5Ctverses%20%3D%20%27%27%3B%5Cn%5Ctif%20m.group%282%29%20is%20not%20None%3A%5Cn%5Ct%5Ctpart%20%3D%20m.group%282%29.strip%28%29%5Cn%5Ctif%20m.group%283%29%20is%20not%20None%3A%5Cn%5Ct%5Ctbook%20%3D%20m.group%283%29.strip%28%29%5Cn%5Ctif%20m.group%284%29%20is%20not%20None%3A%5Cn%5Ct%5Ctchapter%20%3D%20m.group%284%29.strip%28%29%5Cn%5Ctif%20m.group%285%29%20is%20not%20None%3A%5Cn%5Ct%5Ctverses%20%3D%20m.group%285%29.strip%28%29%5Cn%5Ct%28libro%2C%20abreviation%29%20%3D%20getBook%28part%20%2B%20%5C%22%20%5C%22%20%2B%20book%29%5Cn%5Ct%5Cn%5Ctif%20m.group%281%29%20is%20not%20None%3A%5Cn%5Ct%5Ctif%20m.group%281%29.strip%28%29%20%3D%3D%20%27%5B%27%3A%5Cn%5Ct%5Ct%5Ctreturn%20false%5Cn%5Ct%5Ctelif%20m.group%281%29.strip%28%29%20%3D%3D%20%27%3D%27%3A%5Cn%5Ct%5Ct%5Ctreturn%20false%5Cn%5Ct%5Ctelse%3A%5Cn%5Ct%5Ct%5Ctreturn%20%27%5B%7B0%7D%20%7B1%7D%3A%7B2%7D%5D%28equipdbible%3A%2F%2Fx-callback-url%2Flookup%3Fx-source%3Deditorial%26language%3Des%26scripture%3D%7B3%7D%7B4%7D%3A%7B5%7D%26x-success%3Deditorial%3A%2F%2F%29%27.format%28libro.strip%28%29%2C%20chapter.strip%28%29%2C%20verses%2C%20abreviation.strip%28%29%2C%20chapter.strip%28%29%2Cverses.strip%28%29.replace%28%27%20%27%2C%20%27%27%29%29%5Cn%5Ctelse%3A%5Cn%5Ct%5Ctreturn%20%27%5B%7B0%7D%20%7B1%7D%3A%7B2%7D%5D%28equipdbible%3A%2F%2Fx-callback-url%2Flookup%3Fx-source%3Deditorial%26language%3Des%26scripture%3D%7B3%7D%7B4%7D%3A%7B5%7D%26x-success%3Deditorial%3A%2F%2F%29%27.format%28libro.strip%28%29%2C%20chapter.strip%28%29%2C%20verses%2C%20abreviation.strip%28%29%2C%20chapter.strip%28%29%2Cverses.strip%28%29.replace%28%27%20%27%2C%20%27%27%29%29%5Cn%5Cn%23This%20regular%20expression%20matches%20a%20bible%20scripture%20capturing%20%5Cn%23Group%201%20%28%5B%20%3D%20or%20Empty%29%20-%20This%20char%20help%20identify%20when%20a%20scripture%20has%20already%20been%20extracted%20and%20replaced%20in%20the%20text%20as%20a%20markdown%20link%20to%20equipd%20bible.%5Cn%23Group%202%20%28Primero%2C%20segundo%20or%20tercero%29%20%28o%20vac%5Cu00edo%29%5Cn%23Group%203%20%28Libro%20de%20la%20Biblia%29%5Cn%23Group%204%20%28Cap%5Cu00edtulo%29%5Cn%23Group%205%20%28Vers%5Cu00edculo%2Fs%29%5Cn%5Cnregex%20%3D%20re.compile%28r%27%28%5B%5C%5C%5B%3D%5D%29%3F%28%5B1-3%5D%29%3F%28%3F%3A%5C%5Cs%2A%29%28%5B%5C%5Cw%2B%5D%7B2%2C%7D%29%5B.%5D%3F%28%3F%3A%5C%5Cs%2A%29%28%5C%5Cd%2B%29%28%3F%3A%5C%5Cs%2A%29%5B%3A%5D%28%28%3F%3A%5C%5Cs%2A%29%28%3F%3A%5C%5Cd%2B%29%28%3F%3A%28%3F%3A%5B%2C%3B%3A%5Cu2013-%5D%29%3F%28%3F%3A%5C%5Cs%2A%29%28%3F%3A%5C%5Cd%2B%29%3F%29%2A%29%27%2C%20re.UNICODE%29%5Cn%5Cnresult%20%3D%20regex.sub%28processMatch%2C%20action_in%29%5Cn%5Cnworkflow.set_output%28result%29%5Cn%22%7D%2C%20%22class%22%3A%20%22WorkflowActionRunScript%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22name%22%3A%20%22urlToEquipd%22%2C%20%22value%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22Input%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionStoreVariable%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22name%22%3A%20%22Input%22%2C%20%22value%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22initialInput%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionStoreVariable%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22findOption%22%3A%200%2C%20%22find%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22scriptureBefore%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22replace%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22urlToEquipd%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionFindReplace%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22name%22%3A%20%22initialInput%22%2C%20%22value%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22Input%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionStoreVariable%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22name%22%3A%20%22madeChange%22%2C%20%22value%22%3A%20%7B%22text%22%3A%20%22True%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionStoreVariable%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%7D%2C%20%22class%22%3A%20%22WorkflowActionConditionEnd%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%7D%2C%20%22class%22%3A%20%22WorkflowActionRepeatWithLinesEnd%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22expression1%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22madeChange%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22expression2%22%3A%20%7B%22text%22%3A%20%22True%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22comparisonType%22%3A%200%7D%2C%20%22class%22%3A%20%22WorkflowActionCondition%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22numberOfSteps%22%3A%20%7B%22text%22%3A%20%221%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22direction%22%3A%202%2C%20%22unit%22%3A%200%7D%2C%20%22class%22%3A%20%22WorkflowActionExtendSelection%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22replacement%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22initialInput%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionReplaceSelectedText%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%7D%2C%20%22class%22%3A%20%22WorkflowActionConditionEnd%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22script%22%3A%20%22%23coding%3A%20utf-8%5Cnimport%20workflow%5Cnimport%20editor%5Cn%5Cneditor.set_scroll_position%28float%28workflow.get_variable%28%27ScrollPosition%27%29%29%29%5Cn%22%7D%2C%20%22class%22%3A%20%22WorkflowActionRunScript%22%7D%5D%2C%20%22name%22%3A%20%22Detectar%20Textos%20B%5Cu00edblicos%22%2C%20%22version%22%3A%20%22133001%22%2C%20%22device%22%3A%20%7B%22userInterfaceIdiom%22%3A%201%2C%20%22model%22%3A%20%22iPad5%2C3%22%2C%20%22systemVersion%22%3A%20%2212.1.4%22%7D%2C%20%22type%22%3A%20%22wkflw%22%2C%20%22public%22%3A%20true%2C%20%22icon%22%3A%20%22minicons-icons-content-book-6.png%22%7D", "description": "Detectar Textos B\u00edblicos", "title": "Detectar Textos B\u00edblicos"}, {"url": "http://editorial-app.appspot.com/workflow/5878556357820416/hiMDMWRFL90", "workflow_data": {"username": "", "description": "Fixed an issue with \"ZIP does not support timestamps before 1980\"\nEnjoy!\n\nSaves or restores a backup of all Editorial workflows, snippets, bookmarks, and local documents as a zip file in Dropbox (this requires the Dropbox account to be linked).\r\n\r\nPlease note: If you want to restore a backup on a different device, you first have to download the backup file (just tap on it in the document list). This is required because Editorial doesn't sync zip files by default.\r\n\r\nRestoring a backup will *overwrite* all existing workflows, snippets, and bookmarks, so it's possible that you'll lose data this way. The best way to avoid any data loss is to create a backup before restoring anything.", "actions": [{"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"button1Value": {"text": "backup", "tokenRanges": {}, "type": "advancedText"}, "button3Value": {"text": "", "tokenRanges": {}, "type": "advancedText"}, "button2Value": {"text": "restore", "tokenRanges": {}, "type": "advancedText"}, "title": "Create or Restore?", "button3Title": "", "button2Title": "Restore...", "button1Title": "Create Backup", "message": {"text": "The backup of your workflows, snippets, bookmarks, and local documents will be created as a zip file in your Dropbox (EditorialBackup_?_?_?-?_?.zip). Editorial needs to be linked to Dropbox for this to work.", "tokenRanges": {"{142, 1}": "%date:mm", "{134, 1}": "%date:yyyy", "{136, 1}": "%date:MM", "{140, 1}": "%date:HH", "{138, 1}": "%date:dd"}, "type": "advancedText"}, "showCancelButton": true}, "class": "WorkflowActionShowAlert"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"name": "Action", "value": {"text": "?", "tokenRanges": {"{0, 1}": "Input"}, "type": "advancedText"}}, "class": "WorkflowActionStoreVariable"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "If \"Backup\" was selected...", "parameters": {"expression1": {"text": "?", "tokenRanges": {"{0, 1}": "Action"}, "type": "advancedText"}, "expression2": {"text": "backup", "tokenRanges": {}, "type": "advancedText"}, "comparisonType": 0}, "class": "WorkflowActionCondition"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "Create the Backup (Python)", "parameters": {"script": "#coding: utf-8\nimport workflow\nimport editor\nimport os\nfrom zipfile import ZipFile\nimport datetime\nfrom io import BytesIO\nimport json\nimport shutil\n\nt = datetime.datetime.today()\nbackup_filename = 'EditorialBackup_' + t.strftime('%Y_%m_%d-%H_%M') + '.zip'\nwf_path = editor.get_workflows_path()\nwf_files = os.listdir(wf_path)\nsnpt_path = os.path.expanduser('~/Library/Application Support/Snippets')\nsnpt_files = os.listdir(snpt_path)\ndoc_path = os.path.expanduser('~/Documents')\ndoc_files = os.listdir(doc_path)\n\nzip_buffer = BytesIO()\nwith ZipFile(zip_buffer, 'w') as z:\n\t# Backup workflows:\n\tos.chdir(wf_path)\n\tfor filename in wf_files:\n\t\tname, extension = os.path.splitext(filename)\n\t\tif extension in ('.wkflw', '.edcmd'):\n\t\t\tz.write(filename)\n\t# Backup snippets:\n\tos.chdir(snpt_path)\n\tfor filename in snpt_files:\n\t\tname, extension = os.path.splitext(filename)\n\t\tif extension in ('.snpt', '.edcmd'):\n\t\t\tz.write(filename)\n\t# Backup bookmarks\n\tz.writestr('EditorBookmarks.json', json.dumps(editor.get_bookmarks('editor')))\n\tz.writestr('BrowserBookmarks.json', json.dumps(editor.get_bookmarks('browser')))\n\t# Backup local documents:\n\tos.chdir(doc_path)\n\tdocZip = ZipFile('Documents.zip','a')\n\tfor filename in doc_files:\n\t\ttry:\n\t\t\tdocZip.write(filename)\n\t\texcept:\n\t\t\tpass\n\tdocZip.close()\n\tz.write('Documents.zip')\n\tos.remove('Documents.zip')\n\nzip_data = zip_buffer.getvalue()\neditor.set_file_contents(backup_filename, zip_data, 'dropbox')\n"}, "class": "WorkflowActionRunScript"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"duration": 1, "HUDText": {"text": "Backup Created", "tokenRanges": {}, "type": "advancedText"}, "icon": 0}, "class": "WorkflowActionShowHUD"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {}, "class": "WorkflowActionConditionEnd"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "If \"Restore\" was selected....", "parameters": {"expression1": {"text": "?", "tokenRanges": {"{0, 1}": "Action"}, "type": "advancedText"}, "expression2": {"text": "restore", "tokenRanges": {}, "type": "advancedText"}, "comparisonType": 0}, "class": "WorkflowActionCondition"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "List Backups (Python)", "parameters": {"script": "#coding: utf-8\nimport workflow\nimport editor\nimport os\nimport re\n\nwf_path = editor.get_workflows_path()\ndb_path = os.path.join(os.path.split(wf_path)[0], 'Dropbox')\n\nbackups = []\nfiles = os.listdir(db_path)\nfor filename in files:\n\tif re.match('EditorialBackup_.*\\\\.zip$', filename):\n\t\tbackups.append(filename)\nworkflow.set_output('\\n'.join(backups))\n"}, "class": "WorkflowActionRunScript"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "Stop if no backups are found...", "parameters": {"expression1": {"text": "?", "tokenRanges": {"{0, 1}": "Input"}, "type": "advancedText"}, "expression2": {"text": "", "tokenRanges": {}, "type": "advancedText"}, "comparisonType": 0}, "class": "WorkflowActionCondition"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"button1Value": {"text": "", "tokenRanges": {}, "type": "advancedText"}, "button3Value": {"text": "", "tokenRanges": {}, "type": "advancedText"}, "button2Value": {"text": "", "tokenRanges": {}, "type": "advancedText"}, "title": "No Backups Found", "button3Title": "", "button2Title": "", "button1Title": "", "message": {"text": "No backup files were found. You might need to download them first, if you see grayed-out backup files in your Dropbox folder.", "tokenRanges": {}, "type": "advancedText"}, "showCancelButton": false}, "class": "WorkflowActionShowAlert"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"showHUD": false, "HUDTitle": "", "stopOption": 0}, "class": "WorkflowActionStopWorkflow"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {}, "class": "WorkflowActionConditionEnd"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"list": {"text": "?", "tokenRanges": {"{0, 1}": "Input"}, "type": "advancedText"}, "title": "Select a Backup", "showInPopover": false, "allowMultipleSelection": false}, "class": "WorkflowActionSelectFromList"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "Show Warning Alert", "parameters": {"button1Value": {"text": "?", "tokenRanges": {"{0, 1}": "Input"}, "type": "advancedText"}, "button3Value": {"text": "", "tokenRanges": {}, "type": "advancedText"}, "button2Value": {"text": "", "tokenRanges": {}, "type": "advancedText"}, "title": "Warning", "button3Title": "", "button2Title": "", "button1Title": "Continue", "message": {"text": "This will replace all your workflows, snippets, bookmarks, and local documents with the ones that are stored in the selected backup (?).\n\nDocuments that are synced with Dropbox will not be changed.", "tokenRanges": {"{133, 1}": "Input"}, "type": "advancedText"}, "showCancelButton": true}, "class": "WorkflowActionShowAlert"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "Restore the Backup (Python)", "parameters": {"script": "#coding: utf-8\nimport workflow\nimport editor\nfrom os import path\nimport os\nfrom zipfile import ZipFile\nimport shutil\nimport json\n\nbackup_filename = workflow.get_input()\ndb_path = path.join(path.split(editor.get_workflows_path())[0], 'Dropbox')\nbackup_path = path.join(db_path, backup_filename)\n\nwith ZipFile(backup_path, 'r') as z:\n\tz.extractall(editor.get_workflows_path())\nwf_path = editor.get_workflows_path()\nsnpt_path = os.path.expanduser('~/Library/Application Support/Snippets')\nfiles = os.listdir(wf_path)\nfor filename in files:\n\tif filename == 'Snippets.edcmd' or path.splitext(filename)[1] == '.snpt':\n\t\tshutil.move(os.path.join(wf_path, filename), os.path.join(snpt_path, filename))\n\tif filename == 'EditorBookmarks.json':\n\t\twith open(os.path.join(wf_path, filename), 'r') as f:\n\t\t\tbookmarks = json.load(f)\n\t\t\teditor.set_bookmarks(bookmarks, 'editor')\n\t\tos.remove(os.path.join(wf_path, filename))\n\tif filename == 'BrowserBookmarks.json':\n\t\twith open(os.path.join(wf_path, filename), 'r') as f:\n\t\t\tbookmarks = json.load(f)\n\t\t\teditor.set_bookmarks(bookmarks, 'browser')\n\t\tos.remove(os.path.join(wf_path, filename))\n\tif filename == 'Documents.zip':\n\t\tdoc_path = os.path.expanduser('~/Documents')\n\t\twith ZipFile(filename, 'r') as docszip:\n\t\t\tnames = docszip.namelist()\n\t\t\tfor name in names:\n\t\t\t\ttry:\n\t\t\t\t\tdocszip.extract(name, doc_path)\n\t\t\t\texcept:\n\t\t\t\t\tpass\n\t\tos.remove(os.path.join(wf_path, filename))\n\neditor.reload_workflows()\neditor.reload_files()\n"}, "class": "WorkflowActionRunScript"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"duration": 1, "HUDText": {"text": "Backup Restored", "tokenRanges": {}, "type": "advancedText"}, "icon": 0}, "class": "WorkflowActionShowHUD"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {}, "class": "WorkflowActionConditionEnd"}], "name": "Editorial Backup", "version": "133001", "device": {"userInterfaceIdiom": 0, "model": "iPhone9,3", "systemVersion": "12.1.4"}, "type": "wkflw", "public": true, "icon": "minicons-icons-file-zip.png"}, "install_url": "editorial://add-workflow?workflow-data=%7B%22username%22%3A%20%22%22%2C%20%22description%22%3A%20%22Fixed%20an%20issue%20with%20%5C%22ZIP%20does%20not%20support%20timestamps%20before%201980%5C%22%5CnEnjoy%21%5Cn%5CnSaves%20or%20restores%20a%20backup%20of%20all%20Editorial%20workflows%2C%20snippets%2C%20bookmarks%2C%20and%20local%20documents%20as%20a%20zip%20file%20in%20Dropbox%20%28this%20requires%20the%20Dropbox%20account%20to%20be%20linked%29.%5Cr%5Cn%5Cr%5CnPlease%20note%3A%20If%20you%20want%20to%20restore%20a%20backup%20on%20a%20different%20device%2C%20you%20first%20have%20to%20download%20the%20backup%20file%20%28just%20tap%20on%20it%20in%20the%20document%20list%29.%20This%20is%20required%20because%20Editorial%20doesn%27t%20sync%20zip%20files%20by%20default.%5Cr%5Cn%5Cr%5CnRestoring%20a%20backup%20will%20%2Aoverwrite%2A%20all%20existing%20workflows%2C%20snippets%2C%20and%20bookmarks%2C%20so%20it%27s%20possible%20that%20you%27ll%20lose%20data%20this%20way.%20The%20best%20way%20to%20avoid%20any%20data%20loss%20is%20to%20create%20a%20backup%20before%20restoring%20anything.%22%2C%20%22actions%22%3A%20%5B%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22button1Value%22%3A%20%7B%22text%22%3A%20%22backup%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22button3Value%22%3A%20%7B%22text%22%3A%20%22%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22button2Value%22%3A%20%7B%22text%22%3A%20%22restore%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22title%22%3A%20%22Create%20or%20Restore%3F%22%2C%20%22button3Title%22%3A%20%22%22%2C%20%22button2Title%22%3A%20%22Restore...%22%2C%20%22button1Title%22%3A%20%22Create%20Backup%22%2C%20%22message%22%3A%20%7B%22text%22%3A%20%22The%20backup%20of%20your%20workflows%2C%20snippets%2C%20bookmarks%2C%20and%20local%20documents%20will%20be%20created%20as%20a%20zip%20file%20in%20your%20Dropbox%20%28EditorialBackup_%3F_%3F_%3F-%3F_%3F.zip%29.%20Editorial%20needs%20to%20be%20linked%20to%20Dropbox%20for%20this%20to%20work.%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B142%2C%201%7D%22%3A%20%22%25date%3Amm%22%2C%20%22%7B134%2C%201%7D%22%3A%20%22%25date%3Ayyyy%22%2C%20%22%7B136%2C%201%7D%22%3A%20%22%25date%3AMM%22%2C%20%22%7B140%2C%201%7D%22%3A%20%22%25date%3AHH%22%2C%20%22%7B138%2C%201%7D%22%3A%20%22%25date%3Add%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22showCancelButton%22%3A%20true%7D%2C%20%22class%22%3A%20%22WorkflowActionShowAlert%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22name%22%3A%20%22Action%22%2C%20%22value%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22Input%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionStoreVariable%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22If%20%5C%22Backup%5C%22%20was%20selected...%22%2C%20%22parameters%22%3A%20%7B%22expression1%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22Action%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22expression2%22%3A%20%7B%22text%22%3A%20%22backup%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22comparisonType%22%3A%200%7D%2C%20%22class%22%3A%20%22WorkflowActionCondition%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22Create%20the%20Backup%20%28Python%29%22%2C%20%22parameters%22%3A%20%7B%22script%22%3A%20%22%23coding%3A%20utf-8%5Cnimport%20workflow%5Cnimport%20editor%5Cnimport%20os%5Cnfrom%20zipfile%20import%20ZipFile%5Cnimport%20datetime%5Cnfrom%20io%20import%20BytesIO%5Cnimport%20json%5Cnimport%20shutil%5Cn%5Cnt%20%3D%20datetime.datetime.today%28%29%5Cnbackup_filename%20%3D%20%27EditorialBackup_%27%20%2B%20t.strftime%28%27%25Y_%25m_%25d-%25H_%25M%27%29%20%2B%20%27.zip%27%5Cnwf_path%20%3D%20editor.get_workflows_path%28%29%5Cnwf_files%20%3D%20os.listdir%28wf_path%29%5Cnsnpt_path%20%3D%20os.path.expanduser%28%27%7E%2FLibrary%2FApplication%20Support%2FSnippets%27%29%5Cnsnpt_files%20%3D%20os.listdir%28snpt_path%29%5Cndoc_path%20%3D%20os.path.expanduser%28%27%7E%2FDocuments%27%29%5Cndoc_files%20%3D%20os.listdir%28doc_path%29%5Cn%5Cnzip_buffer%20%3D%20BytesIO%28%29%5Cnwith%20ZipFile%28zip_buffer%2C%20%27w%27%29%20as%20z%3A%5Cn%5Ct%23%20Backup%20workflows%3A%5Cn%5Ctos.chdir%28wf_path%29%5Cn%5Ctfor%20filename%20in%20wf_files%3A%5Cn%5Ct%5Ctname%2C%20extension%20%3D%20os.path.splitext%28filename%29%5Cn%5Ct%5Ctif%20extension%20in%20%28%27.wkflw%27%2C%20%27.edcmd%27%29%3A%5Cn%5Ct%5Ct%5Ctz.write%28filename%29%5Cn%5Ct%23%20Backup%20snippets%3A%5Cn%5Ctos.chdir%28snpt_path%29%5Cn%5Ctfor%20filename%20in%20snpt_files%3A%5Cn%5Ct%5Ctname%2C%20extension%20%3D%20os.path.splitext%28filename%29%5Cn%5Ct%5Ctif%20extension%20in%20%28%27.snpt%27%2C%20%27.edcmd%27%29%3A%5Cn%5Ct%5Ct%5Ctz.write%28filename%29%5Cn%5Ct%23%20Backup%20bookmarks%5Cn%5Ctz.writestr%28%27EditorBookmarks.json%27%2C%20json.dumps%28editor.get_bookmarks%28%27editor%27%29%29%29%5Cn%5Ctz.writestr%28%27BrowserBookmarks.json%27%2C%20json.dumps%28editor.get_bookmarks%28%27browser%27%29%29%29%5Cn%5Ct%23%20Backup%20local%20documents%3A%5Cn%5Ctos.chdir%28doc_path%29%5Cn%5CtdocZip%20%3D%20ZipFile%28%27Documents.zip%27%2C%27a%27%29%5Cn%5Ctfor%20filename%20in%20doc_files%3A%5Cn%5Ct%5Cttry%3A%5Cn%5Ct%5Ct%5CtdocZip.write%28filename%29%5Cn%5Ct%5Ctexcept%3A%5Cn%5Ct%5Ct%5Ctpass%5Cn%5CtdocZip.close%28%29%5Cn%5Ctz.write%28%27Documents.zip%27%29%5Cn%5Ctos.remove%28%27Documents.zip%27%29%5Cn%5Cnzip_data%20%3D%20zip_buffer.getvalue%28%29%5Cneditor.set_file_contents%28backup_filename%2C%20zip_data%2C%20%27dropbox%27%29%5Cn%22%7D%2C%20%22class%22%3A%20%22WorkflowActionRunScript%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22duration%22%3A%201%2C%20%22HUDText%22%3A%20%7B%22text%22%3A%20%22Backup%20Created%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22icon%22%3A%200%7D%2C%20%22class%22%3A%20%22WorkflowActionShowHUD%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%7D%2C%20%22class%22%3A%20%22WorkflowActionConditionEnd%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22If%20%5C%22Restore%5C%22%20was%20selected....%22%2C%20%22parameters%22%3A%20%7B%22expression1%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22Action%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22expression2%22%3A%20%7B%22text%22%3A%20%22restore%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22comparisonType%22%3A%200%7D%2C%20%22class%22%3A%20%22WorkflowActionCondition%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22List%20Backups%20%28Python%29%22%2C%20%22parameters%22%3A%20%7B%22script%22%3A%20%22%23coding%3A%20utf-8%5Cnimport%20workflow%5Cnimport%20editor%5Cnimport%20os%5Cnimport%20re%5Cn%5Cnwf_path%20%3D%20editor.get_workflows_path%28%29%5Cndb_path%20%3D%20os.path.join%28os.path.split%28wf_path%29%5B0%5D%2C%20%27Dropbox%27%29%5Cn%5Cnbackups%20%3D%20%5B%5D%5Cnfiles%20%3D%20os.listdir%28db_path%29%5Cnfor%20filename%20in%20files%3A%5Cn%5Ctif%20re.match%28%27EditorialBackup_.%2A%5C%5C%5C%5C.zip%24%27%2C%20filename%29%3A%5Cn%5Ct%5Ctbackups.append%28filename%29%5Cnworkflow.set_output%28%27%5C%5Cn%27.join%28backups%29%29%5Cn%22%7D%2C%20%22class%22%3A%20%22WorkflowActionRunScript%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22Stop%20if%20no%20backups%20are%20found...%22%2C%20%22parameters%22%3A%20%7B%22expression1%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22Input%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22expression2%22%3A%20%7B%22text%22%3A%20%22%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22comparisonType%22%3A%200%7D%2C%20%22class%22%3A%20%22WorkflowActionCondition%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22button1Value%22%3A%20%7B%22text%22%3A%20%22%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22button3Value%22%3A%20%7B%22text%22%3A%20%22%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22button2Value%22%3A%20%7B%22text%22%3A%20%22%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22title%22%3A%20%22No%20Backups%20Found%22%2C%20%22button3Title%22%3A%20%22%22%2C%20%22button2Title%22%3A%20%22%22%2C%20%22button1Title%22%3A%20%22%22%2C%20%22message%22%3A%20%7B%22text%22%3A%20%22No%20backup%20files%20were%20found.%20You%20might%20need%20to%20download%20them%20first%2C%20if%20you%20see%20grayed-out%20backup%20files%20in%20your%20Dropbox%20folder.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22showCancelButton%22%3A%20false%7D%2C%20%22class%22%3A%20%22WorkflowActionShowAlert%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22showHUD%22%3A%20false%2C%20%22HUDTitle%22%3A%20%22%22%2C%20%22stopOption%22%3A%200%7D%2C%20%22class%22%3A%20%22WorkflowActionStopWorkflow%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%7D%2C%20%22class%22%3A%20%22WorkflowActionConditionEnd%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22list%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22Input%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22title%22%3A%20%22Select%20a%20Backup%22%2C%20%22showInPopover%22%3A%20false%2C%20%22allowMultipleSelection%22%3A%20false%7D%2C%20%22class%22%3A%20%22WorkflowActionSelectFromList%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22Show%20Warning%20Alert%22%2C%20%22parameters%22%3A%20%7B%22button1Value%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22Input%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22button3Value%22%3A%20%7B%22text%22%3A%20%22%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22button2Value%22%3A%20%7B%22text%22%3A%20%22%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22title%22%3A%20%22Warning%22%2C%20%22button3Title%22%3A%20%22%22%2C%20%22button2Title%22%3A%20%22%22%2C%20%22button1Title%22%3A%20%22Continue%22%2C%20%22message%22%3A%20%7B%22text%22%3A%20%22This%20will%20replace%20all%20your%20workflows%2C%20snippets%2C%20bookmarks%2C%20and%20local%20documents%20with%20the%20ones%20that%20are%20stored%20in%20the%20selected%20backup%20%28%3F%29.%5Cn%5CnDocuments%20that%20are%20synced%20with%20Dropbox%20will%20not%20be%20changed.%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B133%2C%201%7D%22%3A%20%22Input%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22showCancelButton%22%3A%20true%7D%2C%20%22class%22%3A%20%22WorkflowActionShowAlert%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22Restore%20the%20Backup%20%28Python%29%22%2C%20%22parameters%22%3A%20%7B%22script%22%3A%20%22%23coding%3A%20utf-8%5Cnimport%20workflow%5Cnimport%20editor%5Cnfrom%20os%20import%20path%5Cnimport%20os%5Cnfrom%20zipfile%20import%20ZipFile%5Cnimport%20shutil%5Cnimport%20json%5Cn%5Cnbackup_filename%20%3D%20workflow.get_input%28%29%5Cndb_path%20%3D%20path.join%28path.split%28editor.get_workflows_path%28%29%29%5B0%5D%2C%20%27Dropbox%27%29%5Cnbackup_path%20%3D%20path.join%28db_path%2C%20backup_filename%29%5Cn%5Cnwith%20ZipFile%28backup_path%2C%20%27r%27%29%20as%20z%3A%5Cn%5Ctz.extractall%28editor.get_workflows_path%28%29%29%5Cnwf_path%20%3D%20editor.get_workflows_path%28%29%5Cnsnpt_path%20%3D%20os.path.expanduser%28%27%7E%2FLibrary%2FApplication%20Support%2FSnippets%27%29%5Cnfiles%20%3D%20os.listdir%28wf_path%29%5Cnfor%20filename%20in%20files%3A%5Cn%5Ctif%20filename%20%3D%3D%20%27Snippets.edcmd%27%20or%20path.splitext%28filename%29%5B1%5D%20%3D%3D%20%27.snpt%27%3A%5Cn%5Ct%5Ctshutil.move%28os.path.join%28wf_path%2C%20filename%29%2C%20os.path.join%28snpt_path%2C%20filename%29%29%5Cn%5Ctif%20filename%20%3D%3D%20%27EditorBookmarks.json%27%3A%5Cn%5Ct%5Ctwith%20open%28os.path.join%28wf_path%2C%20filename%29%2C%20%27r%27%29%20as%20f%3A%5Cn%5Ct%5Ct%5Ctbookmarks%20%3D%20json.load%28f%29%5Cn%5Ct%5Ct%5Cteditor.set_bookmarks%28bookmarks%2C%20%27editor%27%29%5Cn%5Ct%5Ctos.remove%28os.path.join%28wf_path%2C%20filename%29%29%5Cn%5Ctif%20filename%20%3D%3D%20%27BrowserBookmarks.json%27%3A%5Cn%5Ct%5Ctwith%20open%28os.path.join%28wf_path%2C%20filename%29%2C%20%27r%27%29%20as%20f%3A%5Cn%5Ct%5Ct%5Ctbookmarks%20%3D%20json.load%28f%29%5Cn%5Ct%5Ct%5Cteditor.set_bookmarks%28bookmarks%2C%20%27browser%27%29%5Cn%5Ct%5Ctos.remove%28os.path.join%28wf_path%2C%20filename%29%29%5Cn%5Ctif%20filename%20%3D%3D%20%27Documents.zip%27%3A%5Cn%5Ct%5Ctdoc_path%20%3D%20os.path.expanduser%28%27%7E%2FDocuments%27%29%5Cn%5Ct%5Ctwith%20ZipFile%28filename%2C%20%27r%27%29%20as%20docszip%3A%5Cn%5Ct%5Ct%5Ctnames%20%3D%20docszip.namelist%28%29%5Cn%5Ct%5Ct%5Ctfor%20name%20in%20names%3A%5Cn%5Ct%5Ct%5Ct%5Cttry%3A%5Cn%5Ct%5Ct%5Ct%5Ct%5Ctdocszip.extract%28name%2C%20doc_path%29%5Cn%5Ct%5Ct%5Ct%5Ctexcept%3A%5Cn%5Ct%5Ct%5Ct%5Ct%5Ctpass%5Cn%5Ct%5Ctos.remove%28os.path.join%28wf_path%2C%20filename%29%29%5Cn%5Cneditor.reload_workflows%28%29%5Cneditor.reload_files%28%29%5Cn%22%7D%2C%20%22class%22%3A%20%22WorkflowActionRunScript%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22duration%22%3A%201%2C%20%22HUDText%22%3A%20%7B%22text%22%3A%20%22Backup%20Restored%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22icon%22%3A%200%7D%2C%20%22class%22%3A%20%22WorkflowActionShowHUD%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%7D%2C%20%22class%22%3A%20%22WorkflowActionConditionEnd%22%7D%5D%2C%20%22name%22%3A%20%22Editorial%20Backup%22%2C%20%22version%22%3A%20%22133001%22%2C%20%22device%22%3A%20%7B%22userInterfaceIdiom%22%3A%200%2C%20%22model%22%3A%20%22iPhone9%2C3%22%2C%20%22systemVersion%22%3A%20%2212.1.4%22%7D%2C%20%22type%22%3A%20%22wkflw%22%2C%20%22public%22%3A%20true%2C%20%22icon%22%3A%20%22minicons-icons-file-zip.png%22%7D", "description": "Fixed an issue with \"ZIP does not support timestamps before 1980\"\nEnjoy!\n\nSaves or restores a backup of all Editorial workflows, snippets, bookmarks, and local documents as a zip file in Dropbox (this requires the Dropbox account to be linked).\r\n\r\nPlease note: If you want to restore a backup on a different device, you first have to download the backup file (just tap on it in the document list). This is required because Editorial doesn't sync zip files by default.\r\n\r\nRestoring a backup will *overwrite* all existing workflows, snippets, and bookmarks, so it's possible that you'll lose data this way. The best way to avoid any data loss is to create a backup before restoring anything.", "title": "Editorial Backup"}, {"url": "http://editorial-app.appspot.com/workflow/5880192874577920/HkWFJSikxe0", "workflow_data": {"username": "Roll Dice (Open Legend)", "description": "Follows Sidekick dice specification format, but only supports items needed for Open Legend -- no modifiers, exploding dice, keeping high or low rolls pre-explosion.", "actions": [{"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"foldedTextReplacement": "\u2026", "emptySelectionOption": 2, "foldedTextOption": 0, "selectEntireLines": true}, "class": "WorkflowActionGetSelectedText"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"script": "#coding: utf-8\nimport workflow\nimport re\nimport random\n\nrollstring = workflow.get_input()\n\ndef zero_width_split(pattern, string):\n \"\"\"\n Split a string on a regex that only matches zero-width strings\n :param pattern: Regex pattern that matches zero-width strings\n :param string: String to split on.\n :return: Split array\n \"\"\"\n splits = list((m.start(), m.end()) for m in re.finditer(pattern, string, re.VERBOSE))\n starts = [0] + [i[1] for i in splits]\n ends = [i[0] for i in splits] + [len(string)]\n return [string[start:end] for start, end in zip(starts, ends)]\n \ndef roll_group(group):\n \"\"\"\n Rolls a group of dice in 2d6, 3d10, d12, etc. format\n :param group: String of dice group\n :return: Array of results\n \"\"\"\n group = re.match(r'^(\\d*)d(\\d+)$', group, re.IGNORECASE).groups()\n num_of_dice = int(group[0]) if group[1] != '' else 1\n type_of_dice = int(group[1])\n assert num_of_dice > 0\n\n result = []\n for i in range(num_of_dice):\n result.append(random.randint(1, type_of_dice))\n return result\n\nrollparse = re.sub(r'(?<=d)%', '100', rollstring, re.IGNORECASE)\nrollparse = rollparse.replace('^', '**')\nrollgroups = zero_width_split(r'((?<=[\\(\\),%^\\/+*-])(?=.))|((?<=.)(?=[\\(\\),%^\\/+*-]))', rollparse) # Split the string on the boundary between operators and other chars\n\nrollResults = []\nrollTotal = 0\n\nfor group in rollgroups:\n if (re.match(r'\\d+d\\d+', group)): # Only roll numeric\n exploding = re.match(r'\\d*d\\d+!', group, re.IGNORECASE)\n keeping = re.match(r'^((?:\\d*)d\\d+!?)([Hh])(\\d*)$', group, re.IGNORECASE)\n dropping = re.match(r'^((?:\\d*)d\\d+!?)([Ll])(\\d*)$', group, re.IGNORECASE)\n coreRoll = re.match(r'^(\\d*d\\d+)', group).group(0)\n \n rolls = roll_group(coreRoll)\n if keeping:\n keepCount = int(re.split(r'[Hh]', group)[1])\n keepIndexPoint = len(rolls) - keepCount\n sortedRolls = sorted(rolls)\n rolls = sortedRolls[keepIndexPoint:]\n\n if dropping:\n dropCount = int(re.split(r'[Ll]', group)[1])\n dropIndexPoint = len(rolls) - dropCount\n sortedRolls = sorted(rolls)\n rolls = sortedRolls[:dropCount] \n if exploding:\n groupMax = re.match(r'\\d+d(\\d+)', group, re.IGNORECASE).group(1)\n addedRolls = []\n for roll in rolls:\n \t if (int(roll) == int(groupMax)):\n \t while 1 == 1:\n \t newRollString = \"1d\" + str(groupMax)\n \t newRoll = roll_group(newRollString)\n \t addedRolls.append(newRoll[0])\n \t if (int(newRoll[0]) < int(groupMax)):\n \t \t break\n else:\n continue\n rolls = rolls + addedRolls\n \n rollResults.append(rolls)\n rollTotal = rollTotal + sum(rolls)\n \t \naction_out = \" -- \" + str(rollTotal) + \" -- \" + str(rollResults)\nworkflow.set_output(action_out)\n"}, "class": "WorkflowActionRunScript"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"numberOfSteps": {"text": "1", "tokenRanges": {}, "type": "advancedText"}, "direction": 1, "unit": 1}, "class": "WorkflowActionMoveCaret"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"replacement": {"text": "?", "tokenRanges": {"{0, 1}": "Input"}, "type": "advancedText"}}, "class": "WorkflowActionReplaceSelectedText"}], "name": "Roll (OL)", "version": "133001", "device": {"userInterfaceIdiom": 1, "model": "iPad8,3", "systemVersion": "12.2"}, "type": "wkflw", "public": true, "icon": "TYPICONS-ALL_SPANNER.png"}, "install_url": "editorial://add-workflow?workflow-data=%7B%22username%22%3A%20%22Roll%20Dice%20%28Open%20Legend%29%22%2C%20%22description%22%3A%20%22Follows%20Sidekick%20dice%20specification%20format%2C%20but%20only%20supports%20items%20needed%20for%20Open%20Legend%20--%20no%20modifiers%2C%20exploding%20dice%2C%20keeping%20high%20or%20low%20rolls%20pre-explosion.%22%2C%20%22actions%22%3A%20%5B%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22foldedTextReplacement%22%3A%20%22%5Cu2026%22%2C%20%22emptySelectionOption%22%3A%202%2C%20%22foldedTextOption%22%3A%200%2C%20%22selectEntireLines%22%3A%20true%7D%2C%20%22class%22%3A%20%22WorkflowActionGetSelectedText%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22script%22%3A%20%22%23coding%3A%20utf-8%5Cnimport%20workflow%5Cnimport%20re%5Cnimport%20random%5Cn%5Cnrollstring%20%3D%20workflow.get_input%28%29%5Cn%5Cndef%20zero_width_split%28pattern%2C%20string%29%3A%5Cn%20%20%20%20%5C%22%5C%22%5C%22%5Cn%20%20%20%20Split%20a%20string%20on%20a%20regex%20that%20only%20matches%20zero-width%20strings%5Cn%20%20%20%20%3Aparam%20pattern%3A%20Regex%20pattern%20that%20matches%20zero-width%20strings%5Cn%20%20%20%20%3Aparam%20string%3A%20String%20to%20split%20on.%5Cn%20%20%20%20%3Areturn%3A%20Split%20array%5Cn%20%20%20%20%5C%22%5C%22%5C%22%5Cn%20%20%20%20splits%20%3D%20list%28%28m.start%28%29%2C%20m.end%28%29%29%20for%20m%20in%20re.finditer%28pattern%2C%20string%2C%20re.VERBOSE%29%29%5Cn%20%20%20%20starts%20%3D%20%5B0%5D%20%2B%20%5Bi%5B1%5D%20for%20i%20in%20splits%5D%5Cn%20%20%20%20ends%20%3D%20%5Bi%5B0%5D%20for%20i%20in%20splits%5D%20%2B%20%5Blen%28string%29%5D%5Cn%20%20%20%20return%20%5Bstring%5Bstart%3Aend%5D%20for%20start%2C%20end%20in%20zip%28starts%2C%20ends%29%5D%5Cn%20%20%20%20%5Cndef%20roll_group%28group%29%3A%5Cn%20%20%20%20%5C%22%5C%22%5C%22%5Cn%20%20%20%20Rolls%20a%20group%20of%20dice%20in%202d6%2C%203d10%2C%20d12%2C%20etc.%20format%5Cn%20%20%20%20%3Aparam%20group%3A%20String%20of%20dice%20group%5Cn%20%20%20%20%3Areturn%3A%20Array%20of%20results%5Cn%20%20%20%20%5C%22%5C%22%5C%22%5Cn%20%20%20%20group%20%3D%20re.match%28r%27%5E%28%5C%5Cd%2A%29d%28%5C%5Cd%2B%29%24%27%2C%20group%2C%20re.IGNORECASE%29.groups%28%29%5Cn%20%20%20%20num_of_dice%20%3D%20int%28group%5B0%5D%29%20if%20group%5B1%5D%20%21%3D%20%27%27%20else%201%5Cn%20%20%20%20type_of_dice%20%3D%20int%28group%5B1%5D%29%5Cn%20%20%20%20assert%20num_of_dice%20%3E%200%5Cn%5Cn%20%20%20%20result%20%3D%20%5B%5D%5Cn%20%20%20%20for%20i%20in%20range%28num_of_dice%29%3A%5Cn%20%20%20%20%20%20%20%20result.append%28random.randint%281%2C%20type_of_dice%29%29%5Cn%20%20%20%20return%20result%5Cn%5Cnrollparse%20%3D%20re.sub%28r%27%28%3F%3C%3Dd%29%25%27%2C%20%27100%27%2C%20rollstring%2C%20re.IGNORECASE%29%5Cnrollparse%20%3D%20rollparse.replace%28%27%5E%27%2C%20%27%2A%2A%27%29%5Cnrollgroups%20%3D%20zero_width_split%28r%27%28%28%3F%3C%3D%5B%5C%5C%28%5C%5C%29%2C%25%5E%5C%5C%2F%2B%2A-%5D%29%28%3F%3D.%29%29%7C%28%28%3F%3C%3D.%29%28%3F%3D%5B%5C%5C%28%5C%5C%29%2C%25%5E%5C%5C%2F%2B%2A-%5D%29%29%27%2C%20rollparse%29%20%20%23%20Split%20the%20string%20on%20the%20boundary%20between%20operators%20and%20other%20chars%5Cn%5CnrollResults%20%3D%20%5B%5D%5CnrollTotal%20%3D%200%5Cn%5Cnfor%20group%20in%20rollgroups%3A%5Cn%20%20%20%20if%20%28re.match%28r%27%5C%5Cd%2Bd%5C%5Cd%2B%27%2C%20group%29%29%3A%20%23%20Only%20roll%20numeric%5Cn%20%20%20%20%20%20%20%20exploding%20%3D%20re.match%28r%27%5C%5Cd%2Ad%5C%5Cd%2B%21%27%2C%20group%2C%20re.IGNORECASE%29%5Cn%20%20%20%20%20%20%20%20keeping%20%3D%20re.match%28r%27%5E%28%28%3F%3A%5C%5Cd%2A%29d%5C%5Cd%2B%21%3F%29%28%5BHh%5D%29%28%5C%5Cd%2A%29%24%27%2C%20group%2C%20re.IGNORECASE%29%5Cn%20%20%20%20%20%20%20%20dropping%20%3D%20re.match%28r%27%5E%28%28%3F%3A%5C%5Cd%2A%29d%5C%5Cd%2B%21%3F%29%28%5BLl%5D%29%28%5C%5Cd%2A%29%24%27%2C%20group%2C%20re.IGNORECASE%29%5Cn%20%20%20%20%20%20%20%20coreRoll%20%3D%20re.match%28r%27%5E%28%5C%5Cd%2Ad%5C%5Cd%2B%29%27%2C%20group%29.group%280%29%5Cn%20%20%20%20%20%20%20%20%5Cn%20%20%20%20%20%20%20%20rolls%20%3D%20roll_group%28coreRoll%29%5Cn%20%20%20%20%20%20%20%20if%20keeping%3A%5Cn%20%20%20%20%20%20%20%20%20%20%20%20keepCount%20%3D%20int%28re.split%28r%27%5BHh%5D%27%2C%20group%29%5B1%5D%29%5Cn%20%20%20%20%20%20%20%20%20%20%20%20keepIndexPoint%20%3D%20len%28rolls%29%20-%20keepCount%5Cn%20%20%20%20%20%20%20%20%20%20%20%20sortedRolls%20%3D%20sorted%28rolls%29%5Cn%20%20%20%20%20%20%20%20%20%20%20%20rolls%20%3D%20sortedRolls%5BkeepIndexPoint%3A%5D%5Cn%5Cn%20%20%20%20%20%20%20%20if%20dropping%3A%5Cn%20%20%20%20%20%20%20%20%20%20%20%20dropCount%20%3D%20int%28re.split%28r%27%5BLl%5D%27%2C%20group%29%5B1%5D%29%5Cn%20%20%20%20%20%20%20%20%20%20%20%20dropIndexPoint%20%3D%20len%28rolls%29%20-%20dropCount%5Cn%20%20%20%20%20%20%20%20%20%20%20%20sortedRolls%20%3D%20sorted%28rolls%29%5Cn%20%20%20%20%20%20%20%20%20%20%20%20rolls%20%3D%20sortedRolls%5B%3AdropCount%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Cn%20%20%20%20%20%20%20%20if%20exploding%3A%5Cn%20%20%20%20%20%20%20%20%20%20%20%20groupMax%20%3D%20re.match%28r%27%5C%5Cd%2Bd%28%5C%5Cd%2B%29%27%2C%20group%2C%20re.IGNORECASE%29.group%281%29%5Cn%20%20%20%20%20%20%20%20%20%20%20%20addedRolls%20%3D%20%5B%5D%5Cn%20%20%20%20%20%20%20%20%20%20%20%20for%20roll%20in%20rolls%3A%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5Ct%20%20%20%20if%20%28int%28roll%29%20%3D%3D%20int%28groupMax%29%29%3A%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5Ct%20%20%20%20%20%20%20%20while%201%20%3D%3D%201%3A%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5Ct%20%20%20%20%20%20%20%20%20%20%20%20newRollString%20%3D%20%5C%221d%5C%22%20%2B%20str%28groupMax%29%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5Ct%20%20%20%20%20%20%20%20%20%20%20%20newRoll%20%3D%20roll_group%28newRollString%29%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5Ct%20%20%20%20%20%20%20%20%20%20%20%20addedRolls.append%28newRoll%5B0%5D%29%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5Ct%20%20%20%20%20%20%20%20%20%20%20%20if%20%28int%28newRoll%5B0%5D%29%20%3C%20int%28groupMax%29%29%3A%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5Ct%20%20%20%20%20%20%20%20%20%20%20%20%5Ct%20%20%20break%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20else%3A%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20continue%5Cn%20%20%20%20%20%20%20%20%20%20%20%20rolls%20%3D%20rolls%20%2B%20addedRolls%5Cn%20%20%20%20%20%20%20%20%5Cn%20%20%20%20%20%20%20%20rollResults.append%28rolls%29%5Cn%20%20%20%20%20%20%20%20rollTotal%20%3D%20rollTotal%20%2B%20sum%28rolls%29%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5Ct%20%20%20%20%5Cnaction_out%20%3D%20%5C%22%20--%20%5C%22%20%2B%20str%28rollTotal%29%20%2B%20%5C%22%20--%20%5C%22%20%2B%20str%28rollResults%29%5Cnworkflow.set_output%28action_out%29%5Cn%22%7D%2C%20%22class%22%3A%20%22WorkflowActionRunScript%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22numberOfSteps%22%3A%20%7B%22text%22%3A%20%221%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22direction%22%3A%201%2C%20%22unit%22%3A%201%7D%2C%20%22class%22%3A%20%22WorkflowActionMoveCaret%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22replacement%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22Input%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionReplaceSelectedText%22%7D%5D%2C%20%22name%22%3A%20%22Roll%20%28OL%29%22%2C%20%22version%22%3A%20%22133001%22%2C%20%22device%22%3A%20%7B%22userInterfaceIdiom%22%3A%201%2C%20%22model%22%3A%20%22iPad8%2C3%22%2C%20%22systemVersion%22%3A%20%2212.2%22%7D%2C%20%22type%22%3A%20%22wkflw%22%2C%20%22public%22%3A%20true%2C%20%22icon%22%3A%20%22TYPICONS-ALL_SPANNER.png%22%7D", "description": "Follows Sidekick dice specification format, but only supports items needed for Open Legend -- no modifiers, exploding dice, keeping high or low rolls pre-explosion.", "title": "Roll (OL)"}, {"url": "http://editorial-app.appspot.com/workflow/5886738673172480/Jhd1bQrHGiI", "workflow_data": {"username": "", "description": "", "actions": [{"customTitle": "", "parameters": {"name": "My Var", "value": {"text": "?\n", "tokenRanges": {"{0, 1}": "Input"}, "type": "advancedText"}}, "pauseWithoutShowingParameters": false, "colorLabel": 5, "class": "WorkflowActionStoreVariable", "pauseBeforeRunning": false}, {"pauseWithoutShowingParameters": true, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"outputOption": 0, "regex": {"text": "AU \\$\\d\\d*\\.\\d\\d", "tokenRanges": {}, "type": "advancedText"}, "matchGroup": "0", "searchTypeOption": 0}, "class": "WorkflowActionMatchRegularExpression"}, {"customTitle": "", "parameters": {"text": {"text": "?", "tokenRanges": {"{0, 1}": "Input"}, "type": "advancedText"}}, "pauseWithoutShowingParameters": false, "colorLabel": 5, "class": "WorkflowActionConsoleOutput", "pauseBeforeRunning": false}], "name": "eBay", "version": "133001", "device": {"userInterfaceIdiom": 1, "model": "iPad7,2", "systemVersion": "12.1.4"}, "type": "wkflw", "public": true, "icon": "minicons-icons-artwork-brush-2.png"}, "install_url": "editorial://add-workflow?workflow-data=%7B%22username%22%3A%20%22%22%2C%20%22description%22%3A%20%22%22%2C%20%22actions%22%3A%20%5B%7B%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22name%22%3A%20%22My%20Var%22%2C%20%22value%22%3A%20%7B%22text%22%3A%20%22%3F%5Cn%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22Input%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22colorLabel%22%3A%205%2C%20%22class%22%3A%20%22WorkflowActionStoreVariable%22%2C%20%22pauseBeforeRunning%22%3A%20false%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20true%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22outputOption%22%3A%200%2C%20%22regex%22%3A%20%7B%22text%22%3A%20%22AU%20%5C%5C%24%5C%5Cd%5C%5Cd%2A%5C%5C.%5C%5Cd%5C%5Cd%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22matchGroup%22%3A%20%220%22%2C%20%22searchTypeOption%22%3A%200%7D%2C%20%22class%22%3A%20%22WorkflowActionMatchRegularExpression%22%7D%2C%20%7B%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22text%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22Input%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22colorLabel%22%3A%205%2C%20%22class%22%3A%20%22WorkflowActionConsoleOutput%22%2C%20%22pauseBeforeRunning%22%3A%20false%7D%5D%2C%20%22name%22%3A%20%22eBay%22%2C%20%22version%22%3A%20%22133001%22%2C%20%22device%22%3A%20%7B%22userInterfaceIdiom%22%3A%201%2C%20%22model%22%3A%20%22iPad7%2C2%22%2C%20%22systemVersion%22%3A%20%2212.1.4%22%7D%2C%20%22type%22%3A%20%22wkflw%22%2C%20%22public%22%3A%20true%2C%20%22icon%22%3A%20%22minicons-icons-artwork-brush-2.png%22%7D", "description": "", "title": "eBay"}, {"url": "http://editorial-app.appspot.com/workflow/5876868301455360/B51M0U4yNM8", "workflow_data": {"username": "eConsulting.Online", "description": "Shows the iOS share sheet with the selected text as input. If nothing is selected, the entire document is shared. In a Markdown document, the text can optionally be converted to HTML first.", "actions": [{"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"foldedTextReplacement": "\u2026", "emptySelectionOption": 1, "foldedTextOption": 0, "selectEntireLines": false}, "class": "WorkflowActionGetSelectedText"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"expression1": {"text": "?", "tokenRanges": {"{0, 1}": "%editor:syntax-mode"}, "type": "advancedText"}, "expression2": {"text": "markdown", "tokenRanges": {}, "type": "advancedText"}, "comparisonType": 0}, "class": "WorkflowActionCondition"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"button1Value": {"text": "[[html]]", "tokenRanges": {}, "type": "advancedText"}, "button3Value": {"text": "", "tokenRanges": {}, "type": "advancedText"}, "button2Value": {"text": "?", "tokenRanges": {"{0, 1}": "Input"}, "type": "advancedText"}, "title": "Share Document Text...", "button3Title": "", "button2Title": "Use Plain Text", "button1Title": "Convert to HTML", "message": {"text": "Do you want to convert this Markdown document to HTML for sharing?", "tokenRanges": {}, "type": "advancedText"}, "showCancelButton": true}, "class": "WorkflowActionShowAlert"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"expression1": {"text": "?", "tokenRanges": {"{0, 1}": "Input"}, "type": "advancedText"}, "expression2": {"text": "[[html]]", "tokenRanges": {}, "type": "advancedText"}, "comparisonType": 0}, "class": "WorkflowActionCondition"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"foldedTextReplacement": "\u2026", "emptySelectionOption": 1, "foldedTextOption": 0, "selectEntireLines": false}, "class": "WorkflowActionGetSelectedText"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"tables": true, "autolinks": true, "smartypants": true, "strikethrough": true, "footnotes": true, "metadata": false, "superscript": true}, "class": "WorkflowActionConvertMarkdown"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"text": {"text": "\n\n\n\n?\n\n", "tokenRanges": {"{67, 1}": "Input"}, "type": "advancedText"}}, "class": "WorkflowActionFormatString"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {}, "class": "WorkflowActionConditionEnd"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {}, "class": "WorkflowActionConditionEnd"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"text": {"text": "?", "tokenRanges": {"{0, 1}": "Input"}, "type": "advancedText"}}, "class": "WorkflowActionShowShareSheet"}], "name": "Share...", "version": "133001", "device": {"userInterfaceIdiom": 0, "model": "iPhone8,1", "systemVersion": "12.1.4"}, "type": "wkflw", "public": true, "icon": "minicons-icons-navigation-log-out-2.png"}, "install_url": "editorial://add-workflow?workflow-data=%7B%22username%22%3A%20%22eConsulting.Online%22%2C%20%22description%22%3A%20%22Shows%20the%20iOS%20share%20sheet%20with%20the%20selected%20text%20as%20input.%20If%20nothing%20is%20selected%2C%20the%20entire%20document%20is%20shared.%20In%20a%20Markdown%20document%2C%20the%20text%20can%20optionally%20be%20converted%20to%20HTML%20first.%22%2C%20%22actions%22%3A%20%5B%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22foldedTextReplacement%22%3A%20%22%5Cu2026%22%2C%20%22emptySelectionOption%22%3A%201%2C%20%22foldedTextOption%22%3A%200%2C%20%22selectEntireLines%22%3A%20false%7D%2C%20%22class%22%3A%20%22WorkflowActionGetSelectedText%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22expression1%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22%25editor%3Asyntax-mode%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22expression2%22%3A%20%7B%22text%22%3A%20%22markdown%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22comparisonType%22%3A%200%7D%2C%20%22class%22%3A%20%22WorkflowActionCondition%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22button1Value%22%3A%20%7B%22text%22%3A%20%22%5B%5Bhtml%5D%5D%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22button3Value%22%3A%20%7B%22text%22%3A%20%22%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22button2Value%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22Input%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22title%22%3A%20%22Share%20Document%20Text...%22%2C%20%22button3Title%22%3A%20%22%22%2C%20%22button2Title%22%3A%20%22Use%20Plain%20Text%22%2C%20%22button1Title%22%3A%20%22Convert%20to%20HTML%22%2C%20%22message%22%3A%20%7B%22text%22%3A%20%22Do%20you%20want%20to%20convert%20this%20Markdown%20document%20to%20HTML%20for%20sharing%3F%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22showCancelButton%22%3A%20true%7D%2C%20%22class%22%3A%20%22WorkflowActionShowAlert%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22expression1%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22Input%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22expression2%22%3A%20%7B%22text%22%3A%20%22%5B%5Bhtml%5D%5D%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22comparisonType%22%3A%200%7D%2C%20%22class%22%3A%20%22WorkflowActionCondition%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22foldedTextReplacement%22%3A%20%22%5Cu2026%22%2C%20%22emptySelectionOption%22%3A%201%2C%20%22foldedTextOption%22%3A%200%2C%20%22selectEntireLines%22%3A%20false%7D%2C%20%22class%22%3A%20%22WorkflowActionGetSelectedText%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22tables%22%3A%20true%2C%20%22autolinks%22%3A%20true%2C%20%22smartypants%22%3A%20true%2C%20%22strikethrough%22%3A%20true%2C%20%22footnotes%22%3A%20true%2C%20%22metadata%22%3A%20false%2C%20%22superscript%22%3A%20true%7D%2C%20%22class%22%3A%20%22WorkflowActionConvertMarkdown%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22text%22%3A%20%7B%22text%22%3A%20%22%3C%21DOCTYPE%20html%3E%5Cn%3Chtml%3E%5Cn%3Chead%3E%3Cmeta%20charset%3D%5C%22utf-8%5C%22%2F%3E%3C%2Fhead%3E%5Cn%3Cbody%3E%5Cn%3F%5Cn%3C%2Fbody%3E%5Cn%3C%2Fhtml%3E%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B67%2C%201%7D%22%3A%20%22Input%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionFormatString%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%7D%2C%20%22class%22%3A%20%22WorkflowActionConditionEnd%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%7D%2C%20%22class%22%3A%20%22WorkflowActionConditionEnd%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22text%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22Input%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionShowShareSheet%22%7D%5D%2C%20%22name%22%3A%20%22Share...%22%2C%20%22version%22%3A%20%22133001%22%2C%20%22device%22%3A%20%7B%22userInterfaceIdiom%22%3A%200%2C%20%22model%22%3A%20%22iPhone8%2C1%22%2C%20%22systemVersion%22%3A%20%2212.1.4%22%7D%2C%20%22type%22%3A%20%22wkflw%22%2C%20%22public%22%3A%20true%2C%20%22icon%22%3A%20%22minicons-icons-navigation-log-out-2.png%22%7D", "description": "Shows the iOS share sheet with the selected text as input. If nothing is selected, the entire document is shared. In a Markdown document, the text can optionally be converted to HTML first.", "title": "Share..."}, {"url": "http://editorial-app.appspot.com/workflow/5875428078125056/6r8rtY32Cxk", "workflow_data": {"username": "", "description": "This Workflow accepts TaskPaper text with \u00abplaceholder\u00bb tokens and prompts for you to enter final values, then creates a project in OmniFocus 2.14 for iOS using those tokens.\n\nFor example, given this input:\n\n- \u00abproject_name\u00bb @parallel(false) @due(\u00abdue\u00bb)\n - This task needs to be done at least 1 week before \u00abproject_name\u00bb is due @due(\u00abdue\u00bb -1w)\n - This task needs to be done at least 2 days before \u00abproject_name\u00bb is due @due(\u00abdue\u00bb -2d)\n\nYou'll be prompted to enter values for \u00abproject_name\u00bb and \u00abdue\u00bb. If you enter \"Phonewave 1.2\" and \"next Thursday\", it will create a new \"Phonewave 1.2\" project in OmniFocus that is due next Thursday, and has two tasks already filled with due dates of this Thursday and next Tuesday.", "actions": [{"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"foldedTextReplacement": "\u2026", "emptySelectionOption": 1, "foldedTextOption": 0, "selectEntireLines": false}, "class": "WorkflowActionGetSelectedText"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"script": "#coding: utf-8\nimport workflow\nimport dialogs\nimport re\n\naction_in = workflow.get_input()\n\n# Find placeholders\nknown_placeholders = set()\nplaceholders = []\nfields = []\nfor placeholder_match in re.finditer(u\"\u00ab(.+?)\u00bb\", action_in):\n\tplaceholder = placeholder_match.group(1)\n\tif placeholder not in known_placeholders:\n\t\tknown_placeholders.add(placeholder)\n\t\tplaceholders.append(placeholder)\n\t\tfields.append({'type': 'text', 'title': placeholder, 'key': placeholder})\n\naction_out = action_in\n\n# Substitute the placeholders\nif len(placeholders) == 0:\n\tif dialogs.alert(u\"No template placeholders were found.\", u\"\"\"\nIf your project text has placeholders (that look like \u00abthis\u00bb), this script will prompt for values you'd like to substitute for them.\n\"\"\", u\"Continue\") != 1:\n\t workflow.stop()\n\nelse:\n\tvalues = dialogs.form_dialog(title='', fields=fields, sections=None)\n\tif values:\n\t\tfor key in values:\n\t\t\taction_out = re.sub(u\"\u00ab\" + key + \"\u00bb\", values[key], action_out)\n\nworkflow.set_output(action_out)\n"}, "class": "WorkflowActionRunScript"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {}, "class": "WorkflowActionURLEscape"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"name": "encodedContent", "value": {"text": "?", "tokenRanges": {"{0, 1}": "Input"}, "type": "advancedText"}}, "class": "WorkflowActionStoreVariable"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"URL": {"text": "omnifocus://x-callback-url/paste?target=projects&content=?", "tokenRanges": {"{57, 1}": "encodedContent"}, "type": "advancedText"}, "waitUntilLoaded": false, "revealBrowserAutomatically": true, "openIn": 0, "tabOption": 0}, "class": "WorkflowActionOpenURL"}], "name": "OF Templates", "version": "133001", "device": {"userInterfaceIdiom": 0, "model": "iPhone10,5", "systemVersion": "12.1.4"}, "type": "wkflw", "public": true, "icon": "minicons-icons-validation-tick-circle-3.png"}, "install_url": "editorial://add-workflow?workflow-data=%7B%22username%22%3A%20%22%22%2C%20%22description%22%3A%20%22This%20Workflow%20accepts%20TaskPaper%20text%20with%20%5Cu00abplaceholder%5Cu00bb%20tokens%20and%20prompts%20for%20you%20to%20enter%20final%20values%2C%20then%20creates%20a%20project%20in%20OmniFocus%202.14%20for%20iOS%20using%20those%20tokens.%5Cn%5CnFor%20example%2C%20given%20this%20input%3A%5Cn%5Cn-%20%5Cu00abproject_name%5Cu00bb%20%40parallel%28false%29%20%40due%28%5Cu00abdue%5Cu00bb%29%5Cn%20%20%20%20%20%20%20%20-%20This%20task%20needs%20to%20be%20done%20at%20least%201%20week%20before%20%5Cu00abproject_name%5Cu00bb%20is%20due%20%40due%28%5Cu00abdue%5Cu00bb%20-1w%29%5Cn%20%20%20%20%20%20%20%20-%20This%20task%20needs%20to%20be%20done%20at%20least%202%20days%20before%20%5Cu00abproject_name%5Cu00bb%20is%20due%20%40due%28%5Cu00abdue%5Cu00bb%20-2d%29%5Cn%5CnYou%27ll%20be%20prompted%20to%20enter%20values%20for%20%5Cu00abproject_name%5Cu00bb%20and%20%5Cu00abdue%5Cu00bb.%20If%20you%20enter%20%5C%22Phonewave%201.2%5C%22%20and%20%5C%22next%20Thursday%5C%22%2C%20it%20will%20create%20a%20new%20%5C%22Phonewave%201.2%5C%22%20project%20in%20OmniFocus%20that%20is%20due%20next%20Thursday%2C%20and%20has%20two%20tasks%20already%20filled%20with%20due%20dates%20of%20this%20Thursday%20and%20next%20Tuesday.%22%2C%20%22actions%22%3A%20%5B%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22foldedTextReplacement%22%3A%20%22%5Cu2026%22%2C%20%22emptySelectionOption%22%3A%201%2C%20%22foldedTextOption%22%3A%200%2C%20%22selectEntireLines%22%3A%20false%7D%2C%20%22class%22%3A%20%22WorkflowActionGetSelectedText%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22script%22%3A%20%22%23coding%3A%20utf-8%5Cnimport%20workflow%5Cnimport%20dialogs%5Cnimport%20re%5Cn%5Cnaction_in%20%3D%20workflow.get_input%28%29%5Cn%5Cn%23%20Find%20placeholders%5Cnknown_placeholders%20%3D%20set%28%29%5Cnplaceholders%20%3D%20%5B%5D%5Cnfields%20%3D%20%5B%5D%5Cnfor%20placeholder_match%20in%20re.finditer%28u%5C%22%5Cu00ab%28.%2B%3F%29%5Cu00bb%5C%22%2C%20action_in%29%3A%5Cn%5Ctplaceholder%20%3D%20placeholder_match.group%281%29%5Cn%5Ctif%20placeholder%20not%20in%20known_placeholders%3A%5Cn%5Ct%5Ctknown_placeholders.add%28placeholder%29%5Cn%5Ct%5Ctplaceholders.append%28placeholder%29%5Cn%5Ct%5Ctfields.append%28%7B%27type%27%3A%20%27text%27%2C%20%27title%27%3A%20placeholder%2C%20%27key%27%3A%20placeholder%7D%29%5Cn%5Cnaction_out%20%3D%20action_in%5Cn%5Cn%23%20Substitute%20the%20placeholders%5Cnif%20len%28placeholders%29%20%3D%3D%200%3A%5Cn%5Ctif%20dialogs.alert%28u%5C%22No%20template%20placeholders%20were%20found.%5C%22%2C%20u%5C%22%5C%22%5C%22%5CnIf%20your%20project%20text%20has%20placeholders%20%28that%20look%20like%20%5Cu00abthis%5Cu00bb%29%2C%20this%20script%20will%20prompt%20for%20values%20you%27d%20like%20to%20substitute%20for%20them.%5Cn%5C%22%5C%22%5C%22%2C%20u%5C%22Continue%5C%22%29%20%21%3D%201%3A%5Cn%5Ct%20%20workflow.stop%28%29%5Cn%5Cnelse%3A%5Cn%5Ctvalues%20%3D%20dialogs.form_dialog%28title%3D%27%27%2C%20fields%3Dfields%2C%20sections%3DNone%29%5Cn%5Ctif%20values%3A%5Cn%5Ct%5Ctfor%20key%20in%20values%3A%5Cn%5Ct%5Ct%5Ctaction_out%20%3D%20re.sub%28u%5C%22%5Cu00ab%5C%22%20%2B%20key%20%2B%20%5C%22%5Cu00bb%5C%22%2C%20values%5Bkey%5D%2C%20action_out%29%5Cn%5Cnworkflow.set_output%28action_out%29%5Cn%22%7D%2C%20%22class%22%3A%20%22WorkflowActionRunScript%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%7D%2C%20%22class%22%3A%20%22WorkflowActionURLEscape%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22name%22%3A%20%22encodedContent%22%2C%20%22value%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22Input%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionStoreVariable%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22URL%22%3A%20%7B%22text%22%3A%20%22omnifocus%3A%2F%2Fx-callback-url%2Fpaste%3Ftarget%3Dprojects%26content%3D%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B57%2C%201%7D%22%3A%20%22encodedContent%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22waitUntilLoaded%22%3A%20false%2C%20%22revealBrowserAutomatically%22%3A%20true%2C%20%22openIn%22%3A%200%2C%20%22tabOption%22%3A%200%7D%2C%20%22class%22%3A%20%22WorkflowActionOpenURL%22%7D%5D%2C%20%22name%22%3A%20%22OF%20Templates%22%2C%20%22version%22%3A%20%22133001%22%2C%20%22device%22%3A%20%7B%22userInterfaceIdiom%22%3A%200%2C%20%22model%22%3A%20%22iPhone10%2C5%22%2C%20%22systemVersion%22%3A%20%2212.1.4%22%7D%2C%20%22type%22%3A%20%22wkflw%22%2C%20%22public%22%3A%20true%2C%20%22icon%22%3A%20%22minicons-icons-validation-tick-circle-3.png%22%7D", "description": "This Workflow accepts TaskPaper text with \u00abplaceholder\u00bb tokens and prompts for you to enter final values, then creates a project in OmniFocus 2.14 for iOS using those tokens.\n\nFor example, given this input:\n\n- \u00abproject_name\u00bb @parallel(false) @due(\u00abdue\u00bb)\n - This task needs to be done at least 1 week before \u00abproject_name\u00bb is due @due(\u00abdue\u00bb -1w)\n - This task needs to be done at least 2 days before \u00abproject_name\u00bb is due @due(\u00abdue\u00bb -2d)\n\nYou'll be prompted to enter values for \u00abproject_name\u00bb and \u00abdue\u00bb. If you enter \"Phonewave 1.2\" and \"next Thursday\", it will create a new \"Phonewave 1.2\" project in OmniFocus that is due next Thursday, and has two tasks already filled with due dates of this Thursday and next Tuesday.", "title": "OF Templates"}, {"url": "http://editorial-app.appspot.com/workflow/5799686464077824/h-2zjyp9qN4", "workflow_data": {"username": "Jerry He", "description": "scrapes 2 pages of Glassdoor website", "actions": [{"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"script": "#coding: utf-8\nimport workflow\n\nworkflow.set_output('https://www.glassdoor.com/Reviews/Walt-Disney-Company-Reviews-E717.htm')\n"}, "class": "WorkflowActionRunScript"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"revealBrowserAutomatically": true, "tabID": "glassdoorloggedin", "URL": {"text": "?", "tokenRanges": {"{0, 1}": "Input"}, "type": "advancedText"}, "openIn": 0, "tabOption": 2, "waitUntilLoaded": true}, "class": "WorkflowActionOpenURL"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"script": "from time import sleep\n\nsleep(4)\n"}, "class": "WorkflowActionRunScript"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"script": "//This sets the output of the workflow action:\n\nfunction first_tab(url_base) {\n var winFront = safari.windows[0]\n\tvar tab = winFront.tabs[0]\n\tsafari.doJavaScript(\"location.href='\"+url_base+\"'\", { in: tab })\n return tab\n}\n\nfunction str(fun) {\n return \"(\" + fun + \")()\" \n}\n\n\nfunction scrapeThisPageReviews(i) { \n sessionStorage.clear()\n\t$('div.hreview').each(function() {\n\t\t\t\t\t var _res = {}\n\t\t\t\t\t\t var subratings = {}\n $(this).find('div.subRatings').find('ul.undecorated').find('li').each(function() { \n\t\t\t\t\t var cat_name = $(this).find('.minor').text()\n\t\t\t\t\t var rating = $(this).find('span.gdBars').attr('title'); \n\t\t\t\t\t subratings[cat_name]=rating\n\t\t\t\t\t })\n\t\t\t\t\t\n\t\t\t\t\t\t_res['subratings']=subratings\n\t\t\t\t _res['helpful'] = $(this).find('.helpfulCount').text()\n\t\t\t\t\t _res['pros'] = $(this).find('div p.strong:contains(Pro)').next('p').text()\n\t\t\t\t\t _res['cons'] = $(this).find('div p.strong:contains(Con)').next('p').text()\n\t\t\t\t\t _res['advice_to_mgmt'] = $(this).find('div p.strong:contains(Advice)').next('p').text()\n\t\t\t\t\t _res['positive_boxes'] = $(this).find('i.green').parent('div').next('div').find('.middle').map(function() { return this.innerText }).toArray()\n\t\t\t\t\t _res['neutral_boxes'] = $(this).find('i.yellow').parent('div').next('div').find('.middle').map(function() { return this.innerText }).toArray()\n\t\t\t\t\t _res['negative_boxes'] = $(this).find('i.red').parent('div').next('div').find('.middle').map(function() { return this.innerText }).toArray()\n\t\t\t\t\t _res['author_jobtitle'] = $(this).find('span.authorJobTitle').text()\n\t\t\t\t\t _res['author_location'] = $(this).find('span.authorLocation').text()\n\t\t\t\t\t _res['review_title'] = $(this).find('a.reviewLink span.summary').text()\n\t\t\t\t\t _res['rating'] = $(this).find('span.rating span.value-title').attr('title')\n\t\t\t\t\t _res['date'] = $(this).find('time').text()\n\t\t\t\t\t i++;\n\tsessionStorage.setItem(i.toString(), JSON.stringify(_res))\n\t\t\t\t\t })\t\n\t\t\t\t\t return i\n}\n\nvar num_scraped = scrapeThisPageReviews(0)\nvar next_link;\nnext_link = $($('li.next').find('a')[0]).attr('href')\n\nif(true) {\n //location.href = next_link\n setTimeout(function() { num_scraped= scrapeThisPageReviews(num_scraped)}, 8000)\n $('li.next').find('a').click()\n}\nwindow.output = next_link //num_scraped\n"}, "class": "WorkflowActionEvaluateJavascript"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"text": {"text": "?", "tokenRanges": {"{0, 1}": "Input"}, "type": "advancedText"}}, "class": "WorkflowActionConsoleOutput"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"script": "from time import sleep\n\nsleep(4)\n"}, "class": "WorkflowActionRunScript"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"script": "function fetchScrapedDataFromThisPage() {\n var res=[],i=0; \n\twhile(sessionStorage.key(i) != null) { \n\t\tres.push(JSON.parse(sessionStorage.getItem(sessionStorage.key(i)))); i++; \n\t}\n\treturn JSON.stringify(res)\n}\n\nwindow.output = fetchScrapedDataFromThisPage()\n"}, "class": "WorkflowActionEvaluateJavascript"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"text": {"text": "?", "tokenRanges": {"{0, 1}": "Input"}, "type": "advancedText"}}, "class": "WorkflowActionConsoleOutput"}], "name": "Scrape Glassdoor", "version": "133001", "device": {"userInterfaceIdiom": 1, "model": "iPad8,1", "systemVersion": "12.1.4"}, "type": "wkflw", "public": true, "icon": "TYPICONS-ALL_SPANNER.png"}, "install_url": "editorial://add-workflow?workflow-data=%7B%22username%22%3A%20%22Jerry%20He%22%2C%20%22description%22%3A%20%22scrapes%202%20pages%20of%20Glassdoor%20website%22%2C%20%22actions%22%3A%20%5B%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22script%22%3A%20%22%23coding%3A%20utf-8%5Cnimport%20workflow%5Cn%5Cnworkflow.set_output%28%27https%3A%2F%2Fwww.glassdoor.com%2FReviews%2FWalt-Disney-Company-Reviews-E717.htm%27%29%5Cn%22%7D%2C%20%22class%22%3A%20%22WorkflowActionRunScript%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22revealBrowserAutomatically%22%3A%20true%2C%20%22tabID%22%3A%20%22glassdoorloggedin%22%2C%20%22URL%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22Input%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22openIn%22%3A%200%2C%20%22tabOption%22%3A%202%2C%20%22waitUntilLoaded%22%3A%20true%7D%2C%20%22class%22%3A%20%22WorkflowActionOpenURL%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22script%22%3A%20%22from%20time%20import%20sleep%5Cn%5Cnsleep%284%29%5Cn%22%7D%2C%20%22class%22%3A%20%22WorkflowActionRunScript%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22script%22%3A%20%22%2F%2FThis%20sets%20the%20output%20of%20the%20workflow%20action%3A%5Cn%5Cnfunction%20first_tab%28url_base%29%20%7B%5Cn%20%20%20%20var%20winFront%20%3D%20safari.windows%5B0%5D%5Cn%5Ctvar%20tab%20%3D%20winFront.tabs%5B0%5D%5Cn%5Ctsafari.doJavaScript%28%5C%22location.href%3D%27%5C%22%2Burl_base%2B%5C%22%27%5C%22%2C%20%7B%20in%3A%20tab%20%7D%29%5Cn%20%20%20%20return%20tab%5Cn%7D%5Cn%5Cnfunction%20str%28fun%29%20%7B%5Cn%20%20return%20%5C%22%28%5C%22%20%2B%20fun%20%2B%20%5C%22%29%28%29%5C%22%20%5Cn%7D%5Cn%5Cn%5Cnfunction%20scrapeThisPageReviews%28i%29%20%7B%20%5Cn%20%20%20%20sessionStorage.clear%28%29%5Cn%5Ct%24%28%27div.hreview%27%29.each%28function%28%29%20%7B%5Cn%5Ct%5Ct%5Ct%5Ct%5Ct%20%20%20%20%20%20var%20_res%20%3D%20%7B%7D%5Cn%5Ct%5Ct%5Ct%5Ct%5Ct%5Ct%20var%20subratings%20%3D%20%7B%7D%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24%28this%29.find%28%27div.subRatings%27%29.find%28%27ul.undecorated%27%29.find%28%27li%27%29.each%28function%28%29%20%7B%20%5Cn%5Ct%5Ct%5Ct%5Ct%5Ct%20%20%20var%20cat_name%20%3D%20%24%28this%29.find%28%27.minor%27%29.text%28%29%5Cn%5Ct%5Ct%5Ct%5Ct%5Ct%20%20%20var%20rating%20%3D%20%24%28this%29.find%28%27span.gdBars%27%29.attr%28%27title%27%29%3B%20%5Cn%5Ct%5Ct%5Ct%5Ct%5Ct%20%20%20%20%20subratings%5Bcat_name%5D%3Drating%5Cn%5Ct%5Ct%5Ct%5Ct%5Ct%20%20%20%7D%29%5Cn%5Ct%5Ct%5Ct%5Ct%5Ct%5Cn%5Ct%5Ct%5Ct%5Ct%5Ct%5Ct_res%5B%27subratings%27%5D%3Dsubratings%5Cn%5Ct%5Ct%5Ct%5Ct%20%20%20%20%20%20%20_res%5B%27helpful%27%5D%20%3D%20%24%28this%29.find%28%27.helpfulCount%27%29.text%28%29%5Cn%5Ct%5Ct%5Ct%5Ct%5Ct%20%20%20_res%5B%27pros%27%5D%20%3D%20%24%28this%29.find%28%27div%20p.strong%3Acontains%28Pro%29%27%29.next%28%27p%27%29.text%28%29%5Cn%5Ct%5Ct%5Ct%5Ct%5Ct%20%20_res%5B%27cons%27%5D%20%3D%20%24%28this%29.find%28%27div%20p.strong%3Acontains%28Con%29%27%29.next%28%27p%27%29.text%28%29%5Cn%5Ct%5Ct%5Ct%5Ct%5Ct%20%20_res%5B%27advice_to_mgmt%27%5D%20%3D%20%24%28this%29.find%28%27div%20p.strong%3Acontains%28Advice%29%27%29.next%28%27p%27%29.text%28%29%5Cn%5Ct%5Ct%5Ct%5Ct%5Ct%20%20_res%5B%27positive_boxes%27%5D%20%3D%20%24%28this%29.find%28%27i.green%27%29.parent%28%27div%27%29.next%28%27div%27%29.find%28%27.middle%27%29.map%28function%28%29%20%7B%20return%20this.innerText%20%7D%29.toArray%28%29%5Cn%5Ct%5Ct%5Ct%5Ct%5Ct%20%20_res%5B%27neutral_boxes%27%5D%20%3D%20%24%28this%29.find%28%27i.yellow%27%29.parent%28%27div%27%29.next%28%27div%27%29.find%28%27.middle%27%29.map%28function%28%29%20%7B%20return%20this.innerText%20%7D%29.toArray%28%29%5Cn%5Ct%5Ct%5Ct%5Ct%5Ct%20%20_res%5B%27negative_boxes%27%5D%20%3D%20%24%28this%29.find%28%27i.red%27%29.parent%28%27div%27%29.next%28%27div%27%29.find%28%27.middle%27%29.map%28function%28%29%20%7B%20return%20this.innerText%20%7D%29.toArray%28%29%5Cn%5Ct%5Ct%5Ct%5Ct%5Ct%20%20_res%5B%27author_jobtitle%27%5D%20%3D%20%24%28this%29.find%28%27span.authorJobTitle%27%29.text%28%29%5Cn%5Ct%5Ct%5Ct%5Ct%5Ct%20%20_res%5B%27author_location%27%5D%20%3D%20%24%28this%29.find%28%27span.authorLocation%27%29.text%28%29%5Cn%5Ct%5Ct%5Ct%5Ct%5Ct%20%20_res%5B%27review_title%27%5D%20%3D%20%24%28this%29.find%28%27a.reviewLink%20span.summary%27%29.text%28%29%5Cn%5Ct%5Ct%5Ct%5Ct%5Ct%20%20%20%20_res%5B%27rating%27%5D%20%3D%20%24%28this%29.find%28%27span.rating%20span.value-title%27%29.attr%28%27title%27%29%5Cn%5Ct%5Ct%5Ct%5Ct%5Ct%20%20%20%20%20%20_res%5B%27date%27%5D%20%3D%20%24%28this%29.find%28%27time%27%29.text%28%29%5Cn%5Ct%5Ct%5Ct%5Ct%5Ct%20%20i%2B%2B%3B%5Cn%5CtsessionStorage.setItem%28i.toString%28%29%2C%20JSON.stringify%28_res%29%29%5Cn%5Ct%5Ct%5Ct%5Ct%5Ct%20%20%7D%29%5Ct%5Cn%5Ct%5Ct%5Ct%5Ct%5Ct%20%20return%20i%5Cn%7D%5Cn%5Cnvar%20num_scraped%20%3D%20scrapeThisPageReviews%280%29%5Cnvar%20next_link%3B%5Cnnext_link%20%3D%20%24%28%24%28%27li.next%27%29.find%28%27a%27%29%5B0%5D%29.attr%28%27href%27%29%5Cn%5Cnif%28true%29%20%7B%5Cn%20%20%20%2F%2Flocation.href%20%3D%20next_link%5Cn%20%20%20setTimeout%28function%28%29%20%7B%20num_scraped%3D%20scrapeThisPageReviews%28num_scraped%29%7D%2C%208000%29%5Cn%20%20%20%24%28%27li.next%27%29.find%28%27a%27%29.click%28%29%5Cn%7D%5Cnwindow.output%20%3D%20next_link%20%2F%2Fnum_scraped%5Cn%22%7D%2C%20%22class%22%3A%20%22WorkflowActionEvaluateJavascript%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22text%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22Input%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionConsoleOutput%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22script%22%3A%20%22from%20time%20import%20sleep%5Cn%5Cnsleep%284%29%5Cn%22%7D%2C%20%22class%22%3A%20%22WorkflowActionRunScript%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22script%22%3A%20%22function%20fetchScrapedDataFromThisPage%28%29%20%7B%5Cn%20%20%20var%20res%3D%5B%5D%2Ci%3D0%3B%20%5Cn%5Ctwhile%28sessionStorage.key%28i%29%20%21%3D%20null%29%20%7B%20%5Cn%5Ct%5Ctres.push%28JSON.parse%28sessionStorage.getItem%28sessionStorage.key%28i%29%29%29%29%3B%20i%2B%2B%3B%20%5Cn%5Ct%7D%5Cn%5Ctreturn%20JSON.stringify%28res%29%5Cn%7D%5Cn%5Cnwindow.output%20%3D%20fetchScrapedDataFromThisPage%28%29%5Cn%22%7D%2C%20%22class%22%3A%20%22WorkflowActionEvaluateJavascript%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22text%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22Input%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionConsoleOutput%22%7D%5D%2C%20%22name%22%3A%20%22Scrape%20Glassdoor%22%2C%20%22version%22%3A%20%22133001%22%2C%20%22device%22%3A%20%7B%22userInterfaceIdiom%22%3A%201%2C%20%22model%22%3A%20%22iPad8%2C1%22%2C%20%22systemVersion%22%3A%20%2212.1.4%22%7D%2C%20%22type%22%3A%20%22wkflw%22%2C%20%22public%22%3A%20true%2C%20%22icon%22%3A%20%22TYPICONS-ALL_SPANNER.png%22%7D", "description": "scrapes 2 pages of Glassdoor website", "title": "Scrape Glassdoor"}, {"url": "http://editorial-app.appspot.com/workflow/5891667483688960/Re7PmAmqwKs", "workflow_data": {"username": "@seba-1511", "name": "Paperify Preview", "description": "Preliminary work. Renders a markdown document similarly to what it would look like when converted with Paperify web. Includes custom Mathjax commands.\n\nThe LaTex text is rendered via the MathJax javascript library, so an internet connection is required at the moment for the workflow to work properly.", "actions": [{"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"foldedTextReplacement": "\u2026", "emptySelectionOption": 1, "foldedTextOption": 0, "selectEntireLines": false}, "class": "WorkflowActionGetSelectedText"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"script": "#coding: utf-8\nimport workflow\nimport re\n\naction_in = workflow.get_input()\n\ntitles = [\n\t\t(r\"^# .*$\", 1),\n\t\t(r\"^## .*$\", 2),\n\t\t(r\"^### .*$\", 3),\n\t\t(r\"^#### .*$\", 4),\n]\n\n# Parse and substitute titles\nfor title_re, repl in titles:\n\tmatches = re.findall(title_re, action_in, flags=re.MULTILINE)\n\tfor match in matches:\n\t\taction_in = action_in.replace(match, '' + match[repl+1:] + '')\n\n# Parse and substitute lists (Very basic)\nfor list_re in [r\"^\\* .*$\", r\"^[1-9]+\\. .*$\"]:\n\tmatches = re.findall(list_re, action_in, flags=re.MULTILINE)\n\tfor match in matches:\n\t\taction_in = action_in.replace(match, '
  • ' + match[2:] + '
  • ')\n\t\t\n# Parse and substitute italic and bold\nfor format_re, repl in [(r\"\\*\\*.+\\*\\*\", 'strong')]:\n\tmatches = re.findall(format_re, action_in, flags=re.MULTILINE)\n\tfor match in matches:\n\t\taction_in = action_in.replace(match, '<' + repl + '>' + match[2:-2] + '')\n\nfor format_re, repl in [(r\"\\*.+\\*\", 'i')]:\n\tmatches = re.findall(format_re, action_in, flags=re.MULTILINE)\n\tfor match in matches:\n\t\taction_in = action_in.replace(match, '<' + repl + '>' + match[1:-1] + '')\n\t\t\t\t\n# Replace double new lines with
    \naction_in = action_in.replace('\\n\\n\\n', '

    ')\naction_in = action_in.replace('\\n\\n', '
    ')\n\naction_out = action_in\nworkflow.set_output(action_out)\n"}, "class": "WorkflowActionRunScript"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"html": {"text": "\n\n \n \n \n \n \n Paperify Preview\n\n \n \n \n\n \n \n \n\n \n \n\n \n \n\n\n \n\n \n \n \n\n\n \n \n \n\n \n \n
    \n
    \n \n \n \n \n \n \n \n

    Title

    \n

    by Author,\n Date

    \n
    \n \n \\(\n \n% Custom Macros\n\\newcommand{\\minimize}{\\operatorname*{minimize}}\n\\newcommand{\\maximize}{\\operatorname*{maximize}}\n\\newcommand{\\lrbrack}[1]{\\left[#1\\right]}\n\\newcommand{\\lrbrace}[1]{\\left\\{#1\\right\\}}\n\\newcommand{\\lrparen}[1]{\\left(#1\\right)}\n\\newcommand{\\A}{\\mathbb{A}}\n\\newcommand{\\B}{\\mathbb{B}}\n\\newcommand{\\C}{\\mathbb{C}}\n\\newcommand{\\D}{\\mathbb{D}}\n\\newcommand{\\E}{\\mathbb{E}}\n\\newcommand{\\F}{\\mathbb{F}}\n\\newcommand{\\G}{\\mathbb{G}}\n\\renewcommand{\\H}{\\mathbb{H}}\n\\newcommand{\\I}{\\mathbb{I}}\n\\newcommand{\\J}{\\mathbb{J}}\n\\newcommand{\\K}{\\mathbb{K}}\n\\renewcommand{\\L}{\\mathbb{L}}\n\\newcommand{\\M}{\\mathbb{M}}\n\\newcommand{\\N}{\\mathbb{N}}\n\\renewcommand{\\O}{\\mathbb{O}}\n\\renewcommand{\\P}{\\mathbb{P}}\n\\newcommand{\\Q}{\\mathbb{Q}}\n\\newcommand{\\R}{\\mathbb{R}}\n\\renewcommand{\\S}{\\mathbb{S}}\n\\newcommand{\\T}{\\mathbb{T}}\n\\newcommand{\\U}{\\mathbb{U}}\n\\newcommand{\\V}{\\mathbb{V}}\n\\newcommand{\\W}{\\mathbb{W}}\n\\newcommand{\\X}{\\mathbb{X}}\n\\newcommand{\\Y}{\\mathbb{Y}}\n\\newcommand{\\Z}{\\mathbb{Z}}\n\n\\newcommand{\\Var}{\\mathrm{Var}}\n\\newcommand{\\e}[1]{\\mathbb{E}\\left[#1\\right]}\n\\newcommand{\\var}[1]{\\mathrm{Var}\\left[#1\\right]}\n\\newcommand{\\cov}[1]{\\mathrm{Cov}\\left[#1\\right]}\n\\newcommand{\\norm}[1]{\\left\\lVert#1\\right\\rVert}\n\\newcommand{\\paren}[1]{\\left(#1\\right)}\n\\newcommand{\\bigO}[1]{\\mathcal{O}\\left(#1\\right)}\n \\)\n \n \n?\n\n \n\n
    \n\n \n \n \n \n\n \n \n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n\n \n \n \n\n \n", "tokenRanges": {"{6207, 1}": "Input"}, "type": "advancedText"}, "baseURL": "", "title": "Paperify Preview"}, "class": "WorkflowActionShowHTMLPreview"}], "version": "133001", "device": {"userInterfaceIdiom": 1, "model": "iPad6,3", "systemVersion": "12.1.4"}, "type": "wkflw", "public": true, "icon": "TYPICONS-ALL_PRINT.png"}, "install_url": "editorial://add-workflow?workflow-data=%7B%22username%22%3A%20%22%40seba-1511%22%2C%20%22name%22%3A%20%22Paperify%20Preview%22%2C%20%22description%22%3A%20%22Preliminary%20work.%20Renders%20a%20markdown%20document%20similarly%20to%20what%20it%20would%20look%20like%20when%20converted%20with%20Paperify%20web.%20Includes%20custom%20Mathjax%20commands.%5Cn%5CnThe%20LaTex%20text%20is%20rendered%20via%20the%20MathJax%20javascript%20library%2C%20so%20an%20internet%20connection%20is%20required%20at%20the%20moment%20for%20the%20workflow%20to%20work%20properly.%22%2C%20%22actions%22%3A%20%5B%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22foldedTextReplacement%22%3A%20%22%5Cu2026%22%2C%20%22emptySelectionOption%22%3A%201%2C%20%22foldedTextOption%22%3A%200%2C%20%22selectEntireLines%22%3A%20false%7D%2C%20%22class%22%3A%20%22WorkflowActionGetSelectedText%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22script%22%3A%20%22%23coding%3A%20utf-8%5Cnimport%20workflow%5Cnimport%20re%5Cn%5Cnaction_in%20%3D%20workflow.get_input%28%29%5Cn%5Cntitles%20%3D%20%5B%5Cn%5Ct%5Ct%28r%5C%22%5E%23%20.%2A%24%5C%22%2C%201%29%2C%5Cn%5Ct%5Ct%28r%5C%22%5E%23%23%20.%2A%24%5C%22%2C%202%29%2C%5Cn%5Ct%5Ct%28r%5C%22%5E%23%23%23%20.%2A%24%5C%22%2C%203%29%2C%5Cn%5Ct%5Ct%28r%5C%22%5E%23%23%23%23%20.%2A%24%5C%22%2C%204%29%2C%5Cn%5D%5Cn%5Cn%23%20Parse%20and%20substitute%20titles%5Cnfor%20title_re%2C%20repl%20in%20titles%3A%5Cn%5Ctmatches%20%3D%20re.findall%28title_re%2C%20action_in%2C%20flags%3Dre.MULTILINE%29%5Cn%5Ctfor%20match%20in%20matches%3A%5Cn%5Ct%5Ctaction_in%20%3D%20action_in.replace%28match%2C%20%27%3Ch%27%20%2B%20str%28repl%29%20%2B%20%27%3E%27%20%2B%20match%5Brepl%2B1%3A%5D%20%2B%20%27%3C%2Fh%27%20%2B%20str%28repl%29%20%2B%20%27%3E%27%29%5Cn%5Cn%23%20Parse%20and%20substitute%20lists%20%28Very%20basic%29%5Cnfor%20list_re%20in%20%5Br%5C%22%5E%5C%5C%2A%20.%2A%24%5C%22%2C%20r%5C%22%5E%5B1-9%5D%2B%5C%5C.%20.%2A%24%5C%22%5D%3A%5Cn%5Ctmatches%20%3D%20re.findall%28list_re%2C%20action_in%2C%20flags%3Dre.MULTILINE%29%5Cn%5Ctfor%20match%20in%20matches%3A%5Cn%5Ct%5Ctaction_in%20%3D%20action_in.replace%28match%2C%20%27%3Cli%3E%27%20%2B%20match%5B2%3A%5D%20%2B%20%27%3C%2Fli%3E%27%29%5Cn%5Ct%5Ct%5Cn%23%20Parse%20and%20substitute%20italic%20and%20bold%5Cnfor%20format_re%2C%20repl%20in%20%5B%28r%5C%22%5C%5C%2A%5C%5C%2A.%2B%5C%5C%2A%5C%5C%2A%5C%22%2C%20%27strong%27%29%5D%3A%5Cn%5Ctmatches%20%3D%20re.findall%28format_re%2C%20action_in%2C%20flags%3Dre.MULTILINE%29%5Cn%5Ctfor%20match%20in%20matches%3A%5Cn%5Ct%5Ctaction_in%20%3D%20action_in.replace%28match%2C%20%27%3C%27%20%2B%20repl%20%2B%20%27%3E%27%20%2B%20match%5B2%3A-2%5D%20%2B%20%27%3C%2F%27%20%2B%20repl%20%2B%20%27%3E%27%29%5Cn%5Cnfor%20format_re%2C%20repl%20in%20%5B%28r%5C%22%5C%5C%2A.%2B%5C%5C%2A%5C%22%2C%20%27i%27%29%5D%3A%5Cn%5Ctmatches%20%3D%20re.findall%28format_re%2C%20action_in%2C%20flags%3Dre.MULTILINE%29%5Cn%5Ctfor%20match%20in%20matches%3A%5Cn%5Ct%5Ctaction_in%20%3D%20action_in.replace%28match%2C%20%27%3C%27%20%2B%20repl%20%2B%20%27%3E%27%20%2B%20match%5B1%3A-1%5D%20%2B%20%27%3C%2F%27%20%2B%20repl%20%2B%20%27%3E%27%29%5Cn%5Ct%5Ct%5Ct%5Ct%5Cn%23%20Replace%20double%20new%20lines%20with%20%3Cbr%20%2F%3E%5Cnaction_in%20%3D%20action_in.replace%28%27%5C%5Cn%5C%5Cn%5C%5Cn%27%2C%20%27%3Cbr%20%2F%3E%3Cbr%20%2F%3E%27%29%5Cnaction_in%20%3D%20action_in.replace%28%27%5C%5Cn%5C%5Cn%27%2C%20%27%3Cbr%20%2F%3E%27%29%5Cn%5Cnaction_out%20%3D%20action_in%5Cnworkflow.set_output%28action_out%29%5Cn%22%7D%2C%20%22class%22%3A%20%22WorkflowActionRunScript%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22html%22%3A%20%7B%22text%22%3A%20%22%3C%21DOCTYPE%20html%3E%5Cn%3Chtml%20lang%3D%5C%22en%5C%22%3E%5Cn%20%20%20%20%3Chead%3E%5Cn%20%20%20%20%20%20%20%20%3Cmeta%20charset%3D%5C%22utf-8%5C%22%3E%5Cn%20%20%20%20%20%20%20%20%3Cmeta%20http-equiv%3D%5C%22X-UA-Compatible%5C%22%20content%3D%5C%22IE%3Dedge%5C%22%3E%5Cn%20%20%20%20%20%20%20%20%3Cmeta%20name%3D%5C%22viewport%5C%22%20content%3D%5C%22width%3Ddevice-width%2C%20initial-scale%3D1%5C%22%3E%5Cn%20%20%20%20%20%20%20%20%3C%21--%20The%20above%203%20meta%20tags%20%2Amust%2A%20come%20first%20in%20the%20head%3B%20any%20other%20head%20content%20must%20come%20%2Aafter%2A%20these%20tags%20--%3E%5Cn%20%20%20%20%20%20%20%20%3Ctitle%3EPaperify%20Preview%3C%2Ftitle%3E%5Cn%5Cn%20%20%20%20%20%20%20%20%3C%21--%20Bootstrap%20--%3E%5Cn%20%20%20%20%20%20%20%20%3Clink%20rel%3D%5C%22stylesheet%5C%22%20href%3D%5C%22https%3A%2F%2Fcdnjs.cloudflare.com%2Fajax%2Flibs%2Ftwitter-bootstrap%2F3.3.7%2Fcss%2Fbootstrap.min.css%5C%22%20%2F%3E%5Cn%20%20%20%20%20%20%20%20%3Clink%20rel%3D%5C%22stylesheet%5C%22%20href%3D%5C%22https%3A%2F%2Fcdnjs.cloudflare.com%2Fajax%2Flibs%2Fbootswatch%2F3.3.7%2Fsandstone%2Fbootstrap.min.css%5C%22%20%2F%3E%5Cn%5Cn%20%20%20%20%20%20%20%20%3C%21--Prism%20for%20code%20high-lighting--%3E%5Cn%20%20%20%20%20%20%20%20%3Clink%20rel%3D%5C%22stylesheet%5C%22%20href%3D%5C%22https%3A%2F%2Fcdnjs.cloudflare.com%2Fajax%2Flibs%2Fprism%2F1.5.1%2Fthemes%2Fprism.min.css%5C%22%20%2F%3E%5Cn%20%20%20%20%20%20%20%20%3Clink%20rel%3D%5C%22stylesheet%5C%22%20href%3D%5C%22https%3A%2F%2Fcdnjs.cloudflare.com%2Fajax%2Flibs%2Fprism%2F1.5.1%2Fthemes%2Fprism-solarizedlight.css%5C%22%20%2F%20%3E%5Cn%5Cn%20%20%20%20%20%20%20%20%3C%21--KaTeX%20for%20fast%20embedded%20math--%3E%5Cn%20%20%20%20%20%20%20%20%3Clink%20rel%3D%5C%22stylesheet%5C%22%20href%3D%5C%22https%3A%2F%2Fcdnjs.cloudflare.com%2Fajax%2Flibs%2FKaTeX%2F0.6.0%2Fkatex.min.css%5C%22%3E%5Cn%5Cn%20%20%20%20%20%20%20%20%3C%21--Pseudocode.js--%3E%5Cn%20%20%20%20%20%20%20%20%3Clink%20rel%3D%5C%22stylesheet%5C%22%20href%3D%5C%22https%3A%2F%2Fcdn.rawgit.com%2Fseba-1511%2Fcdn%2Fmaster%2Fpseudocode.js%2Fpseudocode.min.css%5C%22%3E%5Cn%5Cn%5Cn%20%20%20%20%20%20%20%20%3Cstyle%20type%3D%5C%22text%2Fcss%5C%22%20media%3D%5C%22all%5C%22%3E%5Cn%20%20%20%20%20%20%20%20%2F%2A%20Space%20out%20content%20a%20bit%20%2A%2F%5Cn%20%20%20%20%20%20%20%20body%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20padding-top%3A%2020px%3B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20padding-bottom%3A%2020px%3B%5Cn%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%20%20%20%20p%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20font-size%3A%2016px%3B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20text-align%3A%20justify%3B%5Cn%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%20%20%20%20%2F%2A%20Everything%20but%20the%20jumbotron%20gets%20side%20spacing%20for%20mobile%20first%20views%20%2A%2F%5Cn%20%20%20%20%20%20%20%20.header%2C%5Cn%20%20%20%20%20%20%20%20.footer%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20padding-right%3A%2015px%3B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20padding-left%3A%2015px%3B%5Cn%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%20%20%20%20%2F%2A%20Custom%20page%20header%20%2A%2F%5Cn%20%20%20%20%20%20%20%20.header%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20padding-bottom%3A%2020px%3B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20border-bottom%3A%201px%20solid%20%23e5e5e5%3B%5Cn%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%20%20%20%20%2F%2A%20Make%20the%20masthead%20heading%20the%20same%20height%20as%20the%20navigation%20%2A%2F%5Cn%20%20%20%20%20%20%20%20.header%20h3%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20margin-top%3A%200%3B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20margin-bottom%3A%200%3B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20line-height%3A%2040px%3B%5Cn%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%20%20%20%20img%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20max-width%3A%20100%25%3B%5Cn%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%20%20%20%20%2F%2A%20Custom%20page%20footer%20%2A%2F%5Cn%20%20%20%20%20%20%20%20.footer%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20padding-top%3A%2019px%3B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20color%3A%20%23777%3B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20border-top%3A%201px%20solid%20%23e5e5e5%3B%5Cn%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%20%20%20%20%2F%2A%20Customize%20container%20%2A%2F%5Cn%20%20%20%20%20%20%20%20%40media%20%28min-width%3A%20768px%29%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20.container%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24if%28toc%29%24%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20max-width%3A%20900px%3B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24else%24%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20max-width%3A%20730px%3B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24endif%24%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%20%20%20%20.container-narrow%20%3E%20hr%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20margin%3A%2030px%200%3B%5Cn%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%20%20%20%20%2F%2A%20Responsive%3A%20Portrait%20tablets%20and%20up%20%2A%2F%5Cn%20%20%20%20%20%20%20%20%40media%20screen%20and%20%28min-width%3A%20768px%29%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%2F%2A%20Remove%20the%20padding%20we%20set%20earlier%20%2A%2F%5Cn%20%20%20%20%20%20%20%20%20%20%20%20.header%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20.marketing%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20.footer%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20padding-right%3A%200%3B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20padding-left%3A%200%3B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%2F%2A%20Space%20out%20the%20masthead%20%2A%2F%5Cn%20%20%20%20%20%20%20%20%20%20%20%20.header%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20margin-bottom%3A%2030px%3B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%2F%2A%20Remove%20the%20bottom%20border%20on%20the%20jumbotron%20for%20visual%20effect%20%2A%2F%5Cn%20%20%20%20%20%20%20%20%20%20%20%20.jumbotron%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20border-bottom%3A%200%3B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%20%20%20%20.well%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20border%3A%201px%20solid%20%23767676%3B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20width%3A%20157px%3B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20max-width%3A%20157px%3B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20background-color%3A%20%23FDF6E3%3B%5Cn%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%20%20%20%20.well%20a%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20color%3A%23767676%3B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20margin-bottom%3A5px%3B%5Cn%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%20%20%20%20.well%20ul%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20list-style%3A%20none%3B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20margin%3A%200px%3B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20padding-left%3A%2010px%3B%5Cn%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%20%20%20%20a%2C%20a%3Ahover%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20color%3A%20%232AA7E7%3B%5Cn%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%20%20%20%20%3C%2Fstyle%3E%5Cn%5Cn%20%20%20%20%20%20%20%20%3C%21--%20HTML5%20shim%20and%20Respond.js%20for%20IE8%20support%20of%20HTML5%20elements%20and%20media%20queries%20--%3E%5Cn%20%20%20%20%20%20%20%20%3C%21--%20WARNING%3A%20Respond.js%20doesn%27t%20work%20if%20you%20view%20the%20page%20via%20file%3A%2F%2F%20--%3E%5Cn%20%20%20%20%20%20%20%20%3C%21--%5Bif%20lt%20IE%209%5D%3E%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%3Cscript%20src%3D%5C%22%2F%2Foss.maxcdn.com%2Fhtml5shiv%2F3.7.3%2Fhtml5shiv.min.js%5C%22%3E%3C%2Fscript%3E%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%3Cscript%20src%3D%5C%22%2F%2Foss.maxcdn.com%2Frespond%2F1.4.2%2Frespond.min.js%5C%22%3E%3C%2Fscript%3E%5Cn%20%20%20%20%20%20%20%20%3C%21%5Bendif%5D--%3E%5Cn%5Cn%5Cn%20%20%20%20%20%20%20%20%3C%21--Plotly.js--%3E%5Cn%20%20%20%20%20%20%20%20%3C%21--Needs%20to%20be%20imported%20before%20body%2C%20else%20figs%20won%27t%20load.--%3E%5Cn%20%20%20%20%20%20%20%20%3Cscript%20src%3D%5C%22https%3A%2F%2Fcdn.plot.ly%2Fplotly-1.2.0.min.js%5C%22%3E%3C%2Fscript%3E%5Cn%5Cn%20%20%20%20%3C%2Fhead%3E%5Cn%20%20%20%20%3Cbody%3E%5Cn%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%5C%22container%5C%22%3E%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%5C%22header%20clearfix%5C%22%3E%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%21--%3Cnav%3E--%3E%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%21--%3Cul%20class%3D%5C%22nav%20nav-pills%20pull-right%5C%22%3E--%3E%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%21--%3Cli%20role%3D%5C%22presentation%5C%22%20class%3D%5C%22active%5C%22%3E%3Ca%20href%3D%5C%22%23%5C%22%3EHome%3C%2Fa%3E%3C%2Fli%3E--%3E%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%21--%3Cli%20role%3D%5C%22presentation%5C%22%3E%3Ca%20href%3D%5C%22%23%5C%22%3EAbout%3C%2Fa%3E%3C%2Fli%3E--%3E%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%21--%3Cli%20role%3D%5C%22presentation%5C%22%3E%3Ca%20href%3D%5C%22%23%5C%22%3EContact%3C%2Fa%3E%3C%2Fli%3E--%3E%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%21--%3C%2Ful%3E--%3E%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%21--%3C%2Fnav%3E--%3E%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Ch1%20class%3D%5C%22text-center%5C%22%3ETitle%3C%2Fh1%3E%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Ch4%20class%3D%5C%22text-sm%20text-muted%20text-center%5C%22%3E%20by%20Author%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cspan%20style%3D%5C%22font-weight%3Anormal%3B%5C%22%3E%3Ci%3EDate%3C%2Fi%3E%3C%2Fspan%3E%3C%2Fh4%3E%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fdiv%3E%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%5C%28%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5Cn%25%20Custom%20Macros%5Cn%5C%5Cnewcommand%7B%5C%5Cminimize%7D%7B%5C%5Coperatorname%2A%7Bminimize%7D%7D%5Cn%5C%5Cnewcommand%7B%5C%5Cmaximize%7D%7B%5C%5Coperatorname%2A%7Bmaximize%7D%7D%5Cn%5C%5Cnewcommand%7B%5C%5Clrbrack%7D%5B1%5D%7B%5C%5Cleft%5B%231%5C%5Cright%5D%7D%5Cn%5C%5Cnewcommand%7B%5C%5Clrbrace%7D%5B1%5D%7B%5C%5Cleft%5C%5C%7B%231%5C%5Cright%5C%5C%7D%7D%5Cn%5C%5Cnewcommand%7B%5C%5Clrparen%7D%5B1%5D%7B%5C%5Cleft%28%231%5C%5Cright%29%7D%5Cn%5C%5Cnewcommand%7B%5C%5CA%7D%7B%5C%5Cmathbb%7BA%7D%7D%5Cn%5C%5Cnewcommand%7B%5C%5CB%7D%7B%5C%5Cmathbb%7BB%7D%7D%5Cn%5C%5Cnewcommand%7B%5C%5CC%7D%7B%5C%5Cmathbb%7BC%7D%7D%5Cn%5C%5Cnewcommand%7B%5C%5CD%7D%7B%5C%5Cmathbb%7BD%7D%7D%5Cn%5C%5Cnewcommand%7B%5C%5CE%7D%7B%5C%5Cmathbb%7BE%7D%7D%5Cn%5C%5Cnewcommand%7B%5C%5CF%7D%7B%5C%5Cmathbb%7BF%7D%7D%5Cn%5C%5Cnewcommand%7B%5C%5CG%7D%7B%5C%5Cmathbb%7BG%7D%7D%5Cn%5C%5Crenewcommand%7B%5C%5CH%7D%7B%5C%5Cmathbb%7BH%7D%7D%5Cn%5C%5Cnewcommand%7B%5C%5CI%7D%7B%5C%5Cmathbb%7BI%7D%7D%5Cn%5C%5Cnewcommand%7B%5C%5CJ%7D%7B%5C%5Cmathbb%7BJ%7D%7D%5Cn%5C%5Cnewcommand%7B%5C%5CK%7D%7B%5C%5Cmathbb%7BK%7D%7D%5Cn%5C%5Crenewcommand%7B%5C%5CL%7D%7B%5C%5Cmathbb%7BL%7D%7D%5Cn%5C%5Cnewcommand%7B%5C%5CM%7D%7B%5C%5Cmathbb%7BM%7D%7D%5Cn%5C%5Cnewcommand%7B%5C%5CN%7D%7B%5C%5Cmathbb%7BN%7D%7D%5Cn%5C%5Crenewcommand%7B%5C%5CO%7D%7B%5C%5Cmathbb%7BO%7D%7D%5Cn%5C%5Crenewcommand%7B%5C%5CP%7D%7B%5C%5Cmathbb%7BP%7D%7D%5Cn%5C%5Cnewcommand%7B%5C%5CQ%7D%7B%5C%5Cmathbb%7BQ%7D%7D%5Cn%5C%5Cnewcommand%7B%5C%5CR%7D%7B%5C%5Cmathbb%7BR%7D%7D%5Cn%5C%5Crenewcommand%7B%5C%5CS%7D%7B%5C%5Cmathbb%7BS%7D%7D%5Cn%5C%5Cnewcommand%7B%5C%5CT%7D%7B%5C%5Cmathbb%7BT%7D%7D%5Cn%5C%5Cnewcommand%7B%5C%5CU%7D%7B%5C%5Cmathbb%7BU%7D%7D%5Cn%5C%5Cnewcommand%7B%5C%5CV%7D%7B%5C%5Cmathbb%7BV%7D%7D%5Cn%5C%5Cnewcommand%7B%5C%5CW%7D%7B%5C%5Cmathbb%7BW%7D%7D%5Cn%5C%5Cnewcommand%7B%5C%5CX%7D%7B%5C%5Cmathbb%7BX%7D%7D%5Cn%5C%5Cnewcommand%7B%5C%5CY%7D%7B%5C%5Cmathbb%7BY%7D%7D%5Cn%5C%5Cnewcommand%7B%5C%5CZ%7D%7B%5C%5Cmathbb%7BZ%7D%7D%5Cn%5Cn%5C%5Cnewcommand%7B%5C%5CVar%7D%7B%5C%5Cmathrm%7BVar%7D%7D%5Cn%5C%5Cnewcommand%7B%5C%5Ce%7D%5B1%5D%7B%5C%5Cmathbb%7BE%7D%5C%5Cleft%5B%231%5C%5Cright%5D%7D%5Cn%5C%5Cnewcommand%7B%5C%5Cvar%7D%5B1%5D%7B%5C%5Cmathrm%7BVar%7D%5C%5Cleft%5B%231%5C%5Cright%5D%7D%5Cn%5C%5Cnewcommand%7B%5C%5Ccov%7D%5B1%5D%7B%5C%5Cmathrm%7BCov%7D%5C%5Cleft%5B%231%5C%5Cright%5D%7D%5Cn%5C%5Cnewcommand%7B%5C%5Cnorm%7D%5B1%5D%7B%5C%5Cleft%5C%5ClVert%231%5C%5Cright%5C%5CrVert%7D%5Cn%5C%5Cnewcommand%7B%5C%5Cparen%7D%5B1%5D%7B%5C%5Cleft%28%231%5C%5Cright%29%7D%5Cn%5C%5Cnewcommand%7B%5C%5CbigO%7D%5B1%5D%7B%5C%5Cmathcal%7BO%7D%5C%5Cleft%28%231%5C%5Cright%29%7D%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%5C%29%5Cn%20%20%20%20%20%20%20%20%20%20%5Cn%20%20%20%20%5Cn%3F%5Cn%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%3Cfooter%20class%3D%5C%22footer%5C%22%3E%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cp%3E%3Cb%3Etitle%3C%2Fb%3E%20-%20%3Ci%3Eauthor%3C%2Fi%3E%2C%20date.%3C%2Fp%3E%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Ffooter%3E%5Cn%5Cn%20%20%20%20%20%20%20%20%3C%2Fdiv%3E%20%3C%21--%20%2Fcontainer%20--%3E%5Cn%5Cn%20%20%20%20%20%20%20%20%3C%21--%20jQuery%20%28necessary%20for%20Bootstrap%27s%20JavaScript%20plugins%29%20--%3E%5Cn%20%20%20%20%20%20%20%20%3Cscript%20src%3D%5C%22https%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fjquery%2F1.12.4%2Fjquery.min.js%5C%22%3E%3C%2Fscript%3E%5Cn%20%20%20%20%20%20%20%20%3C%21--%20Include%20all%20compiled%20plugins%20%28below%29%2C%20or%20include%20individual%20files%20as%20needed%20--%3E%5Cn%20%20%20%20%20%20%20%20%3Cscript%20type%3D%5C%22text%2Fjavascript%5C%22%20src%3D%5C%22https%3A%2F%2Fcdnjs.cloudflare.com%2Fajax%2Flibs%2Ftwitter-bootstrap%2F3.3.7%2Fjs%2Fbootstrap.min.js%5C%22%3E%3C%2Fscript%3E%5Cn%5Cn%20%20%20%20%20%20%20%20%3C%21--Prism%20for%20code%20highlighting--%3E%5Cn%20%20%20%20%20%20%20%20%3Cscript%20type%3D%5C%22text%2Fjavascript%5C%22%20src%3D%5C%22https%3A%2F%2Fcdnjs.cloudflare.com%2Fajax%2Flibs%2Fprism%2F1.5.1%2Fprism.js%5C%22%3E%3C%2Fscript%3E%5Cn%20%20%20%20%20%20%20%20%3Cscript%20type%3D%5C%22text%2Fjavascript%5C%22%20src%3D%5C%22https%3A%2F%2Fcdnjs.cloudflare.com%2Fajax%2Flibs%2Fprism%2F1.5.1%2Fcomponents%2Fprism-python.min.js%5C%22%3E%3C%2Fscript%3E%5Cn%20%20%20%20%20%20%20%20%3Cscript%20type%3D%5C%22text%2Fjavascript%5C%22%20src%3D%5C%22https%3A%2F%2Fcdnjs.cloudflare.com%2Fajax%2Flibs%2Fprism%2F1.5.1%2Fcomponents%2Fprism-c.min.js%5C%22%3E%3C%2Fscript%3E%5Cn%20%20%20%20%20%20%20%20%3Cscript%20type%3D%5C%22text%2Fjavascript%5C%22%20src%3D%5C%22https%3A%2F%2Fcdnjs.cloudflare.com%2Fajax%2Flibs%2Fprism%2F1.5.1%2Fcomponents%2Fprism-java.min.js%5C%22%3E%3C%2Fscript%3E%5Cn%5Cn%20%20%20%20%20%20%20%20%3C%21--MathJax--%3E%5Cn%20%20%20%20%20%20%20%20%3Cscript%20type%3D%5C%22text%2Fx-mathjax-config%5C%22%3E%5Cn%20%20%20%20%20%20%20%20var%20delim%20%3D%20%27%5C%5Cu0024%27%3B%5Cn%20%20%20%20%20%20%20%20MathJax.Hub.Config%28%7B%5Cn%20%20%20%20%20%20%20%20%20%20tex2jax%3A%20%7BinlineMath%3A%20%5B%5Bdelim%2C%20delim%5D%2C%20%5B%27%5C%5C%5C%5C%28%27%2C%27%5C%5C%5C%5C%29%27%5D%5D%7D%5Cn%20%20%20%20%20%20%20%20%7D%29%3B%5Cn%20%20%20%20%20%20%20%20%3C%2Fscript%3E%5Cn%20%20%20%20%20%20%20%20%3Cscript%20src%3D%27https%3A%2F%2Fcdn.rawgit.com%2Fmathjax%2FMathJax%2F2.7.1%2FMathJax.js%3Fconfig%3DTeX-AMS-MML_HTMLorMML%27%3E%3C%2Fscript%3E%5Cn%5Cn%20%20%20%20%20%20%20%20%3C%21--KaTeX%20JavaScript%20--%3E%5Cn%20%20%20%20%20%20%20%20%3Cscript%20src%3D%5C%22https%3A%2F%2Fcdnjs.cloudflare.com%2Fajax%2Flibs%2FKaTeX%2F0.6.0%2Fkatex.min.js%5C%22%3E%3C%2Fscript%3E%5Cn%20%20%20%20%20%20%20%20%3C%21--%3Cscript%20src%3D%5C%22https%3A%2F%2Fcdnjs.cloudflare.com%2Fajax%2Flibs%2FKaTeX%2F0.6.0%2Fcontrib%2Fauto-render.min.js%5C%22%3E%3C%2Fscript%3E--%3E%5Cn%5Cn%20%20%20%20%20%20%20%20%3C%21--Pseudocode.js--%3E%5Cn%20%20%20%20%20%20%20%20%3Cscript%20src%3D%5C%22https%3A%2F%2Fcdn.rawgit.com%2Fseba-1511%2Fcdn%2Fmaster%2Fpseudocode.js%2Fpseudocode.min.js%5C%22%3E%3C%2Fscript%3E%5Cn%20%20%20%20%20%20%20%20%3C%21--%3Cscript%20src%3D%5C%22https%3A%2F%2Frawgit.com%2Fseba-1511%2Fcdn%2Fmaster%2Fpseudocode.js%2Fpseudocode.min.js%5C%22%3E%3C%2Fscript%3E--%3E%5Cn%5Cn%20%20%20%20%20%20%20%20%3C%21--Viz.js%20for%20dot%20graphs--%3E%5Cn%20%20%20%20%20%20%20%20%3Cscript%20type%3D%5C%22text%2Fjavascript%5C%22%20src%3D%5C%22https%3A%2F%2Fcdnjs.cloudflare.com%2Fajax%2Flibs%2Fviz.js%2F1.8.0%2Fviz-lite.js%5C%22%3E%3C%2Fscript%3E%5Cn%5Cn%20%20%20%20%20%20%20%20%3C%21--Custom%20scripting--%3E%5Cn%20%20%20%20%20%20%20%20%3Cscript%20type%3D%5C%22text%2Fjavascript%5C%22%3E%5Cn%20%20%20%20%20%20%20%20%2F%2F%20Allows%20prism%20to%20work%20properly%5Cn%20%20%20%20%20%20%20%20jQuery%28document%29.ready%28function%28%29%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20jQuery%28%27.python%27%29.addClass%28%27language-python%27%29.removeClass%28%27python%27%29%3B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20jQuery%28%27.javascript%27%29.addClass%28%27language-js%27%29.removeClass%28%27javascript%27%29%3B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20jQuery%28%27.c%27%29.addClass%28%27language-c%27%29.removeClass%28%27c%27%29%3B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20jQuery%28%27.java%27%29.addClass%28%27language-java%27%29.removeClass%28%27java%27%29%3B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20jQuery%28%27.sourceCode%27%29.removeClass%28%27sourceCode%27%29%3B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20jQuery%28%27table%27%29.addClass%28%27table%20table-striped%20table-bordered%27%29%3B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20jQuery%28%27img%27%29.addClass%28%27img-responsive%27%29%3B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20renderMathInElement%28document.body%2C%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20%20%20%20%20displayMode%3A%20false%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20%20%20%20%20throwOnError%3A%20false%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20%20%20%20%20errorColor%3A%20%27%23cc0000%27%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20%7D%29%3B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20var%20math%20%3D%20document.getElementsByClassName%28%5C%22math%5C%22%29%3B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20MathJax.Hub.Queue%28%5B%5C%22Typeset%5C%22%2C%20MathJax.Hub%2C%20math%5D%29%3B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20MathJax.Hub.Queue%28%5Bmath%2C%20%5D%29%3B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20Prism.highlightAll%28false%29%3B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Parse%20and%20render%20graphs%20using%20Viz.js%5Cn%20%20%20%20%20%20%20%20%20%20%20%20var%20dotElems%20%3D%20document.querySelectorAll%28%27div.vizdot%27%29%3B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20var%20i%2C%20content%2C%20image%3B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20for%20%28i%3D0%3B%20i%20%3C%20dotElems.length%3B%20i%2B%2B%29%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20content%20%3D%20dotElems%5Bi%5D.textContent%3B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20image%20%3D%20Viz%28content%2C%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20format%3A%20%27png-image-element%27%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20dotElems%5B0%5D.innerHTML%20%3D%20%5C%22%5C%22%3B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20dotElems%5Bi%5D.appendChild%28image%29%3B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20The%20following%20uses%20pseudocode.js%20to%20render%20algorithms%5Cn%20%20%20%20%20%20%20%20%20%20%20%20var%20i%2C%20content%2C%20container%3B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20var%20pseudocodeElems%20%3D%20document.querySelectorAll%28%27pre.algo%20code%27%29%3B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20var%20parents%20%3D%20document.querySelectorAll%28%27pre.algo%27%29%3B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20var%20displayOptions%20%3D%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20indentSize%3A%20%271.5em%27%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20commentDelimiter%3A%20%27%2F%2F%27%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20lineNumber%3A%20true%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20lineNumberPunc%3A%20%27%3A%27%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20noEnd%3A%20true%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20captionCount%3A%201%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20throwOnError%3A%20false%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%7D%3B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20for%20%28i%3D0%3B%20i%20%3C%20pseudocodeElems.length%3B%20i%2B%2B%29%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20content%20%3D%20pseudocodeElems%5Bi%5D.textContent%3B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20container%20%3D%20document.createElement%28%27div%27%29%3B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20parents%5Bi%5D.parentNode.insertBefore%28container%2C%20parents%5Bi%5D%29%3B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pseudocode.render%28content%2C%20container%2C%20displayOptions%29%3B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20parents%5Bi%5D.style.display%20%3D%20%27none%27%3B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20parents%5Bi%5D.parentNode.removeChild%28parents%5Bi%5D%29%3B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%20%20%20%20%7D%29%3B%5Cn%20%20%20%20%20%20%20%20%3C%2Fscript%3E%5Cn%20%20%20%20%20%20%20%20%3Cscript%3E%5Cn%20%20%20%20%20%20%20%20%20%20%28function%28i%2Cs%2Co%2Cg%2Cr%2Ca%2Cm%29%7Bi%5B%27GoogleAnalyticsObject%27%5D%3Dr%3Bi%5Br%5D%3Di%5Br%5D%7C%7Cfunction%28%29%7B%5Cn%20%20%20%20%20%20%20%20%20%20%28i%5Br%5D.q%3Di%5Br%5D.q%7C%7C%5B%5D%29.push%28arguments%29%7D%2Ci%5Br%5D.l%3D1%2Anew%20Date%28%29%3Ba%3Ds.createElement%28o%29%2C%5Cn%20%20%20%20%20%20%20%20%20%20m%3Ds.getElementsByTagName%28o%29%5B0%5D%3Ba.async%3D1%3Ba.src%3Dg%3Bm.parentNode.insertBefore%28a%2Cm%29%5Cn%20%20%20%20%20%20%20%20%20%20%7D%29%28window%2Cdocument%2C%27script%27%2C%27https%3A%2F%2Fwww.google-analytics.com%2Fanalytics.js%27%2C%27ga%27%29%3B%5Cn%20%20%20%20%20%20%20%20%20%20ga%28%27create%27%2C%20%27UA-68693545-3%27%2C%20%27auto%27%29%3B%5Cn%20%20%20%20%20%20%20%20%20%20ga%28%27send%27%2C%20%27pageview%27%29%3B%5Cn%20%20%20%20%20%20%20%20%3C%2Fscript%3E%5Cn%5Cn%20%20%20%20%3C%2Fbody%3E%5Cn%3C%2Fhtml%3E%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B6207%2C%201%7D%22%3A%20%22Input%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22baseURL%22%3A%20%22%22%2C%20%22title%22%3A%20%22Paperify%20Preview%22%7D%2C%20%22class%22%3A%20%22WorkflowActionShowHTMLPreview%22%7D%5D%2C%20%22version%22%3A%20%22133001%22%2C%20%22device%22%3A%20%7B%22userInterfaceIdiom%22%3A%201%2C%20%22model%22%3A%20%22iPad6%2C3%22%2C%20%22systemVersion%22%3A%20%2212.1.4%22%7D%2C%20%22type%22%3A%20%22wkflw%22%2C%20%22public%22%3A%20true%2C%20%22icon%22%3A%20%22TYPICONS-ALL_PRINT.png%22%7D", "description": "Preliminary work. Renders a markdown document similarly to what it would look like when converted with Paperify web. Includes custom Mathjax commands.\n\nThe LaTex text is rendered via the MathJax javascript library, so an internet connection is required at the moment for the workflow to work properly.", "title": "Paperify Preview"}, {"url": "http://editorial-app.appspot.com/workflow/5906428657139712/Q480KgRFRlE", "workflow_data": {"username": "yt", "description": "After picking a tag from the list of tags in the current document, only tasks that contain this tag are shown, everything else is hidden (folded).", "actions": [{"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"script": "#coding: utf-8\nimport workflow\nimport editor\nimport re\n\ntext = editor.get_text()\ntags = sorted(set(re.findall('@\\w+', text)))\nif len(tags) == 0:\n\timport console\n\tconsole.hud_alert('No Tags Found', 'error')\n\tworkflow.stop()\nelse:\n\tworkflow.set_output('\\n'.join(tags))\n"}, "class": "WorkflowActionRunScript"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"list": {"text": "?", "tokenRanges": {"{0, 1}": "Input"}, "type": "advancedText"}, "title": "Select Tag", "showInPopover": false, "allowMultipleSelection": false}, "class": "WorkflowActionSelectFromList"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {}, "class": "WorkflowActionRegexEscape"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"pattern": {"text": "?\\b", "tokenRanges": {"{0, 1}": "Input"}, "type": "advancedText"}, "invert": true}, "class": "WorkflowActionFoldLinesMatchingPattern"}], "name": "Focus on Tag...", "version": "133001", "device": {"userInterfaceIdiom": 0, "model": "iPhone9,1", "systemVersion": "12.1.4"}, "type": "wkflw", "public": true, "icon": "minicons-icons-datas-funnel.png"}, "install_url": "editorial://add-workflow?workflow-data=%7B%22username%22%3A%20%22yt%22%2C%20%22description%22%3A%20%22After%20picking%20a%20tag%20from%20the%20list%20of%20tags%20in%20the%20current%20document%2C%20only%20tasks%20that%20contain%20this%20tag%20are%20shown%2C%20everything%20else%20is%20hidden%20%28folded%29.%22%2C%20%22actions%22%3A%20%5B%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22script%22%3A%20%22%23coding%3A%20utf-8%5Cnimport%20workflow%5Cnimport%20editor%5Cnimport%20re%5Cn%5Cntext%20%3D%20editor.get_text%28%29%5Cntags%20%3D%20sorted%28set%28re.findall%28%27%40%5C%5Cw%2B%27%2C%20text%29%29%29%5Cnif%20len%28tags%29%20%3D%3D%200%3A%5Cn%5Ctimport%20console%5Cn%5Ctconsole.hud_alert%28%27No%20Tags%20Found%27%2C%20%27error%27%29%5Cn%5Ctworkflow.stop%28%29%5Cnelse%3A%5Cn%5Ctworkflow.set_output%28%27%5C%5Cn%27.join%28tags%29%29%5Cn%22%7D%2C%20%22class%22%3A%20%22WorkflowActionRunScript%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22list%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22Input%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22title%22%3A%20%22Select%20Tag%22%2C%20%22showInPopover%22%3A%20false%2C%20%22allowMultipleSelection%22%3A%20false%7D%2C%20%22class%22%3A%20%22WorkflowActionSelectFromList%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%7D%2C%20%22class%22%3A%20%22WorkflowActionRegexEscape%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22pattern%22%3A%20%7B%22text%22%3A%20%22%3F%5C%5Cb%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22Input%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22invert%22%3A%20true%7D%2C%20%22class%22%3A%20%22WorkflowActionFoldLinesMatchingPattern%22%7D%5D%2C%20%22name%22%3A%20%22Focus%20on%20Tag...%22%2C%20%22version%22%3A%20%22133001%22%2C%20%22device%22%3A%20%7B%22userInterfaceIdiom%22%3A%200%2C%20%22model%22%3A%20%22iPhone9%2C1%22%2C%20%22systemVersion%22%3A%20%2212.1.4%22%7D%2C%20%22type%22%3A%20%22wkflw%22%2C%20%22public%22%3A%20true%2C%20%22icon%22%3A%20%22minicons-icons-datas-funnel.png%22%7D", "description": "After picking a tag from the list of tags in the current document, only tasks that contain this tag are shown, everything else is hidden (folded).", "title": "Focus on Tag..."}, {"url": "http://editorial-app.appspot.com/workflow/5774998027370496/2sGRn1gUnmE", "workflow_data": {"username": "", "description": "", "actions": [{"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {}, "class": "WorkflowActionGetClipboard"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"replacement": {"text": "?", "tokenRanges": {"{0, 1}": "Input"}, "type": "advancedText"}}, "class": "WorkflowActionReplaceSelectedText"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"html": {"text": "\n\n\n\n?\n\n", "tokenRanges": {"{67, 1}": "Input"}, "type": "advancedText"}, "baseURL": "", "title": "Preview HTML"}, "class": "WorkflowActionShowHTMLPreview"}], "name": "Preview_html_from_clipboard", "version": "133001", "device": {"userInterfaceIdiom": 1, "model": "iPad7,4", "systemVersion": "12.1"}, "type": "wkflw", "public": true, "icon": "TYPICONS-ALL_SPANNER.png"}, "install_url": "editorial://add-workflow?workflow-data=%7B%22username%22%3A%20%22%22%2C%20%22description%22%3A%20%22%22%2C%20%22actions%22%3A%20%5B%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%7D%2C%20%22class%22%3A%20%22WorkflowActionGetClipboard%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22replacement%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22Input%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionReplaceSelectedText%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22html%22%3A%20%7B%22text%22%3A%20%22%3C%21DOCTYPE%20html%3E%5Cn%3Chtml%3E%5Cn%3Chead%3E%3Cmeta%20charset%3D%5C%22utf-8%5C%22%2F%3E%3C%2Fhead%3E%5Cn%3Cbody%3E%5Cn%3F%5Cn%3C%2Fbody%3E%5Cn%3C%2Fhtml%3E%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B67%2C%201%7D%22%3A%20%22Input%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22baseURL%22%3A%20%22%22%2C%20%22title%22%3A%20%22Preview%20HTML%22%7D%2C%20%22class%22%3A%20%22WorkflowActionShowHTMLPreview%22%7D%5D%2C%20%22name%22%3A%20%22Preview_html_from_clipboard%22%2C%20%22version%22%3A%20%22133001%22%2C%20%22device%22%3A%20%7B%22userInterfaceIdiom%22%3A%201%2C%20%22model%22%3A%20%22iPad7%2C4%22%2C%20%22systemVersion%22%3A%20%2212.1%22%7D%2C%20%22type%22%3A%20%22wkflw%22%2C%20%22public%22%3A%20true%2C%20%22icon%22%3A%20%22TYPICONS-ALL_SPANNER.png%22%7D", "description": "", "title": "Preview_html_from_clipboard"}, {"url": "http://editorial-app.appspot.com/workflow/5887711122554880/XVlX7jhsmvI", "workflow_data": {"username": "pursuitofefficiency", "name": "Get Quote", "description": "Type a few words from a quote and an author's last name to pull the quote from GoodReads.\n\nIf no text is selected, it will use the current line.\nIf there are no results on GoodReads, it will run a Google Search on the In-App Browser.\n\nI like to use the workflow inline by using the abbreviation \"gqt\". You can also select text and send it to the workflow using a shortcut key via a keyboard or manually tapping it.", "actions": [{"customTitle": "No Text Selected - Select Line", "parameters": {"expression1": {"text": "?", "tokenRanges": {"{0, 1}": "%editor:selection"}, "type": "advancedText"}, "expression2": {"text": "", "tokenRanges": {}, "type": "advancedText"}, "comparisonType": 0}, "pauseWithoutShowingParameters": false, "colorLabel": 2, "subActions": [{"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"numberOfSteps": {"text": "1", "tokenRanges": {}, "type": "advancedText"}, "direction": 2, "unit": 1}, "class": "WorkflowActionExtendSelection"}, {"customTitle": "", "parameters": {}, "pauseWithoutShowingParameters": false, "colorLabel": 2, "class": "WorkflowActionConditionEnd", "pauseBeforeRunning": false}], "class": "WorkflowActionCondition", "pauseBeforeRunning": false}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"foldedTextReplacement": "\u2026", "emptySelectionOption": 0, "foldedTextOption": 0, "selectEntireLines": true}, "class": "WorkflowActionGetSelectedText"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {}, "class": "WorkflowActionURLEscape"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"name": "userQuote", "value": {"text": "?", "tokenRanges": {"{0, 1}": "Input"}, "type": "advancedText"}}, "class": "WorkflowActionStoreVariable"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"text": {"text": "https://www.goodreads.com/search?utf8=%E2%9C%93&q=?&search_type=quotes", "tokenRanges": {"{50, 1}": "userQuote"}, "type": "advancedText"}}, "class": "WorkflowActionFormatString"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"name": "fullLink", "value": {"text": "?", "tokenRanges": {"{0, 1}": "Input"}, "type": "advancedText"}}, "class": "WorkflowActionStoreVariable"}, {"customTitle": "BS4 generate dictionary", "parameters": {"script": "#coding: utf-8\nimport workflow\nfrom bs4 import BeautifulSoup\nimport requests\nimport console\nimport re\n\nfullLink = workflow.get_variable('fullLink')\n\nr = requests.get(fullLink)\n\ndata = r.text\n\nsoup = BeautifulSoup(data)\n\nsource = {}\n\nquote_soup = soup.find(\"div\", {\"class\": \"quoteText\"})\n\ndef cleanhtml(raw_html):\n cleanr = re.compile('<.*?>')\n cleantext = re.sub(cleanr, '', raw_html)\n return cleantext\n\nquote_soup_string = cleanhtml(str(quote_soup))\n\nworkflow.set_output(quote_soup_string)\n"}, "pauseWithoutShowingParameters": false, "colorLabel": 4, "class": "WorkflowActionRunScript", "pauseBeforeRunning": false}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {}, "class": "WorkflowActionRemoveWhitespace"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"findOption": 2, "find": {"text": "\\s", "tokenRanges": {}, "type": "advancedText"}, "replace": {"text": " ", "tokenRanges": {}, "type": "advancedText"}}, "class": "WorkflowActionFindReplace"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"name": "originalResult", "value": {"text": "?", "tokenRanges": {"{0, 1}": "Input"}, "type": "advancedText"}}, "class": "WorkflowActionStoreVariable"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"findOption": 0, "find": {"text": " \u2014 ", "tokenRanges": {}, "type": "advancedText"}, "replace": {"text": " \n- ", "tokenRanges": {}, "type": "advancedText"}}, "class": "WorkflowActionFindReplace"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"text": {"text": "\n> ?\n[[More Results](?)]", "tokenRanges": {"{3, 1}": "Input", "{21, 1}": "fullLink"}, "type": "advancedText"}}, "class": "WorkflowActionFormatString"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"name": "fullOutput", "value": {"text": "?", "tokenRanges": {"{0, 1}": "Input"}, "type": "advancedText"}}, "class": "WorkflowActionStoreVariable"}, {"customTitle": "", "parameters": {"expression1": {"text": "?", "tokenRanges": {"{0, 1}": "originalResult"}, "type": "advancedText"}, "expression2": {"text": "None", "tokenRanges": {}, "type": "advancedText"}, "comparisonType": 1}, "pauseWithoutShowingParameters": false, "subActions": [{"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"replacement": {"text": "?", "tokenRanges": {"{0, 1}": "Input"}, "type": "advancedText"}}, "class": "WorkflowActionReplaceSelectedText"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"showHUD": false, "HUDTitle": ""}, "class": "WorkflowActionStopWorkflow"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {}, "class": "WorkflowActionConditionEnd"}], "class": "WorkflowActionCondition", "pauseBeforeRunning": false}, {"customTitle": "Google selection", "parameters": {"expression1": {"text": "", "tokenRanges": {}, "type": "advancedText"}, "expression2": {"text": "", "tokenRanges": {}, "type": "advancedText"}, "comparisonType": 0}, "pauseWithoutShowingParameters": false, "colorLabel": 1, "subActions": [{"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"duration": 0, "HUDText": {"text": "No result found", "tokenRanges": {}, "type": "advancedText"}, "icon": 1}, "class": "WorkflowActionShowHUD"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"expression1": {"text": "?", "tokenRanges": {"{0, 1}": "%editor:selection"}, "type": "advancedText"}, "expression2": {"text": "", "tokenRanges": {}, "type": "advancedText"}, "comparisonType": 1}, "class": "WorkflowActionCondition"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"searchTerm": {"text": "?", "tokenRanges": {"{0, 1}": "%editor:selection"}, "type": "advancedText"}}, "class": "WorkflowActionSearchInBrowser"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {}, "class": "WorkflowActionConditionEnd"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"expression1": {"text": "?", "tokenRanges": {"{0, 1}": "%editor:selection"}, "type": "advancedText"}, "expression2": {"text": "", "tokenRanges": {}, "type": "advancedText"}, "comparisonType": 0}, "class": "WorkflowActionCondition"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"numberOfSteps": {"text": "1", "tokenRanges": {}, "type": "advancedText"}, "direction": 2, "unit": 1}, "class": "WorkflowActionExtendSelection"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"searchTerm": {"text": "?", "tokenRanges": {"{0, 1}": "%editor:selection"}, "type": "advancedText"}}, "class": "WorkflowActionSearchInBrowser"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {}, "class": "WorkflowActionConditionEnd"}, {"customTitle": "", "parameters": {}, "pauseWithoutShowingParameters": false, "colorLabel": 1, "class": "WorkflowActionConditionEnd", "pauseBeforeRunning": false}], "class": "WorkflowActionCondition", "pauseBeforeRunning": false}], "version": "133001", "device": {"userInterfaceIdiom": 0, "model": "iPhone10,2", "systemVersion": "12.1.2"}, "type": "wkflw", "public": true, "icon": "TYPICONS-ALL_MESSAGE.png"}, "install_url": "editorial://add-workflow?workflow-data=%7B%22username%22%3A%20%22pursuitofefficiency%22%2C%20%22name%22%3A%20%22Get%20Quote%22%2C%20%22description%22%3A%20%22Type%20a%20few%20words%20from%20a%20quote%20and%20an%20author%27s%20last%20name%20to%20pull%20the%20quote%20from%20GoodReads.%5Cn%5CnIf%20no%20text%20is%20selected%2C%20it%20will%20use%20the%20current%20line.%5CnIf%20there%20are%20no%20results%20on%20GoodReads%2C%20it%20will%20run%20a%20Google%20Search%20on%20the%20In-App%20Browser.%5Cn%5CnI%20like%20to%20use%20the%20workflow%20inline%20by%20using%20the%20abbreviation%20%5C%22gqt%5C%22.%20You%20can%20also%20select%20text%20and%20send%20it%20to%20the%20workflow%20using%20a%20shortcut%20key%20via%20a%20keyboard%20or%20manually%20tapping%20it.%22%2C%20%22actions%22%3A%20%5B%7B%22customTitle%22%3A%20%22No%20Text%20Selected%20-%20Select%20Line%22%2C%20%22parameters%22%3A%20%7B%22expression1%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22%25editor%3Aselection%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22expression2%22%3A%20%7B%22text%22%3A%20%22%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22comparisonType%22%3A%200%7D%2C%20%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22colorLabel%22%3A%202%2C%20%22subActions%22%3A%20%5B%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22numberOfSteps%22%3A%20%7B%22text%22%3A%20%221%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22direction%22%3A%202%2C%20%22unit%22%3A%201%7D%2C%20%22class%22%3A%20%22WorkflowActionExtendSelection%22%7D%2C%20%7B%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%7D%2C%20%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22colorLabel%22%3A%202%2C%20%22class%22%3A%20%22WorkflowActionConditionEnd%22%2C%20%22pauseBeforeRunning%22%3A%20false%7D%5D%2C%20%22class%22%3A%20%22WorkflowActionCondition%22%2C%20%22pauseBeforeRunning%22%3A%20false%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22foldedTextReplacement%22%3A%20%22%5Cu2026%22%2C%20%22emptySelectionOption%22%3A%200%2C%20%22foldedTextOption%22%3A%200%2C%20%22selectEntireLines%22%3A%20true%7D%2C%20%22class%22%3A%20%22WorkflowActionGetSelectedText%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%7D%2C%20%22class%22%3A%20%22WorkflowActionURLEscape%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22name%22%3A%20%22userQuote%22%2C%20%22value%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22Input%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionStoreVariable%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22text%22%3A%20%7B%22text%22%3A%20%22https%3A%2F%2Fwww.goodreads.com%2Fsearch%3Futf8%3D%25E2%259C%2593%26q%3D%3F%26search_type%3Dquotes%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B50%2C%201%7D%22%3A%20%22userQuote%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionFormatString%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22name%22%3A%20%22fullLink%22%2C%20%22value%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22Input%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionStoreVariable%22%7D%2C%20%7B%22customTitle%22%3A%20%22BS4%20generate%20dictionary%22%2C%20%22parameters%22%3A%20%7B%22script%22%3A%20%22%23coding%3A%20utf-8%5Cnimport%20workflow%5Cnfrom%20bs4%20import%20BeautifulSoup%5Cnimport%20requests%5Cnimport%20console%5Cnimport%20re%5Cn%5CnfullLink%20%3D%20workflow.get_variable%28%27fullLink%27%29%5Cn%5Cnr%20%3D%20requests.get%28fullLink%29%5Cn%5Cndata%20%3D%20r.text%5Cn%5Cnsoup%20%3D%20BeautifulSoup%28data%29%5Cn%5Cnsource%20%3D%20%7B%7D%5Cn%5Cnquote_soup%20%3D%20soup.find%28%5C%22div%5C%22%2C%20%7B%5C%22class%5C%22%3A%20%5C%22quoteText%5C%22%7D%29%5Cn%5Cndef%20cleanhtml%28raw_html%29%3A%5Cn%20%20cleanr%20%3D%20re.compile%28%27%3C.%2A%3F%3E%27%29%5Cn%20%20cleantext%20%3D%20re.sub%28cleanr%2C%20%27%27%2C%20raw_html%29%5Cn%20%20return%20cleantext%5Cn%5Cnquote_soup_string%20%3D%20cleanhtml%28str%28quote_soup%29%29%5Cn%5Cnworkflow.set_output%28quote_soup_string%29%5Cn%22%7D%2C%20%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22colorLabel%22%3A%204%2C%20%22class%22%3A%20%22WorkflowActionRunScript%22%2C%20%22pauseBeforeRunning%22%3A%20false%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%7D%2C%20%22class%22%3A%20%22WorkflowActionRemoveWhitespace%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22findOption%22%3A%202%2C%20%22find%22%3A%20%7B%22text%22%3A%20%22%5C%5Cs%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22replace%22%3A%20%7B%22text%22%3A%20%22%20%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionFindReplace%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22name%22%3A%20%22originalResult%22%2C%20%22value%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22Input%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionStoreVariable%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22findOption%22%3A%200%2C%20%22find%22%3A%20%7B%22text%22%3A%20%22%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Cu2014%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22replace%22%3A%20%7B%22text%22%3A%20%22%20%20%20%5Cn-%20%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionFindReplace%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22text%22%3A%20%7B%22text%22%3A%20%22%5Cn%3E%20%3F%5Cn%5B%5BMore%20Results%5D%28%3F%29%5D%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B3%2C%201%7D%22%3A%20%22Input%22%2C%20%22%7B21%2C%201%7D%22%3A%20%22fullLink%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionFormatString%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22name%22%3A%20%22fullOutput%22%2C%20%22value%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22Input%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionStoreVariable%22%7D%2C%20%7B%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22expression1%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22originalResult%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22expression2%22%3A%20%7B%22text%22%3A%20%22None%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22comparisonType%22%3A%201%7D%2C%20%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22subActions%22%3A%20%5B%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22replacement%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22Input%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionReplaceSelectedText%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22showHUD%22%3A%20false%2C%20%22HUDTitle%22%3A%20%22%22%7D%2C%20%22class%22%3A%20%22WorkflowActionStopWorkflow%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%7D%2C%20%22class%22%3A%20%22WorkflowActionConditionEnd%22%7D%5D%2C%20%22class%22%3A%20%22WorkflowActionCondition%22%2C%20%22pauseBeforeRunning%22%3A%20false%7D%2C%20%7B%22customTitle%22%3A%20%22Google%20selection%22%2C%20%22parameters%22%3A%20%7B%22expression1%22%3A%20%7B%22text%22%3A%20%22%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22expression2%22%3A%20%7B%22text%22%3A%20%22%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22comparisonType%22%3A%200%7D%2C%20%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22colorLabel%22%3A%201%2C%20%22subActions%22%3A%20%5B%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22duration%22%3A%200%2C%20%22HUDText%22%3A%20%7B%22text%22%3A%20%22No%20result%20found%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22icon%22%3A%201%7D%2C%20%22class%22%3A%20%22WorkflowActionShowHUD%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22expression1%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22%25editor%3Aselection%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22expression2%22%3A%20%7B%22text%22%3A%20%22%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22comparisonType%22%3A%201%7D%2C%20%22class%22%3A%20%22WorkflowActionCondition%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22searchTerm%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22%25editor%3Aselection%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionSearchInBrowser%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%7D%2C%20%22class%22%3A%20%22WorkflowActionConditionEnd%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22expression1%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22%25editor%3Aselection%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22expression2%22%3A%20%7B%22text%22%3A%20%22%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22comparisonType%22%3A%200%7D%2C%20%22class%22%3A%20%22WorkflowActionCondition%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22numberOfSteps%22%3A%20%7B%22text%22%3A%20%221%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22direction%22%3A%202%2C%20%22unit%22%3A%201%7D%2C%20%22class%22%3A%20%22WorkflowActionExtendSelection%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22searchTerm%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22%25editor%3Aselection%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionSearchInBrowser%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%7D%2C%20%22class%22%3A%20%22WorkflowActionConditionEnd%22%7D%2C%20%7B%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%7D%2C%20%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22colorLabel%22%3A%201%2C%20%22class%22%3A%20%22WorkflowActionConditionEnd%22%2C%20%22pauseBeforeRunning%22%3A%20false%7D%5D%2C%20%22class%22%3A%20%22WorkflowActionCondition%22%2C%20%22pauseBeforeRunning%22%3A%20false%7D%5D%2C%20%22version%22%3A%20%22133001%22%2C%20%22device%22%3A%20%7B%22userInterfaceIdiom%22%3A%200%2C%20%22model%22%3A%20%22iPhone10%2C2%22%2C%20%22systemVersion%22%3A%20%2212.1.2%22%7D%2C%20%22type%22%3A%20%22wkflw%22%2C%20%22public%22%3A%20true%2C%20%22icon%22%3A%20%22TYPICONS-ALL_MESSAGE.png%22%7D", "description": "Type a few words from a quote and an author's last name to pull the quote from GoodReads.\n\nIf no text is selected, it will use the current line.\nIf there are no results on GoodReads, it will run a Google Search on the In-App Browser.\n\nI like to use the workflow inline by using the abbreviation \"gqt\". You can also select text and send it to the workflow using a shortcut key via a keyboard or manually tapping it.", "title": "Get Quote"}, {"url": "http://editorial-app.appspot.com/workflow/5867327274876928/UkAFn6qfZXE", "workflow_data": {"username": "", "description": "This Workflow accepts TaskPaper text with \u00abplaceholder\u00bb tokens and prompts for you to enter final values, then creates a project in OmniFocus 2.14 for iOS using those tokens.\n\nFor example, given this input:\n\n- \u00abproject_name\u00bb @parallel(false) @due(\u00abdue\u00bb)\n - This task needs to be done at least 1 week before \u00abproject_name\u00bb is due @due(\u00abdue\u00bb -1w)\n - This task needs to be done at least 2 days before \u00abproject_name\u00bb is due @due(\u00abdue\u00bb -2d)\n\nYou'll be prompted to enter values for \u00abproject_name\u00bb and \u00abdue\u00bb. If you enter \"Phonewave 1.2\" and \"next Thursday\", it will create a new \"Phonewave 1.2\" project in OmniFocus that is due next Thursday, and has two tasks already filled with due dates of this Thursday and next Tuesday.", "actions": [{"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"foldedTextReplacement": "\u2026", "emptySelectionOption": 1, "foldedTextOption": 0, "selectEntireLines": false}, "class": "WorkflowActionGetSelectedText"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"script": "#coding: utf-8\nimport workflow\nimport dialogs\nimport re\n\naction_in = workflow.get_input()\n\n# Find placeholders\nknown_placeholders = set()\nplaceholders = []\nfields = []\nfor placeholder_match in re.finditer(u\"\u00ab(.+?)\u00bb\", action_in):\n\tplaceholder = placeholder_match.group(1)\n\tif placeholder not in known_placeholders:\n\t\tknown_placeholders.add(placeholder)\n\t\tplaceholders.append(placeholder)\n\t\tfields.append({'type': 'text', 'title': placeholder, 'key': placeholder})\n\naction_out = action_in\n\n# Substitute the placeholders\nif len(placeholders) == 0:\n\tif dialogs.alert(u\"No template placeholders were found.\", u\"\"\"\nIf your project text has placeholders (that look like \u00abthis\u00bb), this script will prompt for values you'd like to substitute for them.\n\"\"\", u\"Continue\") != 1:\n\t workflow.stop()\n\nelse:\n\tvalues = dialogs.form_dialog(title='', fields=fields, sections=None)\n\tif values:\n\t\tfor key in values:\n\t\t\taction_out = re.sub(u\"\u00ab\" + key + \"\u00bb\", values[key], action_out)\n\nworkflow.set_output(action_out)\n"}, "class": "WorkflowActionRunScript"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {}, "class": "WorkflowActionURLEscape"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"name": "encodedContent", "value": {"text": "?", "tokenRanges": {"{0, 1}": "Input"}, "type": "advancedText"}}, "class": "WorkflowActionStoreVariable"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"URL": {"text": "omnifocus://x-callback-url/paste?target=projects&content=?", "tokenRanges": {"{57, 1}": "encodedContent"}, "type": "advancedText"}, "waitUntilLoaded": false, "revealBrowserAutomatically": true, "openIn": 0, "tabOption": 0}, "class": "WorkflowActionOpenURL"}], "name": "New OmniFocus Project", "version": "133001", "device": {"userInterfaceIdiom": 0, "model": "iPhone11,2", "systemVersion": "12.1.3"}, "type": "wkflw", "public": true, "icon": "minicons-icons-validation-tick-circle-3.png"}, "install_url": "editorial://add-workflow?workflow-data=%7B%22username%22%3A%20%22%22%2C%20%22description%22%3A%20%22This%20Workflow%20accepts%20TaskPaper%20text%20with%20%5Cu00abplaceholder%5Cu00bb%20tokens%20and%20prompts%20for%20you%20to%20enter%20final%20values%2C%20then%20creates%20a%20project%20in%20OmniFocus%202.14%20for%20iOS%20using%20those%20tokens.%5Cn%5CnFor%20example%2C%20given%20this%20input%3A%5Cn%5Cn-%20%5Cu00abproject_name%5Cu00bb%20%40parallel%28false%29%20%40due%28%5Cu00abdue%5Cu00bb%29%5Cn%20%20%20%20%20%20%20%20-%20This%20task%20needs%20to%20be%20done%20at%20least%201%20week%20before%20%5Cu00abproject_name%5Cu00bb%20is%20due%20%40due%28%5Cu00abdue%5Cu00bb%20-1w%29%5Cn%20%20%20%20%20%20%20%20-%20This%20task%20needs%20to%20be%20done%20at%20least%202%20days%20before%20%5Cu00abproject_name%5Cu00bb%20is%20due%20%40due%28%5Cu00abdue%5Cu00bb%20-2d%29%5Cn%5CnYou%27ll%20be%20prompted%20to%20enter%20values%20for%20%5Cu00abproject_name%5Cu00bb%20and%20%5Cu00abdue%5Cu00bb.%20If%20you%20enter%20%5C%22Phonewave%201.2%5C%22%20and%20%5C%22next%20Thursday%5C%22%2C%20it%20will%20create%20a%20new%20%5C%22Phonewave%201.2%5C%22%20project%20in%20OmniFocus%20that%20is%20due%20next%20Thursday%2C%20and%20has%20two%20tasks%20already%20filled%20with%20due%20dates%20of%20this%20Thursday%20and%20next%20Tuesday.%22%2C%20%22actions%22%3A%20%5B%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22foldedTextReplacement%22%3A%20%22%5Cu2026%22%2C%20%22emptySelectionOption%22%3A%201%2C%20%22foldedTextOption%22%3A%200%2C%20%22selectEntireLines%22%3A%20false%7D%2C%20%22class%22%3A%20%22WorkflowActionGetSelectedText%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22script%22%3A%20%22%23coding%3A%20utf-8%5Cnimport%20workflow%5Cnimport%20dialogs%5Cnimport%20re%5Cn%5Cnaction_in%20%3D%20workflow.get_input%28%29%5Cn%5Cn%23%20Find%20placeholders%5Cnknown_placeholders%20%3D%20set%28%29%5Cnplaceholders%20%3D%20%5B%5D%5Cnfields%20%3D%20%5B%5D%5Cnfor%20placeholder_match%20in%20re.finditer%28u%5C%22%5Cu00ab%28.%2B%3F%29%5Cu00bb%5C%22%2C%20action_in%29%3A%5Cn%5Ctplaceholder%20%3D%20placeholder_match.group%281%29%5Cn%5Ctif%20placeholder%20not%20in%20known_placeholders%3A%5Cn%5Ct%5Ctknown_placeholders.add%28placeholder%29%5Cn%5Ct%5Ctplaceholders.append%28placeholder%29%5Cn%5Ct%5Ctfields.append%28%7B%27type%27%3A%20%27text%27%2C%20%27title%27%3A%20placeholder%2C%20%27key%27%3A%20placeholder%7D%29%5Cn%5Cnaction_out%20%3D%20action_in%5Cn%5Cn%23%20Substitute%20the%20placeholders%5Cnif%20len%28placeholders%29%20%3D%3D%200%3A%5Cn%5Ctif%20dialogs.alert%28u%5C%22No%20template%20placeholders%20were%20found.%5C%22%2C%20u%5C%22%5C%22%5C%22%5CnIf%20your%20project%20text%20has%20placeholders%20%28that%20look%20like%20%5Cu00abthis%5Cu00bb%29%2C%20this%20script%20will%20prompt%20for%20values%20you%27d%20like%20to%20substitute%20for%20them.%5Cn%5C%22%5C%22%5C%22%2C%20u%5C%22Continue%5C%22%29%20%21%3D%201%3A%5Cn%5Ct%20%20workflow.stop%28%29%5Cn%5Cnelse%3A%5Cn%5Ctvalues%20%3D%20dialogs.form_dialog%28title%3D%27%27%2C%20fields%3Dfields%2C%20sections%3DNone%29%5Cn%5Ctif%20values%3A%5Cn%5Ct%5Ctfor%20key%20in%20values%3A%5Cn%5Ct%5Ct%5Ctaction_out%20%3D%20re.sub%28u%5C%22%5Cu00ab%5C%22%20%2B%20key%20%2B%20%5C%22%5Cu00bb%5C%22%2C%20values%5Bkey%5D%2C%20action_out%29%5Cn%5Cnworkflow.set_output%28action_out%29%5Cn%22%7D%2C%20%22class%22%3A%20%22WorkflowActionRunScript%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%7D%2C%20%22class%22%3A%20%22WorkflowActionURLEscape%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22name%22%3A%20%22encodedContent%22%2C%20%22value%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22Input%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionStoreVariable%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22URL%22%3A%20%7B%22text%22%3A%20%22omnifocus%3A%2F%2Fx-callback-url%2Fpaste%3Ftarget%3Dprojects%26content%3D%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B57%2C%201%7D%22%3A%20%22encodedContent%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22waitUntilLoaded%22%3A%20false%2C%20%22revealBrowserAutomatically%22%3A%20true%2C%20%22openIn%22%3A%200%2C%20%22tabOption%22%3A%200%7D%2C%20%22class%22%3A%20%22WorkflowActionOpenURL%22%7D%5D%2C%20%22name%22%3A%20%22New%20OmniFocus%20Project%22%2C%20%22version%22%3A%20%22133001%22%2C%20%22device%22%3A%20%7B%22userInterfaceIdiom%22%3A%200%2C%20%22model%22%3A%20%22iPhone11%2C2%22%2C%20%22systemVersion%22%3A%20%2212.1.3%22%7D%2C%20%22type%22%3A%20%22wkflw%22%2C%20%22public%22%3A%20true%2C%20%22icon%22%3A%20%22minicons-icons-validation-tick-circle-3.png%22%7D", "description": "This Workflow accepts TaskPaper text with \u00abplaceholder\u00bb tokens and prompts for you to enter final values, then creates a project in OmniFocus 2.14 for iOS using those tokens.\n\nFor example, given this input:\n\n- \u00abproject_name\u00bb @parallel(false) @due(\u00abdue\u00bb)\n - This task needs to be done at least 1 week before \u00abproject_name\u00bb is due @due(\u00abdue\u00bb -1w)\n - This task needs to be done at least 2 days before \u00abproject_name\u00bb is due @due(\u00abdue\u00bb -2d)\n\nYou'll be prompted to enter values for \u00abproject_name\u00bb and \u00abdue\u00bb. If you enter \"Phonewave 1.2\" and \"next Thursday\", it will create a new \"Phonewave 1.2\" project in OmniFocus that is due next Thursday, and has two tasks already filled with due dates of this Thursday and next Tuesday.", "title": "New OmniFocus Project"}, {"url": "http://editorial-app.appspot.com/workflow/5794810308853760/BfYl7aBLnco", "workflow_data": {"username": "", "description": "Strip everything but the content of the Wrestling Observer Newsletter from the new website.", "actions": [{"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"inDropbox": false, "filename": "Observer Triage.md"}, "class": "WorkflowActionOpenDocument"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "Clear Document", "parameters": {"11552F95-7E82-4F81-8675-EB075C363FA6": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "F57AB033-7DA2-4C21-B0E6-599C2EFDD2A9": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "AC53CBCA-B77E-485C-AA76-7B8528EE10AC": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "71C2B25B-D91B-4E8B-BD40-538439419F7E": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "E6EABCE9-62D3-445F-A72F-E1DD7CE849F1": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "A6D5E49E-B3FB-4973-8041-FCA43A3CDACD": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "5916DCAE-ABFD-4946-9204-4044920B3F0F": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "F400F19E-2225-46AF-A8F5-BB84C1B06113": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "__custom_action_parameters__": [], "FB0E231A-2EF7-4AB1-97EE-D1CD21D7194F": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "83171AC8-D3A9-43F4-B811-4409C6C90F24": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "24ED7E3B-E39E-4F7E-9875-D5E5BA95F12F": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "F730E2E4-26ED-4248-9046-D3BE36AE1C22": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "46317020-D2EE-45CB-967A-A22223D213E9": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "DC10CEFD-4C26-42A2-B26C-DDB3EFDDB6E1": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "E126D42C-8943-4BD2-8FAF-56B6C87CA520": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "9DCB6C20-340B-413B-BEE4-1D1F668ACF3D": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "9BF7CB4E-7876-4603-A02F-170F37E4CBE3": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "B8FF89EA-3946-4068-8A55-5E233605EF9E": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "AB137BBC-D43B-44BC-B7F8-E3118D44C5F8": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "8A17CD36-6156-4BA3-B07F-F13C55B7F3FD": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "__custom_action_script__": "#coding: utf-8\nimport workflow\nimport editor\n\nparams = workflow.get_parameters()\naction_in = workflow.get_input()\n\ndoc_text = editor.get_text()\nreplacement = ''\n\neditor.replace_text(0,len(doc_text), replacement)\n\n\n", "2523DAEF-CB68-4968-A5F6-B149EFA75BE6": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "16410601-7DC0-4BD1-938B-65545C336505": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "582A1AEA-85AE-44C5-85BA-3FD056CDEE6E": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "5FE7A2FB-690F-4A5D-8A4E-ABA1419A89F4": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "6793984D-2DDF-4DFB-BE09-F0C22B30C2AC": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "F0B2818D-0560-4CF3-AA91-BC21369B2733": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "DF0D7458-E4D3-4BA9-8C62-7E04E2CB5A89": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "AF05067B-C1E5-4AAC-AE2B-836405D19869": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "FEAC2448-F49E-495F-B561-DF00DF8D84BA": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "9D233694-8084-4ACD-97C4-21DB3AD165A5": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "713A587A-8F88-4AEF-97E0-B461BD5038FB": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "AF145A8A-FEB9-46A8-95C9-7EB9AB596461": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "CE6D0450-02CE-427D-8211-6D2BDE4E2B4B": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "19AAE58E-6486-4A81-8F79-5239FFE9FB07": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "F7291BAC-A688-47AB-BBFC-1B9256AD1315": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "BAC6DCCA-22A8-49F2-9D97-E9ECF80B928C": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "7632BD69-40F2-43B3-B9D1-EB15C863008D": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "ED9A35B9-30FB-43AA-94BE-CE541FD38E0A": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "27C01BF9-D953-4985-AF5D-67F0975E3D46": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "97213812-73D6-48EF-BD24-1CDF4291A7D5": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "9EBEA8F4-C689-4F6C-8B33-DE00454294BB": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "AECB7E96-999A-411D-A931-9FDE3413AF30": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "3A67D70B-A8C6-4D49-A2FC-84927D2DDA63": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "5BD1A794-95EB-43C7-AF80-AAC7B16D2995": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "DC6027AB-9B75-4455-8688-7949FFD60FE8": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "5655CE02-91D2-4D6B-9862-5268D05B6536": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "50849896-8B91-40CE-A3AA-610F8D022B3B": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "3B339123-0C47-4AEE-B446-68CF8CAA311B": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "884C50AD-772A-432E-884D-B070AD29D973": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "E742BA66-27E5-42C4-BAA4-D2BA026BC8FE": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "__custom_action_subtitle__": "Clears all text in the current document", "5CAE3CC3-0C14-45DC-9CB9-243593708B56": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "8FB80ED1-49D2-4C04-A87E-0DE94C6368CE": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "8DDEADB7-5BA2-4FFB-9C5B-62E85B8D4C5F": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "17D86554-CBF9-4B7F-9442-851A4B0C150F": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "A908D646-BC7D-45B9-94FE-BDDA9EF29720": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "67A3867E-3B51-4E7F-A436-B1A5AE4D9F3A": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "CED7FEE6-E399-4332-8619-FA904E413860": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "3B305999-79BF-45B7-8780-E7B1FE8233B5": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "318D8C71-AF02-49D0-8FC3-936FBC9D38B5": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}}, "class": "WorkflowActionCustom"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {}, "class": "WorkflowActionGetClipboard"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"replacement": {"text": "?", "tokenRanges": {"{0, 1}": "Input"}, "type": "advancedText"}}, "class": "WorkflowActionReplaceSelectedText"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"foldedTextReplacement": "\u2026", "foldedTextOption": 0}, "class": "WorkflowActionGetEditorText"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"outputOption": 1, "regex": {"text": "
    ", "tokenRanges": {}, "type": "advancedText"}, "matchGroup": "", "searchTypeOption": 2}, "class": "WorkflowActionMatchRegularExpression"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"findOption": 2, "find": {"text": "\\W\\d+", "tokenRanges": {}, "type": "advancedText"}, "replace": {"text": "", "tokenRanges": {}, "type": "advancedText"}}, "class": "WorkflowActionFindReplace"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"name": "bottom", "value": {"text": "?", "tokenRanges": {"{0, 1}": "Input"}, "type": "advancedText"}}, "class": "WorkflowActionStoreVariable"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"foldedTextReplacement": "\u2026", "foldedTextOption": 0}, "class": "WorkflowActionGetEditorText"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"outputOption": 1, "regex": {"text": "
    ", "tokenRanges": {}, "type": "advancedText"}, "matchGroup": "", "searchTypeOption": 2}, "class": "WorkflowActionMatchRegularExpression"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"findOption": 2, "find": {"text": "\\d+\\W", "tokenRanges": {}, "type": "advancedText"}, "replace": {"text": "", "tokenRanges": {}, "type": "advancedText"}}, "class": "WorkflowActionFindReplace"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"name": "top", "value": {"text": "?", "tokenRanges": {"{0, 1}": "Input"}, "type": "advancedText"}}, "class": "WorkflowActionStoreVariable"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"range": {"text": "?:9999999999", "tokenRanges": {"{0, 1}": "bottom"}, "type": "advancedText"}}, "class": "WorkflowActionSelectRange"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"replacement": {"text": "", "tokenRanges": {}, "type": "advancedText"}}, "class": "WorkflowActionReplaceSelectedText"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"range": {"text": "0:?", "tokenRanges": {"{2, 1}": "top"}, "type": "advancedText"}}, "class": "WorkflowActionSelectRange"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"replacement": {"text": "", "tokenRanges": {}, "type": "advancedText"}}, "class": "WorkflowActionReplaceSelectedText"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"foldedTextReplacement": "\u2026", "foldedTextOption": 0}, "class": "WorkflowActionGetEditorText"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"name": "final", "value": {"text": "?", "tokenRanges": {"{0, 1}": "Input"}, "type": "advancedText"}}, "class": "WorkflowActionStoreVariable"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {}, "class": "WorkflowActionSetClipboard"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "Clear Document", "parameters": {"0527F0CA-BD8C-402E-AD9B-CAEE4C1ADBFC": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "A6D5E49E-B3FB-4973-8041-FCA43A3CDACD": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "__custom_action_subtitle__": "Clears all text in the current document", "F57AB033-7DA2-4C21-B0E6-599C2EFDD2A9": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "AB137BBC-D43B-44BC-B7F8-E3118D44C5F8": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "71C2B25B-D91B-4E8B-BD40-538439419F7E": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "95D39812-A36B-4334-939B-9520E97E51F8": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "E6EABCE9-62D3-445F-A72F-E1DD7CE849F1": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "11552F95-7E82-4F81-8675-EB075C363FA6": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "__custom_action_parameters__": [], "FB0E231A-2EF7-4AB1-97EE-D1CD21D7194F": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "B9EC12CC-C37F-4420-8ED2-C8A156558961": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "E126D42C-8943-4BD2-8FAF-56B6C87CA520": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "9DCB6C20-340B-413B-BEE4-1D1F668ACF3D": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "CED7FEE6-E399-4332-8619-FA904E413860": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "B8FF89EA-3946-4068-8A55-5E233605EF9E": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "5FE7A2FB-690F-4A5D-8A4E-ABA1419A89F4": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "8FB80ED1-49D2-4C04-A87E-0DE94C6368CE": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "__custom_action_script__": "#coding: utf-8\nimport workflow\nimport editor\n\nparams = workflow.get_parameters()\naction_in = workflow.get_input()\n\ndoc_text = editor.get_text()\nreplacement = ''\n\neditor.replace_text(0,len(doc_text), replacement)\n\n\n", "7DD93167-D478-429A-9F64-36E971B28B93": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "2745F037-C8C3-4EAD-A9E6-637C2B3CEF89": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "E0C21818-CBE5-4785-9E07-FABA8C259E79": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "A9297A4F-CEE9-4158-AB18-2C5BBD6D82A9": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "DF0D7458-E4D3-4BA9-8C62-7E04E2CB5A89": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "DC6027AB-9B75-4455-8688-7949FFD60FE8": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "FEAC2448-F49E-495F-B561-DF00DF8D84BA": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "9D233694-8084-4ACD-97C4-21DB3AD165A5": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "22E99EA6-6594-4F81-BF7C-8BE1E5F160DD": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "713A587A-8F88-4AEF-97E0-B461BD5038FB": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "83171AC8-D3A9-43F4-B811-4409C6C90F24": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "F7291BAC-A688-47AB-BBFC-1B9256AD1315": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "BAC6DCCA-22A8-49F2-9D97-E9ECF80B928C": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "83DB92CB-E1B2-4B1D-8132-4374A9AC1FC4": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "2CE109E4-C05E-452B-BFA8-5E08DC1FA64E": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "27C01BF9-D953-4985-AF5D-67F0975E3D46": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "28A8A40C-FA57-4105-9F09-06C30FCB5803": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "9EBEA8F4-C689-4F6C-8B33-DE00454294BB": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "3A67D70B-A8C6-4D49-A2FC-84927D2DDA63": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "B8BB40F6-D295-4473-9776-4C0846B1A52E": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "5655CE02-91D2-4D6B-9862-5268D05B6536": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "ED9A35B9-30FB-43AA-94BE-CE541FD38E0A": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "15EA79B3-5D6B-473E-B02C-35F1DF4BF1DB": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "E742BA66-27E5-42C4-BAA4-D2BA026BC8FE": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "50849896-8B91-40CE-A3AA-610F8D022B3B": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "5916DCAE-ABFD-4946-9204-4044920B3F0F": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "9F0BCF1D-5663-48A2-816E-9E7AA30E1A4A": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "3B339123-0C47-4AEE-B446-68CF8CAA311B": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "8DDEADB7-5BA2-4FFB-9C5B-62E85B8D4C5F": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "501EB775-D530-4B68-A1FD-27A2AF060CA3": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "A908D646-BC7D-45B9-94FE-BDDA9EF29720": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "3B305999-79BF-45B7-8780-E7B1FE8233B5": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "579A8769-ADCC-45D8-B2E9-2DCEC73BBD89": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "318D8C71-AF02-49D0-8FC3-936FBC9D38B5": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}}, "class": "WorkflowActionCustom"}], "name": "Process Observer", "version": "133001", "device": {"userInterfaceIdiom": 1, "model": "iPad4,1", "systemVersion": "10.0.2"}, "type": "wkflw", "public": true, "icon": "TYPICONS-ALL_SPANNER.png"}, "install_url": "editorial://add-workflow?workflow-data=%7B%22username%22%3A%20%22%22%2C%20%22description%22%3A%20%22Strip%20everything%20but%20the%20content%20of%20the%20Wrestling%20Observer%20Newsletter%20from%20the%20new%20website.%22%2C%20%22actions%22%3A%20%5B%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22inDropbox%22%3A%20false%2C%20%22filename%22%3A%20%22Observer%20Triage.md%22%7D%2C%20%22class%22%3A%20%22WorkflowActionOpenDocument%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22Clear%20Document%22%2C%20%22parameters%22%3A%20%7B%2211552F95-7E82-4F81-8675-EB075C363FA6%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22F57AB033-7DA2-4C21-B0E6-599C2EFDD2A9%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22AC53CBCA-B77E-485C-AA76-7B8528EE10AC%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%2271C2B25B-D91B-4E8B-BD40-538439419F7E%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22E6EABCE9-62D3-445F-A72F-E1DD7CE849F1%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22A6D5E49E-B3FB-4973-8041-FCA43A3CDACD%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%225916DCAE-ABFD-4946-9204-4044920B3F0F%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22F400F19E-2225-46AF-A8F5-BB84C1B06113%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22__custom_action_parameters__%22%3A%20%5B%5D%2C%20%22FB0E231A-2EF7-4AB1-97EE-D1CD21D7194F%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%2283171AC8-D3A9-43F4-B811-4409C6C90F24%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%2224ED7E3B-E39E-4F7E-9875-D5E5BA95F12F%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22F730E2E4-26ED-4248-9046-D3BE36AE1C22%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%2246317020-D2EE-45CB-967A-A22223D213E9%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22DC10CEFD-4C26-42A2-B26C-DDB3EFDDB6E1%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22E126D42C-8943-4BD2-8FAF-56B6C87CA520%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%229DCB6C20-340B-413B-BEE4-1D1F668ACF3D%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%229BF7CB4E-7876-4603-A02F-170F37E4CBE3%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22B8FF89EA-3946-4068-8A55-5E233605EF9E%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22AB137BBC-D43B-44BC-B7F8-E3118D44C5F8%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%228A17CD36-6156-4BA3-B07F-F13C55B7F3FD%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22__custom_action_script__%22%3A%20%22%23coding%3A%20utf-8%5Cnimport%20workflow%5Cnimport%20editor%5Cn%5Cnparams%20%3D%20workflow.get_parameters%28%29%5Cnaction_in%20%3D%20workflow.get_input%28%29%5Cn%5Cndoc_text%20%3D%20editor.get_text%28%29%5Cnreplacement%20%3D%20%27%27%5Cn%5Cneditor.replace_text%280%2Clen%28doc_text%29%2C%20replacement%29%5Cn%5Cn%5Cn%22%2C%20%222523DAEF-CB68-4968-A5F6-B149EFA75BE6%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%2216410601-7DC0-4BD1-938B-65545C336505%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22582A1AEA-85AE-44C5-85BA-3FD056CDEE6E%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%225FE7A2FB-690F-4A5D-8A4E-ABA1419A89F4%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%226793984D-2DDF-4DFB-BE09-F0C22B30C2AC%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22F0B2818D-0560-4CF3-AA91-BC21369B2733%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22DF0D7458-E4D3-4BA9-8C62-7E04E2CB5A89%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22AF05067B-C1E5-4AAC-AE2B-836405D19869%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22FEAC2448-F49E-495F-B561-DF00DF8D84BA%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%229D233694-8084-4ACD-97C4-21DB3AD165A5%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22713A587A-8F88-4AEF-97E0-B461BD5038FB%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22AF145A8A-FEB9-46A8-95C9-7EB9AB596461%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22CE6D0450-02CE-427D-8211-6D2BDE4E2B4B%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%2219AAE58E-6486-4A81-8F79-5239FFE9FB07%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22F7291BAC-A688-47AB-BBFC-1B9256AD1315%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22BAC6DCCA-22A8-49F2-9D97-E9ECF80B928C%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%227632BD69-40F2-43B3-B9D1-EB15C863008D%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22ED9A35B9-30FB-43AA-94BE-CE541FD38E0A%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%2227C01BF9-D953-4985-AF5D-67F0975E3D46%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%2297213812-73D6-48EF-BD24-1CDF4291A7D5%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%229EBEA8F4-C689-4F6C-8B33-DE00454294BB%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22AECB7E96-999A-411D-A931-9FDE3413AF30%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%223A67D70B-A8C6-4D49-A2FC-84927D2DDA63%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%225BD1A794-95EB-43C7-AF80-AAC7B16D2995%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22DC6027AB-9B75-4455-8688-7949FFD60FE8%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%225655CE02-91D2-4D6B-9862-5268D05B6536%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%2250849896-8B91-40CE-A3AA-610F8D022B3B%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%223B339123-0C47-4AEE-B446-68CF8CAA311B%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22884C50AD-772A-432E-884D-B070AD29D973%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22E742BA66-27E5-42C4-BAA4-D2BA026BC8FE%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22__custom_action_subtitle__%22%3A%20%22Clears%20all%20text%20in%20the%20current%20document%22%2C%20%225CAE3CC3-0C14-45DC-9CB9-243593708B56%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%228FB80ED1-49D2-4C04-A87E-0DE94C6368CE%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%228DDEADB7-5BA2-4FFB-9C5B-62E85B8D4C5F%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%2217D86554-CBF9-4B7F-9442-851A4B0C150F%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22A908D646-BC7D-45B9-94FE-BDDA9EF29720%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%2267A3867E-3B51-4E7F-A436-B1A5AE4D9F3A%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22CED7FEE6-E399-4332-8619-FA904E413860%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%223B305999-79BF-45B7-8780-E7B1FE8233B5%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22318D8C71-AF02-49D0-8FC3-936FBC9D38B5%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionCustom%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%7D%2C%20%22class%22%3A%20%22WorkflowActionGetClipboard%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22replacement%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22Input%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionReplaceSelectedText%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22foldedTextReplacement%22%3A%20%22%5Cu2026%22%2C%20%22foldedTextOption%22%3A%200%7D%2C%20%22class%22%3A%20%22WorkflowActionGetEditorText%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22outputOption%22%3A%201%2C%20%22regex%22%3A%20%7B%22text%22%3A%20%22%3Cdiv%20id%3D%5C%22related-articles%5C%22%3E%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22matchGroup%22%3A%20%22%22%2C%20%22searchTypeOption%22%3A%202%7D%2C%20%22class%22%3A%20%22WorkflowActionMatchRegularExpression%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22findOption%22%3A%202%2C%20%22find%22%3A%20%7B%22text%22%3A%20%22%5C%5CW%5C%5Cd%2B%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22replace%22%3A%20%7B%22text%22%3A%20%22%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionFindReplace%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22name%22%3A%20%22bottom%22%2C%20%22value%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22Input%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionStoreVariable%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22foldedTextReplacement%22%3A%20%22%5Cu2026%22%2C%20%22foldedTextOption%22%3A%200%7D%2C%20%22class%22%3A%20%22WorkflowActionGetEditorText%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22outputOption%22%3A%201%2C%20%22regex%22%3A%20%7B%22text%22%3A%20%22%3Cdiv%20class%3D%5C%22line-break%5C%22%3E%3C%2Fdiv%3E%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22matchGroup%22%3A%20%22%22%2C%20%22searchTypeOption%22%3A%202%7D%2C%20%22class%22%3A%20%22WorkflowActionMatchRegularExpression%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22findOption%22%3A%202%2C%20%22find%22%3A%20%7B%22text%22%3A%20%22%5C%5Cd%2B%5C%5CW%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22replace%22%3A%20%7B%22text%22%3A%20%22%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionFindReplace%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22name%22%3A%20%22top%22%2C%20%22value%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22Input%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionStoreVariable%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22range%22%3A%20%7B%22text%22%3A%20%22%3F%3A9999999999%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22bottom%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionSelectRange%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22replacement%22%3A%20%7B%22text%22%3A%20%22%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionReplaceSelectedText%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22range%22%3A%20%7B%22text%22%3A%20%220%3A%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B2%2C%201%7D%22%3A%20%22top%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionSelectRange%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22replacement%22%3A%20%7B%22text%22%3A%20%22%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionReplaceSelectedText%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22foldedTextReplacement%22%3A%20%22%5Cu2026%22%2C%20%22foldedTextOption%22%3A%200%7D%2C%20%22class%22%3A%20%22WorkflowActionGetEditorText%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22name%22%3A%20%22final%22%2C%20%22value%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22Input%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionStoreVariable%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%7D%2C%20%22class%22%3A%20%22WorkflowActionSetClipboard%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22Clear%20Document%22%2C%20%22parameters%22%3A%20%7B%220527F0CA-BD8C-402E-AD9B-CAEE4C1ADBFC%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22A6D5E49E-B3FB-4973-8041-FCA43A3CDACD%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22__custom_action_subtitle__%22%3A%20%22Clears%20all%20text%20in%20the%20current%20document%22%2C%20%22F57AB033-7DA2-4C21-B0E6-599C2EFDD2A9%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22AB137BBC-D43B-44BC-B7F8-E3118D44C5F8%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%2271C2B25B-D91B-4E8B-BD40-538439419F7E%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%2295D39812-A36B-4334-939B-9520E97E51F8%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22E6EABCE9-62D3-445F-A72F-E1DD7CE849F1%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%2211552F95-7E82-4F81-8675-EB075C363FA6%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22__custom_action_parameters__%22%3A%20%5B%5D%2C%20%22FB0E231A-2EF7-4AB1-97EE-D1CD21D7194F%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22B9EC12CC-C37F-4420-8ED2-C8A156558961%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22E126D42C-8943-4BD2-8FAF-56B6C87CA520%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%229DCB6C20-340B-413B-BEE4-1D1F668ACF3D%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22CED7FEE6-E399-4332-8619-FA904E413860%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22B8FF89EA-3946-4068-8A55-5E233605EF9E%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%225FE7A2FB-690F-4A5D-8A4E-ABA1419A89F4%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%228FB80ED1-49D2-4C04-A87E-0DE94C6368CE%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22__custom_action_script__%22%3A%20%22%23coding%3A%20utf-8%5Cnimport%20workflow%5Cnimport%20editor%5Cn%5Cnparams%20%3D%20workflow.get_parameters%28%29%5Cnaction_in%20%3D%20workflow.get_input%28%29%5Cn%5Cndoc_text%20%3D%20editor.get_text%28%29%5Cnreplacement%20%3D%20%27%27%5Cn%5Cneditor.replace_text%280%2Clen%28doc_text%29%2C%20replacement%29%5Cn%5Cn%5Cn%22%2C%20%227DD93167-D478-429A-9F64-36E971B28B93%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%222745F037-C8C3-4EAD-A9E6-637C2B3CEF89%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22E0C21818-CBE5-4785-9E07-FABA8C259E79%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22A9297A4F-CEE9-4158-AB18-2C5BBD6D82A9%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22DF0D7458-E4D3-4BA9-8C62-7E04E2CB5A89%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22DC6027AB-9B75-4455-8688-7949FFD60FE8%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22FEAC2448-F49E-495F-B561-DF00DF8D84BA%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%229D233694-8084-4ACD-97C4-21DB3AD165A5%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%2222E99EA6-6594-4F81-BF7C-8BE1E5F160DD%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22713A587A-8F88-4AEF-97E0-B461BD5038FB%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%2283171AC8-D3A9-43F4-B811-4409C6C90F24%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22F7291BAC-A688-47AB-BBFC-1B9256AD1315%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22BAC6DCCA-22A8-49F2-9D97-E9ECF80B928C%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%2283DB92CB-E1B2-4B1D-8132-4374A9AC1FC4%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%222CE109E4-C05E-452B-BFA8-5E08DC1FA64E%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%2227C01BF9-D953-4985-AF5D-67F0975E3D46%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%2228A8A40C-FA57-4105-9F09-06C30FCB5803%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%229EBEA8F4-C689-4F6C-8B33-DE00454294BB%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%223A67D70B-A8C6-4D49-A2FC-84927D2DDA63%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22B8BB40F6-D295-4473-9776-4C0846B1A52E%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%225655CE02-91D2-4D6B-9862-5268D05B6536%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22ED9A35B9-30FB-43AA-94BE-CE541FD38E0A%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%2215EA79B3-5D6B-473E-B02C-35F1DF4BF1DB%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22E742BA66-27E5-42C4-BAA4-D2BA026BC8FE%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%2250849896-8B91-40CE-A3AA-610F8D022B3B%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%225916DCAE-ABFD-4946-9204-4044920B3F0F%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%229F0BCF1D-5663-48A2-816E-9E7AA30E1A4A%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%223B339123-0C47-4AEE-B446-68CF8CAA311B%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%228DDEADB7-5BA2-4FFB-9C5B-62E85B8D4C5F%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22501EB775-D530-4B68-A1FD-27A2AF060CA3%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22A908D646-BC7D-45B9-94FE-BDDA9EF29720%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%223B305999-79BF-45B7-8780-E7B1FE8233B5%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22579A8769-ADCC-45D8-B2E9-2DCEC73BBD89%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22318D8C71-AF02-49D0-8FC3-936FBC9D38B5%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionCustom%22%7D%5D%2C%20%22name%22%3A%20%22Process%20Observer%22%2C%20%22version%22%3A%20%22133001%22%2C%20%22device%22%3A%20%7B%22userInterfaceIdiom%22%3A%201%2C%20%22model%22%3A%20%22iPad4%2C1%22%2C%20%22systemVersion%22%3A%20%2210.0.2%22%7D%2C%20%22type%22%3A%20%22wkflw%22%2C%20%22public%22%3A%20true%2C%20%22icon%22%3A%20%22TYPICONS-ALL_SPANNER.png%22%7D", "description": "Strip everything but the content of the Wrestling Observer Newsletter from the new website.", "title": "Process Observer"}, {"url": "http://editorial-app.appspot.com/workflow/5862341220499456/TE9K02l6jEE", "workflow_data": {"username": "ROBERT SUMNER JR", "description": "", "actions": [{"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "", "parameters": {"content": {"text": "?", "tokenRanges": {"{0, 1}": "%cursor"}, "type": "advancedText"}, "open": true, "filename": {"text": "Untitled.txt?", "tokenRanges": {"{12, 1}": "Clipboard"}, "type": "advancedText"}}, "class": "WorkflowActionCreateNewDocument"}], "name": "My Template", "version": "133001", "device": {"userInterfaceIdiom": 0, "model": "iPhone8,4", "systemVersion": "12.1.2"}, "type": "edtpl", "public": true, "icon": "minicons-icons-text-left-align.png"}, "install_url": "editorial://add-workflow?workflow-data=%7B%22username%22%3A%20%22ROBERT%20SUMNER%20JR%22%2C%20%22description%22%3A%20%22%22%2C%20%22actions%22%3A%20%5B%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22%22%2C%20%22parameters%22%3A%20%7B%22content%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22%25cursor%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22open%22%3A%20true%2C%20%22filename%22%3A%20%7B%22text%22%3A%20%22Untitled.txt%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B12%2C%201%7D%22%3A%20%22Clipboard%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionCreateNewDocument%22%7D%5D%2C%20%22name%22%3A%20%22My%20Template%22%2C%20%22version%22%3A%20%22133001%22%2C%20%22device%22%3A%20%7B%22userInterfaceIdiom%22%3A%200%2C%20%22model%22%3A%20%22iPhone8%2C4%22%2C%20%22systemVersion%22%3A%20%2212.1.2%22%7D%2C%20%22type%22%3A%20%22edtpl%22%2C%20%22public%22%3A%20true%2C%20%22icon%22%3A%20%22minicons-icons-text-left-align.png%22%7D", "description": "", "title": "My Template"}, {"url": "http://editorial-app.appspot.com/workflow/5821259388551168/3oAXgG4gakU", "workflow_data": {"username": "ROBERT SUMNER JR", "description": "This is a collection of several unrelated custom actions.", "actions": [{"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "READ ME\u2757", "parameters": {"text": {"text": "This is not an actual workflow, it just contains a collection of custom actions that are meant to be saved as presets.\n\nRunning this won't do anything because of the following 'Stop' action.", "tokenRanges": {}, "type": "advancedText"}}, "class": "WorkflowActionFormatString"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "---------------------------------------------------------------------------------------", "parameters": {"showHUD": false, "HUDTitle": ""}, "class": "WorkflowActionStopWorkflow"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "Send to Drafts", "parameters": {"0217F8EB-80EF-4A2C-A9E5-7E18DC6C3248": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "1C841272-0445-4065-853D-785C8DBE61D3": true, "__custom_action_parameters__": [{"title": "Text", "type": "advancedText", "key": "EC988DCA-5C83-43C2-9CD6-1DF50A0A448D", "height": 120}, {"type": "switch", "key": "1C841272-0445-4065-853D-785C8DBE61D3", "title": "Return to Editorial"}], "30D112E0-6074-4B9E-9F59-5EFA908FC9A1": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "AECCCF4E-41A4-4C07-ABB0-45DF485AFD2D": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "9A5C7E4F-0E3F-4918-A7B2-A9F790F8BF54": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "A035F565-D7EA-4F35-86F2-74B8B91721C2": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "F19F7720-C188-42BA-B4F7-8A94251CBB62": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "291DA446-1159-45ED-AE69-FB0F73E3CB04": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "7EC41E5D-8181-43D3-90A6-BA7A729AD37A": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "E05EB8C4-3C06-48D4-91C9-E5EA271879E5": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "D890C0A9-6A00-4D3F-A997-40B6614EB9E2": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "FD8A2171-5D14-4E7B-BEE4-4440DBA53C6C": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "EC988DCA-5C83-43C2-9CD6-1DF50A0A448D": {"text": "?", "tokenRanges": {"{0, 1}": "Input"}, "type": "advancedText"}, "39FDFB9D-8D85-4A8B-A546-D7451F978EDC": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "6091BAEA-7008-4A83-BC09-8B5515F8E323": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "30B1D86A-AC53-4145-8ABB-481688A09E30": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "__custom_action_script__": "#NOTE: Drafts doesn't support a 'success' callback URL when no action is triggered, so if 'Return to Editorial' is on, the text is also copied to the clipboard.\n\nimport workflow\nimport webbrowser\nfrom urllib import quote\n\nparams = workflow.get_parameters()\ntext = params.get('Text', None)\ncallback = params.get('Return to Editorial', False)\n\nif text:\n\turl = 'drafts://x-callback-url/create?text=' + quote(text)\n\tif callback:\n\t\turl += '&action=' + quote('Copy to Clipboard')\n\t\turl += '&x-success=' + quote('editorial://')\n\tsuccess = webbrowser.open(url)\n\tif not success:\n\t\timport console\n\t\tconsole.hud_alert('Drafts not installed', 'error', 1.5)\n", "1E231904-26B6-41A8-BB69-7583AFB757A8": {"text": "This action runs a Python script that can be configured with your own parameters. Tap and hold the action to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "6FA027B3-2E1F-46DA-9CF8-D4EEA393730D": {"text": "This action runs a Python script that can be configured with your own parameters. Tap and hold the action to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "7A90A31B-EC7D-44F5-89B5-63A8CB4C207F": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "A0980BAA-E704-49D7-962E-DAB627E9F402": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}}, "class": "WorkflowActionCustom"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "Post with TweetBot", "parameters": {"DF194431-87BB-4812-80C3-9E5AB43F2C37": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "CAE1B3C9-DF24-4AA3-8BE6-C1068A34CE7C": {"text": "This action runs a Python script that can be configured with your own parameters. Tap and hold the action to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "__custom_action_parameters__": [{"placeholder": "(Default Account)", "type": "basicText", "key": "CEB04CDB-BADD-4409-9B8F-8E073222E446", "title": "Account"}, {"title": "Tweet", "type": "advancedText", "key": "0A5A0AF9-F928-44FC-B995-EC4087050735", "height": 100}, {"type": "switch", "key": "99FAF415-0381-4238-B15F-4D5C50F6B413", "title": "Return to Editorial"}], "EE6DFE6A-3257-42AF-AFA6-C11ADE65559D": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "99FAF415-0381-4238-B15F-4D5C50F6B413": true, "CDB2FAE9-2230-4B4B-ABA2-673267CA0166": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "3F5656FF-CA7E-42BF-9B5A-56ACD9F7E5A7": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "7ABE0A9A-6749-4C3B-8719-915584215A14": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "A494C1C1-6722-401A-ACE9-7A18E4E74E55": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "CEB04CDB-BADD-4409-9B8F-8E073222E446": "", "534B636B-1D5F-4A10-B4C5-32CBFC0AF3C6": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "A3B2161D-4604-43D8-A6B9-18A62C7CA6C9": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "F09FE15E-180F-4C30-9ADF-008BFC540D2B": {"text": "This action runs a Python script that can be configured with your own parameters. Tap and hold the action to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "D0AB689E-465F-4E6B-A61D-AFED521EE8E9": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "49F9F435-2FDE-463F-BCBB-AE681D4578B2": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "0C4BA658-9E6E-4404-83DE-F909D40CDEF1": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "E511A644-13BE-47B1-9D71-511D750D6BB4": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "0A5A0AF9-F928-44FC-B995-EC4087050735": {"text": "?", "tokenRanges": {"{0, 1}": "Input"}, "type": "advancedText"}, "222622CB-9B38-42A7-847F-43A98BA19764": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "__custom_action_script__": "import workflow\nimport webbrowser\nfrom urllib import quote\n\nparams = workflow.get_parameters()\n\naccount = params.get('Account', None)\ntweet = params.get('Tweet', None)\ncallback = params.get('Return to Editorial', False)\n\n#tweetbot:///post?text=&callback_url=&in_reply_to_status_id=\n\nif tweet:\n\turl = 'tweetbot://'\n\tif account:\n\t\turl += quote(account)\n\turl += '/post?text=' + quote(tweet)\n\tif callback:\n\t\turl += '&callback_url=' + quote('editorial://')\n\twebbrowser.open(url)\n\n", "156F61D9-0566-48F6-A7B9-4D349BE78AE3": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "674B8A7B-F599-45F0-BAB8-71ED1E45A19E": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "36D42353-DB32-4C63-B266-EC5AADA5B00D": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "9EB2C8A0-07D7-436C-92BA-7B74777BBD34": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "81A29078-05D8-4975-B647-77E494DBF3BC": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "204F7CD1-A4FF-41FD-AAA0-DDC598476C04": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "51D1C493-CFCE-44F5-BA52-108C97E54933": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}}, "class": "WorkflowActionCustom"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "Add to Evernote", "parameters": {"0352C55C-3F35-44FA-AB29-7E6A904A0613": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "456E0613-00B2-48DC-B291-21B2EC27D75A": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "82720418-3940-4B9C-A2D1-3B70204D2304": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "E110AD21-BE84-432A-B0EC-386C3C44352E": {"text": "This action runs a Python script that can be configured with your own parameters. Tap and hold the action to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "9631D935-B88F-4C69-8BCC-3F049AF483F0": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "AE2F6C40-53E2-404F-A846-8A29D40E6CF7": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "EB421585-1A18-45FD-8ABC-1DBE5E8619B6": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "__custom_action_parameters__": [{"type": "basicText", "key": "B2C9A8F4-4F8A-401E-B133-BC44EEEEF2AE", "title": "Title"}, {"title": "Content", "type": "advancedText", "key": "D59D3667-23C6-4ABB-B75F-0B13990D775B", "height": 120}, {"placeholder": "(Get your token here: www.evernote.com/api/DeveloperToken.action)", "type": "basicText", "key": "10BB6296-7848-4280-ADB5-635C64224DE9", "title": "Dev Token"}], "7ACA768E-8A89-4415-B07C-B31BCE83FA3D": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "04457BA2-8D74-4741-A93D-0B6D5205BF49": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "69F42725-4A73-4167-8B1E-A09D2BA9E24F": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "F54B0353-898D-4DCA-B92D-1BEB3BF7758D": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "DAF66F40-F705-43B9-92AB-D5A92CEFA442": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "EEC5B36C-C818-4F5C-82D5-41AC5A6E1BA9": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "CFC86F37-AB60-42D5-B646-80E6FE691A77": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "C57AA5DE-33C8-4B45-AE6E-6064A62F742C": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "85840AA5-5C07-4FA1-8692-53694FB83B2C": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "796C9ABC-17C4-4F6C-8AC5-279AFE86D058": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "885E0585-088C-4C83-B82F-77577537286D": {"text": "This action runs a Python script that can be configured with your own parameters. Tap and hold the action to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "10BB6296-7848-4280-ADB5-635C64224DE9": "", "1B77F140-097C-4127-BEE2-BB01184FC14E": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "679ED8AF-7896-4C04-AC9F-E9461ABDB007": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "774B128A-6DC2-476C-B440-F3758AA39A78": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "B2C9A8F4-4F8A-401E-B133-BC44EEEEF2AE": "", "A3719759-62CC-4C4B-9AB5-4BCD38B0F3C7": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "4C710287-CB44-471C-AD45-433C9EC90D02": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "__custom_action_script__": "# To get a developer token, visit\n# https://www.evernote.com/api/DeveloperToken.action\nimport workflow\nimport console\n\nparams = workflow.get_parameters()\nauth_token = params.get('Dev Token', None)\nnote_title = params.get('Title', '')\nnote_content = params.get('Content', '')\n\nif not auth_token:\n\tconsole.hud_alert('Evernote Dev Token Missing', 'error', 2.0)\n\tworkflow.stop()\nelif note_title or note_content:\n\timport evernote.edam.userstore.constants as UserStoreConstants\n\timport evernote.edam.type.ttypes as Types\n\tfrom evernote.api.client import EvernoteClient\n\tfrom xml.sax.saxutils import escape\n\t\n\tclient = EvernoteClient(token=auth_token, sandbox=False)\n\tnote_store = client.get_note_store()\n\t\n\t# To create a new note, simply create a new Note object and fill in\n\t# attributes such as the note's title.\n\tnote = Types.Note()\n\tnote.title = note_title\n\tnote.content = ''\n\tnote.content += ''\n\tnote.content += ''\n\tnote.content += escape(note_content)\n\tnote.content += ''\n\t\n\t# Finally, send the new note to Evernote using the createNote method\n\t# The new Note object that is returned will contain server-generated\n\t# attributes such as the new note's unique GUID.\n\tcreated_note = note_store.createNote(note)\n\tconsole.hud_alert('Note Created', 'success', 1.5)\n", "D59D3667-23C6-4ABB-B75F-0B13990D775B": {"text": "?", "tokenRanges": {"{0, 1}": "Input"}, "type": "advancedText"}, "3BE8EFF8-FBD7-4DF8-B567-518194D148BA": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "29EB2687-683D-4A58-AB6B-A941402DAEF1": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "A32EA424-A040-4AE5-84E9-591A2D1FF2B4": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "3DECDA1F-D3D2-4E90-AB8C-D12C08B58373": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "CDF9DE95-858F-4647-A126-AEF9625125A9": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "EBA59274-B1ED-4393-BFE8-E98ED9128A25": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "510DBD6D-2689-4417-AC04-9553B9272267": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "8F6FDF93-1B6C-4FA6-95B7-A6C477D5FFFE": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "F053FE50-E285-4077-B111-325A769238C3": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}}, "class": "WorkflowActionCustom"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "Define with DuckDuckGo", "parameters": {"BE534FC3-F6BA-481E-B1D8-8E62D34EFD66": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "A0C2918D-A916-40BB-92FE-6A44E2D5B045": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "575D606B-7F49-4DD6-8C1D-DD3B46840316": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "8E6B3440-584F-4C2E-BA50-C11A313DB63B": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "C6CB5F0F-C999-4888-9B56-541AECEC2E8B": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "684BBA4F-E350-4D8E-8DF3-89378A91D452": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "__custom_action_script__": "# http://api.duckduckgo.com/?q=define+ostensibly&format=json&pretty=1\n\nimport workflow\nimport console\nimport requests\nimport json\nfrom urllib import quote\nparams = workflow.get_parameters()\nterm = params.get('Define', '')\nif term:\n\ttry:\n\t\turl = 'http://api.duckduckgo.com/?q=define+' + quote(term) + '&format=json'\n\t\tr = requests.get(url)\n\t\td = json.loads(r.text)\n\t\tdefinition = d.get('Definition', None)\n\t\tif definition:\n\t\t\tworkflow.set_output(definition)\n\t\telse:\n\t\t\tconsole.hud_alert('No Definition Found', 'error', 1.5)\n\texcept:\n\t\tconsole.hud_alert('Definition Request Failed', 'error', 1.5)\n", "A807F7DF-164C-446F-B977-F49A20A0C26E": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "330A45F9-77BA-46CA-B278-74920BE46FC3": {"text": "This action runs a Python script that can be configured with your own parameters. Tap and hold the action to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "E1202951-73CE-4C09-8DCD-D0E79D2A61C9": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "479BBA56-96B7-4BD5-A5F1-21EF22E5AF0F": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "F917E5C7-E300-4EF2-ABDB-2A508DCCF365": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "__custom_action_parameters__": [{"title": "Define", "type": "advancedText", "key": "8B8F3A1E-B83C-4B67-B3EC-87B36AB458E3", "height": 60}], "8B8F3A1E-B83C-4B67-B3EC-87B36AB458E3": {"text": "?", "tokenRanges": {"{0, 1}": "Input"}, "type": "advancedText"}, "2FBB12DC-F65C-4656-A60A-1F43B4A264FD": {"text": "This action runs a Python script that can be configured with your own parameters. Tap and hold the action to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "8E8129E4-FC24-40FE-B647-CF0B8362FB8B": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "67C57B94-3E46-49FC-8FB3-27A942833489": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "729287BB-4E46-4A54-85D1-ADAC5D25480F": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "5B74E06E-E622-4F10-A7BD-EBE753AB7A86": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "EE1CF495-4B2D-4D8B-9061-18E0E5B0DBA4": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}}, "class": "WorkflowActionCustom"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "Get RSS Feed Titles", "parameters": {"C0F90D6C-DFBA-446A-A233-535E4B3B32B9": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "C841B051-92A1-47B6-959B-C899CB1991ED": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "BB25125C-D24B-493F-A340-D1A962600596": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "B15FA92A-12FC-4B68-B520-420DC4E4D595": "", "A51B78B1-A5EA-48D3-861D-ECC8F00B8831": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "D110DEC1-2DF8-43F4-8A6F-2AE932CE4AF1": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "5D8F6E03-6800-4D06-803A-A97C9908D48B": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "C859FD90-A76E-448F-8B36-1402E3C876E2": {"text": "This action runs a Python script that can be configured with your own parameters. Tap and hold the action to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "BDDBB8C4-EBD9-473A-B51A-A28DA62A88C4": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "4DE980FD-DA6B-4143-8809-9556986C511C": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "3AFE1DCB-DF5E-46D9-8633-9D9563578386": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "3788EDC6-BB26-462B-9260-352157C6005A": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "12ABF778-3390-4340-9E21-38453DC6C783": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "__custom_action_parameters__": [{"placeholder": "http://example.com/rss.xml", "type": "basicText", "key": "B15FA92A-12FC-4B68-B520-420DC4E4D595", "title": "Feed URL"}], "AF9E2606-3AE4-41A1-A840-EC9453370702": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "8B14AE50-B0C9-4B1B-A2E8-447B307D5EF1": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "5A07BA4D-C17C-4CF0-B30E-21A06F44DA92": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "74CEF61F-4266-4770-A855-48937BD16B15": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "__custom_action_script__": "import workflow\nimport console\n\nparams = workflow.get_parameters()\nurl = params.get('Feed URL', None)\n\nif url:\n\tconsole.show_activity()\n\timport feedparser\n\tfeed = feedparser.parse(url)\n\tentries = feed.get('entries', None)\n\tif not entries:\n\t\tentries = feed.get('articles', None)\n\toutput_list = []\n\tif entries:\n\t\tfor entry in entries:\n\t\t\toutput_list.append(entry['title'])\n\tconsole.hide_activity()\n\toutput = '\\n'.join(output_list)\n\tworkflow.set_output(output)\n", "8910E9D6-F501-4575-8BE9-2130BD9271D6": {"text": "This action runs a Python script that can be configured with your own parameters. Tap and hold the action to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "BACDC10E-897F-4EAE-8278-8C34EE88DCA2": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}}, "class": "WorkflowActionCustom"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "Select Next Occurrence", "parameters": {"9F407BE1-E65A-47B7-BA64-505855FDB3E8": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "B35A3AA0-A70C-4EDD-AFCC-76DEB2187D16": false, "D3C6CFF4-1AC1-4ABA-B0FE-B42FC65988B2": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "F39BBD2E-F3A5-429E-BA3A-ABBFFB6D2659": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "6AAB6208-3B16-438C-893E-AC46A8A92D39": {"text": "?", "tokenRanges": {"{0, 1}": "Input"}, "type": "advancedText"}, "3D67FEDB-7684-4231-971F-6D15190B7D02": true, "775CB321-0094-41DE-B86E-1C11AC3E3085": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "82159FC6-A7C5-4049-8215-773BBB1D33EA": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "D92825A3-4B7D-470E-9226-E7E77652EA77": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "7D5686AE-7498-48AA-8E47-330E4379FFCA": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "C39223D9-340E-49BB-90C4-745703A27A1A": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "254C16B9-A450-4F1B-BE59-208F8787B4B1": {"text": "This action runs a Python script that can be configured with your own parameters. Tap and hold the action to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "217C9D51-D748-459F-A3E8-C9F39A07CE5B": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "__custom_action_script__": "import workflow\nimport editor\nimport re\n\nstart, end = editor.get_selection()\ntext = editor.get_text()\nparams = workflow.get_parameters()\nterm = params.get('Select Next Occurrence of', '')\nwrap = params.get('Wrap Around', False)\nregex = params.get('Regular Expression', False)\npattern = term if regex else re.escape(term)\n\nif term and text:\n\tmatch = re.search(pattern, text[end:])\n\toffset = end\n\tif not match and wrap:\n\t\tmatch = re.search(pattern, text)\n\t\toffset = 0\n\tif match:\n\t\teditor.set_selection(match.start(0) + offset, match.end(0) + offset)\n\n", "3AE5EB6F-F72B-403D-8BB8-81A5FBD26CD7": {"text": "This action runs a Python script that can be configured with your own parameters. Tap and hold the action to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "9D596A84-F9A6-464A-90C1-756CE9A9FBFC": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "__custom_action_parameters__": [{"title": "Select Next Occurrence of", "type": "advancedText", "key": "6AAB6208-3B16-438C-893E-AC46A8A92D39", "height": 60}, {"type": "switch", "key": "B35A3AA0-A70C-4EDD-AFCC-76DEB2187D16", "title": "Regular Expression"}, {"type": "switch", "key": "3D67FEDB-7684-4231-971F-6D15190B7D02", "title": "Wrap Around"}]}, "class": "WorkflowActionCustom"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "Get Stock Price", "parameters": {"8DD4E127-9BC3-4E71-9906-8183EB22A71E": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "0D20CE31-7551-4856-9C94-BC7A3244BEFD": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "C6323715-08C9-43ED-A293-7B33AB24D6A2": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "591C26D4-766E-4427-AB5D-D3D6E0E55328": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "8206FDA1-3695-44AD-8815-96DB8FD43C52": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "20AFA058-634C-4681-BEDB-0959D4D853BC": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "4019B3A5-FF90-4BC3-BFE7-6D66516AB001": {"text": "This action runs a Python script that can be configured with your own parameters. Tap and hold the action to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "__custom_action_parameters__": [{"placeholder": "Example: AAPL", "type": "basicText", "key": "61E0B385-F668-463D-B0F8-1C6447815C44", "title": "Symbol"}], "6ACBE726-A3A4-4644-95CA-690DDDC1C920": {"text": "This action runs a Python script that can be configured with your own parameters. Tap and hold the action to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "F7F44F24-B811-4091-B706-2524D9641317": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "__custom_action_script__": "import workflow\nimport urllib\ns = workflow.get_parameters().get('Symbol')\nif s:\n\ttry:\n\t\turl = 'http://finance.yahoo.com/d/quotes.csv?s=' + s + '&f=l1'\n\t\tf = urllib.urlopen(url)\n\t\tprice = f.read()\n\t\tworkflow.set_output(price)\n\texcept IOError:\n\t\timport console\n\t\tconsole.hud_alert('Could not get stock price', 'error', 1.5)\n", "61E0B385-F668-463D-B0F8-1C6447815C44": "AAPL", "E4D83CC2-C054-4003-AD92-2AEE7C6C0435": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}}, "class": "WorkflowActionCustom"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "Create Short URL (is.gd)", "parameters": {"10B1B7A9-80C5-4F95-9EAA-F07972B0EBFC": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "5E93090E-6437-4C55-B094-83DE96B52703": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "C567E82B-ACB7-405D-970E-72C0A2B441E3": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "__custom_action_script__": "import workflow\nimport clipboard\nimport re\nimport console\n\nlong_url = workflow.get_parameters()['URL']\nif re.match('http(s)?://.*', long_url):\n\timport urllib\n\ttry:\n\t\tshort_url = urllib.urlopen('http://is.gd/create.php?format=simple&url=' + urllib.quote(long_url, '')).read()\n\t\tif re.match('http://is.gd.*', short_url):\n\t\t\tworkflow.set_output(short_url)\n\t\telse:\n\t\t\tconsole.hud_alert('Failed to shorten URL', 'error', 1.5)\n\texcept IOError:\n\t\tconsole.hud_alert('Failed to shorten URL', 'error', 1.5)\nelse:\n\tconsole.hud_alert('Invalid URL', 'error', 1.5)\n", "1C90F8A2-BE1A-4A55-8233-DF038A895A06": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "4FF30A71-E12D-4EBD-8123-1F53728EC2CF": {"text": "?", "tokenRanges": {"{0, 1}": "Input"}, "type": "advancedText"}, "5B0BD096-62FD-4EAF-B723-9AC8358E2760": {"text": "This action runs a Python script that can be configured with your own parameters. Tap and hold the action to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "76F230D3-33FD-450E-A16B-0E5E56EDE069": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "36C39F67-72E5-47C7-8BDA-0197133DF4C5": {"text": "This action runs a Python script that can be configured with your own parameters. Tap and hold the action to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "F9FFC76E-0679-475D-AA09-FF2CD72EF00B": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "__custom_action_parameters__": [{"type": "advancedText", "key": "4FF30A71-E12D-4EBD-8123-1F53728EC2CF", "title": "URL"}]}, "class": "WorkflowActionCustom"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "Schedule Notification", "parameters": {"6CEEE437-165D-440A-8740-3507A8C9F330": {"text": "This action runs a Python script that can be configured with your own parameters. Tap and hold the action to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "8BEE2000-20CF-42D9-B9C6-DFD168BBAA1D": {"text": "This action runs a Python script that can be configured with your own parameters. Tap and hold the action to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "862FB2F6-1EE9-4C29-A300-9CEE71BA9EF0": 2, "CE644B5C-69B0-49A0-BF4A-75A36498757C": "3", "7D651A4D-2FB1-40FF-8D5A-BD229BD1932D": {"text": "Hello", "tokenRanges": {}, "type": "advancedText"}, "E73307C2-86EA-416F-958C-515B8C50D99E": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "359B956D-9411-4CD8-99EF-C0B7B526C83A": {"text": "", "tokenRanges": {}, "type": "advancedText"}, "9045C4C2-C0C2-45F8-94CA-FD67A056FA67": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "__custom_action_parameters__": [{"optionTitles": ["(None)", "Beep", "Bleep", "Coin", "Error", "Spaceship"], "type": "selectOption", "key": "862FB2F6-1EE9-4C29-A300-9CEE71BA9EF0", "title": "Sound"}, {"keyboardType": 2, "type": "basicText", "key": "CE644B5C-69B0-49A0-BF4A-75A36498757C", "title": "Delay (Minutes)"}, {"title": "Text", "type": "advancedText", "key": "7D651A4D-2FB1-40FF-8D5A-BD229BD1932D", "height": 100}, {"title": "Launch URL (optional)", "keyboardType": 3, "type": "advancedText", "key": "359B956D-9411-4CD8-99EF-C0B7B526C83A", "height": 60}], "D867DE9C-6751-493F-AB9E-7E3D66073EC2": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "__custom_action_script__": "#coding: utf-8\nimport workflow\nimport notification\nimport console\n\nsounds = ['Beep', 'Bleep', 'Coin_1', 'Error', 'Spaceship']\nparams = workflow.get_parameters()\neffect_index = params['Sound']\neffect_name = sounds[effect_index - 1] if effect_index > 0 else None\nmessage = params['Text']\nlaunch_url = params['Launch URL (optional)']\n\ntry:\n\tdelay = float(params['Delay (Minutes)'])\nexcept ValueError:\n\tconsole.hud_alert('Invalid Delay', 'error')\nnotification.schedule(message, delay * 60, effect_name, launch_url)\nconsole.hud_alert('Scheduled', 'success', 1.0)\n\n", "D7F3FA22-DCF5-4A30-A139-B68783ECAD05": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}}, "class": "WorkflowActionCustom"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "Cancel All Notifications", "parameters": {"E34ED55B-FBEB-4F8F-9D0C-95FFD1DE039A": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "3A9BEAB2-2B3E-406C-B42B-265D62E483DA": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "F4F4B693-ADE6-47A2-B415-E0146DD88F1A": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "8F7F4DC8-A93E-4780-985C-25820AB2A56F": {"text": "This action runs a Python script that can be configured with your own parameters. Tap and hold the action to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "__custom_action_parameters__": [], "714E0559-7484-49D8-A9DC-6010611669A6": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "__custom_action_script__": "#coding: utf-8\nimport workflow\nimport notification\n\nnotification.cancel_all()\n\nworkflow.set_output = workflow.get_input()\n", "85306C9A-B368-4B73-8857-FBE3ECB0922F": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "41F5C805-5E66-4A77-BC05-BBA84DC22DC2": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "2828814B-7EB1-4CD1-A5EB-9793C1A47792": {"text": "This action runs a Python script that can be configured with your own parameters. Tap and hold the action to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}}, "class": "WorkflowActionCustom"}, {"pauseWithoutShowingParameters": false, "pauseBeforeRunning": false, "customTitle": "Compare (Diff)", "parameters": {"DD6CA9FD-BFC3-4E2A-9B4C-B00F5B046BA8": {"text": "", "tokenRanges": {}, "type": "advancedText"}, "A25A8AE4-C956-4D2C-BF0D-4C9D247DB7D6": {"text": "", "tokenRanges": {}, "type": "advancedText"}, "5EB394D4-92F6-4DE5-9806-6064D74F2232": {"text": "This action runs a Python script that can be configured with your own parameters. Tap and hold the action to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "60C613B4-0902-4F5F-9659-6CE06E71E752": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "33A0A4E3-1D89-4418-8A36-1015D59A61D7": 0, "DBAD4725-4CE7-4CD3-8F1D-109B7A1C4056": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "__custom_action_parameters__": [{"title": "Text A", "type": "advancedText", "key": "A25A8AE4-C956-4D2C-BF0D-4C9D247DB7D6", "height": 100}, {"title": "Text B", "type": "advancedText", "key": "DD6CA9FD-BFC3-4E2A-9B4C-B00F5B046BA8", "height": 100}, {"optionTitles": ["HTML", "Critic Markup"], "type": "selectOption", "key": "33A0A4E3-1D89-4418-8A36-1015D59A61D7", "title": "Output Format"}], "E97BF5C5-8263-49D2-9A89-007C3D4B57A1": {"text": "This action runs a Python script that can be configured with your own parameters. Tap the options (\u25bc) button to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "25384A12-A759-4853-AD50-28D2E72D3B49": {"text": "This action runs a Python script that can be configured with your own parameters. Tap and hold the action to edit the script or the parameters that are shown here. This comment is actually a text parameter itself \u2013 feel free to remove it.", "tokenRanges": {}, "type": "advancedText"}, "__custom_action_script__": "#coding: utf-8\nimport workflow\nimport difflib\nfrom StringIO import StringIO\n\ndef diff(a, b, del1, del2, ins1, ins2):\n\tseq = difflib.SequenceMatcher(None, a, b)\n\topcodes = seq.get_opcodes()\n\tout = StringIO()\n\tfor op, a0, a1, b0, b1 in opcodes:\n\t\tif op == 'equal':\n\t\t\tout.write(a[a0:a1])\n\t\tif op == 'insert' or op == 'replace':\n\t\t\tout.write(ins1 + b[b0:b1] + ins2)\n\t\tif op == 'delete' or op == 'replace':\n\t\t\tout.write(del1 + a[a0:a1] + del2)\n\treturn out.getvalue()\n\nparams = workflow.get_parameters()\na = params['Text A']\nb = params['Text B']\nif params['Output Format'] == 0:\n\timport cgi\n\ta = cgi.escape(a)\n\tb = cgi.escape(b)\n\thtml = diff(a, b, '', '', '', '')\n\tworkflow.set_output(html)\nelse:\n\tcritic_markup = diff(a, b, '{--', '--}', '{++', '++}')\n\tworkflow.set_output(critic_markup)\n"}, "class": "WorkflowActionCustom"}], "name": "Custom Actions Pack", "version": "133001", "device": {"userInterfaceIdiom": 0, "model": "iPhone8,4", "systemVersion": "12.1.2"}, "type": "wkflw", "public": true, "icon": "TYPICONS-ALL_SPANNER.png"}, "install_url": "editorial://add-workflow?workflow-data=%7B%22username%22%3A%20%22ROBERT%20SUMNER%20JR%22%2C%20%22description%22%3A%20%22This%20is%20a%20collection%20of%20several%20unrelated%20custom%20actions.%22%2C%20%22actions%22%3A%20%5B%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22READ%20ME%5Cu2757%22%2C%20%22parameters%22%3A%20%7B%22text%22%3A%20%7B%22text%22%3A%20%22This%20is%20not%20an%20actual%20workflow%2C%20it%20just%20contains%20a%20collection%20of%20custom%20actions%20that%20are%20meant%20to%20be%20saved%20as%20presets.%5Cn%5CnRunning%20this%20won%27t%20do%20anything%20because%20of%20the%20following%20%27Stop%27%20action.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionFormatString%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22---------------------------------------------------------------------------------------%22%2C%20%22parameters%22%3A%20%7B%22showHUD%22%3A%20false%2C%20%22HUDTitle%22%3A%20%22%22%7D%2C%20%22class%22%3A%20%22WorkflowActionStopWorkflow%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22Send%20to%20Drafts%22%2C%20%22parameters%22%3A%20%7B%220217F8EB-80EF-4A2C-A9E5-7E18DC6C3248%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%221C841272-0445-4065-853D-785C8DBE61D3%22%3A%20true%2C%20%22__custom_action_parameters__%22%3A%20%5B%7B%22title%22%3A%20%22Text%22%2C%20%22type%22%3A%20%22advancedText%22%2C%20%22key%22%3A%20%22EC988DCA-5C83-43C2-9CD6-1DF50A0A448D%22%2C%20%22height%22%3A%20120%7D%2C%20%7B%22type%22%3A%20%22switch%22%2C%20%22key%22%3A%20%221C841272-0445-4065-853D-785C8DBE61D3%22%2C%20%22title%22%3A%20%22Return%20to%20Editorial%22%7D%5D%2C%20%2230D112E0-6074-4B9E-9F59-5EFA908FC9A1%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22AECCCF4E-41A4-4C07-ABB0-45DF485AFD2D%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%229A5C7E4F-0E3F-4918-A7B2-A9F790F8BF54%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22A035F565-D7EA-4F35-86F2-74B8B91721C2%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22F19F7720-C188-42BA-B4F7-8A94251CBB62%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22291DA446-1159-45ED-AE69-FB0F73E3CB04%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%227EC41E5D-8181-43D3-90A6-BA7A729AD37A%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22E05EB8C4-3C06-48D4-91C9-E5EA271879E5%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22D890C0A9-6A00-4D3F-A997-40B6614EB9E2%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22FD8A2171-5D14-4E7B-BEE4-4440DBA53C6C%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22EC988DCA-5C83-43C2-9CD6-1DF50A0A448D%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22Input%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%2239FDFB9D-8D85-4A8B-A546-D7451F978EDC%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%226091BAEA-7008-4A83-BC09-8B5515F8E323%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%2230B1D86A-AC53-4145-8ABB-481688A09E30%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22__custom_action_script__%22%3A%20%22%23NOTE%3A%20Drafts%20doesn%27t%20support%20a%20%27success%27%20callback%20URL%20when%20no%20action%20is%20triggered%2C%20so%20if%20%27Return%20to%20Editorial%27%20is%20on%2C%20the%20text%20is%20also%20copied%20to%20the%20clipboard.%5Cn%5Cnimport%20workflow%5Cnimport%20webbrowser%5Cnfrom%20urllib%20import%20quote%5Cn%5Cnparams%20%3D%20workflow.get_parameters%28%29%5Cntext%20%3D%20params.get%28%27Text%27%2C%20None%29%5Cncallback%20%3D%20params.get%28%27Return%20to%20Editorial%27%2C%20False%29%5Cn%5Cnif%20text%3A%5Cn%5Cturl%20%3D%20%27drafts%3A%2F%2Fx-callback-url%2Fcreate%3Ftext%3D%27%20%2B%20quote%28text%29%5Cn%5Ctif%20callback%3A%5Cn%5Ct%5Cturl%20%2B%3D%20%27%26action%3D%27%20%2B%20quote%28%27Copy%20to%20Clipboard%27%29%5Cn%5Ct%5Cturl%20%2B%3D%20%27%26x-success%3D%27%20%2B%20quote%28%27editorial%3A%2F%2F%27%29%5Cn%5Ctsuccess%20%3D%20webbrowser.open%28url%29%5Cn%5Ctif%20not%20success%3A%5Cn%5Ct%5Ctimport%20console%5Cn%5Ct%5Ctconsole.hud_alert%28%27Drafts%20not%20installed%27%2C%20%27error%27%2C%201.5%29%5Cn%22%2C%20%221E231904-26B6-41A8-BB69-7583AFB757A8%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20and%20hold%20the%20action%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%226FA027B3-2E1F-46DA-9CF8-D4EEA393730D%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20and%20hold%20the%20action%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%227A90A31B-EC7D-44F5-89B5-63A8CB4C207F%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22A0980BAA-E704-49D7-962E-DAB627E9F402%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionCustom%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22Post%20with%20TweetBot%22%2C%20%22parameters%22%3A%20%7B%22DF194431-87BB-4812-80C3-9E5AB43F2C37%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22CAE1B3C9-DF24-4AA3-8BE6-C1068A34CE7C%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20and%20hold%20the%20action%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22__custom_action_parameters__%22%3A%20%5B%7B%22placeholder%22%3A%20%22%28Default%20Account%29%22%2C%20%22type%22%3A%20%22basicText%22%2C%20%22key%22%3A%20%22CEB04CDB-BADD-4409-9B8F-8E073222E446%22%2C%20%22title%22%3A%20%22Account%22%7D%2C%20%7B%22title%22%3A%20%22Tweet%22%2C%20%22type%22%3A%20%22advancedText%22%2C%20%22key%22%3A%20%220A5A0AF9-F928-44FC-B995-EC4087050735%22%2C%20%22height%22%3A%20100%7D%2C%20%7B%22type%22%3A%20%22switch%22%2C%20%22key%22%3A%20%2299FAF415-0381-4238-B15F-4D5C50F6B413%22%2C%20%22title%22%3A%20%22Return%20to%20Editorial%22%7D%5D%2C%20%22EE6DFE6A-3257-42AF-AFA6-C11ADE65559D%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%2299FAF415-0381-4238-B15F-4D5C50F6B413%22%3A%20true%2C%20%22CDB2FAE9-2230-4B4B-ABA2-673267CA0166%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%223F5656FF-CA7E-42BF-9B5A-56ACD9F7E5A7%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%227ABE0A9A-6749-4C3B-8719-915584215A14%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22A494C1C1-6722-401A-ACE9-7A18E4E74E55%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22CEB04CDB-BADD-4409-9B8F-8E073222E446%22%3A%20%22%22%2C%20%22534B636B-1D5F-4A10-B4C5-32CBFC0AF3C6%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22A3B2161D-4604-43D8-A6B9-18A62C7CA6C9%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22F09FE15E-180F-4C30-9ADF-008BFC540D2B%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20and%20hold%20the%20action%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22D0AB689E-465F-4E6B-A61D-AFED521EE8E9%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%2249F9F435-2FDE-463F-BCBB-AE681D4578B2%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%220C4BA658-9E6E-4404-83DE-F909D40CDEF1%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22E511A644-13BE-47B1-9D71-511D750D6BB4%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%220A5A0AF9-F928-44FC-B995-EC4087050735%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22Input%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22222622CB-9B38-42A7-847F-43A98BA19764%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22__custom_action_script__%22%3A%20%22import%20workflow%5Cnimport%20webbrowser%5Cnfrom%20urllib%20import%20quote%5Cn%5Cnparams%20%3D%20workflow.get_parameters%28%29%5Cn%5Cnaccount%20%3D%20params.get%28%27Account%27%2C%20None%29%5Cntweet%20%3D%20params.get%28%27Tweet%27%2C%20None%29%5Cncallback%20%3D%20params.get%28%27Return%20to%20Editorial%27%2C%20False%29%5Cn%5Cn%23tweetbot%3A%2F%2F%3Cscreenname%3E%2Fpost%3Ftext%3D%3Ctext%3E%26callback_url%3D%3Curl%3E%26in_reply_to_status_id%3D%3Ctweet_id%3E%5Cn%5Cnif%20tweet%3A%5Cn%5Cturl%20%3D%20%27tweetbot%3A%2F%2F%27%5Cn%5Ctif%20account%3A%5Cn%5Ct%5Cturl%20%2B%3D%20quote%28account%29%5Cn%5Cturl%20%2B%3D%20%27%2Fpost%3Ftext%3D%27%20%2B%20quote%28tweet%29%5Cn%5Ctif%20callback%3A%5Cn%5Ct%5Cturl%20%2B%3D%20%27%26callback_url%3D%27%20%2B%20quote%28%27editorial%3A%2F%2F%27%29%5Cn%5Ctwebbrowser.open%28url%29%5Cn%5Cn%22%2C%20%22156F61D9-0566-48F6-A7B9-4D349BE78AE3%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22674B8A7B-F599-45F0-BAB8-71ED1E45A19E%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%2236D42353-DB32-4C63-B266-EC5AADA5B00D%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%229EB2C8A0-07D7-436C-92BA-7B74777BBD34%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%2281A29078-05D8-4975-B647-77E494DBF3BC%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22204F7CD1-A4FF-41FD-AAA0-DDC598476C04%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%2251D1C493-CFCE-44F5-BA52-108C97E54933%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionCustom%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22Add%20to%20Evernote%22%2C%20%22parameters%22%3A%20%7B%220352C55C-3F35-44FA-AB29-7E6A904A0613%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22456E0613-00B2-48DC-B291-21B2EC27D75A%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%2282720418-3940-4B9C-A2D1-3B70204D2304%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22E110AD21-BE84-432A-B0EC-386C3C44352E%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20and%20hold%20the%20action%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%229631D935-B88F-4C69-8BCC-3F049AF483F0%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22AE2F6C40-53E2-404F-A846-8A29D40E6CF7%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22EB421585-1A18-45FD-8ABC-1DBE5E8619B6%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22__custom_action_parameters__%22%3A%20%5B%7B%22type%22%3A%20%22basicText%22%2C%20%22key%22%3A%20%22B2C9A8F4-4F8A-401E-B133-BC44EEEEF2AE%22%2C%20%22title%22%3A%20%22Title%22%7D%2C%20%7B%22title%22%3A%20%22Content%22%2C%20%22type%22%3A%20%22advancedText%22%2C%20%22key%22%3A%20%22D59D3667-23C6-4ABB-B75F-0B13990D775B%22%2C%20%22height%22%3A%20120%7D%2C%20%7B%22placeholder%22%3A%20%22%28Get%20your%20token%20here%3A%20www.evernote.com%2Fapi%2FDeveloperToken.action%29%22%2C%20%22type%22%3A%20%22basicText%22%2C%20%22key%22%3A%20%2210BB6296-7848-4280-ADB5-635C64224DE9%22%2C%20%22title%22%3A%20%22Dev%20Token%22%7D%5D%2C%20%227ACA768E-8A89-4415-B07C-B31BCE83FA3D%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%2204457BA2-8D74-4741-A93D-0B6D5205BF49%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%2269F42725-4A73-4167-8B1E-A09D2BA9E24F%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22F54B0353-898D-4DCA-B92D-1BEB3BF7758D%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22DAF66F40-F705-43B9-92AB-D5A92CEFA442%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22EEC5B36C-C818-4F5C-82D5-41AC5A6E1BA9%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22CFC86F37-AB60-42D5-B646-80E6FE691A77%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22C57AA5DE-33C8-4B45-AE6E-6064A62F742C%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%2285840AA5-5C07-4FA1-8692-53694FB83B2C%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22796C9ABC-17C4-4F6C-8AC5-279AFE86D058%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22885E0585-088C-4C83-B82F-77577537286D%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20and%20hold%20the%20action%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%2210BB6296-7848-4280-ADB5-635C64224DE9%22%3A%20%22%22%2C%20%221B77F140-097C-4127-BEE2-BB01184FC14E%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22679ED8AF-7896-4C04-AC9F-E9461ABDB007%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22774B128A-6DC2-476C-B440-F3758AA39A78%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22B2C9A8F4-4F8A-401E-B133-BC44EEEEF2AE%22%3A%20%22%22%2C%20%22A3719759-62CC-4C4B-9AB5-4BCD38B0F3C7%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%224C710287-CB44-471C-AD45-433C9EC90D02%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22__custom_action_script__%22%3A%20%22%23%20To%20get%20a%20developer%20token%2C%20visit%5Cn%23%20https%3A%2F%2Fwww.evernote.com%2Fapi%2FDeveloperToken.action%5Cnimport%20workflow%5Cnimport%20console%5Cn%5Cnparams%20%3D%20workflow.get_parameters%28%29%5Cnauth_token%20%3D%20params.get%28%27Dev%20Token%27%2C%20None%29%5Cnnote_title%20%3D%20params.get%28%27Title%27%2C%20%27%27%29%5Cnnote_content%20%3D%20params.get%28%27Content%27%2C%20%27%27%29%5Cn%5Cnif%20not%20auth_token%3A%5Cn%5Ctconsole.hud_alert%28%27Evernote%20Dev%20Token%20Missing%27%2C%20%27error%27%2C%202.0%29%5Cn%5Ctworkflow.stop%28%29%5Cnelif%20note_title%20or%20note_content%3A%5Cn%5Ctimport%20evernote.edam.userstore.constants%20as%20UserStoreConstants%5Cn%5Ctimport%20evernote.edam.type.ttypes%20as%20Types%5Cn%5Ctfrom%20evernote.api.client%20import%20EvernoteClient%5Cn%5Ctfrom%20xml.sax.saxutils%20import%20escape%5Cn%5Ct%5Cn%5Ctclient%20%3D%20EvernoteClient%28token%3Dauth_token%2C%20sandbox%3DFalse%29%5Cn%5Ctnote_store%20%3D%20client.get_note_store%28%29%5Cn%5Ct%5Cn%5Ct%23%20To%20create%20a%20new%20note%2C%20simply%20create%20a%20new%20Note%20object%20and%20fill%20in%5Cn%5Ct%23%20attributes%20such%20as%20the%20note%27s%20title.%5Cn%5Ctnote%20%3D%20Types.Note%28%29%5Cn%5Ctnote.title%20%3D%20note_title%5Cn%5Ctnote.content%20%3D%20%27%3C%3Fxml%20version%3D%5C%221.0%5C%22%20encoding%3D%5C%22UTF-8%5C%22%3F%3E%27%5Cn%5Ctnote.content%20%2B%3D%20%27%3C%21DOCTYPE%20en-note%20SYSTEM%20%27%20%5C%5C%5Cn%20%20%20%20%27%5C%22http%3A%2F%2Fxml.evernote.com%2Fpub%2Fenml2.dtd%5C%22%3E%27%5Cn%5Ctnote.content%20%2B%3D%20%27%3Cen-note%3E%27%5Cn%5Ctnote.content%20%2B%3D%20escape%28note_content%29%5Cn%5Ctnote.content%20%2B%3D%20%27%3C%2Fen-note%3E%27%5Cn%5Ct%5Cn%5Ct%23%20Finally%2C%20send%20the%20new%20note%20to%20Evernote%20using%20the%20createNote%20method%5Cn%5Ct%23%20The%20new%20Note%20object%20that%20is%20returned%20will%20contain%20server-generated%5Cn%5Ct%23%20attributes%20such%20as%20the%20new%20note%27s%20unique%20GUID.%5Cn%5Ctcreated_note%20%3D%20note_store.createNote%28note%29%5Cn%5Ctconsole.hud_alert%28%27Note%20Created%27%2C%20%27success%27%2C%201.5%29%5Cn%22%2C%20%22D59D3667-23C6-4ABB-B75F-0B13990D775B%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22Input%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%223BE8EFF8-FBD7-4DF8-B567-518194D148BA%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%2229EB2687-683D-4A58-AB6B-A941402DAEF1%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22A32EA424-A040-4AE5-84E9-591A2D1FF2B4%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%223DECDA1F-D3D2-4E90-AB8C-D12C08B58373%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22CDF9DE95-858F-4647-A126-AEF9625125A9%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22EBA59274-B1ED-4393-BFE8-E98ED9128A25%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22510DBD6D-2689-4417-AC04-9553B9272267%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%228F6FDF93-1B6C-4FA6-95B7-A6C477D5FFFE%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22F053FE50-E285-4077-B111-325A769238C3%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionCustom%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22Define%20with%20DuckDuckGo%22%2C%20%22parameters%22%3A%20%7B%22BE534FC3-F6BA-481E-B1D8-8E62D34EFD66%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22A0C2918D-A916-40BB-92FE-6A44E2D5B045%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22575D606B-7F49-4DD6-8C1D-DD3B46840316%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%228E6B3440-584F-4C2E-BA50-C11A313DB63B%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22C6CB5F0F-C999-4888-9B56-541AECEC2E8B%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22684BBA4F-E350-4D8E-8DF3-89378A91D452%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22__custom_action_script__%22%3A%20%22%23%20http%3A%2F%2Fapi.duckduckgo.com%2F%3Fq%3Ddefine%2Bostensibly%26format%3Djson%26pretty%3D1%5Cn%5Cnimport%20workflow%5Cnimport%20console%5Cnimport%20requests%5Cnimport%20json%5Cnfrom%20urllib%20import%20quote%5Cnparams%20%3D%20workflow.get_parameters%28%29%5Cnterm%20%3D%20params.get%28%27Define%27%2C%20%27%27%29%5Cnif%20term%3A%5Cn%5Cttry%3A%5Cn%5Ct%5Cturl%20%3D%20%27http%3A%2F%2Fapi.duckduckgo.com%2F%3Fq%3Ddefine%2B%27%20%2B%20quote%28term%29%20%2B%20%27%26format%3Djson%27%5Cn%5Ct%5Ctr%20%3D%20requests.get%28url%29%5Cn%5Ct%5Ctd%20%3D%20json.loads%28r.text%29%5Cn%5Ct%5Ctdefinition%20%3D%20d.get%28%27Definition%27%2C%20None%29%5Cn%5Ct%5Ctif%20definition%3A%5Cn%5Ct%5Ct%5Ctworkflow.set_output%28definition%29%5Cn%5Ct%5Ctelse%3A%5Cn%5Ct%5Ct%5Ctconsole.hud_alert%28%27No%20Definition%20Found%27%2C%20%27error%27%2C%201.5%29%5Cn%5Ctexcept%3A%5Cn%5Ct%5Ctconsole.hud_alert%28%27Definition%20Request%20Failed%27%2C%20%27error%27%2C%201.5%29%5Cn%22%2C%20%22A807F7DF-164C-446F-B977-F49A20A0C26E%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22330A45F9-77BA-46CA-B278-74920BE46FC3%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20and%20hold%20the%20action%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22E1202951-73CE-4C09-8DCD-D0E79D2A61C9%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22479BBA56-96B7-4BD5-A5F1-21EF22E5AF0F%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22F917E5C7-E300-4EF2-ABDB-2A508DCCF365%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22__custom_action_parameters__%22%3A%20%5B%7B%22title%22%3A%20%22Define%22%2C%20%22type%22%3A%20%22advancedText%22%2C%20%22key%22%3A%20%228B8F3A1E-B83C-4B67-B3EC-87B36AB458E3%22%2C%20%22height%22%3A%2060%7D%5D%2C%20%228B8F3A1E-B83C-4B67-B3EC-87B36AB458E3%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22Input%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%222FBB12DC-F65C-4656-A60A-1F43B4A264FD%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20and%20hold%20the%20action%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%228E8129E4-FC24-40FE-B647-CF0B8362FB8B%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%2267C57B94-3E46-49FC-8FB3-27A942833489%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22729287BB-4E46-4A54-85D1-ADAC5D25480F%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%225B74E06E-E622-4F10-A7BD-EBE753AB7A86%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22EE1CF495-4B2D-4D8B-9061-18E0E5B0DBA4%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionCustom%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22Get%20RSS%20Feed%20Titles%22%2C%20%22parameters%22%3A%20%7B%22C0F90D6C-DFBA-446A-A233-535E4B3B32B9%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22C841B051-92A1-47B6-959B-C899CB1991ED%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22BB25125C-D24B-493F-A340-D1A962600596%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22B15FA92A-12FC-4B68-B520-420DC4E4D595%22%3A%20%22%22%2C%20%22A51B78B1-A5EA-48D3-861D-ECC8F00B8831%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22D110DEC1-2DF8-43F4-8A6F-2AE932CE4AF1%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%225D8F6E03-6800-4D06-803A-A97C9908D48B%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22C859FD90-A76E-448F-8B36-1402E3C876E2%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20and%20hold%20the%20action%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22BDDBB8C4-EBD9-473A-B51A-A28DA62A88C4%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%224DE980FD-DA6B-4143-8809-9556986C511C%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%223AFE1DCB-DF5E-46D9-8633-9D9563578386%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%223788EDC6-BB26-462B-9260-352157C6005A%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%2212ABF778-3390-4340-9E21-38453DC6C783%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22__custom_action_parameters__%22%3A%20%5B%7B%22placeholder%22%3A%20%22http%3A%2F%2Fexample.com%2Frss.xml%22%2C%20%22type%22%3A%20%22basicText%22%2C%20%22key%22%3A%20%22B15FA92A-12FC-4B68-B520-420DC4E4D595%22%2C%20%22title%22%3A%20%22Feed%20URL%22%7D%5D%2C%20%22AF9E2606-3AE4-41A1-A840-EC9453370702%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%228B14AE50-B0C9-4B1B-A2E8-447B307D5EF1%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%225A07BA4D-C17C-4CF0-B30E-21A06F44DA92%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%2274CEF61F-4266-4770-A855-48937BD16B15%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22__custom_action_script__%22%3A%20%22import%20workflow%5Cnimport%20console%5Cn%5Cnparams%20%3D%20workflow.get_parameters%28%29%5Cnurl%20%3D%20params.get%28%27Feed%20URL%27%2C%20None%29%5Cn%5Cnif%20url%3A%5Cn%5Ctconsole.show_activity%28%29%5Cn%5Ctimport%20feedparser%5Cn%5Ctfeed%20%3D%20feedparser.parse%28url%29%5Cn%5Ctentries%20%3D%20feed.get%28%27entries%27%2C%20None%29%5Cn%5Ctif%20not%20entries%3A%5Cn%5Ct%5Ctentries%20%3D%20feed.get%28%27articles%27%2C%20None%29%5Cn%5Ctoutput_list%20%3D%20%5B%5D%5Cn%5Ctif%20entries%3A%5Cn%5Ct%5Ctfor%20entry%20in%20entries%3A%5Cn%5Ct%5Ct%5Ctoutput_list.append%28entry%5B%27title%27%5D%29%5Cn%5Ctconsole.hide_activity%28%29%5Cn%5Ctoutput%20%3D%20%27%5C%5Cn%27.join%28output_list%29%5Cn%5Ctworkflow.set_output%28output%29%5Cn%22%2C%20%228910E9D6-F501-4575-8BE9-2130BD9271D6%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20and%20hold%20the%20action%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22BACDC10E-897F-4EAE-8278-8C34EE88DCA2%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionCustom%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22Select%20Next%20Occurrence%22%2C%20%22parameters%22%3A%20%7B%229F407BE1-E65A-47B7-BA64-505855FDB3E8%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22B35A3AA0-A70C-4EDD-AFCC-76DEB2187D16%22%3A%20false%2C%20%22D3C6CFF4-1AC1-4ABA-B0FE-B42FC65988B2%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22F39BBD2E-F3A5-429E-BA3A-ABBFFB6D2659%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%226AAB6208-3B16-438C-893E-AC46A8A92D39%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22Input%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%223D67FEDB-7684-4231-971F-6D15190B7D02%22%3A%20true%2C%20%22775CB321-0094-41DE-B86E-1C11AC3E3085%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%2282159FC6-A7C5-4049-8215-773BBB1D33EA%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22D92825A3-4B7D-470E-9226-E7E77652EA77%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%227D5686AE-7498-48AA-8E47-330E4379FFCA%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22C39223D9-340E-49BB-90C4-745703A27A1A%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22254C16B9-A450-4F1B-BE59-208F8787B4B1%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20and%20hold%20the%20action%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22217C9D51-D748-459F-A3E8-C9F39A07CE5B%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22__custom_action_script__%22%3A%20%22import%20workflow%5Cnimport%20editor%5Cnimport%20re%5Cn%5Cnstart%2C%20end%20%3D%20editor.get_selection%28%29%5Cntext%20%3D%20editor.get_text%28%29%5Cnparams%20%3D%20workflow.get_parameters%28%29%5Cnterm%20%3D%20params.get%28%27Select%20Next%20Occurrence%20of%27%2C%20%27%27%29%5Cnwrap%20%3D%20params.get%28%27Wrap%20Around%27%2C%20False%29%5Cnregex%20%3D%20params.get%28%27Regular%20Expression%27%2C%20False%29%5Cnpattern%20%3D%20term%20if%20regex%20else%20re.escape%28term%29%5Cn%5Cnif%20term%20and%20text%3A%5Cn%5Ctmatch%20%3D%20re.search%28pattern%2C%20text%5Bend%3A%5D%29%5Cn%5Ctoffset%20%3D%20end%5Cn%5Ctif%20not%20match%20and%20wrap%3A%5Cn%5Ct%5Ctmatch%20%3D%20re.search%28pattern%2C%20text%29%5Cn%5Ct%5Ctoffset%20%3D%200%5Cn%5Ctif%20match%3A%5Cn%5Ct%5Cteditor.set_selection%28match.start%280%29%20%2B%20offset%2C%20match.end%280%29%20%2B%20offset%29%5Cn%5Cn%22%2C%20%223AE5EB6F-F72B-403D-8BB8-81A5FBD26CD7%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20and%20hold%20the%20action%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%229D596A84-F9A6-464A-90C1-756CE9A9FBFC%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22__custom_action_parameters__%22%3A%20%5B%7B%22title%22%3A%20%22Select%20Next%20Occurrence%20of%22%2C%20%22type%22%3A%20%22advancedText%22%2C%20%22key%22%3A%20%226AAB6208-3B16-438C-893E-AC46A8A92D39%22%2C%20%22height%22%3A%2060%7D%2C%20%7B%22type%22%3A%20%22switch%22%2C%20%22key%22%3A%20%22B35A3AA0-A70C-4EDD-AFCC-76DEB2187D16%22%2C%20%22title%22%3A%20%22Regular%20Expression%22%7D%2C%20%7B%22type%22%3A%20%22switch%22%2C%20%22key%22%3A%20%223D67FEDB-7684-4231-971F-6D15190B7D02%22%2C%20%22title%22%3A%20%22Wrap%20Around%22%7D%5D%7D%2C%20%22class%22%3A%20%22WorkflowActionCustom%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22Get%20Stock%20Price%22%2C%20%22parameters%22%3A%20%7B%228DD4E127-9BC3-4E71-9906-8183EB22A71E%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%220D20CE31-7551-4856-9C94-BC7A3244BEFD%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22C6323715-08C9-43ED-A293-7B33AB24D6A2%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22591C26D4-766E-4427-AB5D-D3D6E0E55328%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%228206FDA1-3695-44AD-8815-96DB8FD43C52%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%2220AFA058-634C-4681-BEDB-0959D4D853BC%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%224019B3A5-FF90-4BC3-BFE7-6D66516AB001%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20and%20hold%20the%20action%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22__custom_action_parameters__%22%3A%20%5B%7B%22placeholder%22%3A%20%22Example%3A%20AAPL%22%2C%20%22type%22%3A%20%22basicText%22%2C%20%22key%22%3A%20%2261E0B385-F668-463D-B0F8-1C6447815C44%22%2C%20%22title%22%3A%20%22Symbol%22%7D%5D%2C%20%226ACBE726-A3A4-4644-95CA-690DDDC1C920%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20and%20hold%20the%20action%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22F7F44F24-B811-4091-B706-2524D9641317%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22__custom_action_script__%22%3A%20%22import%20workflow%5Cnimport%20urllib%5Cns%20%3D%20workflow.get_parameters%28%29.get%28%27Symbol%27%29%5Cnif%20s%3A%5Cn%5Cttry%3A%5Cn%5Ct%5Cturl%20%3D%20%27http%3A%2F%2Ffinance.yahoo.com%2Fd%2Fquotes.csv%3Fs%3D%27%20%2B%20s%20%2B%20%27%26f%3Dl1%27%5Cn%5Ct%5Ctf%20%3D%20urllib.urlopen%28url%29%5Cn%5Ct%5Ctprice%20%3D%20f.read%28%29%5Cn%5Ct%5Ctworkflow.set_output%28price%29%5Cn%5Ctexcept%20IOError%3A%5Cn%5Ct%5Ctimport%20console%5Cn%5Ct%5Ctconsole.hud_alert%28%27Could%20not%20get%20stock%20price%27%2C%20%27error%27%2C%201.5%29%5Cn%22%2C%20%2261E0B385-F668-463D-B0F8-1C6447815C44%22%3A%20%22AAPL%22%2C%20%22E4D83CC2-C054-4003-AD92-2AEE7C6C0435%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionCustom%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22Create%20Short%20URL%20%28is.gd%29%22%2C%20%22parameters%22%3A%20%7B%2210B1B7A9-80C5-4F95-9EAA-F07972B0EBFC%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%225E93090E-6437-4C55-B094-83DE96B52703%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22C567E82B-ACB7-405D-970E-72C0A2B441E3%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22__custom_action_script__%22%3A%20%22import%20workflow%5Cnimport%20clipboard%5Cnimport%20re%5Cnimport%20console%5Cn%5Cnlong_url%20%3D%20workflow.get_parameters%28%29%5B%27URL%27%5D%5Cnif%20re.match%28%27http%28s%29%3F%3A%2F%2F.%2A%27%2C%20long_url%29%3A%5Cn%5Ctimport%20urllib%5Cn%5Cttry%3A%5Cn%5Ct%5Ctshort_url%20%3D%20urllib.urlopen%28%27http%3A%2F%2Fis.gd%2Fcreate.php%3Fformat%3Dsimple%26url%3D%27%20%2B%20urllib.quote%28long_url%2C%20%27%27%29%29.read%28%29%5Cn%5Ct%5Ctif%20re.match%28%27http%3A%2F%2Fis.gd.%2A%27%2C%20short_url%29%3A%5Cn%5Ct%5Ct%5Ctworkflow.set_output%28short_url%29%5Cn%5Ct%5Ctelse%3A%5Cn%5Ct%5Ct%5Ctconsole.hud_alert%28%27Failed%20to%20shorten%20URL%27%2C%20%27error%27%2C%201.5%29%5Cn%5Ctexcept%20IOError%3A%5Cn%5Ct%5Ctconsole.hud_alert%28%27Failed%20to%20shorten%20URL%27%2C%20%27error%27%2C%201.5%29%5Cnelse%3A%5Cn%5Ctconsole.hud_alert%28%27Invalid%20URL%27%2C%20%27error%27%2C%201.5%29%5Cn%22%2C%20%221C90F8A2-BE1A-4A55-8233-DF038A895A06%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%224FF30A71-E12D-4EBD-8123-1F53728EC2CF%22%3A%20%7B%22text%22%3A%20%22%3F%22%2C%20%22tokenRanges%22%3A%20%7B%22%7B0%2C%201%7D%22%3A%20%22Input%22%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%225B0BD096-62FD-4EAF-B723-9AC8358E2760%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20and%20hold%20the%20action%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%2276F230D3-33FD-450E-A16B-0E5E56EDE069%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%2236C39F67-72E5-47C7-8BDA-0197133DF4C5%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20and%20hold%20the%20action%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22F9FFC76E-0679-475D-AA09-FF2CD72EF00B%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22__custom_action_parameters__%22%3A%20%5B%7B%22type%22%3A%20%22advancedText%22%2C%20%22key%22%3A%20%224FF30A71-E12D-4EBD-8123-1F53728EC2CF%22%2C%20%22title%22%3A%20%22URL%22%7D%5D%7D%2C%20%22class%22%3A%20%22WorkflowActionCustom%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22Schedule%20Notification%22%2C%20%22parameters%22%3A%20%7B%226CEEE437-165D-440A-8740-3507A8C9F330%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20and%20hold%20the%20action%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%228BEE2000-20CF-42D9-B9C6-DFD168BBAA1D%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20and%20hold%20the%20action%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22862FB2F6-1EE9-4C29-A300-9CEE71BA9EF0%22%3A%202%2C%20%22CE644B5C-69B0-49A0-BF4A-75A36498757C%22%3A%20%223%22%2C%20%227D651A4D-2FB1-40FF-8D5A-BD229BD1932D%22%3A%20%7B%22text%22%3A%20%22Hello%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22E73307C2-86EA-416F-958C-515B8C50D99E%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22359B956D-9411-4CD8-99EF-C0B7B526C83A%22%3A%20%7B%22text%22%3A%20%22%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%229045C4C2-C0C2-45F8-94CA-FD67A056FA67%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22__custom_action_parameters__%22%3A%20%5B%7B%22optionTitles%22%3A%20%5B%22%28None%29%22%2C%20%22Beep%22%2C%20%22Bleep%22%2C%20%22Coin%22%2C%20%22Error%22%2C%20%22Spaceship%22%5D%2C%20%22type%22%3A%20%22selectOption%22%2C%20%22key%22%3A%20%22862FB2F6-1EE9-4C29-A300-9CEE71BA9EF0%22%2C%20%22title%22%3A%20%22Sound%22%7D%2C%20%7B%22keyboardType%22%3A%202%2C%20%22type%22%3A%20%22basicText%22%2C%20%22key%22%3A%20%22CE644B5C-69B0-49A0-BF4A-75A36498757C%22%2C%20%22title%22%3A%20%22Delay%20%28Minutes%29%22%7D%2C%20%7B%22title%22%3A%20%22Text%22%2C%20%22type%22%3A%20%22advancedText%22%2C%20%22key%22%3A%20%227D651A4D-2FB1-40FF-8D5A-BD229BD1932D%22%2C%20%22height%22%3A%20100%7D%2C%20%7B%22title%22%3A%20%22Launch%20URL%20%28optional%29%22%2C%20%22keyboardType%22%3A%203%2C%20%22type%22%3A%20%22advancedText%22%2C%20%22key%22%3A%20%22359B956D-9411-4CD8-99EF-C0B7B526C83A%22%2C%20%22height%22%3A%2060%7D%5D%2C%20%22D867DE9C-6751-493F-AB9E-7E3D66073EC2%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22__custom_action_script__%22%3A%20%22%23coding%3A%20utf-8%5Cnimport%20workflow%5Cnimport%20notification%5Cnimport%20console%5Cn%5Cnsounds%20%3D%20%5B%27Beep%27%2C%20%27Bleep%27%2C%20%27Coin_1%27%2C%20%27Error%27%2C%20%27Spaceship%27%5D%5Cnparams%20%3D%20workflow.get_parameters%28%29%5Cneffect_index%20%3D%20params%5B%27Sound%27%5D%5Cneffect_name%20%3D%20sounds%5Beffect_index%20-%201%5D%20if%20effect_index%20%3E%200%20else%20None%5Cnmessage%20%3D%20params%5B%27Text%27%5D%5Cnlaunch_url%20%3D%20params%5B%27Launch%20URL%20%28optional%29%27%5D%5Cn%5Cntry%3A%5Cn%5Ctdelay%20%3D%20float%28params%5B%27Delay%20%28Minutes%29%27%5D%29%5Cnexcept%20ValueError%3A%5Cn%5Ctconsole.hud_alert%28%27Invalid%20Delay%27%2C%20%27error%27%29%5Cnnotification.schedule%28message%2C%20delay%20%2A%2060%2C%20effect_name%2C%20launch_url%29%5Cnconsole.hud_alert%28%27Scheduled%27%2C%20%27success%27%2C%201.0%29%5Cn%5Cn%22%2C%20%22D7F3FA22-DCF5-4A30-A139-B68783ECAD05%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionCustom%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22Cancel%20All%20Notifications%22%2C%20%22parameters%22%3A%20%7B%22E34ED55B-FBEB-4F8F-9D0C-95FFD1DE039A%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%223A9BEAB2-2B3E-406C-B42B-265D62E483DA%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22F4F4B693-ADE6-47A2-B415-E0146DD88F1A%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%228F7F4DC8-A93E-4780-985C-25820AB2A56F%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20and%20hold%20the%20action%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22__custom_action_parameters__%22%3A%20%5B%5D%2C%20%22714E0559-7484-49D8-A9DC-6010611669A6%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22__custom_action_script__%22%3A%20%22%23coding%3A%20utf-8%5Cnimport%20workflow%5Cnimport%20notification%5Cn%5Cnnotification.cancel_all%28%29%5Cn%5Cnworkflow.set_output%20%3D%20workflow.get_input%28%29%5Cn%22%2C%20%2285306C9A-B368-4B73-8857-FBE3ECB0922F%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%2241F5C805-5E66-4A77-BC05-BBA84DC22DC2%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%222828814B-7EB1-4CD1-A5EB-9793C1A47792%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20and%20hold%20the%20action%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%7D%2C%20%22class%22%3A%20%22WorkflowActionCustom%22%7D%2C%20%7B%22pauseWithoutShowingParameters%22%3A%20false%2C%20%22pauseBeforeRunning%22%3A%20false%2C%20%22customTitle%22%3A%20%22Compare%20%28Diff%29%22%2C%20%22parameters%22%3A%20%7B%22DD6CA9FD-BFC3-4E2A-9B4C-B00F5B046BA8%22%3A%20%7B%22text%22%3A%20%22%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22A25A8AE4-C956-4D2C-BF0D-4C9D247DB7D6%22%3A%20%7B%22text%22%3A%20%22%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%225EB394D4-92F6-4DE5-9806-6064D74F2232%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20and%20hold%20the%20action%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%2260C613B4-0902-4F5F-9659-6CE06E71E752%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%2233A0A4E3-1D89-4418-8A36-1015D59A61D7%22%3A%200%2C%20%22DBAD4725-4CE7-4CD3-8F1D-109B7A1C4056%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22__custom_action_parameters__%22%3A%20%5B%7B%22title%22%3A%20%22Text%20A%22%2C%20%22type%22%3A%20%22advancedText%22%2C%20%22key%22%3A%20%22A25A8AE4-C956-4D2C-BF0D-4C9D247DB7D6%22%2C%20%22height%22%3A%20100%7D%2C%20%7B%22title%22%3A%20%22Text%20B%22%2C%20%22type%22%3A%20%22advancedText%22%2C%20%22key%22%3A%20%22DD6CA9FD-BFC3-4E2A-9B4C-B00F5B046BA8%22%2C%20%22height%22%3A%20100%7D%2C%20%7B%22optionTitles%22%3A%20%5B%22HTML%22%2C%20%22Critic%20Markup%22%5D%2C%20%22type%22%3A%20%22selectOption%22%2C%20%22key%22%3A%20%2233A0A4E3-1D89-4418-8A36-1015D59A61D7%22%2C%20%22title%22%3A%20%22Output%20Format%22%7D%5D%2C%20%22E97BF5C5-8263-49D2-9A89-007C3D4B57A1%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20the%20options%20%28%5Cu25bc%29%20button%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%2225384A12-A759-4853-AD50-28D2E72D3B49%22%3A%20%7B%22text%22%3A%20%22This%20action%20runs%20a%20Python%20script%20that%20can%20be%20configured%20with%20your%20own%20parameters.%20Tap%20and%20hold%20the%20action%20to%20edit%20the%20script%20or%20the%20parameters%20that%20are%20shown%20here.%20This%20comment%20is%20actually%20a%20text%20parameter%20itself%20%5Cu2013%20feel%20free%20to%20remove%20it.%22%2C%20%22tokenRanges%22%3A%20%7B%7D%2C%20%22type%22%3A%20%22advancedText%22%7D%2C%20%22__custom_action_script__%22%3A%20%22%23coding%3A%20utf-8%5Cnimport%20workflow%5Cnimport%20difflib%5Cnfrom%20StringIO%20import%20StringIO%5Cn%5Cndef%20diff%28a%2C%20b%2C%20del1%2C%20del2%2C%20ins1%2C%20ins2%29%3A%5Cn%5Ctseq%20%3D%20difflib.SequenceMatcher%28None%2C%20a%2C%20b%29%5Cn%5Ctopcodes%20%3D%20seq.get_opcodes%28%29%5Cn%5Ctout%20%3D%20StringIO%28%29%5Cn%5Ctfor%20op%2C%20a0%2C%20a1%2C%20b0%2C%20b1%20in%20opcodes%3A%5Cn%5Ct%5Ctif%20op%20%3D%3D%20%27equal%27%3A%5Cn%5Ct%5Ct%5Ctout.write%28a%5Ba0%3Aa1%5D%29%5Cn%5Ct%5Ctif%20op%20%3D%3D%20%27insert%27%20or%20op%20%3D%3D%20%27replace%27%3A%5Cn%5Ct%5Ct%5Ctout.write%28ins1%20%2B%20b%5Bb0%3Ab1%5D%20%2B%20ins2%29%5Cn%5Ct%5Ctif%20op%20%3D%3D%20%27delete%27%20or%20op%20%3D%3D%20%27replace%27%3A%5Cn%5Ct%5Ct%5Ctout.write%28del1%20%2B%20a%5Ba0%3Aa1%5D%20%2B%20del2%29%5Cn%5Ctreturn%20out.getvalue%28%29%5Cn%5Cnparams%20%3D%20workflow.get_parameters%28%29%5Cna%20%3D%20params%5B%27Text%20A%27%5D%5Cnb%20%3D%20params%5B%27Text%20B%27%5D%5Cnif%20params%5B%27Output%20Format%27%5D%20%3D%3D%200%3A%5Cn%5Ctimport%20cgi%5Cn%5Cta%20%3D%20cgi.escape%28a%29%5Cn%5Ctb%20%3D%20cgi.escape%28b%29%5Cn%5Cthtml%20%3D%20diff%28a%2C%20b%2C%20%27%3Cdel%3E%27%2C%20%27%3C%2Fdel%3E%27%2C%20%27%3Cins%3E%27%2C%20%27%3C%2Fins%3E%27%29%5Cn%5Ctworkflow.set_output%28html%29%5Cnelse%3A%5Cn%5Ctcritic_markup%20%3D%20diff%28a%2C%20b%2C%20%27%7B--%27%2C%20%27--%7D%27%2C%20%27%7B%2B%2B%27%2C%20%27%2B%2B%7D%27%29%5Cn%5Ctworkflow.set_output%28critic_markup%29%5Cn%22%7D%2C%20%22class%22%3A%20%22WorkflowActionCustom%22%7D%5D%2C%20%22name%22%3A%20%22Custom%20Actions%20Pack%22%2C%20%22version%22%3A%20%22133001%22%2C%20%22device%22%3A%20%7B%22userInterfaceIdiom%22%3A%200%2C%20%22model%22%3A%20%22iPhone8%2C4%22%2C%20%22systemVersion%22%3A%20%2212.1.2%22%7D%2C%20%22type%22%3A%20%22wkflw%22%2C%20%22public%22%3A%20true%2C%20%22icon%22%3A%20%22TYPICONS-ALL_SPANNER.png%22%7D", "description": "This is a collection of several unrelated custom actions.", "title": "Custom Actions Pack"}]}