差異處

這裏顯示兩個版本的差異處。

連向這個比對檢視

下次修改
前次修改
it:my:browsers:personas:local [2019/04/02 11:15]
ghsrobert 建立
it:my:browsers:personas:local [2019/04/03 12:27] (目前版本)
ghsrobert [擴充]
行 1: 行 1:
 ====== 本機 persona 庫 ====== ====== 本機 persona 庫 ======
-/^20190401^/ 發現 Mozilla 把 persona 的格式大改了,這意味著,未來安裝 persona,已經不會再把資訊寫入 ''lightweightThemes.usedThemes'' 中了。既然,原本那些圖檔,都存放在 MAO 伺服器上,那難保哪天 Mozilla 不會移除這些連結,讓舊的 persona 資訊完全失效 ∴我想先建立本機 persona 庫,來保留這個美麗的生態系(雖然暫時無法和新格式並存),方法就是把 MAO 伺服器上的圖全部下載,然後將 ''lightweightThemes.usedThemes'' 的連結全部改為本機連結+ 
 +===== 建立 ===== 
 +/^20190401^/ 發現 Mozilla 把 persona 的格式大改了,這意味著,未來安裝 persona,已經不會再把資訊寫入 ''lightweightThemes.usedThemes''了;目前我已安裝的 88 或 90 個 persona,暫時也不會有新夥伴了。既然,原本那些圖檔,都存放在 MAO 伺服器上,那難保哪天 Mozilla 不會移除這些連結,讓舊的 persona 資訊完全失效 ∴我想先建立本機 persona 庫,來保留這個美麗的生態系(雖然暫時無法和新格式並存),方法就是把 MAO 伺服器上的圖全部下載,然後將 ''lightweightThemes.usedThemes'' 的連結全部改為本機連結
   * 今天試過,本機連結是可以的(先確定這點,本機 persona 庫才可行)   * 今天試過,本機連結是可以的(先確定這點,本機 persona 庫才可行)
-    * 可以放在 MAMP 的 /web 下(→ ''%%http://localhost/...%%''+    * 可以放在 MAMP 的 /web 下(→ ''%%http://localhost/...%%'')(記得本機只能用 http,不支援 https
     * 也可以直接用 ''file:%%///%%...''     * 也可以直接用 ''file:%%///%%...''
 +    * <div ex><code json>{"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}</code></div>
   * 每個 persona 具備 4 個圖檔:   * 每個 persona 具備 4 個圖檔:
     * header     * header
行 14: 行 17:
   - 學會基本的 Bash script 語法,也在 MBA 上用 Homebrew 裝了 wget,寫了個初步可用的 Bash script 來下載一套 persona 的圖檔,並裝在以 ID 為名的資料夾中 ✔   - 學會基本的 Bash script 語法,也在 MBA 上用 Homebrew 裝了 wget,寫了個初步可用的 Bash script 來下載一套 persona 的圖檔,並裝在以 ID 為名的資料夾中 ✔
   - 但是,發現很多 persona 的圖檔名稱並不規則!所以不能直接用 ID+迴圈來循環執行,得想辦法爬出所有的 URL 再餵 wget 了……   - 但是,發現很多 persona 的圖檔名稱並不規則!所以不能直接用 ID+迴圈來循環執行,得想辦法爬出所有的 URL 再餵 wget 了……
 +  - 改用 ''lightweightThemes.usedThemes'' 的內容直接修改出一份超大的 wget 腳本……<div>
 +^ 原文(regex) ^ 取代為 ^ 說明 ^
 +| ''(["\}]),'' | ''\1,\n'' | 斷行 |
 +| ''\?modified=.+(")'' | ''"'' | 刪掉 ''?modified'' 部分 |
 +| ''\{"id":"(.+)",'' | ''mkdir \1\ncd \1'' | ''id'' 部分直接改為建立同名目錄,並移入該目錄 |
 +| ''"updateURL":"(.+)",'' | ∅ | 不需要 updateURL |
 +| ''".+URL":"(.+)",'' | ''wget \1'' | URL 都直接 wget 暴力下載(希望不會被偵測到而封鎖啊~)
 +| ''\},'' | ''\ncd ..\n'' | 下載完後,移回上層目錄 |
 +| ".+\n | ∅ | 刪掉無用的資訊 |
 +然後手工把最後一行及第一行修好
 +</div>
 +    * 預期這樣可建好所有的子目錄
 +    * 然後圖檔名稱保留原作者的設定,這樣回去改 ''lightweightThemes.usedThemes'' 時,只要改為本機路徑就好,不用再改檔名!
 +    * 注意 967046、998456、982739、954968 4 個 persona 沒有 footer
 +  - 賦予大腳本執行權限
 +  - 開始執行!速度相當快!:D
 +    - 卡在 465941 的 preview 這行,網址被斷開所以出錯了。這已經是最後一行了,所以手動下載就好了。好奇怪,不知道哪個環節出錯,還是前面不小心在裡面按到空格?
 +    - 所以整個腳本大致無誤
 +  - 回來改 ''lightweightThemes.usedThemes''<div>
 +^ 原文(regex) ^ 取代為 ^ 說明 ^
 +| ''%%https://addons.cdn.mozilla.net/user-media/addons/%%'' | ''%%file:///Users/gjrobert/images/Fx-personas/%%'' |
 +| ''\?modified=.+?(")'' | ''"'' | 還是要把網址中 modified 的部分拿掉 |
 +</div>
 +    - 貼入 about:config,然後關掉網路測試 → 大部分的 persona 可以,少數的顯示不出來
 +    - 可能不要在瀏覽器開著的時候用 about:config 改(好像沒效,會被現有的資訊蓋過?),而是關掉瀏覽器後改 prefs.js?\\ → 更糟,改完後打開瀏覽器,整個 ''lightweightThemes.usedThemes'' 設定都被清空了、所有已安裝的 persona 都被移除了,可能還連帶影響一些其他設定
 +    - 還原 prefs.js 後重開瀏覽器,反而還比較正常,而且大部分的 persona 都可以順利離線顯示,可見抓的都是本機的圖檔;一樣只有少數的顯示不出來\\ ↑似乎這幾個的 URL 又變回 MAO 伺服器,而且網址的 ''?modified'' 還在 ← 再改一次再貼回
 +    - 然後直接重開瀏覽器,先不要切換好了 → 看來正常了!
 +  - 把昨天自製的 Test persona 刪掉
 +
 +打完收工!感謝 神!<<大心>>
 +
 +最後說明一下為什麼我一定要做這個本機舊格式 persona 庫:因為 Persona Switcher 4.0.5 版只支援舊格式啊!而且目前只有 4.0.5 版在 Waterfox 56 上是能正常運作的。如果未來,Waterfox 60(?)能搭配 Persona Switcher 5.0.5 及新的 persona 格式正常切換,那到時候再改用新格式囉!
 +
 +可惜不知道有沒有什麼方法,爬出 MAO 上所有其他 persona 的舊格式資訊?如果有的話,我就可以手動繼續擴充這個本機 persona 庫了~
 +
 +===== 擴充 =====
 +  - 從 [[http://web.archive.org/web/20171016164337/https://addons.mozilla.org/zh-TW/firefox/themes/|(Wayback Machine 存檔的舊版)佈景主題 :: Firefox 附加元件]]安裝舊格式(但剩下不多了),取得 JSON 資訊,然後再用上面的方法下載圖檔、轉為本機格式
 +  - 從 MAO 下載新格式 persona,然後從 .xpi 中抽出圖檔,至少有個 3000 × 200 的 header 似乎就可以加到 ''lightweightThemes.usedThemes'' 中了
 +    - 【測試】加了一個<code json>{"id":"vintage_fabric_03","name":"vintage fabric_03","headerURL":"file:///Users/gjrobert/images/Fx-personas/vintage_fabric_03/header.png"}</code>,只給最基本的 ''id''、''name''、''headerURL'',看來是可以用,也還是可以用 Switcher 切換,不過會造成選單中其他 persona 的 icon 大亂
 +    - 【測試】把 vintage_fabric_03 的資訊欄位給完整(直接 copy 其他 persona 的)\\ → 也沒用,本機 persona 的 icon 都無法顯示在選單中了
 +    - 移除測試的 vintage_fabric_03,也重開 Waterfox → 本機 icon 仍然都不會出現,不知道是不是 cache 的問題
 +    - 不過至少,自製的本機 persona 應該是可以奏效
 +    - 接下來要解決的,大概是有些新格式的 persona,圖檔並非標準的 3000 × 200,不知道可否直接使用,還是要調整大小?FIXME