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僅作為學術研究使用,禁止利用本程式行非法用途。

2018年2月20日 星期二

MahoMangaDownloaderVer6.0更新

這個過年總算把下載器重構得差不多了,  不過沒想到一些地方卡這麼久, 導致沒有時間做當初預定好的自動通知下載, 自動測試等功能,  這部分可能就之後有空再慢慢做了。

預定這個假日會再補上開發日誌, 包括一些功能的取捨以及遇到的問題等等, 然後舊架構的下載器就不再更新了, 之後只會更新這版架構的下載器。

關於6.0版的架構跟前版下載器在使用上有以下注意事項:


  1. 舊版的漫畫清單, 參數設置, 皆跟Ver6.0版不相容, 只有Cookie可以直接沿用(複製至User_Data資料夾內)。
  2. 新版程式不在使用IE瀏覽器控件, 改使用CefSharp  (Chromium)第三方套件, 使用者的環境需安裝.Net framework 4.5.2 & Visual C++ 2013才可正常使用。

其他注意事項請參閱readme.txt, 如果有其他問題也歡迎部落格留言 or 寄信給我。



新版Demo圖:




檔案位址:
https://drive.google.com/file/d/1HYZuNKteoaGh94Mgpg-6wJafctWVcjSC/

32位元版本:
https://drive.google.com/file/d/1k0XUMUWtwisiRk8WJxcN0-c2bv6ZkQsO/


解壓密碼: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僅作為學術研究使用,禁止利用本程式行非法用途。

2018年2月12日 星期一

MahoMangaDownloaderVer5.1更新

有不少人反應熊貓網下載的漫畫會少頁數, 只能下載到20 40 80頁的情況, 雖然有提供sample網址給我參考, 不過我自己電腦載還是正常的, 後來仔細研究下發現, 熊貓網資源頁的左中間有個: 4 rows 10 rows 20 rows 40 rows的TAG, 看起來應該是一個頁面要顯示多少張縮圖的按鈕, 不過我自己看那個按鈕是被鎖死不能按的, 顯示的話總是一頁顯示40張縮圖。

我後來試著用chrome, firefox, IE開同一個頁面,  發現每個瀏覽器不會都顯示相同數量的縮圖, 我想這應該就是問題所在了, 因為當初寫parser時他都是40當一單位, 所以我就這樣寫了, 這也導致當下載器從網站拿取html不是40當一單位的話, 就會有少頁數的問題...。

基本上我也懶得研究他到底是根據什麼環境去顯示多少張縮圖, 反正我就是Parse "Showing 1 - 20 of 130 images" 的20跟130就對了!!

題外話,  預計過完年前會發布重構好的下載器, 功能跟穩定性會比現在的好很多 (現在這版當初寫的時候已經兩年多沒寫code了, 完全沒考慮架構阿XD),  如果幾個禮拜內沒有熊貓網的需求的話可以忽略這一版下載器XD


Ver5.1更新內容:
  • 修正熊貓網某些情況下載頁數會不正常的問題

版本:Ver5.1

支援漫畫網站:
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版本 (IE版本需安裝11以上)。

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

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

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

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



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


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

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


解壓密碼:zmcx16


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

2018年2月10日 星期六

MahoMangaDownloaderVer5.0更新

這次主要對應無限動漫的小改版做更新, 真希望這些網站不要更新得這麼勤阿, 不然我也得想想有沒有更萬用的parser辦法了囧

新版的下載器預計過完年前應該能搞定, 然後在上班兩天就能放過年假了, 好期待啊!!!


Ver5.0更新內容:
  • 修正無限動漫小改版後不能下載問題

版本:Ver5.0

支援漫畫網站:
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版本 (IE版本需安裝11以上)。

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

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

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

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



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


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

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


解壓密碼:zmcx16


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

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僅作為學術研究使用,禁止利用本程式行非法用途。