BTTool種子文件修複工具這個工具可以很好的解除百度屏蔽敏感詞。有需要的夥伴歡迎下載使用。
自動化的種子文件修改工具。第一點是因為有的種子文件包含的文件實在太多了,每一個文件的文件名都改過去很麻煩,第二點是因為能用電腦解決的重複性勞動我就懶得用手解決。
為了對BT文件有一個直觀的印象,我們還是以速度與激情7這個BT文件為例,從圖中為各位看官做一下介紹。仔細觀察下圖,我們發現在圖中的節點無非是三種類型,第一種是根節點,第二種是鍵值對節點(字典也是一個特殊的鍵值對節點,其鍵為名字,而值為其所有子節點),第三種列表節點。
簡單的BT文件解析器
可以看到bencoding編碼中的四種類型都有一個標識頭,比如整數類型以'i'開始,string類型以數字開始。利用這一特性,對於每一個類型,我們先嚐試讀一個字符,並根據讀入的字符判斷讀入的是什麼類型,如‘i’為整形,'d'為字典,'l'為列表而剩下的數字則為字符串。
那麼接下來的思路就非常清晰了,我們需要四個方法來分別解析數字,字符串,字典和列表。其中數字和字符串類型隻用於表示值,而不能作為容器;列表和字典類型都可以作為容器,故還有一個parent參數,用於向父節點添加子節點。
由於到BT文件是樹狀結構的,這裏我們使用遞歸來實現對BT文件的解析。可以確定的,BT文件一定是以一個字典類型開始的,所以我們先調用AnalysisDictionary方法,並把參數根節點傳給它。之後在該方法中通過讀入下一個字符來判斷是什麼類型,並調用相應的方法來解析該類型,而相應的方法又通過相同的方法繼續調用另外的方法,如此循環,直到解析完畢,這也正是遞歸的思想。下邊就是我實現的一個簡單的BT文件解析器,返回的是一個IBNode類型的根節點。
好不容易解析完了,當然要先把它顯示出來看是否正確。這裏我們仿照“BEncode Editor”這款工具的界麵來顯示。簡單分析一下,其實就是使用了一個TreeView的控件來顯示。由於我們解析出來的節點和TreeView控件的節點正好是一一對應的,所以這裏也用一個遞歸就能實現了。
顯示效果就像下麵這個樣子。已經和上麵BT文件修改工具很像了。
至今為止我們都在做重複的工作,模仿已有的工具,那麼接下來就是新的內容了。經過我的仔細觀察後發現,百度雲離線下載檢測的關鍵詞主要為
{ "name", "name.utf-8", "path", "path.utf-8", "comment", "comment.utf-8", "publisher", "publisher-url", "publisher-url.utf-8", "publisher.utf-8"}
這些鍵後麵的值。隻要我們把這些後麵對應的值改為一些不敏感的詞,那麼就能躲過百度的審查。
為了把剛學的設計模式用上去,我在之前定義IBNode接口的時候預留了一個方法。
76.4M / 03-25
55M / 06-05
237.9M / 04-13
140.5M / 03-06
900.9M / 03-02
96.2M / 07-06
311.2M / 07-06
335M / 07-06
200M / 07-06
413.8M / 07-06
353.9M / 06-05
131.8M / 04-13
230.8M / 03-03
195.6M / 03-03
165.4M / 03-03
45.6M / 09-08
665.2M / 07-06
2.84G / 07-06
93M / 07-06
338.3M / 07-06
1.38G / 07-26
488.3M / 07-16
109.8M / 06-03
142M / 01-08
1.2M / 11-23
548.8M / 04-13
1.6M / 04-13
1.48G / 03-18
646.6M / 03-03
133.7M / 03-03
325.8M / 06-07
60M / 04-29
254M / 04-25
659M / 04-23
1M / 12-26
253.4M / 12-08
253M / 12-08
1.19G / 11-16
110.5M / 04-23
26.7M / 03-16
488.3M / 07-16
248.9M / 12-08
248.9M / 12-08
201.2M / 04-13
100.6M / 03-06
148.9M / 03-06
1.12G / 07-06
1.25G / 07-06
9.48G / 07-06
50KB / 07-06
116.2M / 04-10
1.92G / 04-17
201.5M / 04-13
7.31G / 07-01
94.3M / 07-06
2.48G / 07-06
7.63G / 07-06
1M / 07-06
778.1M / 07-06
509.7M / 07-06
561.8M / 07-11
1.32G / 01-19
72M / 07-06
548.7M / 07-06
1.00G / 07-06
9.13G / 07-06
126.2M / 07-06
72M / 07-06
105.1M / 07-06
132M / 07-06