Created
April 18, 2023 17:32
-
-
Save djfjfnfn/bc464beaefc8229fcb65ccdffb443cbd to your computer and use it in GitHub Desktop.
iOS Drafts Action JavaScript
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var search = () => { | |
let searchterm = draft.processTemplate("[[selection_only]]"); | |
if (searchterm.length == 0) { | |
searchterm = draft.processTemplate("[[draft]]"); | |
} | |
let regex = /\[([^\[]+)\]\(([^\)]+)\)|([a-zA-Z]+:\/\/[^\s]+)|([a-zA-Z]+:\/\/\s*)/ig; | |
let match; | |
let urls = []; | |
while ((match = regex.exec(searchterm)) !== null) { | |
if (match[2]) { | |
// 匹配到了markdown格式的URL | |
let url = match[2]; | |
urls.push(url); | |
} else { | |
// 匹配到了其他格式的URL | |
let url = match[0]; | |
urls.push(url); | |
} | |
} | |
if (urls.length == 1) { | |
// 只匹配到一个URL,直接打开 | |
let url = urls[0]; | |
app.openURL(url); | |
} else if (urls.length > 1) { | |
// 匹配到多个URL,让用户选择 | |
let p = Prompt.create(); | |
p.title = "选择一个URL"; | |
p.message = "请选择要打开的URL:"; | |
urls.forEach((url, index) => { | |
p.addButton(url, index); | |
}); | |
let didSelect = p.show(); | |
if (didSelect) { | |
let selectedIndex = p.buttonPressed; | |
let selectedUrl = urls[selectedIndex]; | |
let url = selectedUrl; | |
app.openURL(url); | |
} | |
} else { | |
// 没有匹配到url时,读取本地json文件 | |
var bookmark = Bookmark.findOrCreate("JSONFolder"); | |
var fmLocal = FileManager.createForBookmark(bookmark); | |
var jsonString = fmLocal.readString("/URLScheme_DraftsAction.json"); | |
var jsonDict = JSON.parse(jsonString); | |
// 获取搜索内容最后一个空格后的字符 | |
var keyString = searchterm.split(" ").pop(); | |
// 获取搜索内容最后一个空格前的内容 | |
var valueString = searchterm.substring(0, searchterm.lastIndexOf(" ")); | |
// 检查是否存在匹配的key | |
if (jsonDict.hasOwnProperty(keyString)) { | |
// 获取对应key的value中%s的替换内容 | |
var urlStringTemplate = jsonDict[keyString]; | |
var urlStringFinal = urlStringTemplate.replace("%s", valueString); | |
app.openURL(urlStringFinal); | |
} else { | |
// 没有匹配到key,以默认方式搜索打开全部获取的内容 | |
app.openURL(`x-web-search://?${encodeURIComponent(searchterm)}`); | |
} | |
} | |
} | |
search(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment