2018年1月12日 星期五

MahoMangaDownloaderVer4.7更新 & Refactor計畫開始

這次更新內容為修正Ver4.6的bug, Ver4.6在下載 manhuagui的漫畫時,  stack的部分會越來越大, 大概在下載1~2小時之後就會stack overflow (十分感謝使用者的回報, 不然我可能一直沒發現囧)。

查了下原因在於下載器本身一直在重複使用一開始建好的webclient物件, 雖然之前一直重複使用不會有什麼問題, 可是在Ver4.6時DownloadDataCompletedEventArgs的使用空間會一直越積越大..., 這個類別目前只有dm5以及manhuagui有用到, 不過以前並不會有這問題, 而是在Ver4.6改成下載webp再轉檔成通用圖檔後才有, 由於要再繼續追下去感覺會花非常多時間, 所以最後選擇直接下載完就把webclient物件釋放掉, 下一次下載在重新生成一個新物件就好。

這種要壓力測試才會出現的bug要第一時間發現真的太困難了, 然後這個程式也沒有寫測試程式, 都是用人工測試的...。

回想當時會做這個下載器, 主要是生涯中經歷了當兵退伍 -> 吃公家飯 & 3個月就辭職 -> 準備研究所考試 -> 研究所入學前才隨手做來練功用的, 那時已經有兩年多沒寫過code, 做的時候什麼都不懂, 土法煉鋼的Google->有功能出來就好的拼拼湊湊得做出來的, 當時想說只要能用就好, 也沒想過要釋出, 而真的釋出後發現有不少人會用, 想Refactor卻又一直懶...就這樣拖到了現在...。

遇到這次的bug是真的決心要Refactor了(說是Refactor其實是整個打掉重寫就是了囧),  這次的重點如下:
  1. UI跟程式執行部分徹底切割 ---> 當時的自己根本不知道UI Thread這玩意, 結果下載器卡卡頓頓的慘兮兮不說, 連後來想寫自動測試的部分整個無法動手...。
  2. 改善程式架構 ---> 由於一開始就是打算做爽的, 根本沒考慮過程式架構這回事, 搞的彈性有夠差(那時只覺得寫完應該就是一直放著自己用了, 哪知道之後會加這麼多網站 & 釋出給大家使用)。
  3. 落實自動化測試機制 ---> 手動測試太浪費時間加上找不出像這次的問題, 做好了以後可以省下不少測試的時間以及增加程式的穩定性。
  4. 加入Log ---> 以前只有自己一個人用, 出問題直接debug mode看問題在哪就好, 可是現在程式有人用了, 有log後也比較能快速找到原因, 只靠截圖跟敘述的方式都得來來回回好幾次才能確定出問題的原因。
  5. 改善error handling, 增加程式的穩定性。
  6. 新功能 ---> 目前想到的就是自動下載&通知關注的漫畫, 有更新就會自動下載下來, 畢竟只重構沒有新功能感覺會提不起勁囧

基於責任問題, 在重構完成之前, 如果下載器出現bug (尤其是像網站改版導致不能下載的情況), 依然會持續更新, 直到新版重構完成之前都會繼續維護。

嘛...雖然還有AxisTradeCult要繼續開發, 不過這個就讓我兩邊同時進行吧, 哪邊有幹勁就先做哪邊(希望不要一直兩邊都沒幹勁OTL), 希望最後都能做出讓我滿意的成品~~!!


Ver4.7更新內容:
  • 修正看漫畫(manhuagui, ikanman) 下載一段時間後程式會crash的問題。

版本:Ver4.7

支援漫畫網站:
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/

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

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

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

對應系統:
Windows (需安裝 .net framework 4.5)
 



使用第三方套件:
HtmlAgilityPack
Imazen.WebP
libwebp


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

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


解壓密碼:zmcx16


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


11 則留言:

  1. 支持!偽娘我來惹ˊ_>ˋ

    回覆刪除
  2. 您好 最新版本
    無法在http://www.ikanman.com/ (http://www.manhuagui.com/)
    下載漫畫
    一直無限倒數秒數

    回覆刪除
    回覆
    1. 您好, 我剛剛試看起來是能正常下載, 可以請問您使用的下載器版本嗎?

      如果是更之前的版本, 有些固定頁數會一直卡住無法下載, 那是因為網站擋jpg圖的關係, 現在新版的都會request webp圖檔再重新轉成jpg去繞過這問題。

      刪除
    2. 您好 使用的版本是最新的4.7版
      (https://drive.google.com/file/d/1ooXtHPD20S7II-E0Y7A1EMzWeQQXX_Px/view?usp=sharing)
      您貼的這個網址下載的
      測試另外一台電腦 也是無法下載

      刪除
    3. 我是下載這本漫畫http://www.manhuagui.com/comic/22150/269346.html 無法下載

      這個也無法下載
      http://www.manhuagui.com/comic/2341/19733.html

      這個全集都不行 http://www.manhuagui.com/comic/6645/57534.html

      但是下載海賊王就可以

      刪除
    4. 恩...我測試了下我上面三個都可以下載, 看起來你的問題應該是網站有擋所以拿不到圖檔, 我之前request jpg圖時有時也會這樣, 後來才改全都拿webp, 其他擋的情況我就沒有遇過了。

      請問下你有開VPN嗎? 如果有開VPN有時被擋的機率很大, 如果換網路環境還是不行的話, 因為我這邊沒辦法reproduce環境, 要是你願意幫忙找原因的話我可以出個debug版的程式給你測, 看一下問題到底出在哪個環節上。

      刪除
    5. 您好
      我沒有開VPN
      在想是不是我電腦沒有將系統更新到最新
      或是因為我沒有安裝第三方套件
      請問需要安裝第三方套件嗎?

      麻煩您太多了 真的非常感謝>_<

      刪除
    6. 第三方套件只是程式有用到註明而已, 並不需要額外安裝。
      環境問題的話照道理只要有裝.Net Framework 4.5就能使用, 沒有裝的話會連程式都開不起來。

      如果你那邊有其他網路環境的話可以試試看(e.g. 手機4G), 在不行的話應該就沒辦法了, 畢竟我這邊沒辦法reproduce環境, 也不知道從何下手...真的十分抱歉OTL

      刪除
    7. 後來試著在www.manhuagui.com
      網頁裡的左上切成繁體
      前面變成tw.manhuagui.com後
      上面說的幾本就可以下載了
      謝謝您的回應 這套軟體真的好好用 再次謝謝您

      刪除
    8. 喔喔, 問題有解決了就好。
      不過我自己測試是兩個域名都可以下載, 他們網站判斷擋不擋的機制真的神奇囧

      有時候就是會遇到這種怪事, 看漫畫跟動漫屋尤其多XD

      刪除