作者ybite (小犬)
看板C_Chat
標題Re: [NICO] NicoFox近況
時間Sun Feb 13 01:13:35 2011
先補一下ACG養分好了,FF竟然和台大碩士班入學考試同兩天qqqqqqq
早上捷運公館站可能人會比平常同人展再多一點,停車問題也會嚴重一些。
希望下星期的FF參與者能多注意。
────────────────────────────────────
有人寄信表示想參與了,我好感謝 Q__________Q
趁著讀書讀得快睡著的時候來趕快整理一下NicoFox的待作清單
大致可以分為簡單、困難兩個大部分
希望任何有志參與的人都能來幫一下忙qqqqqqq
如何參與?
1. 向我報備 (?),說你要做什麼,以免衝到
2. 申請 GitHub 帳號,Fork
https://github.com/littlebtc/nicofox
3. Fork過後你會拿到專屬你的NicoFox >////<
使用Git版本控制系統拉下來,在你自己的 Fork 裡頭完成要做的事情
4. 完成過後請送Pull Request給我。
(進到你自己NicoFox在GitHub的頁面,按一下「Pull Request」)
5. 耐心等待我的挑剔(?)和採用XDDDD
千萬不要亂抄別人的程式碼!
我很重視 License,希望大家複製貼上前請三思。
有很多現成的Open Source資源可以利用。
Task List for NicoFox 0.6b2pre
簡單(只要讀懂局部就可以參與)
* [字串] 有些字串目前是寫死的,沒有辦法被翻譯。
因為 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的程式碼疊層架屋的問題也應該解決。
Ant Video Downloader的程式作法我覺得可以多少參考。
* [猴子] 目前在頁面上放工具列和下載連結的方式極端複雜。
modules/NicoMonkey.jsm是一個Greasemonkey的小改版,
使用這隻猴子來讀取content/nicomonkey/裡的東西。
如果可以的話我想拿掉這個多餘的部份,但這個真的極困難。
另一方面components/nicowatcher.js的?smilefox=get網址偵測我也想拿掉。
常見問題
Q:我沒寫過套件!
A:請先看一些有關JavaScript的再介紹:
https://developer.mozilla.org/en/JavaScript/A_re-introduction_to_JavaScript
(for那裡我還是用爛寫法qqq)
然後是套件課程:
http://www.slideshare.net/littlebtc/ext-0509
http://www.slideshare.net/littlebtc/ext-0523-1477028
Q:我不會用Git!
A:請讀一下「寫給大家的 Git 教學」。
http://www.slideshare.net/littlebtc/git-5528339
另外,Git對Windows不太友善。Mac/Linux推獎。
Q:拉下來之後要如何測試?
A:十分簡單,Git Clone下來之後,資料夾改名為nicofox@littlebtc
拉進個人設定檔的extensions/資料夾即可。
不過我自己的作法是Clone到其他路徑之後建Symbolic Link。
Windows Vista,7 with NTFS / Mac / Linux 都可以這樣做,我也都用得很愉快。
Q:如何偵錯?
A:請先灌Console平方和Extension Developer兩套件。
詳細設置應該在套件課程第一張投影片裡。
Q:程式碼有特殊規定嗎?
A:不分語言一律空兩格當Tab,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下一版的版本相容性設定?
3.6(Mozilla 1.9.2)~4.0.*(2.0)。
NicoFox程式碼簡介
components/
about_nicofox.js 目前未使用,用於未來about:nicofox內部頁面。
bootstrap.js 在Firefox啟動時初始化下載管理員。
command_line.js 提供由Command Line啟動Player的機制。
nicowatcher.js 攔截時報、提供?smilefox=get下載迴路。
content/
nicomonkey/
commentHelper.js 評論輔助器。目前海外版限定。
downloadIconAdder.js 追加下載連結。
videoTools.js NicoFox工具列。
firefox_overlay.xul Overlay(對瀏覽器介面的附加)
nicofox_player.js NicoFox Player第一層的JS。
nicofox_player.xul NicoFox Player第一層。
options.xul 選項介面。
options_panel1.js 第一、二、三個選項頁籤的Script。
options_panel2.js
options_panel3.js
overlay.js Overlay上的JS。
smilefoxPanel.js Overlay上有關下載管理員顯示區域的JS。
smilefoxPanel.xml 下載項目的XBL Binding。
tsundere_confirm.xul 0.1殘留至今的彩蛋。目前未使用。
defaults/
......內建設定值。
inpage/
......目前未使用。about:nicofox施工用檔案。完成後會移進content/。
以後有時間會把這個另外開Branch隔離。
locale/
......本地化用。目前有英文、正簡體中文、日文。
modules/
Core.jsm 字串、設定值載入用。
DownloadManager.jsm 下載管理員,提供下載項目的新增/刪除API並對下載排程。
DownloadUtils.jsm 給NICO連結,載下這部影片的主要迴路。
FileBundle.jsm 決定下載檔名、判斷檔案是否存在的簡易機制。
另外也會隨OS判斷預設下載資料夾位置。
Network.jsm 在程式中存取HTTP頁面的API。
NicoMonkey.jsm 修改過的Greasemonkey,用於工具列和連結附加。
ProcessRunner.jsm 呼叫外部播放器的API,針對Unicode下了超多功夫。
Services.jsm 快取常用的Fx內部服務。
VideoInfoReader.jsm 從影片頁面或getthumbinfo XML讀取影片資訊。
player-develop/
......ActionScript 3的FlashDevelop專案。是NicoFox Player的原始碼。
對這裡有興趣歡迎寫站內信。
player/
實際的Player SWF檔案。其他兩個檔案計畫拿掉,原因請見改善清單中的[播放]。
SWF應該要移進content/。
skin/
CSS檔案與圖檔。
.gitignore Git用,設定不列入版本追蹤的檔案。
README.md 在GitHub頁面下方顯示的README。格式是Markdown。
build.sh 產生XPI檔案,
目前似乎是Linux+Bash Only。
config_build.sh 前者的設置檔。
chrome.manifest Firefox套件的基本組態檔之一。
install.rdf Firefox套件的基本組態檔之一。
license.txt 記錄所有不是我寫,且License相容於GPL的程式碼來源。
-------------------------------------
寫了好久,感謝大家看完 qqqqqqqqqq
也歡迎各路JS強者勇於報名參與,NicoFox等你帶回家 >/////<
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.127.176.48
※ 編輯: ybite 來自: 122.127.176.48 (02/13 01:16)
1F:推 key0077:拿來研究(把最後的時間殺掉) 應該可以領悟些推坑術(誤 02/13 01:20
※ 編輯: ybite 來自: 122.127.176.48 (02/13 01:25)
2F:推 aa1052v:辛苦了 加油!! 02/13 01:30
3F:推 bluegmn:推 02/13 01:46
4F:推 awashharp:今天有小小翻了一下GitHub上的檔案XD 考完後再來仔細 02/13 03:02
5F:→ awashharp:研究NicoFox~ 02/13 03:03
6F:推 tdk4:小犬GOGOGO 考試也請加油 02/13 12:03
7F:推 ratadune:君なら出来る! もう何も怖くない! 02/16 16:21