2014年12月17日

「小説を読もう!」「小説家になろう!」一括ダウンローダ ver 2.37 私家版r003

ver 2.37私家版r003を公開しました。※r002以前はクローズドのため未公開です。
・12/3以降に仕様変更となった、作品目次ページの広告処理に対応
・タイトルにバージョン情報を記載
・「種別」カラムに「最新話を読む」および「最終話を読む」が表示されないように修正しました
・作品が削除されていた場合のエラーメッセージを変更しました。
・一部エラーに対してエラー番号を出すように変更(デバッグ向けの変更)

本家NovelDL(http://w033.seesaa.net/)のダウンロードが、小説家になろうの仕様変更に伴い機能しなくなったため、公開されている本家のソースを元に該当箇所を修正し、ビルドしました。
あくまでも自分用に作成したものですので、人によっては動作しない可能性があります。
今後の仕様変更に関しても、作者がNovelDLを使っている限りは対応する予定です。
ただし、本家NovelDLが更新し、修正が反映された場合には私家版の公開を停止する予定です。

◆開発環境
VisualStudio2013 Express .NET Framework 4.5.1SDK

◆動作確認環境
Windows7 SP1 Ultimete 64bit

◆本家ver2.x、私家版r0xxからのバージョンアップ用(NovelDLpeフォルダの中身をそのまま上書きしてください)
NovelDL_v2_37_r003_bin_update.zip
※上書きの前に、バックアップをお勧めします。

◆プログラム(新しく使う人用)
NovelDL_v2_37_r003_bin.zip

◆ソースコード
NovelDL_v2_37_r003_src.zip

◆NovelDL作者様ページ
気長に日記
http://w033.seesaa.net/

posted by ラテ at 19:34| Comment(15) | NovelDL | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
暫定版公開ありがとうございます。
助かります。
Posted by at 2014年12月18日 01:18
ありがとうございます。
拝借いたします。
Posted by at 2014年12月18日 01:46
Win7 x64 SP1 にて動作確認しました。
ver2.37 からの上書きでadbはそのまま使っています。

フレイム王国興亡記
スローライフ  転生したら竜騎士に?弱者は正義を語らない 〜最悪で最低の異世界転生〜

等の正常DL確認できました。
助かります、有難うございました。
Posted by at 2014年12月18日 02:08
暫定版ありがとうございます。
Win7Pro x64 SP1にて問題無く動作しました。
Posted by at 2014年12月18日 08:10
暫定版ありがとうございます。
Win7 x64 SP1にて問題無く動作しました。
Posted by at 2014年12月18日 11:42
アバストがNovelDL.exeにマルウェアが入っているとしつこくてダウンロードできません;;
Posted by at 2014年12月18日 15:30
↑ダウンロード間は停止させておけばいいんじゃないかな?

正常にDLできました。
Posted by at 2014年12月18日 16:00
問題なくダウンロードでき、大変助かりました。
ありがとうございます。
Posted by at 2014年12月18日 19:12
↑↑↑
avast云々については、NovelDLの本家サイトに書いてあるとおり、既知の問題と思われます。
http://w033.up.seesaa.net/image/NovelDL_List.html

心配であれば、本家同様ソースコードを公開していますのでご自身でビルドしていただきますようお願いします。

本家NovelDLもそうですが、プログラムに同梱しているライセンスに記載している通り、プログラムの不具合等による、動作の保障は一切いたしません。
プログラムの利用については自己責任でお願い致します。
Posted by ラテ at 2014年12月18日 19:27
動くようになりました。
ありがとうございます。
ありがたく使わせていただきます。
Posted by matu at 2014年12月19日 00:02
ありがとうございます、助かります
Posted by at 2014年12月19日 14:22
アバスト一旦停止させて何とかダウンロード出来ました。
Win7 x64 SP1正常に動作しました。
ありがとう御座います。
Posted by at 2014年12月19日 15:37
お世話になります。
本家の時からのことなのですが、

小説文中のルビ打ちに ”|(半角縦線)”を用いられている作者さんが結構居られるのですが、皆さんどう対応されているのでしょう?
私の場合だと「AozoraEpub3」で変換する前に ”|(全角縦線)”に置換してから行っています。
「青空文庫ルビを別の文字に〜」のチェックを入れると《》が≪≫に自動置換されるので、ルビを多様される作者さんだと読み難いんですよね。

また、ルビと文章中の囲み記号として《》を同時に使われている作者さんも結構居られるので、皆さんどうされてますか?

よかったご教授いただけると有り難いです。
よろしくお願いいたします。
Posted by at 2014年12月30日 00:56

ルビに関しては、小説家になろうのサイトのTXTダウンロード機能を使用してテキストを取得してるので、
サイトと同じような表示の青空文庫形式テキストにするには、HTMLファイルを読み込んで加工するしか無いと思います。
DownloadLogic.cs の、
1168行付近の url = action + "?hankaku=0&code=utf-8&kaigyo=CRLF"; を、
url = "http://ncode.syosetu.com/" + ncode + "/" ;
に変更、
1172行付近の url = action + "?no=" + dlList[lidx].No + "&hankaku=0&code=utf-8&kaigyo=CRLF"; を
url = "http://ncode.syosetu.com/" + ncode + "/" + dlList[lidx].No + "/";
に変更してHTMLを直接読み込み、

1192行と1193行の
string downloadData = wc.DownloadStringEx(url, retry);
if (isRubyReplace)
の間に、

if ("0" == dlList[lidx].No)//短編対応
{
downloadData = Regex.Replace(downloadData, "<div id=\"novel_honbun\" class=\"novel_view\">", "<p class=\"novel_subtitle\">");
downloadData = Regex.Replace(downloadData, "</div><!--novel_color-->", "<div class=\"novel_bn\">");
}
string[] substrings = Regex.Split(downloadData, "<p class=\"novel_subtitle\">");//<p class=\"novel_subtitle\">以前を削除
substrings = Regex.Split(substrings[1], "<div class=\"novel_bn\">");//<div class=\"novel_bn\">以降を削除
downloadData = substrings[0];
downloadData = Regex.Replace(downloadData, "\n", "\r\n"); //改行を\r\nに
downloadData = Regex.Replace(downloadData, "\r\r\n", "\r\n"); //改行を\r\nに
downloadData = Regex.Replace(downloadData, "</p>(\r\n)*<div id=\".*?\" class=\"novel_view\">", "$1$1"); //先頭の <div id> を\r\nに置換
downloadData = Regex.Replace(downloadData, "<div id=\".*?\" class=\"novel_view\">", "************************************************\r\n"); //先頭以外の <div id> を**〜**\r\nに置換
downloadData = Regex.Replace(downloadData, "<ruby>", "|"); //以下ルビ対応
downloadData = Regex.Replace(downloadData, "\\|", "|"); //半角縦線を全角縦線に
downloadData = Regex.Replace(downloadData, "《", "≪");
downloadData = Regex.Replace(downloadData, "》", "≫");
downloadData = Regex.Replace(downloadData, "(</rp><rt>", "《");
downloadData = Regex.Replace(downloadData, "</rt><rp>)", "》");
downloadData = Regex.Replace(downloadData, "\\(</rp><rt>", "《");
downloadData = Regex.Replace(downloadData, "</rt><rp>\\)", "》");
downloadData = Regex.Replace(downloadData, "≪</rp><rt>", "《");
downloadData = Regex.Replace(downloadData, "</rt><rp>≫", "》");
//downloadData = Regex.Replace(downloadData, "\\(", "(");
//downloadData = Regex.Replace(downloadData, "\\)", ")");
downloadData = Regex.Replace(downloadData, "<(\"[^\"]*\"|'[^']*'|[^'\">])*>", "");//HTMLタグ削除

を追加してビルドすると、ブラウザで小説家になろうのサイトを見るのと同じようなルビ表示になると思います。(ビューアによりますが、WindowsのPageOneとAndroidの青い空では見れています。)
《ルビ対象》《ルビ内容》や、ルビ対象(ルビ内容)のような表記にも対応します。
また、このあたりに挿絵のダウンロード処理も書いてしまうと便利です。

とりあえず、自分はこうやっていますという一例として。
Posted by at 2015年01月05日 18:04
32bitのXPでも動作出来るようにはできませんか?
Posted by at 2015年01月19日 20:32
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

×

この広告は1年以上新しい記事の投稿がないブログに表示されております。