2018年2月3日 星期六

MahoMangaDownloader Refactoring 日誌 (1)

首先來貼張目前的DEMO圖:



重構方面目前把整個加入漫畫, 下載漫畫的邏輯寫好了,  這樣以後我想追加新網站就只需要改以下三個檔案:
  1. XXX_manga.cs (實作XXX網站的加入漫畫, 下載漫畫的parser)
  2. MangaFactory.cs (負責實體化所有支援網站)
  3. MahoMangaDownloaderForm.cs (下載器UI)
另外還有一個DownloadProcess類是專門負責整個下載的邏輯, 稍微回顧下黑歷史, 以前亂寫的code是沒有2, 然後有1跟3, 可是3跟下載的邏輯是塞在一起的,  造成了實體化的部分跟UI放在一起, 所以每次要改都要稍微trace一下code, 有時看了真的很不爽囧, 這次徹底切割得很清楚, 光是看了就賞心悅目XD, 修改起來也毫無壓力了~~。

除了重構整個架構之外,  存取漫畫清單的方式從序列化整個class的方式, 改成使用SQLite儲存下載清單, 所以自然也多加了可選擇多個下載清單的功能, 之後使用者可以創建多個下載清單, 例如連載用, 單行本用,  紳士用等等XD。

由於這次重構有把多執行緒也加進去了, 實測後開幾條thread都沒問題,  不過考慮到帶給網站負擔的問題, 我會把最大上限鎖到2~3, 畢竟要是下載太扯導致被針對就得不償失了,  當然真要搞多開幾個process分開下載設那個上限也沒意義就是了, 只希望使用者能節制的使用。

目前剩下的工作就是把各網站的parser搬進來, UI的各功能也要搬進來 , 還有程式的穩固性以及測試程式等等(舊版的有多慘我就不提了吧,  畢竟一開始只是做給自己爽的, error handling幾乎沒做啊囧),  還有新功能的關注清單自動下載功能~~嘛....過完年前肯定做不完囧  能做多少就做多少吧,  希望釋出的日期能快點到來 : )

  

2018年2月2日 星期五

[追加更新]MahoMangaDownloaderVer4.9更新

[2018/2/3更新]
稍微測試了下發現修好manhuagui的parser後, 下載manhuagui時過段時間會不定時crash, 錯誤的部分是MSHTML.dll這支dll造成了非法記憶體存取, 不過我基本上就是使用.Net 的webrowser去控制IE11跑網頁, 之前也都沒這問題, 怎麼會現在只有manhuagui會有這個錯誤呢囧

總之, 看起來這錯誤是.Net 的webrowser造成的,  我目前看起來可能是重置的時候造成, 由於我在使用webrowser跑完一個網頁要移到下一個網頁時, 我不會釋放資源可是會把內容重置掉, 避免後面的parser誤判前次的網頁造成parse到錯誤的資料,  目前是猜可能是這一塊出問題(非法記憶體存取被擋掉看不到造成程式crash的點在哪, 看不到stack囧, 而且這種錯誤也不是每次都能reproduce, 誰知道他什麼時候會碰到系統記憶體區囧),  總之我目前試改好的看起來是沒這問題了, 不過我也沒法保證(之前那有問題的版本有時一下就能重現, 有時載了幾十部漫畫都遇不到...), 總之就先把改好的放上來了。

某方面來說MS把IE的物件寫好做好例外處理我應該也不會遇到這問題吧,  我應該可以這樣牽拖吧XD (痛毆)

<---------->
由於manhuagui又小改版了, 所以又不能下載了, 總之先對應著修了, 如果他之後還是這麼頻繁小改版的話.....就修到我沒耐性為止吧XD

另外最近有發現到dm5有時新加漫畫會出現error, 那個應該是網站還沒載入完畢就跑parser的關係, 因為只要重按基本上就會好了, 所以這問題我會在有空的時候再去處理, 要稍微花時間去找網站完全載入好的點有點麻煩~~~, 還有就是有發現到dm5的漫畫清單其實有兩種格式, 2維分布以及一行到底兩種清單,  前者就是普遍日漫看到的格式, 後者則大部分是他們國產漫會有的, 這格式放的主要是為了付費下載的漫畫, 雖然也是有幾話免費可以下載, 不過這邊就先不支援這格式了, 等之後有空在支援這部分。


Ver4.9更新內容:
  • 修正manhuagui改版後不能下載問題

版本:Ver4.9

支援漫畫網站:
http://www.dm5.com/
http://www.ikanman.com/ (http://www.manhuagui.com/)
http://99.hhxxee.com/
http://www.8comic.com/ (http://www.comicbus.com/)
https://e-hentai.org/
https://exhentai.org/
https://nhentai.net/

初次使用程式前, 需執行"Set-Moho_In_IE.reg"註冊程式到IE的註冊表, 設定WebBrowser Control運行的User Agent版本。

支援批次功能,但不提供多執行緒下載(請多珍惜各個資源網站)。

要下載EX熊貓的資源,必須先設置一次Cookie(選單->設置Cookie->輸入帳密),產生Cookie檔後即可下載EX資源,之後皆不需重新設置。

支援搜尋功能,搜尋過濾的關鍵字以及類別選單可在選單->參數設置的地方修改,預設為只輸出日文,中文,英文資源,分隔關鍵字為 '|' 字元。

對應系統:
Windows (需安裝 .net framework 4.5, IE版本11以上)
 



使用第三方套件 (僅註明, 不需額外安裝):
HtmlAgilityPack
Imazen.WebP
libwebp


檔案位址:
https://drive.google.com/file/d/1wcyFlU0qxGcr2NJQV05t1sVW3YPJ-0PT/view?usp=sharing

32位元版本:
https://drive.google.com/file/d/1kNEb2W0as4n_hhh5MMo4PlpmkAMlwEu7/view?usp=sharing


解壓密碼:zmcx16


MahoMangaDownloader僅作為學術研究使用,禁止利用本程式行非法用途。