因為圖床改回 Google Drive 了,來解決一下方便性問題。

原先在 google drive 裡要拿到可以嵌入在網站上的連結需要多個步驟:

  1. 右鍵圖片點取得連結 (資料夾已經先設定所有人可以檢視)
  2. 再複製連結
  3. 轉換連結後才能得到可嵌入的連結
    • 原本是 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

GMDL 直接在圖片下方產生可嵌入連結

GMDL 直接在圖片下方產生可嵌入連結

OuO

開發過程中遇到的困難。寫 google extension 已經不是第一次,插 code 到瀏覽頁面之前已經有示範 ( aben20807/inject_js)。

  • 第一個困難點是找出 {ID},google drive 回傳的資料頗多。要先類似爬蟲那樣去看資料長相
  • 第二個困難點是 google drive 設計中檔案跟資料夾的長相一樣,不過會在 aria-label 後方標記是圖片還是雲端資料夾檔案,所以這邊直接去看結尾
  • 第三個最為困難,就是 google drive 一偵測到 DOM 有變化就會想辦法改回來,所以產生的連接只會出現一下子就被移除。用了一些其他技巧都無效。所以這邊直接用一個 listener 去監聽 pointermove 的事件,只要連結被移除時滑鼠動一動就會重新產生一個,幾次之後 google drive 就放棄刪除了 😜

因為這應該無法上架到 google extension store,所以只能用開發者模式載入,詳細步驟可以參考 README。