趁著讀書讀得快睡著的時候來趕快整理一下NicoFox的待作清單。大致可以分為簡單、困難兩個大部分。希望任何有志參與的人都能來幫一下忙qqqqqqq
- 向我報備 (?),說你要做什麼,以免衝到
- 申請 GitHub 帳號,Fork https://github.com/littlebtc/nicofox
- Fork過後你會拿到專屬你的NicoFox >////< 使用Git版本控制系統拉下來,在你自己的 Fork 裡頭完成要做的事情
- 完成過後請送Pull Request給我。 (進到你自己NicoFox在GitHub的頁面,按一下「Pull Request」)
- 耐心等待我的挑剔(?)和採用XDDDD
千萬不要亂抄別人的程式碼!我很重視 License,希望大家複製貼上前請三思。有很多現成的Open Source資源可以利用。
(只要讀懂局部就可以參與)
- [字串] 有些字串目前是寫死的,沒有辦法被翻譯。因為 NicoFox 0.6 的 UI 變動幅度太大,所以字串的整理會需要一點時間。希望有人可以幫忙整理這一個部分(至少en-US和zh-TW要整理好)。所有字串應該都放在
locale/
底下,沒有翻譯的東西可能散布在content/*.xul
,content/*.js
和modules/*.jsm
。 - [除蟲] 請協助檢查頻道影片、社區影片的評論有沒有辦法正常下載。Nico的仕樣經常改變,因此這方面會經常爛掉 qqqqq 如果您有付費會員帳號,也請詳細檢查網站的顯示是否有任何問題。目前下載的主判斷放在
modules/DownloadUtils.jsm
,影片資訊的閱讀放在modules/VideoInfoReader.jsm
。這些兩個都花了很長時間編寫和重構,有問題請儘管丟出來
(需要對程式碼有一定程度的了解)
- [暫停] 下載管理員需要追加「暫停」的狀態。主要原因是現在佇列的設計只能讓他一直一直一直一直跑,如果遇到防洪裝置啟用,或著連不上NICO時就會失敗連環爆。您需要花一點點時間閱讀
modules/DownlodManager.jsm
來了解如何實現qqq。 - [報錯] 下載錯誤不應該顯示Modal-Dialog(也就是蹦出一個訊息)。合理講應該要把錯誤訊息顯示在下載管理員+右下訊息而且不影響其他下載項目的繼續進行才對。這件事情需要調整
modules/DownlodUtils.jsm
,也可能會動到modules/DownloadManager.jsm
的一些判斷。 - [登入] 自動登入的功能目前已經暫時拿掉了。我本來計畫重寫,但因為某些原因卡住。如果對這塊有興趣,我會另外傳一些程式碼講一下我的想法。
- [播放] Player「我覺得」應該改成放在分頁裡。(NicoFox Player的程式碼疊層架屋的問題已經解決了!)。
Q:我沒寫過套件!
A:請先看一些有關JavaScript的再介紹: https://developer.mozilla.org/en/JavaScript/A_re-introduction_to_JavaScript(for那裡我還是用爛寫法qqq)
然後是套件課程投影片:
Q:我不會用Git!
A:請讀一下寫給大家的 Git 教學。另外,Git對Windows不太友善。Mac/Linux推獎。
Q:拉下來之後要如何測試?
A:十分簡單,Git Clone下來之後,資料夾改名為nicofox@littlebtc
,拉進個人設定檔的extensions/資料夾即可。不過我自己的作法是Clone到其他路徑之後建Symbolic Link。Windows Vista, Windows 7 with NTFS / Mac / Linux 都可以這樣做,我也都用得很愉快。
Q:如何偵錯?
A:請先灌Console平方和Extension Developer兩套件。詳細設置應該在第一次套件課程投影片裡。
Q:程式碼有特殊規定嗎?
A:不分語言一律空兩格當Tab(更正:ActionScript例外),Vim使用者應該會自動偵測到第一行Comment的規定而調整。JS部分有幾個地雷:一定要加var
/let
、setTimeout
/setInterval
禁止裡頭放string
,禁用eval
、parseInt
如果十進位一定要加,10
。理由都不難找。Coding Style目前沒有明確規範。可以看我怎麼寫qqqqq
Q:Help me!有什麼好資源嗎?
A:Mozilla官方的開發者網站有超多資訊:https://developer.mozilla.org。如果你需要研究Firefox的原始碼,請瀏覽http://mxr.mozilla.org/
Q:NicoFox下一版的版本相容性設定?
A:3.6(Mozilla 1.9.2)~4.0.*(2.0)。
components/
about_nicofox.js 目前未使用,用於未來about:nicofox內部頁面。
bootstrap.js 在Firefox啟動時初始化下載管理員。
command_line.js 提供由Command Line啟動Player的機制。
nicowatcher.js 攔截時報、提供?smilefox=get下載迴路。
content/
customizeToolbarOverlay.xul 「自定工具列」 Overlay,用於解決 Firefox 4 工具列的疑難雜症。
firefoxOverlay1.9.xul Overlay(對瀏覽器介面的附加),Firefox 3.6 用。
firefoxOverlay2.0.xul Overlay(對瀏覽器介面的附加),Firefox 4 以上用。
nicofoxPlayer.js NicoFox Player視窗的JS。
nicofoxPlayer.xul NicoFox Player視窗。
nicofoxPlayer.swf NicoFox Player的SWF檔案。
options.xul 選項介面。
options_panel1.js 第一、二、三個選項頁籤的Script。
options_panel2.js
options_panel3.js
overlay.js Overlay上的JS。
smilefoxPanel.js Overlay上有關下載管理員顯示區域的JS。
smilefoxPanel.xml 下載項目的XBL Binding。
defaults/
......內建設定值。
inpage/
......目前未使用。about:nicofox施工用檔案。完成後會移進content/。
以後有時間會把這個另外開Branch隔離。
locale/
......本地化用。目前有英文、正簡體中文、日文。
modules/
Core.jsm 字串、設定值載入用。
DownloadManager.jsm 下載管理員,提供下載項目的新增/刪除API並對下載排程。
DownloadUtils.jsm 給NICO連結,載下這部影片的主要迴路。
FileBundle.jsm 決定下載檔名、判斷檔案是否存在的簡易機制。另外也會隨OS判斷預設下載資料夾位置。
Network.jsm 在程式中存取HTTP頁面的API。
ProcessRunner.jsm 呼叫外部播放器的API,針對Unicode下了超多功夫。
Services.jsm 快取常用的Fx內部服務。
VideoInfoReader.jsm 從影片頁面或getthumbinfo XML讀取影片資訊。
player-develop/
......ActionScript 3的FlashDevelop專案。是NicoFox Player SWF的原始碼。
對這裡有興趣歡迎聯絡qq。
skin/
CSS檔案與圖檔。
.gitignore Git用,設定不列入版本追蹤的檔案。
README.md 在GitHub頁面下方顯示的README。格式是Markdown。
build.sh 產生 XPI 檔案,需要 bash。
chrome.manifest Firefox套件的基本組態檔之一。
install.rdf Firefox套件的基本組態檔之一。
LICENSE.md 記錄所有不是我寫,且License相容於GPL的程式碼來源。
寫了好久,感謝大家看完 qqqqqqqqqq 也歡迎各路JS強者勇於報名參與,NicoFox等你帶回家 >/////<