因為圖床改回 Google Drive 了,來解決一下方便性問題。
原先在 google drive 裡要拿到可以嵌入在網站上的連結需要多個步驟:
- 右鍵圖片點取得連結 (資料夾已經先設定所有人可以檢視)
- 再複製連結
- 轉換連結後才能得到可嵌入的連結
- 原本是
https://drive.google.com/file/d/{ID}/view?usp=share_link
- 要改成
https://drive.google.com/uc?id={ID}
或是https://lh3.googleusercontent.com/d/{ID}
(我使用後者)
- 原本是
之前在已分享的 google photo 是可以直接右鍵拿到連結的。
因此就來動個手腳,來用 google extension 來完成
GMDL
Github 連結: aben20807/GMDL
開發過程中遇到的困難。寫 google extension 已經不是第一次,插 code 到瀏覽頁面之前已經有示範 ( aben20807/inject_js)。
- 第一個困難點是找出
{ID}
,google drive 回傳的資料頗多。要先類似爬蟲那樣去看資料長相 - 第二個困難點是 google drive 設計中檔案跟資料夾的長相一樣,不過會在
aria-label
後方標記是圖片還是雲端資料夾檔案,所以這邊直接去看結尾 - 第三個最為困難,就是 google drive 一偵測到 DOM 有變化就會想辦法改回來,所以產生的連接只會出現一下子就被移除。用了一些其他技巧都無效。所以這邊直接用一個 listener 去監聽 pointermove 的事件,只要連結被移除時滑鼠動一動就會重新產生一個,幾次之後 google drive 就放棄刪除了 😜
因為這應該無法上架到 google extension store,所以只能用開發者模式載入,詳細步驟可以參考 README。