這是本文件的舊版!
本機 persona 庫
20190401 發現 Mozilla 把 persona 的格式大改了,這意味著,未來安裝 persona,已經不會再把資訊寫入 lightweightThemes.usedThemes
中了;目前我plugin-autotooltip__defaultGHSRobert Ciang/MilchFlasche已安裝的 88 或 90 個 persona,暫時也不會有新夥伴了。既然,原本那些圖檔,都存放在 MAO 伺服器上,那難保哪天 Mozilla 不會移除這些連結,讓舊的 persona 資訊完全失效 ∴我想先建立本機 persona 庫,來保留這個美麗的生態系(雖然暫時無法和新格式並存),方法就是把 MAO 伺服器上的圖全部下載,然後將 lightweightThemes.usedThemes
的連結全部改為本機連結
- 今天試過,本機連結是可以的(先確定這點,本機 persona 庫才可行)
- 可以放在 MAMP 的 /web 下(→
http://localhost/...
)(記得本機只能用 http,不支援 https) - 也可以直接用
file:///…
{"id":"1111","name":"Test","headerURL":"file:///Users/gjrobert/web/personas/1111/header.png","footerURL":"file:///Users/gjrobert/web/personas/1111/footer.png","iconURL":"http://localhost/personas/1111/icon.png","previewURL":"http://localhost/personas/1111/preview.png","author":"GHSRobert","updateURL":"","version":"0","updateDate":1546959268960,"installDate":1543557625271}
- 每個 persona 具備 4 個圖檔:
- header
- footer
- preview
- icon
- 如果用手動修改
lightweightThemes.usedThemes
而「安裝」上的 persona 資訊有誤,記得要先到擴充元件管理器中將該 persona 正式移除掉,可能還要重新啟動瀏覽器,然後再次修改lightweightThemes.usedThemes
,這樣才能順利改入
20190402
- 學會基本的 Bash script 語法,也在 MBA 上用 Homebrew 裝了 wget,寫了個初步可用的 Bash script 來下載一套 persona 的圖檔,並裝在以 ID 為名的資料夾中 ✔
- 但是,發現很多 persona 的圖檔名稱並不規則!所以不能直接用 ID+迴圈來循環執行,得想辦法爬出所有的 URL 再餵 wget 了……
- 改用
lightweightThemes.usedThemes
的內容直接修改出一份超大的 wget 腳本……原文(regex) 取代為 說明 (["\}]),
\1,\n
斷行 \?modified=.+(")
"
刪掉 ?modified
部分\{"id":"(.+)",
mkdir \1\ncd \1
id
部分直接改為建立同名目錄,並移入該目錄"updateURL":"(.+)",
∅ 不需要 updateURL ".+URL":"(.+)",
wget \1
\},
\ncd ..\n
下載完後,移回上層目錄 ".+\n ∅ 刪掉無用的資訊 然後手工把最後一行及第一行修好
- 預期這樣可建好所有的子目錄
- 然後圖檔名稱保留原作者的設定,這樣回去改
lightweightThemes.usedThemes
時,只要改為本機路徑就好,不用再改檔名! - 注意 967046、998456、982739、954968 4 個 persona 沒有 footer
- 賦予大腳本執行權限
- 開始執行!速度相當快!
- 卡在 465941 的 preview 這行,網址被斷開所以出錯了。這已經是最後一行了,所以手動下載就好了。好奇怪,不知道哪個環節出錯,還是前面不小心在裡面按到空格?
- 所以整個腳本大致無誤
- 回來改
lightweightThemes.usedThemes
原文(regex) 取代為 說明 https://addons.cdn.mozilla.net/user-media/addons/
file:///Users/gjrobert/images/Fx-personas/
\?modified=.+?(")
"
還是要把網址中 modified 的部分拿掉 - 可能不要在瀏覽器開著的時候用 about:config 改(好像沒效,會被現有的資訊蓋過?),而是關掉瀏覽器後改 pref.js?
討論區