手把手打造一個Alfred自動化上傳圖牀工具

準備工作

  1. github倉庫 + github_token 生成token之後備份好
  2. Alfred 軟件 支持正版,盜版可恥😄
  3. Shell腳本,Mac自帶的bash即可,用到curl工具

腳本如下:


filePath=$1 # /Users/mac/Desktop/1.jpg 文件路徑 是通過Alfred選中事件傳入進來的

fileName=`date +%Y%m%d%H%M%S`.${filePath##*.} #時間到秒+路徑截取拼接文件名 防止重複

CommitMsg="Mac通過Shell腳本上傳了一張圖片"$fileName #提交信息可自定義

echo<<EOF
$userName github用戶名
$repoName 倉庫名
$path  路徑名即存放圖片的目錄
$github_token github生成的token

EOF

#輸出結果 採用jsdelivr的免費加速服務
Target_Img_URL="https://cdn.jsdelivr.net/gh/$userName/$repoName/$path/"$fileName

#文件base64編碼 不換行
Base64_Content=$(base64 -b 0 $filePath)  

#github開發的API接口
API_URL="https://api.github.com/repos/$userName/$repoName/contents/$path/"${fileName}

Acess_Token="token $github_token"

# 發起PUT網絡請求 -X是指定方法類型 -H是header參數可以傳多個 -d 是傳json參數 單引號shell不能入參所以只能轉義
result=$(curl \
  -X PUT \
  -H "Content-Type:application/json"\
  -H "Authorization:$Acess_Token" \
  -H "Accept:application/vnd.github.raw"\
  ${API_URL} \
  -d "{\"message\":\"${CommitMsg}\",\"content\":\"${Base64_Content}\"}")

#因爲返回結果是一堆json數據 但只有成功的時候纔會返回committer字段 所以匹配一下用於判斷
IsUpload=`echo $result | grep "committer"`
if [[ -n "$IsUpload" ]]; then
	#將結果拷貝至剪貼板 
	echo $Target_Img_URL | pbcopy
	#如果需要markdown模式則打開如下代碼註釋即可
	#echo "![]($Target_Img_URL)" | pbcopy

	#發起AppleScript腳本通知事件 
	osascript -e "display notification \"$Target_Img_URL\" with title \"通知\" subtitle \"上傳成功,地址已拷貝至剪貼板\""
fi
#如此就大功告成了! 

Alfred設置相關

如圖新建一個空白的blank workflow然後加HotkeyRun Script,設置對應的快捷鍵以及腳本調用

設置快捷鍵如圖:

設置腳本調用如圖:

然後是配置變量列表(結合腳本和下圖理解),導出可清空字段值勾選上不至於私密數據token之類的泄漏或者共享(這個功能很銀杏化)

最後是大功告成了!

雖然我覺得PicGo+TyPora效率也很高,但是這個是自己親手寫出來的工具還是要嘚瑟嘚瑟的~ 哈嘿~

最後

成品在這 github圖牀工具

參考博客

Alfred Workflow 一鍵上傳圖片到github
如何製作一個手機上的Github圖牀捷徑(workflow)
PicGo

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章