HOME/Articles/

Bitly with Keyboard maestro

Article Outline

Bitly with Keyboard maestro

前言

方法

安裝環境所需要的package

# 先檢查一下python版本
which python
pip install bitlyshortener
pip install pyperclip
# 在你想要的路徑創建以下檔案
vim bitly.py

python 程式碼

#!/usr/bin/env python
import bitlyshortener
import pyperclip
import re
# 從剪貼簿取得URL
myurl = pyperclip.paste()
# 建立一個正規表達式,來檢查剪貼簿內容是否是以https://開頭的正確網址
regex = re.compile(
        r'^(?:http|ftp)s?://' # http:// or https://
        r'(?:(?:[A-Z0-9](?:[A-Z0-9-]{0,61}[A-Z0-9])?\.)+(?:[A-Z]{2,6}\.?|[A-Z0-9-]{2,}\.?)|' #domain...
        r'localhost|' #localhost...
        r'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})' # ...or ip
        r'(?::\d+)?' # optional port
        r'(?:/?|[/?]\S+)$', re.IGNORECASE)

if re.match(regex, myurl) is not None:
    myurl = pyperclip.paste()
    tokens_pool = ['db874d7954f55ad86d7a6bb769af1bff34153aa1']
    shortener = bitlyshortener.Shortener(tokens=tokens_pool, max_cache_size=256)
    long_urls = [myurl, 'https://www.cnn.com/election/2020', 'https://paperswithcode.com/sota']
    x = shortener.shorten_urls(long_urls)
    print(x[0])
else:
    print("is not a valid url")

在keyboard maestro中:

  • 先建立一個group image_22-08-13_00_46_54
  • 建立一個New Macro
  • 建立一個Action image_22-08-13_00_51_56
  • Trigger 選by string,然後自定一個觸發,這裡我是用;b
  • Excecute the Shell Script :
    # 因為我有用pyenv裝python3,所以我的python路徑可能會不太一樣
    # 如果沒有特別安裝,應該會是mac系統python3
    # 原則是如下的寫法:
    python3 ~/path/to/your/bitly.py
  • Set Clipboard to Text

    結果

    討論

    結論