2018年2月24日 星期六

MahoMangaDownloaderVer6.1更新

這次更新有不少小地方, 最主要的部份為下載器在等待cef載入時有過度使用CPU資源的問題, 原因在於之前等待的方法是直接使用Application.DoEvents()這個方法, 如果是在winform有需要處理UI的情況用是沒什麼問題, 可是我下載的thread其實有用到元件就只有cef, 並沒有其他.Net元件 or UI控件, 如果用這個去等待Cef的話會造成等待過程除了cef的subprocess在運作, 下載的thread也會去忙windows的其他事件, 造成過度使用CPU的問題。

不過當初就是不能用thread.sleep才用Application.DoEvents()的(用thread.sleep會連cef都不能運作)。 最後查了下資料, 雖然有些人會用Application.DoEvents() & thread.sleep混用來處理這問題, 大部分會這樣使用的原因也是因為他們的main thread有用到UI控件, 不過以我的例子來說還是會無意義的使用到CPU資源..., 所以也不適合這樣做。

後來看到一篇文章寫: 就再開一個thread去sleep就好啦!!  當下眼睛真的是掉鱗片XD  怎麼這麼簡單的解決方法會想不到呢OTL

這個問題解決後再來就是些小問題, 搜尋按鈕沒有處理到中文語系, 檢查到下載完成的漫畫還是會建立tmp資料夾等等。 目前自己試用了新版下載器大概3天左右, 看起來應該是沒什問題了。 在來會開始想想自動偵測下載要怎麼做才好, 目前想到有兩種形式:

  1. 自動偵測下載有獨立的頁面以及背景執行緒, 跟主動下載完全分開。
  2. 自動偵測下載只負責偵測新漫畫出來後, 就將任務建立到目前的待下載清單。

個人來說比較傾向2 (很簡單就能做好了XD),  1的話其實比較適合拿來做服務程式, 可是考慮到這麼簡單的小程式應該不會有人想註冊服務程式,  最後應該還是會選擇2的方式來實作。

目前想做的除了通知下載之外,  也該開始繼續進行AxisTradeTool的開發了, 還有一堆買的書還沒看, 真希望自己能有更多幹勁跟行動力阿...。


Ver6.1 更新內容:

  • 改善cef等待時下載器過度使用CPU資源的問題
  • 修正偵測到下載完成的漫畫依然會建立tmp資料夾的問題
  • 修正搜尋按鈕沒有中文語系的問題


下載器Demo圖:




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

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


解壓密碼:zmcx16

------------------------------------------------------------------------------
MahoMangaDownloader 漫畫下載器


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


環境需求:
******************
1. .Net framework 4.5.2 or later
https://www.microsoft.com/zh-tw/download/details.aspx?id=42642

2. Visual C++ 2013
https://www.microsoft.com/zh-TW/download/details.aspx?id=40784


功能:
******************
1. 可批次下載
2. 支援多執行緒下載(Max thread = 3, 請多珍惜各個資源網站)
3. 支援搜尋功能, 搜尋過濾的關鍵字以及類別選單可在選單->設置的地方修改,預設為只輸出日文,中文,英文資源,分隔關鍵字為 '|' 字元
4. 語系: 中文/英文
5. 要下載EX熊貓的資源,必須先設置一次Cookie(選單->設置->ehentai->Cookie),產生Cookie檔後即可下載EX資源,之後皆不需重新設置
6. 支援自動檢查最新版本


注意事項:
******************
1. e-hentai/exhentai有流量限制, 且下載過大會封鎖IP, 如果網路環境為固定IP的話請加大delay時間。
2. e-hentai/exhentai的快速搜尋只會Parse英文檔名, 除非有特定需求否則建議disable快速搜尋。
3. 針對6.0以後的版本, 使用者資料(漫畫清單, 參數設置, Cookie檔案等等)皆會放在User_Data資料夾內, 更新下載器版本時User_Data內的檔案皆可銜接使用。

Staff:
******************
Author:  zmcx16 (zmcx16@gmail.com)
Illustrator: 超愛喝榛奶


Web sites:
******************
https://zmcx16.blogspot.tw/
https://github.com/zmcx16/


Using Package & Reference:
******************
CefSharp - (https://github.com/cefsharp/cefsharp) -  BSD LICNESE
HtmlAgilityPack - (https://github.com/zzzprojects) - MIT LICNESE
lz-string-csharp - (https://github.com/jawa-the-hutt/lz-string-csharp) - The Unlicense
Imazen.WebP - (https://github.com/imazen/libwebp-net) - MIT LICNESE
log4Net - (http://logging.apache.org/log4net/) - Apache License Version 2.0
newtonsoft.Json (http://www.newtonsoft.com/json) - MIT LICNESE
DataGridViewProgressBarCell - (https://www.codeproject.com/Articles/117021/How-to-Create-ProgressBar-Column-in-DataGridView) - CPOL LICENSE


免責聲明:
******************
MahoMangaDownloader僅作為學術研究使用,禁止利用本程式行非法用途。

26 則留言:

  1. 以往刪除其中幾頁下載錯誤的部分,重新下載時會只下載該部分,新版似乎會從下載錯誤的頁數開始一直下載到最後一頁的樣子

    回覆刪除
    回覆
    1. 您好, 剛剛測試了下的確是這樣沒錯, 這是重構時的bug囧, 預計會在6.2版處理, 非常謝謝您的回報。

      刪除
  2. 大大您好,我這邊使用起來ehentai下載沒有問題
    但exhentai都卡在Ready,上一個版本也是
    我都有登入cookie也顯示設定成功
    請問有解決方法嗎?謝謝!

    回覆刪除
    回覆
    1. 您好, 我昨晚測試ex是正常的, cookie如果之前的沒問題的話你可以用舊的cookie檔案試試看。

      基本上你可以新增ex的漫畫的話, 那cookie應該是沒問題的才是, 不能下載的情況可能要請你貼log給我看看, 你可以到log file的資料夾把當天測試的log貼給我, 我再看看是甚麼問題。

      刪除
  3. 您好,我又來回報啦 XD
    https://i.imgur.com/8XgWmJG.png

    回覆刪除
    回覆
    1. 您好, 這問題我也有發現到, 只是它很偶然才出現囧, 問題點在那裡還要再查查看, 至少目前應該是不影響下載的功能, 只能麻煩大家先將就下等我找到原因, 也非常謝謝您的回報。

      刪除
  4. 我設定95%(預設),但EX網的流量跑到了6千以上,且中斷的訊息是「全部任務完成」囧
    BTW,雖然是無關緊要的偶發性問題:監視剪貼簿偶爾會變回英文 XD

    回覆刪除
    回覆
    1. 您好, 檢查流量的功能我好像忘記搬進去了XD, 預計下一版會補上去, 至於會變成全部任務已完成應該是因為下載重試一直失敗所以全部的任務都從ready->pause了, 這個算是正常顯示, 至於剪貼簿變英文是我加語系的地方漏掉了XD 一樣下一版會補上, 非常謝謝您的回報。

      刪除
    2. 我覺得這個程式真的很便利,衷心感謝,並希望可以讓它變得更完美。<(_ _)>
      另外偷偷問:以前許願的非合法字元(*、?等等)自動轉全形,未來是否有可能實現呢? QQ

      ※另外這算小小提醒吧 XD
      上引號(「)會被吃掉的問題臨時找不到標題有的作品可以測試,不知道後來有沒有修好了

      刪除
    3. 您好, 關於您說的問題, 應該會等到新版的下載器穩定後+有空閒才會做, 轉全型的部分應該會排在我把追蹤下載的功能做完之後了...。

      刪除
  5. 作者已經移除這則留言。

    回覆刪除
  6. 您好 在ex下載時出現這樣的錯誤訊息而且無法下載
    https://i.imgur.com/n67HycF.png
    除6.1外 使用2.7亦出現相同錯誤訊息
    作業系統為windows7 SP1 64位元作業系統

    回覆刪除
    回覆
    1. 您好, 我剛剛測試了下圖片的資源網址, 那個資源已經被網站砍掉了, 有時候就是會這樣, 只能趁早下載...。

      刪除
    2. 原來如此 感謝解答OTZ

      刪除
  7. 請問新版是不是沒有編號了?還是我的問題@@

    回覆刪除
    回覆
    1. 您好, 因為編號只是拿來給程式做辨識的ID, 對使用者感覺沒什用, 所以我就把它隱藏起來了。

      感覺編號有用的地方頂多就大概知道任務數量, 如果真的要補應該之後會改用提示的方式將選取數量加上去。

      刪除
  8. 您好,即使在搜尋過濾裡面增加過濾,
    exhentai關鍵字搜尋時一樣會搜尋到有關於增加的類型

    回覆刪除
    回覆
    1. 您好, 搜尋過濾其實一樣有效, 只是現在新版搜尋改成顯示原文優先, 所以用英文字過濾不到日文字, 如果你想只搜尋英文跟中文資源的話, 可以修改過濾字設定如下:

      Korean|韓国翻訳|French|フランス翻訳|Russian|ロシア翻訳|Spanish|スペイン翻訳|Thai ภาษาไทย|タイ翻訳|Italian|イタリア翻訳|German|ドイツ翻訳|Portuguese|ポルトガル翻訳|Português|Español|スペイン翻訳|Polish|ポーランド

      預計下一版會更新過濾字預設設定, 您可以先自行用上述關鍵字更新設定上去。

      刪除
  9. 你好 我想問個不相干的問題
    最近一個月e站對免費會員的流量限制是否提高?
    以往極限都能到5000多(單位不曉得)
    現在不到2000就不能看了= =

    回覆刪除
    回覆
    1. 您好, 其實不是流量限制的問題, 而是ban ip的手段變得更嚴厲了...(流量限制超過會變成只顯示流量超過的警告圖, ban ip則是出現懷疑你用軟體收割資源的訊息, 連網站都上不了, 前者並不會處罰, 後者則是會ban ip 1小時, 24小時甚至三天, 七天)。

      建議e站最好只開一個thread, 然後兩種delay時間都拉長, 這樣應該就不容易被ban ip。

      刪除
    2. ok 我再試試
      謝謝!

      刪除
  10. 沒想到更新到6.1版了 謝謝您 很喜歡這軟體
    這邊想請問可否讓下載清單能排序或是反向排序呢?
    因為某些漫畫網 會從後面的話數開始下載
    有時想邊下邊從第一話看 但是會從最後一話開始下載
    希望能加個下載清單的排序功能 謝謝您

    回覆刪除
    回覆
    1. 您好, 排序功能應該會在追蹤下載功能實裝後一併加入, 謝謝您的建議。

      刪除
  11. 你好 對於新版本有個問題
    settingform那邊的延遲設定有分共通跟ehentai
    這兩個是差在哪? 我下載的話是兩邊時間加總作為每張圖片的間隔嗎?

    回覆刪除
    回覆
    1. 您好, 共通的延遲時間是指每張圖下載完後到下一張圖開始的間隔時間, 所以是一體適用的。

      ehentai的延遲時間則是一開始要獲取所有圖的位址時的間隔時間, 假如有1000張圖的話, 每一頁可以取得40張圖的位址, 所以總共會延遲25次。

      如果這個時間沒有設定的話, 在下載幾百幾千頁的資源時會很容易被ban ip。

      刪除
    2. 好的, 謝謝版主大大回復^^

      刪除