Стендап Сьогодні 📢 Канал в Telegram @stendap_sogodni

🤖🚫 AI-free content. This post is 100% written by a human, as is everything on my blog. Enjoy!

11.10.2024

Javascript for Mac Automation (JXA)

Зробив собі сьогодні шорткат Hyper+J для копіювання поточної задачі з Jira у вигляді AB-123: перезібрати ядро - бо саме такий формат мені потрібний у тексті коміту, та доводиться його писати щоразу вручну.

В мене вже є AppleScript для витягання вкладки. Та в назві вкладки всі дані є, тільки в вигляді [AB-123] перезібрати ядро - JIRA. Ніби перетворити в потрібний вигляд тривіально, втім, в самому AppleScript немає регулярних виразів (та перетворення рядків взагалі виглядають дико). На StackOverflow радять викликати sed. 🥶

Натомість я згадав, що окрім AppleScript, на macOS можна робити автоматизацію звичайнісіньким JavaScript. В якому є звичайнісінькі RegExp. Залишилося перекласти скрипт, додати регулярку та повісити через BetterTouchTool на комбінацію клавіш в Safari. Успіх!

Щодо автоматизації на JavaScript, її можна запускати хоч з термінала командою osascript -l JavaScript copy_jira_issue.js. Єдине, чим вона мені не подобається — синтаксис команд доводиться перекладати з документації з AppleScript. Ось, наприклад, в цьому скрипті є команда app.setTheClipboardTo(). Ніхто в JS так функції не називає — проте це адаптація команди set the clipboard to з AS, де вона читається “як людська мова”. Бо як я розумію, весь цей API здобувається автоматично з тих самих “словників”.

PS. Також сьогодні знайшов чудову довідку про доступ до вкладок різних браузерів з AppleScript, тож можна й для Chrome зробити версію.